Skip to main content

Banc de machine learning avec SO-ARM101

Assemblage et démarrage du SO-ARM101

Configurer les servomoteurs

La carte FE-URT-1 fournie par Feetech n'est pas détectée sous Ubuntu à cause d'un conflit avec un paquet de brail. On le désinstalle : 

sudo apt-get autoremove brltty

https://askubuntu.com/questions/1321442/how-to-look-for-ch340-usb-drivers/1472246#1472246 

https://github.com/huggingface/lerobot/blob/main/examples/10_use_so100.md#c-configure-the-motors 

  • Brancher la carte
  • Trouver l'interface USB sur laquelle est branchée la carte
python lerobot/scripts/find_motors_bus_port.py
    • Sous Linux, par ex. /dev/ttyACM0 ou /dev/ttyUSB0 
    • Sous Windows, par ex. COM13 ou COM14
  • Sous Linux, Changer les droits sur les interfaces USB
sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1
  • Ouvrir Codium > File > Open Folder > admin_ros/lerobot
  • Modifier le fichier de config

gedit ~/lerobot/lerobot/common/robot_devices/robots/configs.py

  • Chercher la config du So100 en ligne 436 class So100RobotConfig(ManipulatorRobotConfig):
  • Remplacer port="/dev/tty.usbmodem58760431091", pour le leader_arms (L446) et le follower_arms (L463) par le port découvert
  • Brancher les servos un à un à la carte puis lancer le script d'initialisation, en incrémentant l'ID à chaque fois :
python lerobot/scripts/configure_motor.py \
  --port /dev/tty.usbmodem58760432961 \
  --brand feetech \
  --model sts3215 \
  --baudrate 1000000 \
  --ID 1
  • Au fur et à mesure les brancher en série et/ou noter l'ID sur le moteur
  • Les servos sont bougés à leur position centrale et l'offset mis à 0

Ne plus bouger les servos jusqu'à l'assemblage

Construction et assemblage mécanique

Une version 101 est sortie en 05/2025. Le Leader est plus simple à assembler, et plus besoin de démonter les servos pour enlever un engrenage et les rendre passifs. Il suffit d'acheter le kit de 6 servos avec 3 rapports de transmission différents :

Astuces pour l'assemblage

  • Mettre une vis sur l'arbre moteur et l'axe passif (à l'opposée de l'arbre moteur) quand il y a la place d'en mettre une (vérifier qu'il y aura la place après assemblage des éléments autour du moteur)
  • Ne plus bouger les servos après leur initialisation qui les met à l'angle 0. Dans l'idéal, assembler les éléments de manière à ce que le robot soit en configuration initiale avec tous les moteurs à 0
  • En pratique, on monte le robot dans la configuration ci-dessous. C'est l'étape de calibration qui permettra de définir un offset pour que le zéro des moteurs corresponde au modèle cinématique du SO-ARM10X

image.png

  • Il est possible d'ajouter un offset dans la configuration des servomoteurs, par exemple via les scripts du projet LeRobot
  • Attention si vous démarrez le robot sous ROS avant d'avoir lancer la calibration LeRobot qui fixe l'Offset dans les servomoteurs, vous risquez de casser le robot

Banc de Machine Learning LeRobot

Agencement des caméras et robots

Le nombre, le positionnement et la qualité des caméras sont importants pour la qualité du DataSet :

Au FabLab de IUT Haguenau

PXL_20250613_142740983_crop.jpg

Calibration des caméras

https://huggingface.co/docs/lerobot/cameras