Guía de configuración DK1

Desde el desempaquetado hasta la recolección de datos bimanual. Tiempo estimado: ~2 horas.

1

Desempaquetado y Montaje

~30 min

Desempaquete cuidadosamente ambos brazos y verifique que todos los componentes estén presentes antes de encender cualquier cosa.

Qué hay en la caja

Unidad del brazo líder
Unidad del brazo seguidor
Cables USB (2× para bimanuales)
Hardware de montaje para mesa
Adaptador de corriente
Tarjeta de inicio rápido

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
Antes de encender Asegúrese de que ambos brazos estén montados de manera segura y que ningún cable cruce las trayectorias de movimiento de las articulaciones. Pruebe la operación de un solo brazo antes de intentar el modo bimanual.
2

Configuración de Software / Instalación de LeRobot

~30 min

El 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 uv gestor 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')"
Cómo funciona la detección de complementos: Después 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
3

Detección y calibración de puertos

~20 min

Utilice 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
Recalibrar después de colisiones: Ejecutar la calibración nuevamente después de cualquier parada inesperada o colisión para asegurar posiciones cero de articulación precisas.
4

Primera sesión de teleoperación

~30 min

Comenzar 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
Parada de emergencia Desconectar el cable USB para cortar inmediatamente la comunicación con el brazo. Mantenga las manos alejadas del espacio de trabajo durante la operación con energía.

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.

5

Grabación de datos bimanual

En curso

para 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.task nombres 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.

¿Configuración completa?

Únete a la comunidad para compartir resultados y obtener ayuda con configuraciones avanzadas.