Guide de configuration du DK1
Du déballage à la collecte de données bimanuelle. Durée estimée : ~2 heures.
Déballage et assemblage
~30 minutesDéballez soigneusement les deux bras et vérifiez que tous les composants sont présents avant de mettre quoi que ce soit sous tension.
Qu'y a-t-il dans la boîte
Liste de contrôle d'assemblage
- Montez solidement les deux bras sur la table à l'aide du matériel fourni
- Inspectez toutes les connexions des servos sur la chaîne leader (Dynamixel XL330).
- Inspectez toutes les connexions des servos sur le suiveur (base DM4340, poignet/pince DM4310).
- Acheminez les câbles USB proprement loin des chemins de déplacement communs
- Vérifiez que les mécanismes de préhension s'ouvrent et se ferment librement à la main (hors tension)
- Lire le page de sécurité avant de mettre sous tension
Configuration du logiciel / Installation de LeRobot
~30 minutesLe DK1 s'intègre à LeRobot en tant que plugin matériel de première classe. Installez-le avec votre environnement LeRobot existant.
Conditions préalables
- Python 3.10+ avec
uvgestionnaire de paquets - LeRobot installé dans votre environnement Python
- Linux (Ubuntu 22.04 recommandé) ou macOS
Installez le plugin DK1
# Clone the repo
git clone https://github.com/robot-learning-co/trlc-dk1.git
cd trlc-dk1
# Create a virtual environment
uv venv
# Install as LeRobot plugin (GIT_LFS_SKIP_SMUDGE=1 avoids downloading
# large LeRobot dependency assets during install)
GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .
# Verify device types registered
python -c "from lerobot.common.robot_devices.robots.factory import make_robot; print('DK1 ready')"
uv pip install -e ., les types d'appareils dk1_follower, dk1_leader, bi_dk1_follower, et bi_dk1_leader sont automatiquement disponibles pour n'importe quelle CLI LeRobot dans le même environnement Python. Aucune inscription manuelle n’est nécessaire. Le GIT_LFS_SKIP_SMUDGE=1 L'indicateur est requis car LeRobot est extrait en tant que dépendance et stocke des actifs volumineux via Git LFS - ignorer le maculage évite de les télécharger lors de l'installation.
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, puis déconnectez-vous et reconnectez-vous :
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
Détection et calibrage des ports
~20 minutesUtilisez le chercheur de port intégré pour identifier le port série USB auquel chaque bras est connecté, puis exécutez l'étalonnage pour chaque bras.
Rechercher automatiquement les ports
# Plug in one USB cable at a time to identify each arm's port
uv run lerobot-find-port
Affectations de ports typiques pour une configuration bimanuelle :
# Leader right arm: /dev/ttyACM0
# Leader left arm: /dev/ttyACM1
# Follower right: /dev/ttyACM2
# Follower left: /dev/ttyACM3
# On macOS these appear as /dev/tty.usbmodem* instead
Calibrer chaque bras
Exécutez l’étalonnage pour chaque bras individuellement. Déplacez le bras sur toute sa plage lorsque vous y êtes invité :
# Calibrate follower right arm
uv run lerobot-calibrate \
--robot.type=dk1_follower \
--robot.port=/dev/ttyACM0
# Calibrate follower left arm
uv run lerobot-calibrate \
--robot.type=dk1_follower \
--robot.port=/dev/ttyACM1
# Calibrate leader right arm
uv run lerobot-calibrate \
--robot.type=dk1_leader \
--robot.port=/dev/ttyACM2
# Calibrate leader left arm
uv run lerobot-calibrate \
--robot.type=dk1_leader \
--robot.port=/dev/ttyACM3
Première séance de téléopération
~30 minutesCommencez par une session de téléopération à un seul bras pour vérifier le suivi leader-suiveur avant de passer en mode bimanuel.
Téléopération à un seul bras
uv run lerobot-teleoperate \
--robot.type=dk1_follower \
--robot.port=/dev/ttyACM0 \
--teleop.type=dk1_leader \
--teleop.port=/dev/ttyACM2
Que vérifier
- Le bras suiveur suit les mouvements du bras leader en douceur
- Aucune erreur de servo ou décrochage dans aucune articulation
- La pince s'ouvre et se ferme en réponse à la pince principale
- Aucun câble ne s'accroche sur toute la plage de mouvement
Une fois que la téléopération à un seul bras fonctionne correctement, répétez le test avec la deuxième paire de bras avant de passer en mode bimanuel.
Enregistrement de données bimanuel
En coursUtiliser lerobot-record avec le bi_dk1_follower et bi_dk1_leader types d'appareils pour collecter des démonstrations bimanuelles synchronisées.
Commande d'enregistrement bimanuel complet
La commande ci-dessous connecte deux bras leaders à deux bras suiveurs et enregistre des épisodes synchronisés avec les flux des caméras de la tête et du poignet :
lerobot-record \
--robot.type=bi_dk1_follower \
--robot.right_arm_port=/dev/ttyACM0 \
--robot.left_arm_port=/dev/ttyACM1 \
--robot.joint_velocity_scaling=1.0 \
--teleop.type=bi_dk1_leader \
--teleop.right_arm_port=/dev/ttyACM2 \
--teleop.left_arm_port=/dev/ttyACM3 \
--robot.cameras="{
head: {type: opencv, index_or_path: /dev/video0, width: 960, height: 540, fps: 60, fourcc: MJPG},
right_wrist: {type: opencv, index_or_path: /dev/video2, width: 960, height: 540, fps: 60, rotation: 180, fourcc: MJPG},
left_wrist: {type: opencv, index_or_path: /dev/video4, width: 960, height: 540, fps: 60, rotation: 180, fourcc: MJPG}
}" \
--dataset.repo_id=$USER/my_bimanual_dataset \
--dataset.push_to_hub=false \
--dataset.num_episodes=10 \
--dataset.episode_time_s=30 \
--dataset.reset_time_s=20 \
--dataset.single_task="Bimanual pick and place task."
Pour découvrir les index de la caméra avant l'enregistrement :
uv run lerobot-find-cameras
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
- Gardez l’exposition de la caméra cohérente entre les sessions
- Vérifiez les téléchargements de l'ensemble de données sur Hugging Face Hub après chaque session
- Utiliser descriptif
--dataset.tasknoms pour un filtrage ultérieur
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. Voir le Wiki DK1 pour les options d’intégration de plateforme.