Guia de Configuração DK1

Da abertura da caixa à coleta de dados bimanual. Tempo estimado: ~2 horas.

1

Desembalagem e Montagem

~30 min

Desembale cuidadosamente ambos os braços e verifique se todos os componentes estão presentes antes de ligar qualquer coisa.

O que há na caixa

Unidade do braço líder
Unidade do braço seguidor
Cabos USB (2× para bimanual)
Hardware de montagem para mesa
Adaptador de energia
Cartão de início rápido

Lista de verificação de montagem

  • Monte ambos os braços com segurança na mesa usando o hardware fornecido
  • Inspecione todas as conexões do servo na corrente do líder (Dynamixel XL330)
  • Inspecione todas as conexões do servo na base do seguidor (DM4340, DM4310 pulso/garra)
  • Roteie os cabos USB de forma limpa, longe dos caminhos de movimento das articulações
  • Verifique se os mecanismos do gripper abrem e fecham livremente à mão (com a energia desligada)
  • Leia o página de segurança antes de aplicar energia
Antes de ligar Certifique-se de que ambos os braços estão montados de forma segura e que nenhum cabo cruza os caminhos de movimento das articulações. Teste a operação de um braço antes de tentar o modo bimanual.
2

Configuração de Software / Instalação do LeRobot

~30 min

O DK1 se integra ao LeRobot como um plugin de hardware de primeira classe. Instale-o ao lado do seu ambiente LeRobot existente.

Pré-requisitos

  • Python 3.10+ com uv gerenciador de pacotes
  • LeRobot instalado no seu ambiente Python
  • Linux (Ubuntu 22.04 recomendado) ou macOS

Instale o 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')"
Como funciona a detecção de plugins: Após uv pip install -e ., os tipos de dispositivos dk1_follower, dk1_leader, bi_dk1_follower, e bi_dk1_leader estão automaticamente disponíveis para qualquer CLI do LeRobot no mesmo ambiente Python. Nenhum registro manual necessário. O GIT_LFS_SKIP_SMUDGE=1 sinalizador é necessário porque o LeRobot é puxado como uma dependência e armazena grandes ativos via Git LFS — pular o smudge evita o download deles durante a instalação.

permissões da porta serial do Linux

No Linux, as portas seriais sob /dev/ttyACM* exigem que o usuário esteja no dialout grupo. Execute isso uma vez e depois saia e entre novamente:

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

Detecção e Calibração de Portas

~20 min

Use o localizador de portas embutido para identificar a qual porta serial USB cada braço está conectado, e então execute a calibração para cada braço.

Encontrar portas automaticamente

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

Atribuições típicas de portas para uma configuração 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 braço

Executar a calibração para cada braço individualmente. Mova o braço por toda a sua amplitude quando solicitado:

# 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 após colisões: Execute a calibração novamente após qualquer parada inesperada ou colisão para garantir posições zero de junta precisas.
4

Primeira Sessão de Teleoperação

~30 min

Comece com uma sessão de teleoperação de braço único para verificar o rastreamento líder-seguidor antes de passar para o modo bimanual.

Teleoperação de braço único

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

O que verificar

  • O braço seguidor acompanha os movimentos do braço líder suavemente
  • Sem erros de servo ou paradas em qualquer junta
  • O gripper abre e fecha em resposta ao gripper líder
  • Sem enrosco de cabos durante toda a amplitude de movimento
Parada de emergência Desconecte o cabo USB para cortar imediatamente a comunicação com o braço. Mantenha as mãos afastadas da área de trabalho durante a operação com energia.

Uma vez que a teleoperação de braço único esteja funcionando corretamente, repita o teste com o segundo par de braços antes de prosseguir para o modo bimanual.

5

Gravação de Dados Bimanual

Em andamento

Usar lerobot-record com o bi_dk1_follower e bi_dk1_leader tipos de dispositivos para coletar demonstrações bimanual sincronizadas.

Comando de gravação bimanual completo

O comando abaixo conecta dois braços líderes a dois braços seguidores e grava episódios sincronizados com fluxos de câmera de cabeça e pulso:

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 descobrir os índices da câmera antes de gravar:

uv run lerobot-find-cameras

Melhores práticas de gravação

  • Grave pelo menos 50 demonstrações por tarefa antes do treinamento
  • Varie as posições e orientações dos objetos entre os episódios
  • Mantenha a exposição da câmera consistente entre as sessões
  • Verifique se o conjunto de dados é enviado para o Hugging Face Hub após cada sessão
  • Use descritivos --dataset.task nomes para filtragem posterior

Próximos passos

Uma vez que você tenha os dados coletados, treine um modelo de Política ACT ou Difusão usando os scripts de treinamento do LeRobot. Veja o Wiki do DK1 para opções de integração de plataforma.

Configuração Completa?

Junte-se à comunidade para compartilhar resultados e obter ajuda com configurações avançadas.