> 版本说明:本文以 OpenArm 2.0(enactic 主线,2026-08 仍在活跃更新)为纲,兼述达妙(Damiao)变体之异。机械臂软件迭代极快,落地时请务必以你手中硬件对应的官方文档 docs.openarm.dev 为准。
一、为何物:机械臂的「安卓时刻」?
且看今日之机械臂。传统工业臂,贵则数十万,闭源如黑箱;更有一桩要命处——它「碰不得」。高减速比齿轮把电机扭力放得极大,你伸手去推,推不动,硬推则伤机伤人。它是「自动售货机」:你投币,它吐货,内部不许窥探。
OpenARM 反其道而行。它是完全开源的双臂机械臂,每臂 7 个自由度(7 DOF),专为「物理 AI」(具身智能)研究而生。硬件 CAD、固件、控制代码、仿真工具,一律公开,任你拆解、改装、复现。
其最要紧的两大特征:
– 完全反向驱动(backdrivable):你用手推它,它顺势就让——像推一扇没上锁的轻门。 – 双边力反馈(bilateral force feedback):你操纵主臂,从臂不仅跟着动,还会把「摸到的力」回传给你。遥操作不再是「盲操」,而是「有手感」。
此二者一结合,机械臂便从「自动售货机」化身为「可拆解的乐高 + 师傅的手」。这便是它被称为「经济型开源人形机械臂」「物理世界 AI 大模型研究设备」的缘由。
二、一句话洞见
OpenARM 不是「一台机械臂」,而是给机器人学「动手」这件事,提供了一套公开、可复现、且有触觉的训练场与评测场。
臂本身只是其一;配套还有标准化评测舱(OpenArm Cell)与无电机示范臂(OpenArm KER)。它们合起来,把「我的模型比你好」这种空话,变成「在同一条件下可重跑、可比对」的实据。此即项目口号 Making SOTA Reproducible(让前沿成果可复现)之真意。
三、通俗类比:描红本与师傅的手
学「动手」有三重境界,恰可类比 OpenARM 的三条用路:
1. 看视频学做饭 = 模仿学习(LeRobot)。你录下人做任务的示范,机器照着学。OpenARM 被 Hugging Face 旗下具身框架 LeRobot 收录为官方采集设备,正为此用。 2. 师傅握着你的手 = 双边力反馈遥操作。你戴/握主臂,从臂亦步亦趋,且把接触力回传——你「感觉」得到它碰到了桌子。此乃接触密集型任务(如远程手术演示、柔性抓取)之关键。 3. 在厨房反复练 = 仿真训练(Isaac Lab / MuJoCo)。先在虚拟里千万次试错,再搬到真机(Sim2Real)。
而「反向驱动」这一属性,可用一喻尽之:传统臂如焊死的铁门,你推它不动;OpenARM 如合页上油之木门,你轻推即转,停手便止。正因如此,它既能让人安全拖拽示教,又能在力控下与人共处一室。
四、核心概念拆解(术语必释)
| 术语 | 何意 | 喻 |
|---|---|---|
| 7 DOF / 臂 | 七个旋转关节。人手肩肘腕之灵动,约略近之 | 七节鞭,节多则巧 |
| QDD 准直驱 | Quasi-Direct-Drive,低减速比 + 力矩传感器,电机近乎直驱关节 | 电机「贴」在关节上,力可直接感知 |
| CAN-FD 总线 | 1 Mbps、1 kHz 控制周期之通信总线,连各关节电机 | 机械臂之「神经总线」,指令由此奔流 |
| ROS2 | 机器人操作系统二代,ros2_control 管控制器,MoveIt2 管运动规划 | 机械臂之「中枢神经」 |
| 单边遥操作 | leader–follower,主臂动、从臂跟,不回传力 | 木偶提线,线只单向 |
| 双边力反馈 | 主从互传位置与力,操作员「摸」到末端反力 | 师徒手叠手,力可回流 |
| LeRobot | Hugging Face 具身学习框架,管模仿学习数据集 | 厨艺「菜谱 + 示范视频」库 |
生态三件套,须记牢: – OpenArm 2.0——臂本身:人形尺度(臂展 633 mm)、QDD 反向驱动关节、紧凑夹爪内置手眼相机、MISUMI 铝架底座易装易扩。 – OpenArm Cell——可复现评测舱:统一背景、光照、相机与臂位,让模型比对公平且可自动化。 – OpenArm KER——运动学等效复制品(Kinematic Equivalent Replica):无电机之主臂, kinematics 与真臂一致,示教低疲劳。
规格一览:自由度 7/臂;额定负载 4.1 kg(最不利姿态撑 1 分钟),峰值 6.0 kg;关节 QDD 反向驱动且每轴带机械限幅;结构铝 + 不锈钢;末端为带手眼相机的平行夹爪;控制总线 CAN-FD。整机双臂系统约 41 kg(含包装)。
五、环境准备(prerequisites)
– 系统:Ubuntu 22.04(配 ROS2 Humble/Iron)或 24.04。
– ROS2:Humble / Iron / Jazzy 任选其一。
– CAN-FD 适配器:USB-CAN 硬件一枚(接各关节电机)。
– Python 3.10+,建议 venv 隔离依赖。
– 构建工具:colcon + ament(ROS2 标准构建)。
– 达妙变体特需:Ubuntu 24.04、带 candleLight 固件的 USB-CAN、纯 Python venv 路线(见第八节)。
六、上手七步(quickstart,enactic 主线)
> 以下为 ROS2 主线之通用流程。具体 launch 文件名随版本微调,以 docs.openarm.dev 与你克隆之仓库为准。
第一步:装 ROS2 与基础依赖
以 Humble 为例,确认已装好 ROS2
source /opt/ros/humble/setup.bash ros2 –version sudo apt update && sudo apt install -y python3-colcon-common-extensions can-utils
第二步:建工作空间,克隆七大仓库
mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/enactic/openarm_description.git git clone https://github.com/enactic/openarm_can.git git clone https://github.com/enactic/openarm_ros2.git git clone https://github.com/enactic/openarm_teleop.git
仿真与数据按需:
git clone https://github.com/enactic/openarm_isaac_lab.git git clone https://github.com/enactic/openarm_mujoco.git
第三步:编译
cd ~/ros2_ws colcon build source install/setup.bash
第四步:配 SocketCAN(接真实硬件时)
让 CAN 接口上线,速率 1 Mbps(CAN-FD 实际更高,依适配器而定)
sudo ip link set can0 up type can bitrate 1000000
验证总线
ip link show can0
第五步:RViz 可视化(先在「假硬件」里看模型)
单臂
ros2 launch openarm_description display_openarm.launch.py arm_type:=v10 bimanual:=false
双臂
ros2 launch openarm_description display_openarm.launch.py arm_type:=v10 bimanual:=true
RViz2 应弹出 URDF 模型,侧栏滑块可拖动关节——此即「无实物先见形」。
第六步:发首个关节指令(先到 home 位)
先起 bringup(仿真模式)
ros2 launch openarm_bringup openarm.launch.py arm_type:=v10 use_fake_hardware:=true
另开终端,发到 home(各关节归零、夹爪半开)
ros2 topic pub –once /target_joint_positions sensor_msgs/msg/JointState “{position: [0.0, 0.0, 0.0, 0.0, 0.0, 0.5]}”
初学务必小步缓动,大角度急转易自撞或撞桌。
第七步:遥操作
单边(键盘,最简)
ros2 launch openarm_teleop teleop_unilateral.launch.py
双边力反馈(需主从双臂 + CAN 配置妥当)
ros2 launch openarm_teleop teleop_bilateral.launch.py
真实硬件启动(CAN 已配):
sudo ip link set can0 up type can bitrate 1000000 ros2 launch openarm_bringup openarm.launch.py arm_type:=v10 can_interface:=can0
七、进阶三路
– 仿真到真实(Sim2Real):在 openarm_isaac_lab 里以 GPU 并行跑强化学习(PPO 等),训好再迁真机。先仿真验复杂轨迹,后真机执行,稳妥。
– 模仿学习(LeRobot 数据采集):以双边遥操作录人类示范,存为 LeRobot 数据集,训策略网络。OpenARM 即 LeRobot 官方指定采集设备。
– 可复现评测(OpenArm Cell):把臂置入标准舱,统一光照相机,让「模型 A vs B」之比较可自动化、可重跑。
八、两脉源流(重要!按硬件选脉)
OpenARM 文档地形略散,主要有二脉,读者须按手中硬件择一:
1. enactic/openarm 主线(本文主脉):7 DOF QDD 反向驱动双臂,CAN-FD + ROS2,达妙(DM)系列电机(J8009P/J4340P/J4310)。走上文「七步」ROS2 路线。仓库:openarm、openarm_hardware、openarm_description、openarm_can、openarm_ros2、openarm_teleop、openarm_isaac_lab、openarm_mujoco、openarm_dataset、dora-openarm。
2. anvil-robotics/openarm 达妙变体:同宗而异构,Ubuntu 24.04 + 纯 Python venv,USB-CAN 须 candleLight 固件。上手极简:
“bash
git clone https://github.com/anvil-robotics/openarm.git && cd openarm
sudo bash scripts/setup_can.sh leader_l leader_r # 依序插 CAN,赋持久名
python -m venv .venv && source .venv/bin/activate
pip install -e .
# 重力补偿演示
python -m openarm.damiao.gravity --port leader_l:left --port leader_r:right
# 主从遥操作
python -m openarm.damiao.monitor -t
--follow leader_l:left:follower_l:left
--follow leader_r:right:follower_r:right
`
此外,社区另有基于 Dynamixel 伺服(6 自由度)之入门指南,侧重单机 RViz 与键盘遥操——若你拿到的是该版套件,循其 display.launch.py 与 keyboard_teleop` 即可,逻辑相通。
九、安全须知(力反馈是双刃剑)
高反向驱动意味着「你推它就动」——便利之外,亦意味着它可能夹手、可能骤动。务必:
– 牢固固定(螺丝/夹具)于平稳台面,远离人行通道与易燃物。 – 操作前认明急停开关位置,保持足够距离;靠近调机时确认断电。 – 佩戴护目镜等 PPE,衣袖贴身,勿被卷入。 – 勿超负载:夹爪自重须从额定 4.1 kg 中扣除后再加载。 – 大物/异形末端会改变运动范围,须重新评估限幅。
十、资源与结语
– 主页 openarm.dev | 文档 docs.openarm.dev | 代码 github.com/enactic/openarm
– 仿真 openarm_isaac_lab | 数据集 openarm_dataset | 数据流 dora-openarm
– 社区:Discord discord.gg/GmYa262ETH,GitHub Issues / Discussions 答疑
– 采购:DIY 套件或整机,向中国大陆制造商免费开放生产制造与二次开发授权
结语:机械臂之研究,曾如贵族运动——器材贵、接口黑、数据孤。OpenARM 以「全开源 + 有触觉 + 可复现」三板斧,把「动手智能」拉下神坛。它不只是给你一台臂,更是递你一支笔、一本描红帖:世界之大,且去描摹、去复现、去亲手指引那机器,学会「动手」。
——所引规格与命令综合自 openarm.dev / docs.openarm.dev 官方概览、enactic 与 anvil-robotics 仓库及社区入门指南;项目活跃迭代中,落地请以你硬件对应之最新文档为准。
