你将实现什么

在本单元结束时,您将拥有一个安装了 OpenArm SDK 的 Python 虚拟环境,并且运行 5 行测试脚本将返回 Truearm.ping()。 这一确认意味着您的 Python 代码具有与手臂的实时通信通道 - 这是第 3 至 6 单元中所有内容的基础。

完整的 SDK 安装和配置文档位于 硬件/openarm/软件。 该单元根据您需要的上下文进行处理,并涵盖最常见的故障模式。

安装SDK

工作通过 软件设置指南 完整的 SDK 安装。 简短版本:

# Create an isolated environment for this path python3 -m venv ~/openarm-env 源 ~/openarm-env/bin/activate # Install the SDK and its dependencies pip 安装 openarm-sdk lerobot torch torchvision

安装需要 5-15 分钟,具体取决于您的互联网连接。 这 torchlerobot 软件包很大,但您将在第 4 单元和第 5 单元中需要它们,因此请立即安装它们。

快速 Python 连接测试

在 ROS 2 运行(来自第 1 单元)并激活虚拟环境的情况下,运行此测试。 这是确认整个堆栈端到端运行的最快方法:

# Make sure ROS 2 is running first (from a separate terminal) # source ~/openarm_ws/install/setup.bash && ros2 launch openarm_bringup real.launch.py 从 openarm 导入 OpenArm 手臂 = OpenArm() # connects via ROS 2 action server 打印(arm.ping()) # should print: True 打印(arm.get_joints()) # should print: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 手臂.close()

如果 arm.ping() 回报 Truearm.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 单元。