Choisir des moteurs électriques économiques pour le bras robotique

Views icon 5548
Choosing Electric Motors for the Robot Arm

Dans cet article, je souhaite expliquer comment s’est déroulé le choix du composant le plus important du manipulateur robotique : les moteurs électriques. Je commencerai par un aperçu des solutions retenues par Trossen Robotics dans le manipulateur Viper X 300 S, qui est l’une des solutions les plus populaires pour des projets de recherche comme Aloha 2 et Pi0.

Servomoteurs dans le manipulateur Viper X 300 S

Servomoteurs dans le manipulateur ViperX 300 S

Servomoteurs dans le manipulateur ViperX 300 S

Tout d’abord, nous avons examiné les solutions existantes pour les manipulateurs à 6DOF (six degrés de liberté). Le manipulateur sur lequel je me suis concentré est le Viper X 300 S, car il figurait à l’origine dans la liste des matériaux d’Aloha 2. Le fabricant a mis à disposition une partie de la documentation et des plans, et je me suis dit que ce serait une excellente idée de réutiliser ces solutions.

Bras robotique de bureau ViperX-300 6DOF

Bras robotique de bureau ViperX-300 6DOF

Le principal défi de la création d’un manipulateur abordable est de trouver des moteurs accessibles à couple élevé. Dans le Viper X 300 S, Trossen Robotics a utilisé DYNAMIXEL XM430-W350 des servomoteurs avec un couple de blocage de 4 Nm, au prix de $290, and DYNAMIXEL XM540-W270-T/R des servomoteurs avec un couple de blocage de 10 Nm, au prix de $430. A total of 9 servomoteur motors sont nécessaires pour créer un tel manipulateur, ce qui porte le coût total à 3 590 $, ce qui ne peut plus être considéré comme abordable.

ID Nom de l’articulation Servomoteur Débit en bauds Prix
1 taille XM540-W270 1Mbps $430 
2 épaule XM540-W270 1Mbps $430 
3 épaule (secondaire) XM540-W270 1Mbps $430 
4 coude XM540-W270 1Mbps $430 
5 coude (secondaire) XM540-W270 1Mbps $430 
6 rotation de l’avant-bras XM540-W270 1Mbps $430 
7 angle du poignet XM540-W270 1Mbps $430 
8 rotation du poignet XM430-W350 1Mbps $290
9 pince XM430-W350 1Mbps $290
Total $3590

Un ingénieur (ci-après appelé Alan), qui travaille actuellement sur le projet, a réalisé un calcul cinématique pour un bras manipulateur d’une longueur totale de 700 mm et d’une capacité de charge de 750 grammes.

Articulations du ViperX 300

Articulations du ViperX 300

Version 1.1 — 0,75 kg
Coefficient de sécurité d’inertie — 1,5
Articulation Axe Épaule, cm Charge kg*sm kg*sm Poids en bout kg
Base 0 0 3 7
Épaule 1 20 1,8 54,0 81 charge 0,75
Coude 2 20 1,5 30,0 45,0 pince 0,25
Avant-bras 3 0 1,2 0 0 servomoteur 0,1
Main -1 4 15 1,1 16,5 24,8
Main — 2 5 0 1 0 0
Pince 6 0 0,75 0 0

D’après les calculs, il nous faut à la base du bras des moteurs avec un couple requis de 81 kg·cm, soit 8 Nm au total. Cela signifie que si l’on installe deux servomoteurs à la base, chacun avec un couple de blocage de 4 Nm, cela devrait suffire. Cependant, il est essentiel de comprendre que si un servomoteur a un couple de blocage de 4 Nm, son couple effectif maximal — auquel il peut fonctionner de façon stable — représente généralement environ la moitié de cette valeur, comme l’illustre le Performance Graph.

XM430-W350 Performance Graph

XM430-W350 Performance Graph

Cette limitation doit être prise en compte pour garantir que le manipulateur puisse supporter les charges voulues sans solliciter excessivement les moteurs.

Types de servomoteurs

J’ai commencé à examiner quels types de moteurs sont utilisés dans les manipulateurs économiques.

  • Moteurs pas à pas, tels que les Nema 17 et Nema 23.
    Moteur pas à pas Nema 17

    Moteur pas à pas Nema 17

  • Moteurs PWM (modulation de largeur d’impulsion), tels que le Dsservo de 160 kg·cm.
    Dsservomoteur DS51160MG

    Dsservomoteur DS51160MG

  • Moteurs UART (émetteur-récepteur asynchrone universel), tels que le Feetech STS 3215-C01.
    Feetech-STS3215

    Feetech-STS3215

Sur quels indicateurs clés allons-nous nous concentrer ?

  • Couple
  • Précision
  • Courant, tension
  • Retour d’information (capteurs de température, de courant et de position)
  • Poids
  • Coût

Qu’est-ce que le couple moteur ?

Couple = force (F) × distance (d)

Couple = force (F) × distance (d)

Le couple moteur est la force qui fait tourner le moteur. On peut se le représenter comme la « force de torsion » qui aide le moteur à accomplir son travail. Plus le couple est élevé, plus il est facile pour le moteur d’accélérer et de soulever des charges lourdes. C’est important pour les voitures : un bon couple favorise une meilleure accélération et la montée des pentes.

Le couple d’un moteur se définit comme le produit de la force appliquée par la distance entre le point de pivot et le point d’application de cette force. La formule est la suivante :

Couple = force × distance (ou couple = F × d). Plus le couple est élevé, plus le bras de levier avec lequel ce moteur peut travailler est grand.

Précision de positionnement

En robotique, c’est l’un des indicateurs les plus importants, car la tâche du servomoteur est de positionner précisément le bras dans l’espace, et plus on y parvient avec précision, mieux c’est. Les principales caractéristiques d’un bras robotique sont la répétabilité et la précision absolue.

Répétabilité

Il s’agit de la capacité du manipulateur à revenir au même point de l’espace après de multiples cycles. Elle se mesure en millimètres (par exemple, ±0,01 mm). Plus la valeur est faible, plus la précision de la répétition des mouvements est élevée.

Précision absolue

Il s’agit de la capacité du manipulateur à atteindre un point donné de l’espace par rapport à un système de coordonnées global. Elle se mesure en millimètres (par exemple, ±0,1 mm). La précision absolue est généralement moins bonne que la répétabilité en raison de l’accumulation des erreurs dans la cinématique.

Capteurs de retour d’information

Capteurs de position

  • Capteurs à effet Hall : ces capteurs déterminent la position du rotor. Ils utilisent des aimants pour savoir où se trouve la partie mobile du moteur (le rotor) ou à quelle vitesse elle tourne.
    Principe de fonctionnement du capteur à effet Hall

    Principe de fonctionnement du capteur à effet Hall

  • Résolveurs : ils permettent de déterminer avec précision l’angle de rotation. Ils fonctionnent comme des « détecteurs angulaires » précis, indiquant la position exacte du rotor du moteur.
    Principe de fonctionnement du résolveur

    Principe de fonctionnement du résolveur

  • Potentiomètres : ce dispositif, semblable à un réglage de volume, modifie sa résistance lorsque le moteur se déplace, indiquant la position de son arbre.
    Principe de fonctionnement du potentiomètre

    Principe de fonctionnement du potentiomètre

  • Codeurs optiques : ils fournissent des informations sur la position et la vitesse du rotor. Imaginez une petite roue à fentes. La lumière traverse ces fentes et, en comptant ces éclats, nous déterminons combien de tours le moteur a effectués et où il se trouve.
    Principe de fonctionnement du codeur optique

    Principe de fonctionnement du codeur optique

  • Codeurs magnétiques : ils mesurent eux aussi la position et la vitesse à l’aide de champs magnétiques. Ils utilisent des aimants pour suivre la position du moteur et fonctionnent bien même dans des conditions difficiles.
    Principe de fonctionnement du codeur magnétique

    Principe de fonctionnement du codeur magnétique

Capteurs de courant

  • Capteurs de mesure de courant : ils mesurent le courant consommé par le moteur afin d’évaluer la charge.
    Principe de fonctionnement du capteur de mesure de courant

    Principe de fonctionnement du capteur de mesure de courant

Capteurs de température

  • Thermocouples ou thermistances : ils surveillent la température du moteur afin d’éviter la surchauffe.
    Principe de fonctionnement du thermocouple

    Principe de fonctionnement du thermocouple

Moteurs pas à pas

Schéma du moteur pas à pas

Schéma du moteur pas à pas

Je ne me suis pas attardé sur les moteurs pas à pas en raison de leur taille, de leur poids plus important, de leur couple plus faible et de leur faible précision de positionnement.

For example, the Nema 17 Bipolar 1.8° 36Ncm peut être comparé au servomoteur UART économique ST3215-C018 dans une gamme de prix similaire. Le Nema 17 pèse 280 grammes et a un couple de 36 N·cm (soit 3,6 kg·cm) avec un angle de pas de 1,8 degré.

Moteur pas à pas Nema 17

Moteur pas à pas Nema 17

Le servomoteur dans une gamme de prix similaire, Feetech ST3215-C018, pèse 55 grammes, a un couple de 30 kg·cm et une précision de positionnement de 0,09 degré.

Modèle de moteur Masse/grammes  Couple nominal/kg Précision/degrés Prix/$
Nema 17 Bipolar 1.8deg 36Ncm 280 3,6 1,8 10,75
Feetech ST3215-C018 55 15 0,09 16.45

Ainsi, si nous comparons sur la base des caractéristiques clés que nous avons prises en compte pour notre bras — poids × couple × précision de positionnement —, la différence serait de (280 / 55) × (15 / 3,6) × (1,8 / 0,09) ≈ 424 fois. Bien entendu, nous ne pouvons pas comparer ces types de moteurs uniquement sur ces 3 paramètres ; nous avons omis un certain nombre d’autres facteurs comme les RPM, le rapport de réduction, le bruit et le jeu. Si nous les ajoutons au tableau de comparaison, la différence ne sera plus aussi significative. Pour certains scénarios, le moteur Nema pourrait être le meilleur choix.

PWM contre UART

Schéma de base du servomoteur

Schéma de base du servomoteur

J’ai commencé à chercher des servos abordables à couple élevé. La première chose que j’ai trouvée était le Dsservomoteur RDS51150, qui a un couple de 150 kg·cm, une valeur très élevée pour ce type de servo. Une particularité de ces servos est qu’ils intègrent un système de commande avec un capteur de position fondé sur un potentiomètre, ce qui complique l’obtention du retour d’information et la commande de la position en raison de la précision et de la sensibilité limitées du potentiomètre.

Principe de la modulation de largeur d’impulsion

Principe de la modulation de largeur d’impulsion

Une particularité du fonctionnement des moteurs Dsservo est qu’il s’agit de moteurs PWM (modulation de largeur d’impulsion). C’est une méthode de commande de la puissance du courant électrique en le mettant en marche et à l’arrêt par impulsions. Ils ne disposent pas de codeur magnétique pour transmettre la position actuelle de l’arbre ni de contrôleur intégré. Ces moteurs ne conviennent pas aux systèmes robotiques où la précision de positionnement et le retour d’information sont importants.

J’ai réfléchi à la manière de compenser ces lacunes. Nous avons trouvé un codeur magnétique adapté, l’AS5600, doté de 4600 positions. De plus, il nous fallait un contrôleur capable de fonctionner en PWM.

Codeur magnétique AS5600

Codeur magnétique AS5600

Alan m’a recommandé un bon programmeur qui travaille en robotique. Il a suggéré d’abandonner le PWM au profit des moteurs UART (émetteur-récepteur asynchrone universel), car les complexités supplémentaires liées à la commande logicielle et à la mise en œuvre technique ne seraient probablement pas justifiées. La fiabilité des moteurs PWM bon marché par rapport aux UART est également discutable, car les potentiomètres intégrés pour la détection de la vitesse tombent souvent en panne.

PWM UART
Principe de fonctionnement Analogique : commande de la puissance par modulation de largeur d’impulsion Numérique : transmission des commandes via une interface série
Tâche principale Régulation douce de la vitesse (moteurs à courant continu) Positionnement précis (servomoteurs)
Précision Élevée pour la vitesse, faible pour la position Élevée pour le positionnement (précision du pas)
Communication Unidirectionnelle (commande → moteur) Bidirectionnelle (prend en charge le retour d’information)
Complexité matérielle Minimale (driver + générateur PWM) Élevée (contrôleur avec UART + protocole)
Efficacité énergétique Supérieure (commande directe de la puissance) Inférieure (dépend du protocole et du traitement)
Applications typiques Perceuses, ventilateurs, servomoteurs Imprimantes 3D, CNC, robotique

Dans le cas des moteurs UART, nous pouvons les connecter en série sur un seul bus, en obtenant un retour d’information sur la position, l’intensité du courant et la température du moteur. Cependant, le coût de tels moteurs à couple comparable sera nettement plus élevé.

J’ai commencé à étudier des moteurs UART adaptés et, après un examen attentif, j’ai opté pour les types suivants : Feetech 30 kg et 50 kg. En achetant par lots de 100 pièces, le coût sera de $12 each.

Servomoteur Feetech STS3215-C018. Couple et jeu

Servomoteur Feetech STS3215

Servomoteur Feetech STS3215

L’ingénieur a préparé un calcul cinématique du système à partir des valeurs de couple indiquées sur le site du vendeur. À ce stade, Alan a fait remarquer que le couple spécifié pour le moteur est le couple de blocage, c’est-à-dire le couple maximal auquel le moteur peut encore fonctionner avant de s’arrêter complètement sous charge. Par conséquent, nous ne pouvons pas utiliser ce couple pour évaluer la capacité de levage du manipulateur, car il ne bougera tout simplement pas sous une telle charge.

Graphique du couple, de la puissance, du rendement et du courant

Graphique du couple, de la puissance, du rendement et du courant

Les graphiques du lien following graphs viennent à la rescousse et montrent que le couple de fonctionnement maximal à prendre en compte représente en réalité la moitié de la valeur annoncée — cela se voit au milieu du graphique. Plus précisément, il indique 15 et 25 kg·cm. Cela signifie qu’avec un bras de levier de 700 mm et deux moteurs de 50 kg, nous pourrions atteindre une capacité de levage maximale de 240 grammes, ce qui est insuffisant.

Le mois dernier, Alan a commandé plusieurs échantillons pour les tester chez lui. Voici ce que nous avons constaté.

Mesure du jeu du Feetech STS3215

Mesure du jeu du Feetech STS3215

Le jeu du servomoteur est deux fois plus important que la valeur annoncée (≤0,5°) dans the technical documentation, soit 3 mm pour une longueur de bras de 160 mm, ce qui correspond à environ 1,072 degré.

 

Deuxièmement, nous avons mesuré la température sous charge constante.

 

Test 1 : Vérification de la surchauffe lors du maintien d’une charge statique.

Test de surchauffe sous charge statique. Feetech STS3215

Test de surchauffe sous charge statique. Feetech STS3215

Le bras avec un haltère était placé à l’horizontale, maintenant un poids de 1 kg sur un bras de levier de 15 cm, ce qui donne un couple de 15 kg·cm. En 10 minutes, la température est montée à 48 °C et est restée stable pendant une heure sans augmenter davantage.

Test 2 : Oscillation sur une plage de ±90 degrés. Mesure de la température

Oscillation sur une plage de ±90 degrés. Test de température. Feetech STS3215

Oscillation sur une plage de ±90 degrés. Test de température. Feetech STS3215

Partant de 48 °C, la température a atteint 60 °C au bout de 50 minutes. Pendant les 20 minutes suivantes, la température n’a pas augmenté. La vitesse d’oscillation a ensuite été réduite pour accélérer le chauffage (voir la note ci-dessous). Il a fallu 40 minutes supplémentaires pour atteindre 71 °C, point auquel le moteur a surchauffé.

Conclusions

  • Seuil de température critique : à 71 °C, le moteur présente des dysfonctionnements, comme cela a été observé lors des expériences menées hier et aujourd’hui (deux cas). Il ne semble pas y avoir de protection thermique intégrée, il faudra donc procéder à un arrêt manuel lorsque cette température est atteinte.
  • Effet de l’accélération sur le chauffage : réduire l’accélération a augmenté la vitesse de montée en température. Au départ, avec une accélération de 5, la température a atteint 60 °C. Réduire l’accélération à 2 a entraîné une surchauffe au bout d’un temps supplémentaire. Demain, lors d’autres tests, nous mesurerons le temps nécessaire pour atteindre la surchauffe avec une accélération de 5, car une accélération de 2 est trop lente pour notre application.

C’est tout pour l’instant concernant les moteurs électriques. Les nouveautés sur nos avancées en robotique seront bien sûr publiées sur le site !