Guide de configuration du SO-101
Des pièces à la première collecte de données. Temps estimé : ~3 à 4 heures (sans compter le temps d'impression 3D).
Assemblée
~60 min + temps d'impressionLe SO-101 est un bras entièrement open source. Toutes les pièces sont soit imprimées en 3D, soit disponibles sous forme de matériel disponible dans le commerce répertorié dans la nomenclature LeRobot sur HuggingFace.
Pièces dont vous avez besoin
- 6 × servomoteurs Feetech STS3215
- Pièces structurelles imprimées en 3D (fichiers STL dans le dépôt SO-101 GitHub)
- Câble adaptateur USB vers série (puce CH340 ou CP2102)
- Alimentation 12V (3A minimum)
- Câbles de servo et matériel de connecteur (par nomenclature)
Liste de contrôle d'assemblage
- Imprimer tous les composants structurels (base, liens, effecteur final)
- Installez les servos STS3215 dans leurs boîtiers de liaison respectifs
- Acheminez les câbles des servos à travers les canaux de câbles imprimés
- Servos en série dans le bon ordre (ID 1 à 6 de la base à la pointe)
- Fixez la base sur une surface stable avant de mettre sous tension
- Lire le page de sécurité avant de mettre sous tension
Impression 3D des pièces
~8 à 16 heures de temps d'impressionTous les composants structurels du SO-101 sont imprimables FDM à l'aide d'imprimantes de bureau standard. Les fichiers STL sont organisés en impressions de fichiers uniques pour chaque bras, ce qui facilite le découpage.
Paramètres de tranche recommandés
Fichiers STL — Lesquels imprimer
Des impressions pré-arrangées en fichier unique sont disponibles pour les tailles de lit courantes :
- Lit 220×220 mm (Ender 3) :
- Disciple:
STL/SO101/Follower/Ender_Follower_SO101.stl - Cuisinière:
STL/SO101/Leader/Ender_Leader_SO101.stl
- Disciple:
- Lit 205×250 mm (Prusa / UP) :
- Disciple:
STL/SO101/Follower/Prusa_Follower_SO101.stl - Cuisinière:
STL/SO101/Leader/Prusa_Leader_SO101.stl
- Disciple:
STL/Gauges/ et testez-les contre une brique Lego ou un servo STS3215. Un ajustement correct sur la jauge confirme que l'étalonnage de votre imprimante est précis. Ajustez la mise à l’échelle si nécessaire avant de vous engager dans l’impression complète.
Installation du logiciel
~15 minutesLe SO-101 est supporté nativement par HuggingFace LeRobot. Aucun plugin supplémentaire n'est nécessaire : installez simplement LeRobot.
Installer LeRobot
# Using pip
pip install lerobot
# Or with uv (recommended)
uv pip install lerobot
Autorisations du port série Linux
Sous Linux, les ports série sous /dev/ttyACM* exiger que l'utilisateur soit dans le dialout groupe. Exécutez ceci une fois, déconnectez-vous et reconnectez-vous :
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
Conditions préalables
- Python3.10+
- Linux (Ubuntu 22.04 recommandé) ou macOS
- Pilote USB vers série installé (pilote CH340 sur macOS ; généralement préinstallé sur Linux)
Détection et calibrage des ports
~20 minutesTrouvez le port série USB correct pour le bras, puis exécutez le script d'étalonnage LeRobot pour définir les positions zéro du servo.
Trouver le port série
python lerobot/scripts/find_motors_bus_port.py
Branchez et débranchez le câble USB lorsque vous y êtes invité. Le script identifie le port auquel le bras est connecté. Valeurs typiques :
# Linux: /dev/ttyACM0 (or ttyUSB0 for CH340 adapters)
# macOS: /dev/tty.usbmodem* or /dev/tty.usbserial-*
Exécuter l'étalonnage
Déplacez le bras dans toute son amplitude de mouvement lorsque vous y êtes invité :
python lerobot/scripts/calibrate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
Premier test de mouvement
~15 minutesExécutez le script de téléopération en mode bras unique pour vérifier que toutes les articulations répondent correctement avant de connecter un bras leader.
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
Que vérifier
- Les 6 articulations répondent aux commandes sans sauter
- Aucun avertissement de décrochage du servo ou de surcharge dans le terminal
- La pince s'ouvre et se ferme sur toute la plage
- Aucun accrochage de câble à aucune position de joint
Téléopération
~30 minutesLe SO-101 fonctionne comme un bras autonome ou comme un bras suiveur avec un bras leader pour la téléopération. L’utilisation d’un deuxième bras comme leader produit des démonstrations de meilleure qualité pour l’apprentissage par imitation.
Mode autonome (clavier / programmatique)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
Avec un bras leader (par exemple leader DK1)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--teleop.type=so101 \
--teleop.port=/dev/ttyACM1
Collecte de données
En coursEnregistrez des démonstrations en utilisant record.py. Les données sont enregistrées au format LeRobot et peuvent être transférées directement vers HuggingFace Hub pour la formation.
Enregistrement de base
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
Avec une caméra USB
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--robot.cameras.top.type=opencv \
--robot.cameras.top.index=0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
Enregistrer les bonnes pratiques
- Enregistrez au moins 50 démonstrations par tâche avant la formation
- Varier les positions et les orientations des objets à travers les épisodes
- Utiliser descriptif
--dataset.tasknoms pour un filtrage ultérieur - Les caméras OAK-D ou Intel RealSense fonctionnent bien pour la collecte de données en profondeur
- Vérifiez les téléchargements de l'ensemble de données sur HuggingFace Hub après chaque session
Prochaines étapes
Une fois les données collectées, entraînez un modèle ACT ou Politique de diffusion à l'aide des scripts de formation de LeRobot. Lire l'intégralité Parcours d'apprentissage SO-101 pour une progression structurée de la configuration au déploiement du modèle.