2 points par GN⁺ 2024-04-03 | 1 commentaires | Partager sur WhatsApp
  • 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.py permet de tester les deux bras, et simulation.py de 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

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 é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.py permet de tester les bras
    • Il peut toutefois être nécessaire d’ajuster le nom du périphérique
  • L’exécution de simulation.py permet d’utiliser un environnement de simulation MuJoCo de base

1 commentaires

 
GN⁺ 2024-04-03
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

    • L’une des choses impressionnantes avec les robots industriels, c’est à quel point ils sont rigides à l’arrêt. Quand la vitesse et la charge augmentent, le système de freinage devient aussi un défi difficile
      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
    • J’ai travaillé par le passé sur un projet similaire : un bras robotique qui poussait les limites de performance dans une fourchette de quelques milliers de dollars. Avec des moteurs pas à pas et des réducteurs à backlash suffisamment faible, nous avons obtenu d’assez bons résultats
      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
    • Ne pourrait-on pas résoudre ça par du logiciel plutôt qu’avec du matériel coûteux ?
      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
    • J’y pense souvent, mais je ne trouve pas le temps. Ne pourrait-on pas construire le bras dans Nvidia Omniverse, ajouter un feedback via des capteurs de distance/angle bon marché et haute résolution, puis entraîner un modèle de machine learning pour le corriger ?
    • Je ne connais pas très bien le matériel, je suis surtout côté logiciel, donc je peux me tromper complètement
      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

    • J’ai travaillé pendant un temps dans une startup qui développait des bras robotisés. Ce que j’ai appris, c’est que même si l’on donne à quelqu’un un bras robotisé gratuit avec une API raisonnable, ça ne l’aide pas beaucoup. Le plus difficile est de créer une automatisation utile
      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
    • Il y a une raison pour laquelle il n’existe pas de bras robotisé de loisir standard
      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
    • En parcourant ce fil et les réponses aux nombreuses questions du type « quelqu’un a-t-il trouvé une utilité aux bras robotisés ? », on comprend pourquoi une telle entreprise n’existe pas. Il n’y a tout simplement pas de marché grand public
    • Ce type de produit existe bien, mais aujourd’hui, pour un robot polyvalent avec une portée d’environ 1,2 m, “bon marché” signifie environ 10 000 euros. Pour ce prix-là, on obtient une machine et un logiciel de qualité
      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
    • Il faut d’abord se demander quel problème on cherche à résoudre
      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

    • Bellabot[0] me vient à l’esprit. Il existe aussi une startup qui fabrique un robot façon Roomba se dockant par aimants sur des étagères spécialement conçues
      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...
    • Les valises de voyage “Follow me” existent déjà
      https://www.aristavault.com/products/follow-me-smart-luggage
    • Une plateforme robotique bon marché qui suit une personne, transporte des objets et évite les obstacles, c’est en réalité un petit véhicule autonome. Des entreprises dépensent des dizaines de milliards de dollars dans les voitures autonomes, pour des résultats limités
    • J’allais demander si TurtleBot était trop petit, mais j’ai d’abord vérifié le prix. J’imagine qu’il est plutôt question d’un niveau de prix autour de 250 dollars, et non des plus de 1 000 dollars de TurtleBot
  • 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

    • J’aimerais m’en servir pour ramasser et trier l’énorme tas de Lego laissé par les enfants après le long week-end de Pâques. Vu la qualité des corpus de bases de données de briques, l’identification ne semble pas très difficile
      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
    • Comme usage peu pratique, remplacer quelques bras de moniteurs par des bras robotisés dans une configuration multi-écrans. Ça permettrait de basculer rapidement entre plusieurs dispositions
      Autre idée : un bras dans la cuisine pour remuer les pâtes
    • Pas grand-chose. J’ai un UArm sur mon bureau, assez similaire à celui-ci mais avec des servos moins chers. Sa précision est tellement mauvaise que je n’ai presque rien pu en faire
      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
    • Dans ce fil, un lecteur ayant connu un handicap temporaire a proposé une idée d’usage pratique
      https://news.ycombinator.com/item?id=39903953
    • Roboexotica appelle à créer une ligne de production avec plusieurs de ces bras
      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

    • Il existe aussi une version à 5 degrés de liberté que j’ai sérieusement envisagé d’acheter à un moment. Cela dit, il est vraiment difficile de savoir si l’intégration ROS 2 est correcte : https://www.waveshare.com/product/robotics/roarm-m1.htm
      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
    • Je n’en ai absolument pas besoin, mais c’est typiquement l’objet que j’aimerais avoir sur mon bureau
    • Est-ce qu’on trouve ce genre de chose sur Amazon ou ailleurs ?
    • Le support logiciel, ça donne quoi ?
  • 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

    • La plupart de ces robots utilisent des servomoteurs. Ça permet des mouvements vifs, mais cela signifie aussi qu’il faut en permanence du couple de maintien pour conserver n’importe quelle position, ce qui limite la charge et gaspille pas mal d’énergie
      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
    • Et si on retirait l’essentiel du poids du bras ? Utiliser un ventilateur ou un compresseur installé à la base, et ne faire passer par le bras qu’un conduit. Ainsi, on ne déplace que le conduit, pas le moteur lourd
  • 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

    • Ces servos sont-ils meilleurs que les SG90 ?
  • 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

    • Il y a une vidéo du robot en mouvement ici : https://twitter.com/alexkoch_ai. L’avantage de la conception de ce bras robotisé, c’est qu’elle est très légère
      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
    • Pour avoir fait de la robotique plus en profondeur, je comprends parfaitement ce sentiment. Mais je pense aussi qu’il est bon d’encourager le partage de choses de base. Dans ce fil aussi, beaucoup de débutants peuvent trouver cela intéressant et creuser davantage
      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