Guía de configuración DK1
Desde el desempaquetado hasta la recolección de datos bimanual. Tiempo estimado: ~2 horas.
Desempaquetado y Montaje
~30 minDesempaquete cuidadosamente ambos brazos y verifique que todos los componentes estén presentes antes de encender cualquier cosa.
Qué hay en la caja
Lista de verificación de ensamblaje
- Monte ambos brazos de forma segura a la mesa utilizando el hardware proporcionado
- Inspeccione todas las conexiones de servo en la cadena del líder (Dynamixel XL330)
- Inspeccione todas las conexiones de servo en el seguidor (base DM4340, muñeca/agarre DM4310)
- Rutee los cables USB de manera ordenada lejos de las trayectorias de movimiento de las articulaciones
- Verifique que los mecanismos de agarre se abran y cierren libremente a mano (sin energía)
- Lea el página de seguridad antes de aplicar energía
Configuración de Software / Instalación de LeRobot
~30 minEl DK1 se integra con LeRobot como un complemento de hardware de primera clase. Instálelo junto con su entorno LeRobot existente.
Requisitos previos
- Python 3.10+ estafa
uvgestor de paquetes - LeRobot instalado en su entorno de Python
- Linux (se recomienda Ubuntu 22.04) o macOS
Instale el complemento 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 ., los tipos de dispositivos dk1_follower, dk1_leader, bi_dk1_follower, y bi_dk1_leader están disponibles automáticamente para cualquier CLI de LeRobot en el mismo entorno de Python. No se necesita registro manual. El GIT_LFS_SKIP_SMUDGE=1 flag es necesario porque LeRobot se extrae como una dependencia y almacena grandes activos a través de Git LFS; omitir el smudge evita descargarlos durante la instalación.
permisos del puerto serie de Linux
En Linux, los puertos serie bajo /dev/ttyACM* requieren que el usuario esté en el dialout grupo. Ejecute esto una vez y luego cierre sesión y vuelva a iniciar sesión:
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
Detección y calibración de puertos
~20 minUtilice el buscador de puertos integrado para identificar a qué puerto serie USB está conectado cada brazo, luego ejecute la calibración para cada brazo.
Encontrar puertos automáticamente
# Plug in one USB cable at a time to identify each arm's port
uv run lerobot-find-port
Asignaciones de puertos típicas para una configuración bimanual:
# 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
Calibrar cada brazo
Ejecutar la calibración para cada brazo individualmente. Mueva el brazo a través de su rango completo cuando se le indique:
# 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
Primera sesión de teleoperación
~30 minComenzar con una sesión de teleoperación de un solo brazo para verificar el seguimiento líder-seguidor antes de pasar al modo bimanual.
Teleoperación de un solo brazo
uv run lerobot-teleoperate \
--robot.type=dk1_follower \
--robot.port=/dev/ttyACM0 \
--teleop.type=dk1_leader \
--teleop.port=/dev/ttyACM2
Qué verificar
- El brazo seguidor sigue los movimientos del brazo líder sin problemas
- Sin errores de servo ni bloqueos en ninguna articulación
- El agarre se abre y se cierra en respuesta al agarre del líder
- Sin enredos de cables a través del rango completo de movimiento
Una vez que la teleoperación de un solo brazo funcione correctamente, repita la prueba con el segundo par de brazos antes de proceder al modo bimanual.
Grabación de datos bimanual
En cursopara usar lerobot-record con el bi_dk1_follower y bi_dk1_leader tipos de dispositivos para recopilar demostraciones bimanuales sincronizadas.
Comando de grabación bimanual completo
El comando a continuación conecta dos brazos líderes a dos brazos seguidores y graba episodios sincronizados con flujos de cámara de cabeza y muñeca:
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."
Para descubrir los índices de la cámara antes de grabar:
uv run lerobot-find-cameras
Mejores prácticas de grabación
- Graba al menos 50 demostraciones por tarea antes del entrenamiento
- Varía las posiciones y orientaciones de los objetos a lo largo de los episodios
- Mantén la exposición de la cámara consistente entre sesiones
- Verifica que el conjunto de datos se suba a Hugging Face Hub después de cada sesión
- Usa descriptivos
--dataset.tasknombres para filtrado posterior
Próximos pasos
Una vez que tengas los datos recopilados, entrena un modelo de Política ACT o Difusión utilizando los scripts de entrenamiento de LeRobot. Consulta el Wiki el DK1 para opciones de integración de plataforma.