LeRobot documentation
OMX
OMX
Commander et assembler les pièces
Premièrement, assemblez le matériel OMX en suivant le guide d'assemblage officiel.
Guide d'assemblage OMX : https://ai.robotis.com/omx/assembly_guide_omx.html
Les robots OMX sont livrés préconfigurés depuis l'usine. Les identifiants des moteurs, les paramètres de communication et les décalages des articulations sont déjà définis, de sorte qu'aucune configuration ou calibration supplémentaire des moteurs n'est requise avant d'utiliser LeRobot.
Installer LeRobot 🤗
Pour installer LeRobot, suivez notre Guide d'installation
En plus de ces instructions, vous devez installer la prise en charge des moteurs Dynamixel :
pip install -e ".[dynamixel]"Connecter le robot
Pour trouver le port de chaque adaptateur de servomoteur de bus, exécutez ce script :
lerobot-find-port
Cette commande s’exécute et, lorsque le système vous y invite, débranchez le câble USB de l’bras leader ou de l’bras follower, puis appuyez sur Entrée. La sortie affichera « The port of this MotorsBus is [port] ». Cela identifie le port de l’bras débranché. Répétez l’opération pour l’autre bras afin d’identifier les deux ports.
Exemple de sortie sur macOS :
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.
Sur Linux, nous recommandons vivement d'utiliser des règles udev pour attribuer des noms de périphériques persistants et lisibles par l'homme aux bras leader et suiveur OMX. Cela évite les problèmes liés aux noms de périphériques tels que ttyACM0 et ttyACM1, qui changent lorsque le robot est débranché, rebranché, ou lorsque le système est redémarré.
1. Trouvez les numéros de série de vos appareils
Vous devriez avoir obtenu les numéros de port de la forme ../../ttyACM? pour le leader et le suiveur à l'aide de lerobot-find-port. Vous pouvez associer ces résultats aux numéros de série à l'aide de la commande ls -l /dev/serial/by-id/.
Pour créer des règles udev, vous avez besoin du numéro de série unique de chaque appareil OMX. La méthode la plus simple consiste à lister les appareils sous :
ls -l /dev/serial/by-id/Vous verrez une sortie similaire à :
usb-ROBOTIS_OpenRB-150_228BDD7B503059384C2E3120FF0A2B19-if00 -> ../../ttyACM0 usb-ROBOTIS_OpenRB-150_67E1ED68503059384C2E3120FF092234-if00 -> ../../ttyACM1
Dans chaque ligne, le numéro de série est la longue chaîne située après usb-ROBOTIS_OpenRB-150_ et avant -if00.
Série du suiveur : 228BDD7B503059384C2E3120FF0A2B19
Série du leader : 67E1ED68503059384C2E3120FF092234
2. Créer la règle udev
Créer un nouveau fichier de règle udev :
sudo nano /etc/udev/rules.d/99-omx.rulesCollez les lignes suivantes, en remplaçant les numéros de série par les valeurs que vous avez trouvées ci-dessus :
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="228BDD7B503059384C2E3120FF0A2B19", SYMLINK+="omx_follower"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="67E1ED68503059384C2E3120FF092234", SYMLINK+="omx_leader"Enregistrez le fichier et rechargez les règles udev :
sudo udevadm control --reload-rules
sudo udevadm triggerDébranchez maintenant les deux appareils, puis rebranchez-les une fois.
3. Vérifier les liens symboliques
Vérifiez que les noms de périphériques persistants existent :
ls -l /dev/omx_follower /dev/omx_leaderVous devriez les voir pointer vers des appareils ttyACM* :
/dev/omx_follower -> ttyACM* /dev/omx_leader -> ttyACM*
Ces noms restent stables lors des redémarrages et des reconnections.
Télépiloter
Après avoir identifié les ports corrects, vous pouvez téléopérer directement le bras suiveur à l'aide du bras leader.
Téléopérer sans caméra
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=<your_follower_port> \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=<your_leader_port> \ --teleop.id=omx_leader_arm
Lors de la téléopération, les mouvements du bras leader sont reproduits en temps réel par le bras suiveur. OMX est déjà préconfiguré, la téléopération peut commencer immédiatement sans aucune étape de calibration.
Télépiloter avec une caméra
Vous pouvez également activer l’entrée caméra pendant la téléopération en fournissant une configuration de caméra pour le bras suiveur.
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=<your_follower_port> \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=<your_leader_port> \
--teleop.id=omx_leader_arm \
--display_data=trueLorsque la caméra est activée, le flux vidéo est affiché en temps réel et synchronisé avec l'état du robot. Cette configuration est utile pour la surveillance visuelle et peut être réutilisée ultérieurement pour l'enregistrement de démonstrations et l'apprentissage par imitation.
Téléopérer sans caméra
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=/dev/omx_follower \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=/dev/omx_leader \ --teleop.id=omx_leader_arm
Lors de la téléopération, les mouvements du bras leader sont reproduits en temps réel par le bras suiveur. OMX est déjà préconfiguré, la téléopération peut commencer immédiatement sans aucune étape de calibration.
Télépiloter avec une caméra
Vous pouvez également activer l’entrée caméra pendant la téléopération en fournissant une configuration de caméra pour le bras suiveur.
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=/dev/omx_follower \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=/dev/omx_leader \
--teleop.id=omx_leader_arm \
--display_data=trueLorsque la caméra est activée, le flux vidéo est affiché en temps réel et synchronisé avec l'état du robot. Cette configuration est utile pour la surveillance visuelle et peut être réutilisée ultérieurement pour l'enregistrement de démonstrations et l'apprentissage par imitation.
Félicitations 🎉, votre robot est prêt à apprendre une tâche de manière autonome.
Update on GitHubSi vous avez des questions ou besoin d'aide, n'hésitez pas à nous contacter sur Discord.