DK1-Setup-Anleitung

Vom Auspacken bis zur bimanuellen Datenerfassung. Geschätzte Zeit: ~2 Stunden.

1

Auspacken und Zusammenbauen

~30 Min

Packen Sie beide Arme vorsichtig aus und überprüfen Sie, ob alle Komponenten vorhanden sind, bevor Sie etwas einschalten.

Was ist in der Box?

Führungsarmeinheit
Mitnehmerarmeinheit
USB-Kabel (2× für bimanuell)
Hardware zur Tischmontage
Netzteil
Schnellstartkarte

Checkliste für den Zusammenbau

  • Befestigen Sie beide Arme mit der mitgelieferten Hardware sicher an der Tischplatte
  • Überprüfen Sie alle Servoverbindungen an der Vorfachkette (Dynamixel XL330).
  • Überprüfen Sie alle Servoverbindungen am Mitnehmer (DM4340-Basis, DM4310-Handgelenk/Greifer).
  • Verlegen Sie USB-Kabel sauber weg von gemeinsamen Verkehrswegen
  • Überprüfen Sie, ob sich die Greifmechanismen von Hand frei öffnen und schließen lassen (Ausschalten).
  • Lesen Sie die Sicherheitsseite bevor Sie Strom anlegen
Vor dem Einschalten Stellen Sie sicher, dass beide Arme sicher montiert sind und keine Kabel die gemeinsamen Bewegungspfade kreuzen. Testen Sie den einarmigen Betrieb, bevor Sie den bimanuellen Modus ausprobieren.
2

Software-Setup / LeRobot-Installation

~30 Min

Der DK1 lässt sich als erstklassiges Hardware-Plugin in LeRobot integrieren. Installieren Sie es neben Ihrer vorhandenen LeRobot-Umgebung.

Voraussetzungen

  • Python 3.10+ mit uv Paketmanager
  • LeRobot in Ihrer Python-Umgebung installiert
  • Linux (Ubuntu 22.04 empfohlen) oder macOS

Installieren Sie das DK1-Plugin

# 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')"
So funktioniert die Plugin-Erkennung: Nach uv pip install -e ., die Gerätetypen dk1_follower, dk1_leader, bi_dk1_follower, Und bi_dk1_leader sind automatisch für jede LeRobot-CLI in derselben Python-Umgebung verfügbar. Keine manuelle Registrierung erforderlich. Der GIT_LFS_SKIP_SMUDGE=1 Flag ist erforderlich, da LeRobot als Abhängigkeit gezogen wird und große Assets über Git LFS speichert – durch das Überspringen von smudge wird das Herunterladen dieser Assets während der Installation vermieden.

Berechtigungen für die serielle Linux-Schnittstelle

Unter Linux, serielle Ports unter /dev/ttyACM* erfordern, dass sich der Benutzer im befindet dialout Gruppe. Führen Sie dies einmal aus und melden Sie sich dann ab und wieder an:

sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
3

Porterkennung und -kalibrierung

~20 Min

Verwenden Sie den integrierten Port-Finder, um zu ermitteln, an welchen seriellen USB-Port jeder Arm angeschlossen ist, und führen Sie dann die Kalibrierung für jeden Arm durch.

Ports automatisch finden

# Plug in one USB cable at a time to identify each arm's port
uv run lerobot-find-port

Typische Anschlussbelegungen für ein bimanuelles Setup:

# 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

Kalibrieren Sie jeden Arm

Führen Sie die Kalibrierung für jeden Arm einzeln durch. Bewegen Sie den Arm über seinen gesamten Bereich, wenn Sie dazu aufgefordert werden:

# 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
Nach Kollisionen neu kalibrieren: Führen Sie die Kalibrierung nach einem unerwarteten Stopp oder einer Kollision erneut durch, um genaue Nullpositionen der Gelenke sicherzustellen.
4

Erste Teleoperationssitzung

~30 Min

Beginnen Sie mit einer einarmigen Teleoperationssitzung, um die Führung-Folge-Verfolgung zu überprüfen, bevor Sie in den bimanuellen Modus wechseln.

Einarmige Teleoperation

uv run lerobot-teleoperate \
  --robot.type=dk1_follower \
  --robot.port=/dev/ttyACM0 \
  --teleop.type=dk1_leader \
  --teleop.port=/dev/ttyACM2

Was zu überprüfen ist

  • Der Mitnehmerarm verfolgt die Bewegungen des Führungsarms reibungslos
  • Keine Servofehler oder Blockierungen in irgendeinem Gelenk
  • Der Greifer öffnet und schließt sich als Reaktion auf den Vorspanngreifer
  • Im gesamten Bewegungsbereich bleibt kein Kabel hängen
Nothalt Trennen Sie das USB-Kabel, um die Kommunikation zum Arm sofort zu unterbrechen. Halten Sie während des motorisierten Betriebs Ihre Hände vom Arbeitsbereich fern.

Sobald die einarmige Telebedienung ordnungsgemäß funktioniert, wiederholen Sie den Test mit dem zweiten Armpaar, bevor Sie in den bimanuellen Modus wechseln.

5

Bimanuelle Datenaufzeichnung

Laufend

Verwenden lerobot-record mit dem bi_dk1_follower Und bi_dk1_leader Gerätetypen zum Sammeln synchronisierter bimanueller Demonstrationen.

Vollständiger bimanueller Aufnahmebefehl

Der folgende Befehl verbindet zwei Führungsarme mit zwei Folgearmen und zeichnet synchronisierte Episoden mit Kopf- und Handgelenkkamerastreams auf:

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."

So ermitteln Sie Kameraindizes vor der Aufnahme:

uv run lerobot-find-cameras

Best Practices aufzeichnen

  • Zeichnen Sie vor dem Training mindestens 50 Demonstrationen pro Aufgabe auf
  • Variieren Sie Objektpositionen und -ausrichtungen über Episoden hinweg
  • Halten Sie die Kamerabelichtung zwischen den Sitzungen konstant
  • Überprüfen Sie nach jeder Sitzung, ob die Datensätze auf Hugging Face Hub hochgeladen werden
  • Beschreibend verwenden --dataset.task Namen zur späteren Filterung

Nächste Schritte

Sobald Sie die Daten gesammelt haben, trainieren Sie ein ACT- oder Diffusionsrichtlinienmodell mit den Trainingsskripten von LeRobot. Siehe die DK1-Wiki für Plattformintegrationsoptionen.

Einrichtung abgeschlossen?

Treten Sie der Community bei, um Ergebnisse zu teilen und Hilfe bei erweiterten Konfigurationen zu erhalten.