DK1设置指南

从拆箱到双手数据收集。 预计时间:约 2 小时。

1

拆箱&组装

约 30 分钟

小心地拆开双臂的包装,并在打开电源之前验证所有组件是否都存在。

盒子里有什么

引导臂单元
从动臂单元
USB 电缆(2× 用于双手)
桌面安装硬件
电源适配器
快速启动卡

装配清单

  • 使用提供的硬件将双臂牢固地安装到桌面上
  • 检查主链 (Dynamixel XL330) 上的所有伺服连接
  • 检查从动件上的所有伺服连接(DM4340 底座、DM4310 手腕/夹具)
  • 将 USB 电缆整齐地布置在远离联合行进路径的位置
  • 用手验证夹具机构可自由打开和关闭(关闭电源)
  • 阅读 安全页面 通电前
上电前 确保双臂安装牢固,并且没有电缆穿过关节行进路径。 在尝试双手模式之前测试单臂操作。
2

软件设置/乐机器人安装

约 30 分钟

DK1作为一流的硬件插件与乐机器人集成。 将其与您现有的 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 相同 Python 环境中的任何 LeRobot CLI 自动可用。 无需手动注册。 这 GIT_LFS_SKIP_SMUDGE=1 标志是必需的,因为 LeRobot 作为依赖项被拉取,并通过 Git LFS 存储大量资源 - 跳过 smudge 可以避免在安装过程中下载它们。

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-recordbi_dk1_followerbi_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 供以后过滤的名称

后续步骤

收集数据后,使用 LeRobot 的训练脚本训练 ACT 或扩散策略模型。 请参阅 DK1维基 用于平台集成选项。

设置完成?

加入社区分享结果并获取高级配置帮助。