7 天搭好 OpenArm 开源机械臂:从打印到首跑的完整教程

【免费下载链接】openarm A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments. 【免费下载链接】openarm 项目地址: https://gitcode.com/GitHub_Trending/op/openarm

OpenArm 是一条 7 自由度(DOF,指关节可独立转动的轴数)的开源机械臂,主打物理 AI 场景下的真实抓取与可复现评测。硬件(CAD、固件)和控制代码全部公开,你可以自己打印、接线并跑起来。按本教程,一个人用一到两周把结构件装配好、软件调通并不难,核心路径是先让一个关节转起来,再逐步接全臂。

开工前的核对清单

先花十分钟把料备齐,能省掉后面反复停工。下表把必需项和可选项分开,缺必需项就先补齐。

类别必需项可选项
硬件结构件、3 类 Damiao 电机(DM4310 / DM4340 / DM8009P)、24V 直流电源、CAN 通讯线缆平行夹爪、内置相机(Arducam B0495)
工具内六角扳手、十字螺丝刀、一把 Damiao USB CAN 调试器3D 打印机(自制壳体)
软件一台装 Ubuntu 22.04/24.04(带 SocketCAN)的电脑;另备一台 Windows 机用于写电机 IDDocker、ROS2 工作空间

提示:给电机写 ID 只能在 Windows 上做,跑控制则在 Linux 上做,两台机器各司其职。

分步搭建

OpenArm 开源机械臂整体结构 OpenArm 整体结构:铝型材立柱底座加七轴手臂,底座带 M6 螺纹孔可直接固定到台面

固定底座

  • 操作:用 M6 螺栓把 MiSUMi 铝型材立柱装到底板,按文档补齐加强筋和侧板。
  • 预期结果:底座水平、牢固,扳动无异响,可承载整条手臂重量。
  • 容易做错:加强筋螺丝漏装或没拧到位,整臂装好后会晃动,务必先紧后测。

OpenArm 底座底板与立柱 底座底板的 M6 螺纹孔布局,用于将底座固定到桌面或地面

上关节模组

  • 操作:沿 J1 到 J7 顺序把电机逐段装进关节臂,注意每处机械限位(限制关节转角的安全挡块)。
  • 预期结果:各关节手转顺滑、无卡滞,限位挡块完整卡位。
  • 容易做错:电机线缆先塞后走,容易在后续关节处被夹住,应先理线再固定。

J1-J2 关节模组装配 J1 与 J2 关节的电机安装与线缆走向示意

走线接电

  • 操作:用 XT30 2+2 线把电机 daisy-chain(首尾串联)到 CAN 总线,接好 24V 电源正负极。
  • 预期结果:上电后电机指示灯能点亮,总线两端 120Ω 终端电阻已启用。
  • 容易做错:忘记打开 CAN 终端电阻、或把电源极性接反,是最常见的两笔错账。

J1 关节电气连接布局 J1 关节处的 CAN 与电源走线连接布局

软件环境搭建与联调

主线只有一条:装工具 → 配总线 → 写 ID → 校准零位。每一步都有一条核心命令。

先在 Linux 上装 CAN 工具与 OpenArm 库:

sudo add-apt-repository -y ppa:openarm/main     # 添加 OpenArm 软件源
sudo apt install -y can-utils iproute2 openarm-can-utils   # 装 CAN 工具与控制库

再配置 CAN 接口为推荐的高速模式:

openarm-can-configure-socketcan-4-arms -fd -b 1000000 -d 5000000   # CAN FD,5Mbps

电机 ID 在 Windows 用 Damiao 调试器写入,按 J1→J8 依次设发送 ID 0x01~0x08、接收(Master)ID 0x11~0x18。写完后回到 Linux,把手臂摆到零位姿态再校准:

openarm-can-zero-position-calibration   # 默认走 can0 右臂,夹爪闭合视为零位

安全红线与高频坑

先把这几条贴在操作位旁边,再谈效率:

  • 急停按钮放在手边,出现异常立刻断电,它要离手臂远到不会被误碰、又近到一秒能按到。
  • 运行时身体和物件都不进入运动范围;要靠近就先断电并防旁人误开。
  • 全程戴护目镜等 PPE,着装贴身,避免被关节或末端勾到。
  • 负载别超额定值:单臂 nominal 4.1 kg、peak 6.0 kg,且都含末端执行器。
  • 记得急停断电的瞬间,手里夹着的物体会因高可回溯性快速下坠,先放稳再急停。

新手最容易踩的三个坑:

  1. 没先写电机 ID 就运行程序——顺序反了,控制端找不到对应电机。
  2. 零位没校准或波特率与接口不一致——表现为无响应或位置漂移,先对齐波特率再校准。
  3. 供电电流不足,电机只响不转——24V 电源要留足余量,串联电机时电流要叠加估算。

第一次跑起来

最短验证路径就一条命令。确认电机 ID 已写、CAN 接口已配、零位已校准后:

openarm-can-demo   # 默认用 can0 上的 0x01/0x02/0x07 电机跑位控+力控演示

OpenArm 机械臂通电待命状态 通电校准完成后的 OpenArm,等待演示程序驱动

看到什么算成功:终端依次打印电机 ID 查询结果、位置/速度读数并循环输出,同时对应关节真实转动、夹爪完成一次开合,最后安全关闭电机。关节有动作且读数连续,就说明总线到电机这一环全部打通了。

下一步去哪儿

先把底座固定牢、把 J1 单独跑起来。一个关节转顺了,整臂只是重复同样的动作。

【免费下载链接】openarm A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments. 【免费下载链接】openarm 项目地址: https://gitcode.com/GitHub_Trending/op/openarm

Logo

聚焦RDK与具身智能,汇集机器人开发教程、开源案例和技术交流

更多推荐