Руководство по установке DK1

От распаковки до бимануального сбора данных. Примерное время: ~2 часа.

1

Распаковка и сборка

~30 мин.

Осторожно распакуйте оба рычага и убедитесь в наличии всех компонентов, прежде чем включать что-либо.

Что в коробке

Рукоятка лидера
Следящий рычаг
USB-кабели (2 шт. для биручного управления)
Настольное монтажное оборудование
Адаптер питания
Карта быстрого старта

Контрольный список сборки

  • Надежно закрепите оба кронштейна на столешнице с помощью прилагаемого крепежа.
  • Проверьте все сервосоединения на ведущей цепи (Dynamixel XL330).
  • Проверьте все соединения сервопривода на ведомом устройстве (основание DM4340, запястье/захват DM4310).
  • Аккуратно прокладывайте USB-кабели вдали от совместных путей перемещения.
  • Убедитесь, что механизмы захвата свободно открываются и закрываются вручную (выключите питание).
  • Прочтите страница безопасности перед подачей питания
Перед включением Убедитесь, что оба рычага надежно закреплены и никакие кабели не пересекают пути перемещения шарнира. Прежде чем переходить к бимануальному режиму, проверьте работу одной руки.
2

Настройка программного обеспечения / установка LeRobot

~30 мин.

DK1 интегрируется с LeRobot как первоклассный аппаратный плагин. Установите его вместе с существующей средой LeRobot.

Предварительные условия

  • Python 3.10+ с uv менеджер пакетов
  • LeRobot установлен в вашей среде Python
  • Linux (рекомендуется Ubuntu 22.04) или macOS

Установите плагин 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 ., типы устройств dk1_follower, dk1_leader, bi_dk1_follower, и bi_dk1_leader автоматически доступны для любого интерфейса командной строки LeRobot в той же среде Python. Ручная регистрация не требуется. GIT_LFS_SKIP_SMUDGE=1 Флаг необходим, поскольку LeRobot используется как зависимость и хранит большие ресурсы через Git LFS — пропуск размазывания позволяет избежать их загрузки во время установки.

Разрешения последовательного порта Linux

В Linux последовательные порты под /dev/ttyACM* требовать от пользователя присутствия в dialout группа. Запустите это один раз, а затем выйдите из системы и снова войдите:

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

Обнаружение и калибровка портов

~20 мин.

Используйте встроенный инструмент поиска портов, чтобы определить, к какому последовательному порту USB подключен каждый кронштейн, а затем запустите калибровку для каждого кронштейна.

Автоматический поиск портов

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

Типичные назначения портов для биручной настройки:

# 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

Калибровка каждого рычага

Выполните калибровку для каждого рычага индивидуально. При появлении соответствующего запроса переместите руку на весь диапазон:

# 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
Повторная калибровка после столкновений: Запустите калибровку еще раз после любой неожиданной остановки или столкновения, чтобы обеспечить точные нулевые положения шарниров.
4

Первый сеанс телеоперации

~30 мин.

Начните с сеанса телеоперации одной рукой, чтобы проверить отслеживание лидера и последователей, прежде чем переходить в бимануальный режим.

Телеоперация одной рукой

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

Что проверить

  • Ведомая рука плавно отслеживает движения ведущей руки
  • Никаких ошибок сервопривода или остановок ни в одном соединении.
  • Захват открывается и закрывается в ответ на действие захвата ведущего.
  • Никакого зацепления троса во всем диапазоне движений
Аварийная остановка Отсоедините USB-кабель, чтобы немедленно отключить связь с рукой. Держите руки подальше от рабочего места во время работы от электросети.

Как только телеоперация одной рукой заработает правильно, повторите тест со второй парой рук, прежде чем переходить к бимануальному режиму.

5

Бимануальная запись данных

Непрерывный

Использовать lerobot-record с bi_dk1_follower и bi_dk1_leader типы устройств для сбора синхронизированных бимануальных демонстраций.

Полная команда двуручной записи

Приведенная ниже команда соединяет два ведущих рычага с двумя ведомыми и записывает синхронизированные эпизоды с потоками с головной и запястной камер:

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

Чтобы узнать индексы камеры перед записью:

uv run lerobot-find-cameras

Запись лучших практик

  • Запишите не менее 50 демонстраций каждого задания перед тренировкой.
  • Меняйте положение и ориентацию объектов в разных эпизодах.
  • Поддерживайте постоянную экспозицию камеры между сеансами
  • Проверяйте загрузку набора данных в Hugging Face Hub после каждого сеанса.
  • Используйте описательные --dataset.task имена для последующей фильтрации

Следующие шаги

После сбора данных обучите модель ACT или политики распространения, используя сценарии обучения LeRobot. См. ДК1 вики для вариантов интеграции платформы.

Настройка завершена?

Присоединяйтесь к сообществу, чтобы делиться результатами и получать помощь по расширенным конфигурациям.