完整的 SDK 安装参考位于 硬件/dk1/软件。 本单元涵盖了双手特定的配置步骤,这些步骤超出了您可能为 OpenArm 完成的单臂 SDK 安装。
安装DK1 SDK
DK1 SDK 与 OpenArm SDK 是分开的。 请勿尝试使用 OpenArm 软件包运行 DK1 Arm — 固件协议不同。
# Create an isolated virtual environment for DK1 work
python3 -m venv ~/dk1-env 源 ~/dk1-env/bin/activate
# Install the DK1 SDK and bimanual extensions
pip install dk1-sdk[双手册]
# Verify the install
python -c“导入 dk1; 打印(dk1.__version__)”
# Expected: 0.4.0 or higher
配置领导者/从者配对
SDK 读取一个 YAML 配置文件,该文件告诉它哪个串行设备是主导设备,哪些设备是两个从设备。 您必须按正确的顺序指定设备路径 - SDK 不会自动检测角色分配。
# Generate the default bimanual config file
dk1-config 生成 --mode bimanual --output ~/dk1-config.yaml
# Open and edit the config — set your actual device paths
纳米 ~/dk1-config.yaml
中的关键字段 dk1-config.yaml:
领导: 设备:/dev/ttyUSB2 # the leader controller arm
波特率:1000000 左追随者: 设备:/dev/ttyUSB0 # left follower arm
波特率:1000000 关注者权利: 设备:/dev/ttyUSB1 # right follower arm
波特率:1000000 同步: 频率赫兹:50 # joint state sync rate
延迟容忍度毫秒:5 # max allowed sync lag
设备路径分配: 从物理手臂到
/dev/ttyUSBN 取决于 USB 端口顺序,该顺序可能会在重新启动之间发生变化。 要创建稳定的别名,请使用 udev 规则以设备序列号为关键。 跑步 udevadm info /dev/ttyUSB0 找到每个手臂的序列并创建规则 /etc/udev/rules.d/99-dk1.rules。 这在以下位置有详细介绍: 硬件/dk1/软件.
Python 连接测试——双臂
编辑配置后,运行连接测试,同时测试所有三个设备:
从 dk1 导入 BimanualRobot 机器人 = BimanualRobot(config_path="~/dk1-config.yaml") 机器人.connect()
# Print joint states for both arms — should update at 50Hz
对于范围(10)内的 i: 状态 = robots.get_joint_states() print(f"左:{[f'{j:.2f}' for j in state.left]}") print(f"右: {[f'{j:.2f}' for j in state.right]}") 打印(“---”) 机器人.disconnect()
成功运行会打印 10 对具有一致、稳定值的联合状态数组。 如果您看到 NaN 值、超时错误或每个臂的关节值少于 6 个,请检查配置文件中的设备路径分配。
同步验证
该单元中最重要的检查是验证领导者运动产生同步的跟随者响应,没有明显的滞后:
从 dk1 导入 BimanualRobot,LeaderFollowerSession 机器人 = BimanualRobot(config_path="~/dk1-config.yaml") 会话 = LeaderFollowerSession(机器人)
# Start the leader/follower sync loop
# Move the leader arm slowly — both followers should mirror immediately
会话.start() input("按 Enter 键停止...") 会话.stop()
在单个关节上缓慢移动引导臂通过 30° 弧。 两个从动臂应一致移动,没有明显的延迟。 如果一个跟随者落后另一个跟随者超过半秒,请检查 latency_tolerance_ms 设置并验证慢臂的 USB 连接。
常见错误和修复
| 错误 | 原因 | 使固定 |
|---|---|---|
SerialException: device not found |
配置中的设备路径错误,或 USB 未连接 | 跑步 ls /dev/ttyUSB* 并更新配置路径。 检查物理 USB 连接。 |
SyncTimeoutError: follower_right |
右从动臂在延迟容差内没有响应 | 增加 latency_tolerance_ms 至 10,或尝试不同的 USB 端口。 检查电缆是否损坏。 |
| 连接后关节状态全为零 | 伺服系统未启用 - 手臂处于待机模式 | 称呼 robot.enable_servos() 在读取关节状态之前,或先通过 Web UI 启用。 |
| 一个跟随者镜像,另一个静止 | 领导者在配置中仅与一个追随者配对 | 验证两者 follower_left 和 follower_right 在 YAML 配置中设置。 |
第 2 单元完成时...
DK1 SDK已安装并 dk1.__version__ 返回 0.4.0 或更高。 连接测试以 50Hz 打印双臂稳定的关节状态值。 当您开始引导者/从者会话并移动引导者手臂时,两个从者手臂都会镜像该运动,没有明显的滞后。 您已经通过引导臂上至少 3 个不同的关节运动验证了这一点。