Quel servomoteur utiliser pour un projet robotique ? (indice : Dynamixel)

Vous recherchez un servomoteur pour votre projet robotique ?

Chez Niryo nous avons testé quelques servomoteurs classiques trouvés sur Internet, et un certain type de moteurs sort du lot. Il s’agit des moteurs Dynamixel, créés par l’entreprise Robotis. Nous utilisons nous-mêmes ces moteurs pour notre robot.

Dans cet article nous vous expliquerons quelles sont les principales fonctionnalités de ces servomoteurs, et comment les utiliser pour votre projet robotique.

Fonctionnalités des moteurs Dynamixel

Voici une liste (non exhaustive) des fonctionnalités de Dynamixel, qui font la différence face à d’autres servomoteurs plus classiques :

  • Modifiez le mode de contrôle : vous pouvez utiliser un contrôle de position en boucle fermée avec le “joint mode” (max 320° – 360°), ou passer en mode “wheel” (roue) pour que le moteur tourne indéfiniment avec un contrôle en vitesse.
  • Obtenez des informations utiles : position, vitesse, charge, température, tension appliquée, etc. Avec ces informations vous pouvez connaître l’état du robot à n’importe quel moment, et créer votre propre algorithme de contrôle en boucle fermée.
  • Retour d’erreur : pour chaque commande donnée (lecture, écriture), le moteur Dynamixel vous renvoit un paquet d’informations. Dans ce paquet vous pourrez détecter si une erreur est survenue, et même connaître le type d’erreur (mauvais paramètre, surchauffe, etc).
  • Contrôle PID : indiquez seulement les valeurs (P, I, D), et le moteur utilisera le PID de façon autonome.
  • DEL : les DELs ne sont pas directement liées aux performances du robot, mais elles vous permettent de facilement détecter des erreurs (par exemple, la DEL clignote lors d’une surchauffe), et d’améliorer le look de votre robot !
  • Contrôlez plusieurs moteurs en les chaînant. Vous n’aurez ainsi qu’un seul bus de communication pour tous les moteurs. Cela réduira de façon drastique le nombre de fils dans votre robot.

Quel moteur Dynamixel utiliser pour votre projet robotique ?

Si vous cherchez sur Internet, vous trouverez de nombreux servomoteurs Dynamixel, avec différents prix et différentes capacités.

servomoteurs dynamixel

Si vous commencez avec Dynamixel, nous vous conseillons de choisir les moteurs XL-320 ou AX-12. Ce sont les deux moteurs les plus répandus, vous trouverez donc facilement de l’aide sur Internet. De plus, leur capacité sera sûrement suffisante pour votre projet robotique – au moins pour effectuer des tests si vous avez un projet plus grand.

Comment utiliser les servomoteurs Dynamixel

Les moteurs Dynamixel possèdent un micro contrôleur intégré, vous devrez donc communiquer avec celui-ci pour lui donner des commandes, et lire des informations.

Les moteurs utilisent une communication half-duplex TTL serial.

Pour contrôler un moteur Dynamixel, vous pouvez simplement utiliser un module USB2Dynamixel, qui vous permet de connecter directement votre bus Dynamixel à votre ordinateur (ou Raspberry Pi) via USB. Ainsi vous n’aurez pas à vous soucier de comment la communication fonctionne.

Si vous souhaitez utiliser directement un micro contrôleur (sur une carte Arduino par exemple), il vous suffit d’utiliser les pins UART (avec une installation half-duplex).

Une fois les moteurs connectés, vous devrez leur envoyer des instructions pour qu’ils donnent vie à votre robot.

Plusieurs façons de programmer un moteur Dynamixel existent, pour chaque niveau :

En chaînant plusieurs moteurs, vous pouvez réduire drastiquement le nombre de câbles. Mais alors… Comment communiquer avec un seul servomoteur ?

Chaque moteur a un propre identifiant (que vous pouvez modifier). Tout ce que vous avez à faire, c’est spécifier l’ID du servomoteur avec lequel vous avez envie de communiquer, et envoyer les informations !

Un exemple de projet robotique utilisant des servomoteurs Dynamixel

Chez Niryo nous utilisons des servomoteurs Dynamixel XL-320, ce qui nous permet d’ :

  • Obtenir des trajectoires plus fluides par rapport à d’autres servomoteurs.
  • Augmenter l’étendue maximum de certains axes (180° -> 320°).
  • Obtenir des informations utiles pour améliorer certaines fonctionnalités. Par exemple, nous pouvons demander à une pince de se fermer, et de s’arrêter lorsqu’elle attrape un objet (avec le retour de charge). De cette façon, le moteur ne chauffe pas trop et la pince s’adapte à tout type d’objet.
  • Utiliser les DELs pour donner des signaux à l’utilisateur : robot prêt, phase d’initialisation, problème détecté, …
servomoteurs dynamixel sur niryo one

Les servomoteurs Dynamixel sont un bon choix pour réaliser un projet robotique. Comme nous avons pu le voir, ils proposent plus de fonctionnalités que les autres moteurs classiques.

Si vous commencez un nouveau projet, vous devriez considérer en tester au moins un, cela peut vous économiser du temps, et vous permettre de vous focaliser sur des fonctionnalités plus avancées !

Vous pouvez aussi obtenir plus d’informations sur le robot Niryo One ici. Nous publierons bientôt de nouvelles photos et vidéos pour montrer comment nous utilisons les servomoteurs Dynamixel dans Niryo One.

2017-05-18T15:52:14+00:00

2 Comments

  1. PBR juin 2, 2017 at 11:46 - Reply

    Bonjour
    Est il possible d’améliorer la répétabilité de votre produit?

    • Edouard Renard juin 2, 2017 at 12:17 - Reply

      Bonjour PBR,
      Le remplacement des servomoteurs par des XL-320 nous a permis d’améliorer la répétabilité sur les axes 5 et 6 (plus d’infos ici). Les mouvements sont plus fluides, et plus précis.
      Comme le robot sera open source, il vous sera aussi possible de tester Niryo One avec différents servomoteurs Dynamixel, si vous souhaitez améliorer encore plus la répétabilité. (les moteurs doivent utiliser le protocole Dynamixel 2.0)

Leave A Comment