LeRobot documentation

SO-100

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SO-100

Dans les étapes ci-dessous, nous expliquons comment assembler le robot SO-100.

Sourcer les pièces

Suivez ce README. Il contient la liste des pièces, avec un lien pour les commander, ainsi que les instructions pour les imprimer en 3D. Il donne également des conseils si c’est votre première impression ou si vous ne possédez pas d’imprimante 3D.

Installer LeRobot 🤗

Pour installer LeRobot, suivez notre Guide d'installation

En plus de ces instructions, vous devez installer le SDK Feetech (si vous avez installé LeRobot depuis PyPI, exécutez pip install 'lerobot[feetech]' à la place) :

pip install -e ".[feetech]"

Configurer les moteurs

Remarque : Contrairement au SO-101, les connecteurs des moteurs ne sont pas facilement accessibles une fois le bras assemblé, il faut donc effectuer l'étape de configuration au préalable.

1. Trouver les ports USB associés à chaque bras

Pour trouver le port de chaque adaptateur de servomoteur de bus, exécutez ce script :

lerobot-find-port
Mac
Linux

Exemple de sortie :

Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Remove the USB cable from your MotorsBus and press Enter when done.

[...Disconnect corresponding leader or follower arm and press Enter...]

The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.

L’emplacement du port trouvé est : /dev/tty.usbmodem575E0032081, correspondant à votre bras leader ou suiveur.

2. Définir les identifiants des moteurs et les débits

Chaque moteur est identifié par un id unique sur le bus. Neufs, les moteurs sont généralement livrés avec un id par défaut de 1. Pour que la communication fonctionne correctement entre les moteurs et le contrôleur, il faut d'abord attribuer à chaque moteur un id unique et différent. De plus, la vitesse à laquelle les données sont transmises sur le bus est déterminée par le baudrate. Pour pouvoir communiquer entre eux, le contrôleur et tous les moteurs doivent être configurés avec le même baudrate.

À cette fin, nous devons d'abord nous connecter à chaque moteur individuellement via le contrôleur afin de définir ces paramètres. Comme nous écrivons ces paramètres dans la section non volatile de la mémoire interne des moteurs (EEPROM), nous n'aurons besoin de le faire qu'une seule fois.

Si vous réutilisez des moteurs d’un autre robot, vous devrez probablement également effectuer cette étape, car les identifiants et le taux de bauds ne correspondront probablement pas.

Suiveur

Branchez le câble usb de votre ordinateur et de l’alimentation sur la carte contrôleur du bras suiveur. Ensuite, exécutez la commande suivante ou l’exemple d’API avec le port obtenu à l’étape précédente. Vous devrez également donner un nom à votre bras suiveur à l’aide du paramètre id.

Pour une référence visuelle sur la manière de définir les identifiants des moteurs, veuillez consulter cette vidéo où nous suivons le processus pour le bras SO101.

Commande
Exemple d'API
lerobot-setup-motors \
    --robot.type=so100_follower \
    --robot.port=/dev/tty.usbmodem585A0076841  # <- paste here the port found at previous step

Vous devriez voir l’instruction suivante

Connect the controller board to the 'gripper' motor only and press enter.

Conformément aux instructions, branchez le moteur de la pince. Assurez-vous qu’il s’agit du seul moteur connecté à la carte et que le moteur lui-même n’est pas encore chaîné en série avec un autre moteur. Lorsque vous appuyez sur [Enter], le script définit automatiquement l’id et le baudrate de ce moteur.

Troubleshooting

Si vous obtenez une erreur à ce stade, vérifiez vos câbles et assurez-vous qu'ils sont correctement branchés :

  • Alimentation
  • Câble USB entre votre ordinateur et la carte de contrôle
  • Le câble à 3 broches reliant la carte de contrôle au moteur

Si vous utilisez une carte contrôleur Waveshare, assurez-vous que les deux cavaliers sont positionnés sur le canal B (USB).

Vous devriez alors voir le message suivant :

'gripper' motor id set to 6

Suivi de la prochaine instruction :

Connect the controller board to the 'wrist_roll' motor only and press enter.

Vous pouvez débrancher le câble à 3 broches de la carte de contrôle, mais vous pouvez le laisser branché sur le moteur de la pince à l’autre extrémité, car il sera déjà à la bonne place. Maintenant, branchez un autre câble à 3 broches sur le moteur de rotation du poignet et connectez-le à la carte de contrôle. Comme pour le moteur précédent, assurez-vous qu’il est le seul moteur connecté à la carte et que le moteur lui-même n’est connecté à aucun autre.

Répétez l'opération pour chaque moteur comme indiqué.

Vérifiez le câblage à chaque étape avant d’appuyer sur Entrée. Par exemple, le câble d’alimentation peut se débrancher lorsque vous manipulez la carte.

Une fois terminé, le script se termine simplement, et les moteurs sont alors prêts à être utilisés. Vous pouvez maintenant brancher le câble à 3 broches de chaque moteur sur le suivant, ainsi que le câble du premier moteur (le « shoulder pan » avec id=1) sur la carte de contrôle, qui peut désormais être fixée à la base du bras.

Leader

Effectuez les mêmes étapes pour le bras leader.

Commande
Exemple d'API
lerobot-setup-motors \
    --teleop.type=so100_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751  # <- paste here the port found at previous step

Instructions d'assemblage étape par étape

Retirez les engrenages des 6 moteurs de tête

Video removing gears

Suivez la vidéo pour retirer les engrenages. Vous devez retirer l’engrenage des moteurs du bras leader. En conséquence, vous n’utiliserez que l’encodage de position du moteur et réduirez le frottement pour manipuler plus facilement le bras leader.

Nettoyer les parties

Retirez tout le matériau de support des pièces imprimées en 3D. La méthode la plus simple consiste à utiliser un petit tournevis pour passer sous le matériau de support.

Guides supplémentaires

Video assembling arms

Remarque : Cette vidéo fournit un guide visuel pour l'assemblage des bras, mais elle ne précise pas quand ni comment effectuer le câblage. Il est beaucoup plus facile d'insérer les câbles à l'avance que de le faire a posteriori. Le premier bras peut prendre un peu plus d'une heure à assembler, mais une fois que vous y êtes habitué, vous pouvez assembler le second bras en moins d'une heure.


Premier moteur

Étape 2 : Insérer les fils

  • Insérez deux fils dans le premier moteur.

Étape 3 : Installation dans Base

  • Placez le premier moteur dans la base.

Étape 4 : Fixer le moteur

  • Fixez le moteur avec 4 vis. Deux par le bas et deux par le haut.

Étape 5 : Fixer le support de moteur

  • Faites glisser le premier support de moteur et fixez-le à l'aide de deux vis (une de chaque côté).

Étape 6 : Fixer les cornes de moteur

  • Installez les deux cornes de moteur, en fixant la corne supérieure avec une vis. Essayez de ne pas déplacer la position du moteur lors de la fixation de la corne de moteur, en particulier pour les bras de tête, où nous avons retiré les engrenages.
Video adding motor horn

Étape 7 : Fixer la pièce de l'épaule

  • Branchez un fil à l'arrière du robot et l'autre à gauche ou vers vous (voir la photo).
  • Fixez la partie épaule.

Étape 8 : Épaule sécurisée

  • Serrez la partie épaule avec 4 vis en haut et 4 en bas (accédez aux trous inférieurs en tournant l'épaule).

Deuxième assemblage moteur

Étape 9 : Installer Motor 2

  • Faites glisser le deuxième moteur depuis le haut et reliez le fil du moteur 1 au moteur 2.

Étape 10 : Fixer le support d'épaule

  • Ajoutez le support du moteur de l'épaule.
  • Assurez-vous que le câble reliant le moteur 1 au moteur 2 passe derrière le support, tandis que l'autre câble est acheminé vers le haut (voir la photo).
  • Cette partie peut être difficile à assembler. Vous pouvez utiliser un établi comme sur l'image ou un montage similaire pour pousser la pièce autour du moteur.

Étape 11 : Fixer le moteur 2

  • Fixez le second moteur avec 4 vis.

Étape 12 : Fixer la sirène du moteur

  • Fixez les deux cornes moteur au moteur 2, en utilisant à nouveau la vis de corne.

Étape 13 : Fixer la base

  • Installez la fixation de base à l'aide de 2 vis.

Étape 14 : Attacher le bras supérieur

  • Fixez le bras supérieur à l'aide de 4 vis de chaque côté.

Troisième assemblage de moteur

Étape 15 : Installer Motor 3

  • Faites passer le câble du moteur depuis le moteur 2 à travers le support de câble jusqu'au moteur 3, puis fixez le moteur 3 à l'aide de 4 vis.

Étape 16 : Fixer le klaxon du moteur

  • Fixez les deux cornes de moteur au moteur 3 et serrez à nouveau l'une d'elles avec une vis de corne.

Étape 17 : Fixer l'avant-bras

  • Connectez l'avant-bras au moteur 3 à l'aide de 4 vis de chaque côté.

Quatrième assemblage moteur

Étape 18 : Installer Motor 4

  • Insérez le moteur 4, branchez le câble du moteur 3 et fixez le câble dans son support à l'aide d'une vis.

Étape 19 : Fixer le support de moteur 4

  • Installez le quatrième support de moteur (ajustement serré). Assurez-vous qu'un fil est acheminé vers le haut et que le fil du moteur 3 est acheminé vers le bas (voir la photo).

Étape 20 : Fixer le moteur 4 et attacher la sirène

  • Fixez le moteur 4 avec 4 vis et attachez ses cornes de moteur, utilisez une vis de corne pour l'une d'elles.

Assemblage du poignet

Étape 21 : Installer Motor 5

  • Insérez le moteur 5 dans le support de poignet et fixez-le à l'aide de 2 vis avant.

Étape 22 : Attacher le poignet

  • Connectez le fil du moteur 4 au moteur 5. Et insérez déjà l'autre fil pour la pince.
  • Fixez le poignet au moteur 4 à l'aide de 4 vis de chaque côté.

Étape 23 : Fixer le cornet de poignet

  • Installez uniquement une corne de moteur sur le moteur du poignet et fixez-la avec une vis de corne.

Configuration du suiveur

Étape 24 : Fixer la pince

  • Fixez la pince au moteur 5.

Étape 25 : Installer le moteur de pince

  • Insérez le moteur de la pince, connectez le câble du moteur 5 au moteur 6 et fixez-le à l'aide de 3 vis de chaque côté.

Étape 26 : Fixer le corne de pince et la griffe

  • Fixez les cornes du moteur et utilisez à nouveau une vis de corne.
  • Installez la pince et fixez-la à l'aide de 4 vis de chaque côté.

Étape 27 : Montage du contrôleur

  • Fixez le contrôleur de moteur à l'arrière du robot.

Assemblage terminé – passez à l’assemblage du bras du leader.


Configuration du leader

Pour la configuration du leader, effectuez les étapes 1 à 23. Assurez-vous d'avoir retiré les engrenages des moteurs.

Étape 24 : Fixer le support de chef

  • Fixez le porte-leader au poignet et serrez-le avec une vis.

Étape 25 : Attacher le poignée

  • Fixez la poignée au moteur 5 à l'aide de 4 vis.

Étape 26 : Installer le moteur de pince

  • Insérez le moteur de la pince, fixez-le à l'aide de 3 vis de chaque côté, attachez un pignon de moteur à l'aide d'une vis de pignon et connectez le câble du moteur.

Étape 27 : Attacher le déclencheur

  • Fixez le déclencheur suiveur à l'aide de 4 vis.

Étape 28 : Montage du contrôleur

  • Fixez le contrôleur de moteur à l'arrière du robot.

Calibrer

Ensuite, vous devrez calibrer votre robot afin de vous assurer que les bras leader et suiveur ont les mêmes valeurs de position lorsqu'ils se trouvent dans la même position physique. Le processus de calibration est très important car il permet à un réseau de neurones entraîné sur un robot de fonctionner sur un autre.

Suiveur

Exécutez la commande ou l'exemple d'API suivant pour calibrer le bras suiveur :

Commande
Exemple d'API
# Use the port of your follower arm, and give the arm a unique name with --robot.id
lerobot-calibrate \
    --robot.type=so100_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

Nous avons unifié la méthode de calibration pour la plupart des robots. Ainsi, les étapes de calibration pour ce bras SO100 sont identiques à celles des Koch et SO101. D'abord, il faut déplacer le robot à la position où chaque articulation est au milieu de sa plage de mouvement, puis appuyer sur Enter. Ensuite, nous déplaçons toutes les articulations sur leur pleine amplitude de mouvement. Une vidéo de ce même processus pour le SO101, à titre de référence, peut être trouvée ici

Leader

Effectuez les mêmes étapes pour calibrer le bras leader, exécutez la commande suivante ou l'exemple d'API :

Commande
Exemple d'API
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
    --teleop.type=so100_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

Félicitations 🎉, votre robot est prêt à apprendre une tâche de manière autonome. Commencez son entraînement en suivant ce tutoriel : Démarrer avec des robots réels

Si vous avez des questions ou besoin d'aide, n'hésitez pas à nous contacter sur Discord.

Update on GitHub