你将实现什么
在本单元结束时,您将拥有一个安装了 OpenArm SDK 的 Python 虚拟环境,并且运行 5 行测试脚本将返回 True 从 arm.ping()。 这一确认意味着您的 Python 代码具有与手臂的实时通信通道 - 这是第 3 至 6 单元中所有内容的基础。
完整的 SDK 安装和配置文档位于 硬件/openarm/软件。 该单元根据您需要的上下文进行处理,并涵盖最常见的故障模式。
安装SDK
工作通过 软件设置指南 完整的 SDK 安装。 简短版本:
安装需要 5-15 分钟,具体取决于您的互联网连接。 这 torch 和 lerobot 软件包很大,但您将在第 4 单元和第 5 单元中需要它们,因此请立即安装它们。
快速 Python 连接测试
在 ROS 2 运行(来自第 1 单元)并激活虚拟环境的情况下,运行此测试。 这是确认整个堆栈端到端运行的最快方法:
如果 arm.ping() 回报 True 和 arm.get_joints() 返回当前的关节角度,你就完成了。 仅当您看到错误时才继续进行故障排除部分。
故障排除:3 个最常见的连接错误
错误1: ConnectionRefusedError 或超时 OpenArm()
ROS 2 未运行或操作服务器尚未启动。 检查一下 ros2 node list 节目 /openarm_controller。 如果没有,请返回 ROS 2 终端并确认启动已完成且没有错误。 一个常见的子原因:您忘记在启动之前获取工作区的来源 - 请参阅第 1 单元,关键步骤 2。
错误2: can0: Network is down 在 ROS 2 终端中
SocketCAN 接口已丢失。 如果您拔下并重新插入 USB-CAN 适配器而不重新运行该程序,就会发生这种情况 ip link set 命令。 跑步 sudo ip link set can0 up type can bitrate 1000000,然后重新启动 ROS 2 启动。 将此命令添加到启动脚本中,以便它在启动时自动运行: sudo nano /etc/network/interfaces.d/can0.
错误3: arm.get_joints() 即使手臂未归位,也会返回全零
这不是一个错误——这意味着手臂 是 报告其联合状态,但校准可能不完整。 如果您的手臂物理上处于零姿势,则零是正确的。 如果您的手臂处于不同角度但仍报告为零,请从 Web UI 重新运行校准(第 1 单元,关键步骤 4)。 联合编码器需要归位序列来建立绝对位置。
第 2 单元完成时...
arm.ping() 回报 True 在你的 Python 终端中。 测试脚本从开始到结束运行都没有错误。 当您物理移动手臂时,您可以看到关节角度值实时变化 arm.get_joints() 循环轮询。 您已准备好学习第 3 单元。