Bras robotique à bas coût
(github.com/AlexanderKoch-Koch)- Le dépôt Low-Cost Robot Arm fournit les fichiers nécessaires pour construire et contrôler un bras robotique pour environ 250 $ ; en ajoutant un bras leader séparé, on peut manipuler le bras follower dans une configuration totale d’environ 430 $
- Le bras follower utilise à la fois des servos Dynamixel XL430 et XL330 ; les XL430 sont utilisés pour les deux premières articulations, tandis que les XL330, légers avec leurs 18 g, servent à rendre le bras plus léger et plus rapide
- L’adaptateur U2D2 de Dynamixel est cher et présente une latence élevée ; cette construction utilise donc la carte Waveshare Serial Bus Servo Driver Board, moins coûteuse, et contrôlable avec le SDK Dynamixel
- La fabrication nécessite de l’impression 3D, le réglage du baudrate 1M de chaque moteur, l’attribution des ID de servo et l’ajustement d’un abaisseur de tension ; la tension d’entrée des XL330 se vérifie dans Dynamixel Wizard et se règle à 5 V
- Le bras leader, qui n’utilise que des moteurs 5 V, est plus simple à assembler ;
teleoperation.pypermet de tester les deux bras, etsimulation.pyde lancer un environnement de simulation MuJoCo de base
Présentation du projet
- Le dépôt Low-Cost Robot Arm contient les fichiers nécessaires pour construire et contrôler un bras robotique à bas coût
- Le bras follower de base coûte environ 250 $ ; l’ajout d’un bras leader revient à environ 180 $ de plus, soit une configuration totale à 430 $
- Une liste d’attente permettant de recevoir toutes les pièces dans un seul package est disponible sur https://tau-robotics.com/robots
- La conception du bras leader s’inspire du projet GELLO, mais a été simplifiée pour être plus facile à construire
- Ce bras robotique convient au robot learning et, avec deux unités, il est aussi possible de plier des vêtements
Servos et mode de contrôle
- Le bras follower utilise des servomoteurs Dynamixel XL430 et Dynamixel XL330
- Le XL430 est presque deux fois plus puissant que le XL330 et sert aux deux premières articulations
- Le XL330 est moins puissant, mais chaque moteur ne pèse que 18 g, ce qui rend le bras léger et rapide
- Dynamixel vend un adaptateur U2D2 pour connecter les servos à un ordinateur, mais cette construction utilise une carte adaptatrice moins chère en raison des problèmes de coût et de latence
- Le bras robotique peut être contrôlé avec le SDK Dynamixel
- Commande d’installation :
pip install dynamixel-sdk
- Commande d’installation :
Configuration du bras follower
- Le coût total des pièces du bras follower est estimé à 258 $
- Les principales pièces sont les suivantes
- 2x Dynamixel XL430-W250 : 100 $
- 4x Dynamixel XL330-M288 : 96 $
- Roue folle XL330 : 10 $
- Roue folle XL430 : 7 $
- Waveshare Serial Bus Servo Driver Board : 10 $
- Abaisseur de tension : 10 $
- Alimentation 12 V : 12 $
- Pince de table : 6 $
- Câbles : 7 $
- La boutique Robotis propose généralement un code de réduction de 10 %
- Ajouter du grip tape au préhenseur peut être utile
- Un câble USB-C est nécessaire pour connecter la carte servo driver à l’ordinateur
Déroulé de l’assemblage du bras follower
- La vidéo d’assemblage est disponible sur https://youtu.be/RckrXOEoWrk
- Toutes les pièces sont imprimées avec une imprimante 3D
- Les fichiers STL se trouvent dans
hardware/follower/stl - Les pièces sont conçues pour être faciles à imprimer ; seules les pièces mobiles du préhenseur nécessitent des supports
- Les fichiers STL se trouvent dans
- Les étapes de scan des moteurs sont les suivantes
- Connecter la driver board à l’ordinateur ; cela devrait fonctionner sous Linux et MacOS
- Comme dans l’exemple MacOS, vérifier le nom du périphérique avec
ls /dev/tty.* - Scanner chaque moteur individuellement avec Dynamixel Wizard
- Régler le baudrate de tous les moteurs à 1M
- Définir les ID de servo de 1 à 5, de l’épaule au préhenseur ; jusqu’à 6 si l’extension elbow-to-wrist est utilisée
- Lors de l’assemblage, fixer les servos aux mêmes emplacements que dans le CAD, et les servo horns doivent être en position de base au moment du vissage
- Pour l’alimentation, souder l’abaisseur de tension, le fixer à la driver board et à la base, puis le connecter
- L’entrée de l’abaisseur de tension se connecte aux ports V et G de la driver board
- La sortie et le port D restant de la driver board se connectent au servo du coude
- Après connexion au servo XL330, vérifier la tension d’entrée dans Dynamixel Wizard, puis ajuster la vis de l’abaisseur de tension pour atteindre 5 V
Bras leader et simulation
- Le coût total des pièces du bras leader est de 183 $
- Les principales pièces sont les suivantes
- 6x Dynamixel XL330-M077 : 144 $
- Châssis XL330 : 7 $
- Roue folle XL330 : 10 $
- Waveshare Serial Bus Servo Driver Board : 10 $
- Alimentation 5 V : 6 $
- Pince de table : 6 $
- Le bras leader est plus simple à assembler, car tous ses moteurs utilisent du 5 V
- Le préhenseur est remplacé par une poignée et une gâchette
- Appliquer un faible couple à la gâchette pendant l’utilisation peut la faire s’ouvrir par défaut
- La conception GELLO utilise un ressort pour cela, mais l’assemblage est beaucoup plus difficile
- Le script
teleoperation.pypermet de tester les bras- Il peut toutefois être nécessaire d’ajuster le nom du périphérique
- L’exécution de
simulation.pypermet d’utiliser un environnement de simulation MuJoCo de base
1 commentaires
Avis de Hacker News
J’ai commencé à fabriquer un bras robotique de taille similaire. J’ai un vieil ami verrier, et je pense l’utiliser pour fabriquer des pendentifs en verre à facettes
Mon ami possède bien une machine de facettage, mais elle est manuelle
La partie difficile, c’est la précision de répétabilité. Les tolérances doivent être serrées, et chaque articulation du bras amplifie l’erreur à mesure qu’on s’éloigne de la base. Si la base bouge de 1 mm, l’extrémité d’un bras de 20 cm bouge de 4 mm, et le bras suivant amplifie encore davantage
Pour du facettage, il faut une résolution bien plus fine qu’avec un servo sans réducteur. La réduction est délicate : pour maintenir les articulations fermement en place, il faut du backlash, mais pas au point que le frottement devienne important pendant le mouvement. Les vis sans fin sont lentes et trop rigides, donc peu adaptées ; pour les engrenages internes du bras, les réducteurs cycloïdaux semblent être la meilleure option. Saisir du verre est assez risqué, donc il faut aussi de vrais servos avec un certain niveau de feedback
J’estime le coût de fabrication à environ 1 000 à 2 000 dollars, dont la majeure partie pour les réducteurs
Même une fois qu’on a réussi à faire fonctionner le matériel d’une manière ou d’une autre, faire fonctionner correctement le solveur cinématique est un énorme défi. Il y a beaucoup de cas particuliers, il faut gérer du feedback en temps réel, et trouver le bon équilibre entre facilité d’utilisation et fiabilité. C’est là que les entreprises de robotique facturent cher, et c’est justifié
Si l’on peut éviter de construire un bras robotique et le remplacer par une structure de mouvement plus simple, mieux vaut le faire. Mais si vous le construisez quand même, ce sera vraiment impressionnant
Pour référence, la conception cherchait à modéliser dans une certaine mesure un bras humain, et nous sommes arrivés à environ 1 mm de précision de répétabilité avec une portée d’environ 80 cm et une charge de 2,5 kg
Concrètement, selon les exigences de charge de l’effecteur final, on peut mélanger des NEMA34, 24 et 17. On utilise des moteurs plus gros sur les articulations avant. Si le budget le permet, on peut utiliser des réducteurs cycloïdaux ou harmoniques ; sinon, chaque actionneur (moteur + driver + réducteur + accouplement d’arbre) coûte environ 100 à 200 dollars selon le fournisseur et les exigences. Un système en boucle fermée ajoute environ 50 dollars. Côté prix, ce n’est pas si mauvais. Pour l’articulation de base, il faut un réducteur cylindrique large qui répartit mieux la charge
Si vous pouvez travailler avec un atelier d’usinage, je pense qu’il est possible d’obtenir quelque chose d’assez qualitatif. Voici quelques exemples de conception à titre de référence ; certains semblent même meilleurs que ce que j’aurais pu fabriquer en tant que hobbyiste
https://www.youtube.com/watch?v=7z6rZdYHYfc Celui-ci est excellent. Une version plus petite et plus légère, déplacée lentement, réduirait encore davantage les oscillations de la base
https://www.youtube.com/shorts/II8gdIXPgaE Plus proche du billet d’origine
https://www.youtube.com/shorts/_x7P9eZCkVM
https://www.youtube.com/watch?v=g9AfhqOd-_I Le plus professionnel que j’aie vu, et cette nomenclature est presque certainement sous les 3 000 dollars, probablement sous les 1 000 dollars en Chine. C’est tellement chouette que je pense envoyer un mail à cette entreprise pour savoir si elle vend un modèle plus petit
https://www.youtube.com/watch?v=iB2NAgfVjIs Chris Annin vaut aussi vraiment le détour. Je le considère comme l’un des roboticiens américains qui fabriquent le mieux des robots open source à bas coût à moteurs pas à pas
L’idée à laquelle j’avais pensé auparavant consistait à confier les grands mouvements à un bras fait de composants bon marché et « tremblants », puis à ajouter à l’extrémité une platine à faible course mais contrôlable avec une très grande précision
Enfin, on ajoute une méthode pour suivre très précisément l’écart entre la position réelle de l’outil et la position cible. Par exemple, cela pourrait être une caméra montée sur l’outil
Une boucle de feedback logicielle pourrait alors suivre l’écart de l’outil et le compenser avec la platine de « correction » située à l’extrémité
Je ne sais toutefois pas si cela fonctionnerait vraiment. Le temps nécessaire à la « compensation » est aussi un problème. Ce n’est pas la même chose entre des cas de type pick-and-place, où il suffit d’atteindre finalement la position cible en bout de trajectoire, et des cas comme la gravure ou le soudage, où il faut rester sous un écart maximal tout au long du trajet
Dans ce genre de situation, que donnerait l’utilisation de moteurs pas à pas fortement démultipliés avec des réducteurs cycloïdaux ? Dans ma tête, cela rendrait la position très contrôlable et répétable, et le backlash serait principalement géré par le réducteur
J’aimerais savoir si je me trompe. Comme je l’ai dit, je suis plutôt quelqu’un du logiciel qui essaie de mettre un pied dans le matériel
Il est surprenant qu’il n’existe pas encore clairement d’entreprise produisant en masse des bras robotisés bon marché, de bonne qualité et relativement standardisés. Des choses comme les imprimantes 3D ou les machines CNC sont descendues à des prix grand public/amateur, mais ce domaine semble encore largement inexploré
On dirait qu’il y a un potentiel du niveau d’Arduino ou de Raspberry Pi, mais je n’ai pas encore entendu parler d’un nom ou d’un écosystème aussi connu
La plupart des gens jouent avec quelques heures, puis le posent sur une étagère
Chaque cas d’usage est complètement différent, et la quantité de travail est énorme. Même si l’on parvient à faire fonctionner quelque chose, il suffit de secouer accidentellement le bureau ou que le bras heurte quelque chose pour que toutes les coordonnées soient perdues, et il faut recommencer
La mécanique réelle est aussi vraiment complexe. Pour soulever une charge significative avec une portée de 50 cm, l’articulation de base doit fournir un couple très élevé, tout en exigeant une très grande précision. Il faut donc des engrenages et des moteurs coûteux, et rien de tout cela n’est bon marché
Il y a aussi la question de la sécurité. Un bras capable de soulever une charge utile est assez lourd, et lorsqu’une masse de ce type se déplace, il faut des systèmes de sécurité. Là encore, ce n’est pas bon marché
C’est un peu comme le no-code, version matériel. Programmer un bras robotisé est intrinsèquement difficile, ce qui rend difficile la création d’un bras robotisé facile à utiliser. À mon avis, seule une très bonne IA peut changer cela
Les gens pensent pouvoir en fabriquer un eux-mêmes pour moins cher qu’un “vrai” bras robotisé, mais ils ne prennent pas en compte les vibrations et la précision de répétabilité
Respect à la personne qui a posté sur HN une conception de bras robotisé à base de servos RC, mais j’aimerais voir des mesures de répétabilité. Qu’on lui fasse tracer le même motif sur du papier chaque jour pendant une semaine, et qu’on montre à quel point les 7 lignes se superposent. Je doute même qu’il puisse tracer cela. Il pourrait déchirer le papier, ou rester bloqué sans même avoir assez de force pour le déchirer
Pour donner le contexte : je construis des robots de loisir depuis les années 1980, j’ai fait de la recherche en robotique dans les années 1990, y compris pour mon mémoire de master, et j’ai passé l’essentiel des dix dernières années à enseigner la robotique
Il est aussi important de noter qu’un robot sans très bon logiciel de cinématique est quasiment inutilisable. En plus du bras, il faut un boîtier de contrôle capable de fournir de manière stable l’alimentation et les commandes en temps réel, ce qui ajoute aussi un coût non négligeable
Une fois qu’il est défini, on se rend vite compte que, dans presque tous les cas, il existe une solution bien plus simple et moins chère qu’un bras robotisé à 6 degrés de liberté
Et si l’on a réellement besoin d’un tel bras, alors, en tenant compte de tous les éléments, 10 000 à 20 000 dollars est plutôt bon marché
En abaissant un peu les ambitions, que diriez-vous de commencer par une plateforme robotique à bas coût qui suit une personne, transporte des objets et évite les obstacles ? Pas besoin de bras ; je peux très bien utiliser mes propres bras pour poser et retirer les objets
Quand je me suis blessé à la jambe et que j’ai dû utiliser des béquilles, transporter des choses est soudain devenu un problème. Beaucoup de personnes ont des difficultés à se déplacer. Et même sans être dans ce cas, je pose souvent des objets au mauvais endroit ; cela pourrait aussi aider
Sur AliExpress, il y a beaucoup de bases de robots jouets, mais leur plus grande dimension fait moins de 20 cm, ce qui est trop petit pour être pratique
Cela dit, ce n’est pas vendu 250 dollars, donc modifier un vrai Roomba ou un clone de Segway “hoverboard” avec ROS[3] pourrait être plus rentable
0: https://www.youtube.com/watch?v=l1hQ5YTMJEw
1: https://www.youtube.com/watch?v=SdVglHOJgiA
2: https://github.com/hoverboard-robotics/hoverboard-driver/tre...
https://www.aristavault.com/products/follow-me-smart-luggage
Je suis surpris que personne n’ait pointé vers ceci
https://github.com/peng-zhihui/Dummy-Robot
Cela dit, la lecture peut être un peu difficile
Pour le geek que je suis, ça fait saliver, mais est-ce que quelqu’un a vraiment trouvé un usage domestique utile à un bras robotisé ? Le hacking est toujours plus amusant quand il y a un bon projet
Il n’a même pas besoin d’être très rapide. Il suffit de le laisser tourner toute la nuit
Quelqu’un a sûrement aussi écrit un article intéressant sur l’algorithme de tri idéal. Par exemple : faut-il aller des grandes pièces vers les petites, ou simplement prendre la plus proche et la déplacer ? Personnellement, j’aimerais le faire trier par sets de base, puis, s’il vous plaît, remettre les plateaux dans leurs tiroirs d’origine
Autre idée : un bras dans la cuisine pour remuer les pâtes
J’y ai aussi ajouté un capteur de retour de force bricolé avec une souris 3D. L’idée était bonne, mais ce n’était pas assez rigide pour cet usage
https://news.ycombinator.com/item?id=39903953
http://roboexotica.at/
Si ça vous intéresse, ceci pourrait aussi vous plaire. Ce n’est pas du DIY, ça arrive comme produit fini
https://www.waveshare.com/roarm-m2-s.htm
J’en ai un, et compte tenu de la gamme de prix, la qualité de fabrication est vraiment impressionnante
C’est vraiment dommage qu’il n’existe pas de version à 6 degrés de liberté. C’est ce qu’il faut pour saisir correctement quelque chose dans le rayon autour du bras
Quelqu’un sait quel poids ça peut soulever ?
J’aimerais piloter un ventilateur par suivi oculaire pendant mes séances dans ma salle de sport à domicile, pour qu’il souffle sur mon visage, mais le ventilateur pèse quelques livres
Je suis aussi preneur de recommandations de moteurs matériels pour ce genre de projet, comme alternative
Avec un ventilateur lourd, il ne faut pas oublier non plus la réaction de l’air déplacé. Mieux vaut le poser sur une sorte de roulement et se contenter de le faire tourner avec un moteur, plutôt que de le fixer à un bras. Ainsi, le moteur n’a pas à lutter en permanence contre la gravité
Le bras robotisé lié ici utilise des servos Dynamixel ; on pourrait n’en utiliser qu’un seul pour faire pivoter un ventilateur posé sur un support rotatif. Ce serait beaucoup moins cher et moins complexe
J’étais en train de fabriquer le bras imprimé en 3D Thor, mais ce projet a l’air bien meilleur. Je vais changer de cap
Au passage, ces servos changent la donne
En tant qu’ancien utilisateur de Dynamixel, je suis d’accord pour dire que l’adaptateur U2D2 est cher par rapport aux autres options. En revanche, l’affirmation selon laquelle « la latence est très élevée » mériterait, à mon avis, d’être un peu quantifiée
Je l’ai toujours vu comme une option fiable, avec une latence systématiquement faible sur plusieurs plateformes, autour de 1 ms
J’aimerais qu’on arrête de coller trois servos ensemble et de prétendre qu’on a fabriqué un robot :D
Si aucune vidéo ne montre ce « robot » en fonctionnement, c’est parce que les mouvements des servos sont assez saccadés
Les moteurs XL330 ne pèsent que 18 g chacun. Ils sont donc très adaptés à la téléopération et à l’apprentissage robotique
Je me demande jusqu’à quel point on peut rendre les mouvements d’un bras robotisé à servos bon marché fluides avec un bon algorithme de contrôle