完整的 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_leftfollower_right 在 YAML 配置中设置。

第 2 单元完成时...

DK1 SDK已安装并 dk1.__version__ 返回 0.4.0 或更高。 连接测试以 50Hz 打印双臂稳定的关节状态值。 当您开始引导者/从者会话并移动引导者手臂时,两个从者手臂都会镜像该运动,没有明显的滞后。 您已经通过引导臂上至少 3 个不同的关节运动验证了这一点。