一步一步
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-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供以后过滤的名称
后续步骤
收集数据后,使用 LeRobot 的训练脚本训练 ACT 或扩散策略模型。 请参阅 DK1维基 用于平台集成选项。