Руководство по установке DK1
От распаковки до бимануального сбора данных. Примерное время: ~2 часа.
Распаковка и сборка
~30 мин.Осторожно распакуйте оба рычага и убедитесь в наличии всех компонентов, прежде чем включать что-либо.
Что в коробке
Контрольный список сборки
- Надежно закрепите оба кронштейна на столешнице с помощью прилагаемого крепежа.
- Проверьте все сервосоединения на ведущей цепи (Dynamixel XL330).
- Проверьте все соединения сервопривода на ведомом устройстве (основание DM4340, запястье/захват DM4310).
- Аккуратно прокладывайте USB-кабели вдали от совместных путей перемещения.
- Убедитесь, что механизмы захвата свободно открываются и закрываются вручную (выключите питание).
- Прочтите страница безопасности перед подачей питания
Настройка программного обеспечения / установка 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
Обнаружение и калибровка портов
~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
Первый сеанс телеоперации
~30 мин.Начните с сеанса телеоперации одной рукой, чтобы проверить отслеживание лидера и последователей, прежде чем переходить в бимануальный режим.
Телеоперация одной рукой
uv run lerobot-teleoperate \
--robot.type=dk1_follower \
--robot.port=/dev/ttyACM0 \
--teleop.type=dk1_leader \
--teleop.port=/dev/ttyACM2
Что проверить
- Ведомая рука плавно отслеживает движения ведущей руки
- Никаких ошибок сервопривода или остановок ни в одном соединении.
- Захват открывается и закрывается в ответ на действие захвата ведущего.
- Никакого зацепления троса во всем диапазоне движений
Как только телеоперация одной рукой заработает правильно, повторите тест со второй парой рук, прежде чем переходить к бимануальному режиму.
Бимануальная запись данных
НепрерывныйИспользовать 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 вики для вариантов интеграции платформы.