OpenRUA 方法分析
论文:OpenRUA: Robot-Use Agents Are Zero-Shot Visuomotor Policies,UCL / CMU,arXiv 2610.02459, 2026.10.
1. 想回答什么问题
现在用大模型或 Agent 控制机器人,主要有两条路:
- 端到端学策略(VLA、WAM):需要大量示教数据,训练分布之外泛化差。比如 LIBERO-PRO 加了位置或任务扰动后,OpenVLA 和 π0 都掉到 0%。
- Code-as-Policies 类的 Agent(CaP-X、ASPIRE、RHO、Harness VLA 等):要花大量工夫设计专门的 harness,包括手写感知和控制原语库、把 VLA 包成工具、预设好 agent 工作流。
作者的问题是:这些额外的 harness 工程真的必要吗? 他们的假设是,这些定制接口只是在弥补过去 agent 能力的不足,并不是机器人控制本身的需要。
如图所示OpenRUA:

2. 核心设计:零抽象,把工作区当作 harness
如图所示:一种极简风格的、workspace-as-harness的机器人使用。

OpenRUA 只给现成的编程 Agent(Claude Code、Codex)一个终端和一个工作目录,让它通过机器人原生的 ROS 2 接口(ros2cli 和 rclpy)直接操作机器人,就像一个工程师接手一个陌生项目。
(1) Workspace as Harness
- 初始内容很少:
README.md:入口machine.yaml:机型、关节限位、坐标系、传感器和控制端口docs/:感知和动作文档tools/:少量起步脚本,比如cam_snap.py存图、发送关节轨迹、像素反投影、底盘里程计控制
- 开场 prompt 只有几句:先自己摸清这台机器,把任务在物理上完成,用自己的方法验证,然后结束。
- 不规定任何工作流:什么时候观察、写什么程序、怎么判断完成,都由 Agent 自己决定。
- 工作区同时是外部持久记忆。Agent 会自己建
snaps/、scripts/、work/、NOTES.md,弥补上下文窗口的限制。每个 episode 都用全新工作区,不跨 episode 积累经验。
(2) 感知 = 文件 I/O
- 订阅 ROS 话题,把 RGB 存成 PNG,深度存成
.npy,关节状态、TF、力矩等存成文本或数组。 - Agent 自己决定取哪个相机、什么时候取。论文叫它“按需拉取”,好处是不会让连续的传感器流灌满上下文。
- 图片直接用多模态能力看,数值数据写程序计算。
(3) 操作 = CLI 编程
- 写
ros2命令或rclpy程序,向控制器发FollowJointTrajectory、GripperCommand、TwistStamped速度指令,或调用 IK 服务。 - 可以一步一检查,也可以写带传感器反馈的闭环程序。
3. 涌现行为(论文最有意思的部分)
统计范围是 CaP-Bench 和 LIBERO-PRO 共 1500 个 episode,Agent 为 Claude Code + Opus 5:
| 行为 | 出现比例 |
|---|---|
| 自写度量程序(深度 + 内参 → 世界坐标) | 96.8% |
| 自写运动控制客户端(封装 IK、轨迹、夹爪、速度) | 95.9% |
| 自写图像处理(裁剪放大、加像素网格、点云重建与切片) | 72.7% |
| 自写反馈闭环程序(按力或位移阈值停止) | 50.1% |
典型例子:
- Nut 任务:按高度分割深度图来定位螺母和柱子,再分 7 段插入,每段后读一次力。结果是 100% 成功,而 CaP-X、RHO、ASPIRE 只有 0–9%。原因是它们的原语库里没有力反馈接口,积累再多技能也补不上缺失的传感能力。
- 抽屉任务:分段拉动,每次检查指间距和位移,指间距小于 8mm 判定脱手,不再移动判定卡住。
- 失败恢复:抓番茄酱瓶时碰倒了瓶子,Agent 用点云估计倒下后的朝向,重新规划抓取。
4. 实验结果
所有结果都是零样本:没有示教数据,没有先验经验,也拿不到评测器的成功判定。
| 基准 | OpenRUA (CC + Opus 5) | 最强对手 |
|---|---|---|
| CaP-Bench | 99.0% | ASPIRE 81.0% |
| LIBERO-PRO(8 格) | 87.0% | Harness VLA 82.4%(需要训练、经验和判定访问) |
| RoboCasa365 未见组合任务 | 28.1% | Harness VLA 13.8–15.0%,RLDX-1 5.0% |
- 泛化性:在已见和未见组合任务上成功率基本持平(26.3% 对 28.1%)。依赖学习策略的方法在未见任务上明显下降。
- 测试时计算的缩放:
- Opus 5 的轮次上限从 100 提到 200,成功率从 50% 升到 70%。
- GPT-6 Astra 的推理强度从 medium 调到 high,成功率从 62.5% 升到 69%。
- 收益会趋于平缓,上限主要取决于模型本身。
- 成本(LIBERO-10):Fable 5.1 每次成功约 $11.2,Opus 5 约 $18.9,Sonnet 5 约 $93.3。Sonnet 5 单价最便宜,但轮次多、成功率低,所以每次成功反而最贵。
5. 优点
- 观点清晰,有反直觉价值:在强 Agent 时代,人工抽象层可能反而是瓶颈。原语库决定了能力上限,而原生接口不设上限。
- 工程上极简、可移植:不同 Agent 共用同一个工作区,不需要改动。理论上任何 ROS 2 机器人都能接入。
- 策略可解释、可调试:策略就是工作区里的代码和日志,可以直接审查。
- 失败分析诚实:413 个失败案例中,58% 来自任务标准不清、判定条件和指令冲突、或文档未说明的机器行为。这也反过来指出了现有基准的问题。
6. 局限与值得质疑的地方
- 只做了仿真,而且 Agent 思考时仿真是暂停的。 这是最大的问题。一个成功 episode 的中位数约 100 轮,在真实世界里无法暂停。实际上它在做的是“慢思考的离散规划”,不是实时的视觉运动策略。“visuomotor policy”这个说法有些夸大,动态任务基本无法适用。
- 代价很高。 每个 episode 预算是 500 轮或 240 分钟,单次成本 $8–22。和毫秒级推理的 VLA 不在同一个量级。
- “零抽象”并不完全为零。 起步工具里有像素反投影、底盘里程计控制器,文档也给了“如何获取观测、用反馈”的建议。另外依赖已经存在的 IK 服务和控制器,抽象被转移到了 ROS 2 生态和文档里。文档质量对结果的影响缺少消融实验。
- 对比不完全公平。 基线数字来自各自论文。CaP-Bench 的初始状态不能逐 episode 对齐。OpenRUA 用 640×480 图像加关节位置控制,和基线的设置也不同(附录 C.2 有说明)。
- 安全性。 失败案例中出现过 IK 分支跳变导致手部钻到桌面以下。保护措施完全依赖 Agent 自己写,真机部署必须有独立的安全层。
- 长时程任务仍然弱。 RoboCasa 组合任务只有约 27%,而原子任务有 61%。
7. 总结
OpenRUA 的贡献不在于提出了新算法,而在于用一个“减法”实验证明了一件事:只要编程 Agent 足够强,给它一个 ROS 2 终端和一份文档,它就能在执行过程中自己搭出感知工具、度量程序、控制客户端和反馈控制器,在仿真基准上超过精心设计的 harness 和 VLA 方案。它的结论在仿真、可暂停、不计成本的条件下成立。到真机、实时、安全的场景还有相当距离,作者在局限部分也承认了这一点。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)