Guide de configuration du DK1

Du déballage à la collecte de données bimanuelle. Durée estimée : ~2 heures.

1

Déballage et assemblage

~30 minutes

Dé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

Unité du bras leader
Unité de bras suiveur
Câbles USB (2× pour bimanuel)
Matériel de montage sur table
Adaptateur secteur
Carte de démarrage rapide

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
Avant la mise sous tension Assurez-vous que les deux bras sont montés solidement et qu'aucun câble ne traverse les chemins de déplacement communs. Testez le fonctionnement à un seul bras avant d’essayer le mode bimanuel.
2

Configuration du logiciel / Installation de LeRobot

~30 minutes

Le 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 uv gestionnaire 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')"
Comment fonctionne la détection des plugins : Après 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
3

Détection et calibrage des ports

~20 minutes

Utilisez 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
Recalibrer après des collisions : Exécutez à nouveau l'étalonnage après tout arrêt ou collision inattendue pour garantir des positions zéro précises des articulations.
4

Première séance de téléopération

~30 minutes

Commencez 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
Arrêt d'urgence Débranchez le câble USB pour couper immédiatement la communication avec le bras. Gardez les mains éloignées de l'espace de travail pendant le fonctionnement motorisé.

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.

5

Enregistrement de données bimanuel

En cours

Utiliser 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.task noms 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.

Configuration terminée ?

Rejoignez la communauté pour partager les résultats et obtenir de l'aide sur les configurations avancées.