Tutoriel de programmation des servomoteurs Dynamixel en utilisant RoboPlus

Les servomoteurs Dynamixel de la société Robotis sont reconnus dans le monde entier comme les meilleurs servomoteurs grand public, offrant le meilleur de la technologie en terme de performance, robustesse, précision et fonctionnalités. Robotis offre une large gamme de servomoteurs qui se différencient par leur performances en terme de vitesse et de couple moteur ainsi que par les fonctionnalités accessibles.

Ce tutoriel vous guide à travers toutes les étapes nécessaires à la commande de vos servomoteurs Dynamixel : les connexions, la programmation, le transfert des programmes dans le contrôleur et la récupération des sorties.

Dans cet exemple, nous utilisons un contrôleur CM-700 et un servomoteur Dynamixel RX-28. La façon de programmer est exactement la même pour les autres contrôleurs (CM-5, CM-510 et CM-530) ainsi que pour les autres servomoteurs Dynamixel (gammes AX, RX, EX et MX).

Pour contrôler un servomoteur Dynamixel, il vous faut:

  • un (ou plusieurs) servomoteur(s) Dynamixel et son(leur) câble(s) de connexion
  • un contrôleur et son câble de connexion au PC (interface USB LN-101 pour le CM-700, câble Bioloid BSC-10 pour les autres, avec une interface USB2DYNAMIXEL si votre ordinateur ne comporte pas de port série)
  • Une alimentation stabilisée ou une batterie (ou un câble SMPS (12V, 5A) selon les contrôleurs)
  • Un ordinateur sur lequel vous avez installé le logiciel gratuit RoboPlus (téléchargement)

Étape 1: Connexion et alimentation du servomoteur Dynamixel

Connectez le servomoteur Dynamixel au contrôleur (les servomoteurs des gammes AX et MX-xxT utilisent une communication TTL et des connecteurs 3 broches, alors que les servomoteurs des gammes RX, EX et MX-xxR utilisent le protocole RS485 et donc des connecteurs 4 broches).

Alimentez le contrôleur Dynamixel : la led 'power' s'allume et l'une des LEDs de mode (play, edit ou mon) se met à clignoter. La led du servomoteur s'allume aussi brièvement (moins d'une seconde) au moment de l'allumage.

Connectez le contrôleur à votre ordinateur. L'appareil doit être reconnu automatiquement. Si ce n'est pas le cas, voyez ici pour l'installation manuelle des pilotes.

Étape 2 : Détection du contrôleur et des servomoteurs Dynamixel

Lancez le logiciel RoboPlus. Roboplus est le logiciel graphique fourni gratuitement par Robotis pour piloter et programmer facilement les servomoteurs Dynamixel. Dans la fenêtre d'accueil de RoboPlus (cf. ci-dessous), choisissez 'RoboPlus Manager'.

roboplus est le logiciel de robotis permettant de contrôler facilement des servomoteurs dynamixel

Sur votre contrôleur Dynamixel, appuyez sur le bouton mode jusqu'à ce que la LED 'manage' (CM-5, CM-510 ou CM-530) ou 'mon' (CM-700) clignote.

Tout en haut à gauche, choisissez le port COM sur lequel est branché votre robot ou choisissez 'auto search'. Puis cliquez sur l’icône 'connect'.

RoboPlus Manager détecte quels contrôleurs et quels servomoteurs Dynamixels sont connectés

Si la connexion ne se fait pas, cliquez sur l’icône 'Windows Device Manager' et recherchez directement quel port est utilisé par votre contrôleur (dans Ports (COM & LPT), il est appelé 'USB Serial Port').

Le logiciel va détecter votre contrôleur ainsi que les servomoteurs qui y sont connectés

roboPlus Manager détecte les contrôleurs et les servomoteurs Dynamixel connectés

Notez bien l'ID de vos servomoteurs Dynamixel, car c'est avec cet ID que vous allez pouvoir les commander. Vous avez également accès à toutes les variables de vos servomoteurs et de votre contrôleur. C'est à ce moment que vous pouvez décider d'utiliser votre servomoteur Dynamixel en 'joint mode' (contrôle en position, pour des bras de robot par exemple) ou en 'wheel mode' (rotation continue, pour des roues de robots mobile en particulier).

RoboPlus manager vous permet de contrôler les servomoteurs Dynamixels un par un

Étape 3: Programmer une tâche sur votre servomoteur Dynamixel

Vous pouvez à présent fermer RoboPlus Manager et ouvrir RoboPlus Task.

Appuyez sur le bouton 'mode' du contrôleur jusqu'à ce que la led 'play' clignote. Dans RoboPlus Task, choisissez le bon contrôleur et le port COM

RoboPlus task vous permet de faore des programmes pour contrôler les servomoteurs Dynamixel

Pour commencer, nous allons simplement demander au contrôleur d'écrire la valeur de la position du servomoteur Dynamixel chaque seconde.

Commencez par double cliquer sur la première ligne du programme. Une fenêtre s'ouvre et propose différents types d'instructions. Double-cliquez sur 'Start program'.

les différentes instructions de roboPlus Task servomoteur Dynamixel robotis

start program dans RoboPlus Task servomoteur Dynamixel robotis

Tout votre programme devra être compris entre les deux accolades. Double cliquez sur la ligne entre les accolades (numéro 3 dans l'exemple) et choisissez 'Load (assignment value)'

assignement de valeur dans RoboPlus Task servomoteur Dynamixel Robotis

Vous devez assigner des valeurs aux deux points d'interrogation.

Double-cliquez sur le premier, dans la fenêtre qui s'ouvre, choisissez 'Dynamixel/actuator' et sélectionnez 'torque enable'. Vérifiez bien que l'ID en haut de la fenêtre correspond à celui de votre servomoteur.

désasservissement du servomoteur Dynamixel robotis avec RoboPlus task.

Puis double-cliquez sur le second point d'interrogation. Dans 'constant value' puis 'TRUE/FALSE', choisissez 'false'.

Puis créez une nouvelle ligne vide à l'aide de la touche espace ou d'un clic droit.

tutoriel de RoboPlus task pour contrôler des servomoteurs dynamixel robotis

Nous allons ensuite créer une boucle infinie : Double-cliquez sur la nouvelle ligne et sélectionnez 'Endless loop (while(1))'. Un nouveau bloc, délimité par des accolades, est créé. Le code qui est à l'intérieur de ce bloc va donc être répété indéfiniment.

Dans ce nouveau bloc, nous allons afficher la position du servomoteur. Il faut à nouveau utiliser 'Load (assignment value)'. Pour le premier point d'interrogation, sélectionnez 'Print with line' dans 'Controller'. Pour le second, choisissez 'Present Position' dans 'Dynamixel/Actuator'. 'Print with line' permet d'afficher un nombre entre -32767 et +32767, que ce soit la valeur d'un capteur, d'un moteur ou qu'il soit défini 'en dur' dans le programme. Par contre, vous ne pouvez pas afficher de texte.

affichage de la position du servomoteur Dynamixel robotis avec RoboPlus task

Enfin, pour avoir le temps de lire les données, nous allons attendre une seconde entre chaque mesure. Pour cela, nous allons créer un timer et attendre que celui ci soit écoulé.

Créez une nouvelle ligne dans la boucle infinie et choisissez à nouveau l'assignement d'une valeur. Cette fois, nous allons assigner à un timer (dans 'controller') une 'timer value' (dans constant value') de 10. Vous pouvez voir la durée exacte calculée immédiatement.

mise en place du timer pour le servomoteur Dynamixel robotis avec RoboPlus task

Il faut ensuite créer une ligne sous le timer et choisir l'instruction 'Conditional stand'. Assignez les valeurs comme ci-dessous pour attendre que le timer soit à 0 (attention le 0 est une 'timer value').

Vous pouvez vérifier que la syntaxe de votre code est correcte en cliquant sur le petit signe rouge nommé 'Check Rule'. La zone de debug en bas de la fenêtre va vous afficher le nombre de variables et la taille de votre programme ainsi que les éventuelles erreurs.

code final pour le servomoteur dynamixel robotis avec vérification des erreurs dans RoboPlus task

Le programme complet est disponible ici.

Étape 4 : Télécharger et exécuter le programme

Nous allons maintenant transférer ce premier programme très simple dans le contrôleur pour vérifier qu'il s'exécute correctement.

Cliquez sur la flèche verte pour télécharger le programme dans votre contrôleur. Quand le téléchargement est fini, appuyez sur le bouton 'View output of program'.

fenêtre de téléchargement du programme roboplus vers le contrôleur des servomoteurs Dynamixel robotis

Cela ouvre un terminal nommé 'Program Output Monitor'

Programm output monitor pour voir ce qui se passe sur votre servomoteur Dynamixel robotis

Il ne vous reste plus qu'à appuyer sur le bouton 'start' de votre contrôleur.Le LED 'play' devient fixe tant que le programme s'exécute. Les premières lignes contiennent la structure de votre robot.

Puis vous voyez s'afficher le nombre que vous avez choisi.

exécution du programme pour contrôler le servomoteur Dynamixel robotis

Éteignez votre contrôleur pour arrêter le programme. Vous pouvez ensuite le rallumer et réappuyer sur le bouton 'start' pour relancer le programme.

Pour aller plus loin, nous vous proposons ce tutoriel avancé, qui présente un exemple plus complexe sur la programmation de mouvements pour les servomoteurs Dynamixel et l'utilisation de RoboPlus Motion.

Utilisation de l'interface USB2DYNAMIXEL

L'interface USB2DYNAMIXEL peut être utilisée soit comme interface USB-Série, soit comme lien direct avec les servomoteurs Dynamixel.

En temps qu'interface USB-série (l'interrupteur doit être positionné sur 'RS232'), vous pouvez connecter un contrôleur CM-5 ou CM-510 (le CM-530 possède déjà une interface USB) directement sur un port USB et télécharger vos programmes exactement comme dans le cas du contrôleur CM-700 présenté ci-dessus.

Pour communiquer directement avec les servomoteurs Dynamixel, l'interrupteur de l'interface USB2DYNAMIXEL, l'interrupteur doit être positionné sur 'RS485' pour les servomoteurs des séries RX, EX et MX-xxR ou sur 'TTL' pour les servomoteurs AX et MX-xxT.

Alimentation des servomoteurs Dynamixel lors de l'utilisation de l'interface USB USB2DYNAMIXEL

Attention, l'interface USB2DYNAMIXEL ne permet pas d'alimenter vos servomoteurs, il faut donc les alimenter soit en utilisant le deuxième connecteur du dernier servomoteur de la chaîne, soit en se branchant sur le câble de connexion entre l'USB2DYNAMIXEL et le premier servomoteur.

broches pour alimenter le servomoteur Dynamixel quand on utilise l USB2DYNAMIXEL

broche pour alimenter le servomoteur Dynamixel quand on utilise l USB2DYNAMIXEL

alimentation du servomoteur Dynamixel par l autre connecteur quand utilisé avec l USB2DYNAMIXEL

alimentation du servomoteur Dynamixel quand utilisé avec l USB2DYNAMIXEL

Utilisation de l'interface USB USB2DYNAMIXEL avec RoboPlus pour contrôler un servomoteur Dynamixel

Une fois que vous avez connecté l'interface USB2DYNAMIXEL et les servomoteurs, vous pouvez utiliser la partie 'Dynamixel Wizard' de RoboPlus.

le logiciel dynamixel manager permet

En cliquant sur le bouton 'connect', vous pouvez lancer une recherche de tous les éléments connectés.

connexion de votre USB2DYNAMIXEL a roboPlus Dynamixel wizard

Puis vous pouvez modifier les champs des servomoteurs directement à partir de la même fenêtre, par exemple faire tourner votre servomoteur en modifiant le champ 'Goal Position'.

vous pouvez contrôler vos servomoteurs Dynamixel robotis directement par l

Par contre, sans contrôleur, vous ne pouvez pas télécharger des programmes (tâches) pour automatiser les mouvements de vos servomoteurs.

 

Génération Robots (http://www.generationrobots.com)

Tout usage et reproduction soumis à autorisation explicite préalable.