DK1-Setup-Anleitung
Vom Auspacken bis zur bimanuellen Datenerfassung. Geschätzte Zeit: ~2 Stunden.
Auspacken und Zusammenbauen
~30 MinPacken Sie beide Arme vorsichtig aus und überprüfen Sie, ob alle Komponenten vorhanden sind, bevor Sie etwas einschalten.
Was ist in der Box?
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
Software-Setup / LeRobot-Installation
~30 MinDer DK1 lässt sich als erstklassiges Hardware-Plugin in LeRobot integrieren. Installieren Sie es neben Ihrer vorhandenen LeRobot-Umgebung.
Voraussetzungen
- Python 3.10+ mit
uvPaketmanager - 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')"
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
Porterkennung und -kalibrierung
~20 MinVerwenden 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
Erste Teleoperationssitzung
~30 MinBeginnen 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
Sobald die einarmige Telebedienung ordnungsgemäß funktioniert, wiederholen Sie den Test mit dem zweiten Armpaar, bevor Sie in den bimanuellen Modus wechseln.
Bimanuelle Datenaufzeichnung
LaufendVerwenden 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.taskNamen 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.