Token导航 LogoToken导航

AI 资讯 · 科技行者

机器人视觉运动策略自主编程技能

更新 2026-11-02科技行者正文 8444字阅读约 27分钟

你有没有想过,为什么机器人干活这么难伺候。

一台工业机械臂想要拧开一个螺母,或者把一个盘子放进洗碗机,背后往往需要工程师花几个月时间写专门的控制程序,调试传感器,处理各种边界情况。换个任务,又要重新来一遍。这种笨重感,好像跟我们这个到处都在喊"AI颠覆一切"的时代格格不入。

于是有人想,能不能让AI自己学会操作机器人,就像人学骑自行车一样,通过看和试来掌握技能。这就是所谓的**视觉运动策略**。

视觉运动策略*:一种直接把摄像头看到的画面和语言指令,转换成机器人该怎么动的"大脑",不需要人工写死每一步该干什么。

过去几年,这条路走得挺热闹。VLA模型,也就是视觉语言动作模型,成了显学,各个大厂都在训练自己的版本。但这里面藏着一个挺尴尬的真相:这些模型在实验室跑分能到90%以上的成功率,可一旦场景稍微变一变,比如物体挪了个位置,或者任务描述换了个说法,成功率直接归零。LIBERO-PRO这个评测基准就专门测试了这种情况,结果显示OpenVLA和π0这两个知名模型,在位置和任务被扰动之后,成功率是0.0%。

这不是小问题,这是说这些模型根本没有真正"理解"任务,它们只是记住了训练数据里的特定场景。

那还有没有别的路子?

有一群研究者换了个思路。他们没有去训练更大的视觉运动模型,而是回到了一个更朴素的办法:直接让像Claude Code这样的编程智能体去写控制机器人的代码。这个思路叫做**代码即策略**,核心逻辑是,既然机器人早就有了一整套成熟的软件接口叫ROS 2,那为什么不让AI像人类工程师一样,直接用这套接口写程序控制机器人,而不是训练一个黑箱模型去"猜"动作呢。

ROS 2*:机器人操作系统第二代,是机器人领域事实上的标准软件框架,负责连接传感器、处理数据、发送控制指令,工业界和学术界几十年攒下来的成熟工具链都建立在它之上。

这篇论文要讲的就是这件事,一个叫**OpenRUA**的系统。它做的事情听起来简单到有点离谱:给一个现成的编程智能体,比如Claude Code,只提供一个工作目录和ROS 2的使用文档,然后告诉它,去完成这个任务吧。没有专门训练过的机器人模型,没有手工设计的感知和控制工具库,什么都没有,就是一个终端和一堆文档。

结果呢。在CaP-Bench这个基准上成功率99.0%,在LIBERO-PRO上87.0%。这个数字背后藏着一个挺颠覆直觉的发现:一个从没见过这台机器人、没有任何专门训练的通用编程AI,居然能当场写出感知和控制程序,搞定机械臂操作。

这件事到底难在哪

想理解OpenRUA的厉害之处,得先明白过去的系统是怎么干的,以及为什么这么干。

主流的RUA系统,也就是机器人使用智能体,大体分两条路。第一条是把一个训练好的视觉运动策略包装成一个"工具",让大语言模型去调用它,大模型负责拆解任务和做决策,底层的脏活累活交给那个专门训练的策略模型。第二条路是给大语言模型提供一套预先设计好的"原语",也就是人类工程师提前写好的抓取函数、移动函数之类的积木,AI只负责把这些积木拼起来。

这两条路听起来都挺合理,但都有一个共同的问题:它们都在给AI戴镣铐跳舞。

RUA*:机器人使用智能体,指的是像操作电脑一样去操作物理机器人的AI系统,通过写代码或调用工具的方式驱动机械臂、底座这些硬件。

如果机器人遇到的情况不在那套预制工具的覆盖范围内会怎样。论文里举了个特别扎心的例子,叫做Nut任务,就是把一个螺母套到钉子上。这个任务需要插入时的力反馈,也就是感知到阻力变化来判断有没有装对位置。结果几个用预制工具库的系统,CaP-X、RHO、ASPIRE,哪怕它们已经通过大量试验积累了技能库,成功率分别只有0%、1%、9%。为什么这么低,因为它们提供的工具接口里压根没有力传感器读取这个选项。不是AI不聪明,是它手里没有这把钥匙。

这就好比你让一个厨艺很好的师傅去做菜,但厨房里只给了一个固定菜单上列出的那几种调料瓶,师傅想加点别的味道根本没地方拿。哪怕师傅已经做了几百次这道菜积累了经验,只要调料柜里没有那一味,菜就是做不出那个味道。而如果直接把整个厨房的食材柜都打开给师傅,让他自己去找、自己去配,哪怕是个新来的厨子,只要手艺够硬,照样能做出以前做不出的味道。

这个厨房的类比不是随便打的。它精准对应了OpenRUA的核心设计选择:不是给AI一套受限的工具箱,而是直接给它整个机器人的原生软件接口。ROS 2这套接口里,传感器读数、力矩反馈、相机画面、关节状态,全都在那儿摆着,AI想用哪个自己去拿,不用先问工程师"能不能给我加个力传感器接口"。

这揭示了一个更深的矛盾。过去大家做机器人智能体研究,潜意识里觉得AI能力有限,所以得靠人类工程师的精心设计来兜底,靠额外的编排逻辑来补足AI的短板。这篇论文的作者提出了一个挺大胆的假设:如果AI本身已经足够聪明了呢。那些复杂的编排系统,可能根本不是机器人控制的必需品,而只是在弥补AI能力不足的权宜之计。

workspace即harness:一种极简设计

OpenRUA给自己起的名字叫**工作区即harness**,这个说法听起来有点抽象,但拆开看其实特别直白。

harness*:在机器人智能体研究里,指的是围绕AI搭建的整套运行环境和任务编排逻辑,相当于给AI搭的舞台和剧本。

过去大部分系统给AI搭的"舞台"相当复杂,有专门设计的交互流程,规定了第一步干什么、第二步干什么,还有专门的工具接口让AI调用。OpenRUA反过来,把这套复杂舞台拆掉了,只留下一个文件夹。这个文件夹里有什么。一份README告诉AI从哪儿开始,一份机器配置文件告诉AI这台机器人有什么传感器、关节限制是多少,几份文档讲解怎么用ROS 2的各种接口,再加上几个示例代码,比如怎么保存一张相机照片,怎么发一个关节轨迹指令。

仅此而已。没有规定AI必须先感知再决策再执行,没有强制的任务分解模板,AI自己决定什么时候该看一眼摄像头,什么时候该写代码,什么时候该验证结果。

这个设计思路背后有个判断:顶尖的编程智能体,比如Claude Code,早就证明了自己能在完全陌生的代码仓库里自主工作,读代码、改代码、跑测试、根据报错信息修正自己的判断。这种能力,在机器人场景里应该同样适用,不需要再额外给它搭一层特殊的脚手架。

这让我想起带新员工的场景。有的管理者喜欢写一本厚厚的操作手册,规定员工每一步该怎么做,点哪个按钮、填哪张表。这样做的好处是出错概率低,坏处是员工永远长不出自己解决问题的能力,一旦碰到手册没写的情况就卡死。另一种管理方式是只给新员工一份公司的基本资料和工具清单,让他自己摸索着把事情做成,相信他的专业判断力。如果你的员工本身足够优秀,后一种方式反而能激发出手册永远写不出来的灵活应对能力。关键问题在于,你有没有判断准"这个员工到底够不够格"。OpenRUA的研究者用实验结果证明了,现在的编程智能体,够格。

工作区还有个挺有意思的功能,它充当了AI的**外部持久记忆**。

外部持久记忆*:因为AI的对话上下文窗口是有限的,无法无限塞入所有历史信息,工作区里保存的图片、代码、笔记可以在任务进行中随时被重新读取,相当于给AI挂了一个外接硬盘。

AI在干活过程中会自己把东西归类放进不同的文件夹,拍的照片放进snaps,写的代码放进scripts,心得笔记放进work。等任务进行到后期,需要回顾之前的发现时,直接去翻文件夹就行,不需要把所有历史对话都塞进脑子里记着。

感知变成读写文件,操作变成敲代码

OpenRUA最核心的两句话总结是:把机器人的感知这件事,重新定义成普通的文件读写操作;把机器人的动作控制,重新定义成普通的命令行编程任务。

这句话听起来像文字游戏,但背后是对"AI到底该怎么用机器人"这个问题的彻底重构。

拿感知来说,机器人的摄像头会源源不断产生图像数据,力传感器会源源不断产生力矩数据,如果把这些数据流不断塞给AI,很快就会把AI的注意力和处理能力淹没。OpenRUA的做法是,AI自己决定什么时候需要看一眼,调用一个保存图片的小工具,把这一瞬间的画面存成一张PNG文件,深度数据存成一个数组文件。之后AI可以像读取普通文件一样,把这张图片读出来用自己的视觉能力分析,或者写一段Python代码对这个数组做数学计算。

论文里统计了一个数字,挺让人意外的。在1500个测试回合里,AI有72.67%的比例会自己写代码处理这些保存下来的图像,比方说把图片裁剪、放大、画上网格线,方便自己看清细节。有96.80%的比例,AI会写程序从深度数据里计算出具体的坐标数值,用来指导机械臂该往哪个方向移动多远。

这个数字意味着什么。意味着AI不是被动地"看一眼就算了",它会主动地把原始的传感器数据,加工成自己更容易理解和利用的形式,就像你拿到一份原始的会计流水账,会自己整理成图表才能看出趋势。

论文里有一个具体的例子特别说明问题。在CaP-Bench的螺母装配任务里,AI先读取俯视相机拍下的照片,认出螺母和两个钉子的位置,然后用深度数据和相机的内部参数,把图像像素坐标换算成真实世界的三维坐标,这一步需要一套叫**针孔相机模型**的公式。

针孔相机模型*:描述图像上一个像素点,对应到真实世界空间中具体位置的数学换算方法,需要知道这个像素离镜头多远,以及相机本身的焦距参数。

接着AI把螺母区域裁剪出来放大六倍,叠加上一层每隔十个像素画一条线的网格,这样它自己去"看"这张放大的图时,就能更准确判断螺母手柄的朝向和宽度。抓取完成后,它再去读一眼机械手爪的手指间距,跟之前估算的手柄宽度对比,30.35毫米和30.4毫米,几乎完全吻合,这就是AI自己验证抓取是否成功的证据。

这一整套流程里,没有一行代码是研究者提前写好塞给AI的,全是它在执行任务过程中自己现场编写、现场调试出来的。

操作这边的逻辑类似。AI可以一步一步地发送控制命令,每发一步就停下来看看效果,也可以写一个完整的程序,让程序自己在运行过程中根据传感器反馈调整动作,不需要每次都停下来问AI该怎么办。论文统计显示,95.87%的测试回合里,AI会自己写出控制机械臂运动的客户端代码,比方说控制夹爪开合的程序。50.13%的回合里,AI写出的程序带有真正的闭环反馈逻辑,根据传感器读数实时调整动作或者判断什么时候该停下来。

这里有个抽屉任务的案例特别生动。AI第一次尝试抓抽屉把手时,抓空了,传感器反馈夹爪间距只有1.9毫米,说明根本没夹住东西。于是AI重新写了一段程序,这次用比例反馈的方式,每次计算当前位置和目标位置的误差,按误差大小调整移动速度,移动一点就重新读一次位置,直到误差小于2.5毫米才停。拉开抽屉的过程也不是一股劲猛拉,而是每拉一段就检查一次夹爪间距和抽屉的实际移动距离,如果间距跌破8毫米说明可能脱手了,如果位置几乎没变说明可能卡住了,这两种情况都要立刻停下来。

这跟你拧一个生锈的瓶盖很像。如果你闭着眼睛一股劲硬拧,很可能拧过头把瓶子摔了,或者因为打滑而一直在做无用功却没察觉。但如果你一边拧一边感受手上的阻力变化,拧不动了就停下来检查一下是不是打滑了,这种"边做边感受"的方式成功率显然更高。AI写出来的这种反馈程序,本质上就是把这种"边做边感受"的策略变成了可执行的代码逻辑,而不是靠AI每做一步都要停下来重新思考一遍。如果没有这种闭环反馈,只是机械地执行一串固定动作,稍微有点误差积累下来就会彻底失败。

这套做法在两臂协同抬锅这种更复杂的任务里体现得更明显。机器人机位上没有现成的运动规划器,AI自己写了机械臂的正向和逆向运动学求解代码,还专门写了一个验证环节,把自己算出来的结果和机器人坐标系树里读到的实际数据对比,确认误差在0.5毫米以内。然后它设计了一个"同时发送两个机械臂的运动指令,再分别等待两边完成"的控制类,保证两只手臂能协调一致地抬起重物。第一次尝试抬起时,一边的夹爪打滑了,AI立刻检测到问题,重新测量移动后的物体位置,用一只手臂把它拖回原位,重新抓取时特意比上次深入7毫米,第二次尝试成功撑过了整个三阶段抬升过程,最后用相机测量确认两边手柄顶部高度差只有0.8毫米。

这整个过程读下来,你会觉得它不像是在"调用一个AI模型",更像是在看一个经验丰富的工程师现场排查问题、调试代码。而这正是这篇论文想证明的事:这种调试能力不需要专门为机器人任务训练,通用的编程智能体本身已经具备了。

数字说话:跟谁比,比出了什么

光讲故事不够,得看硬数据。

这张对比表格列出了CaP-Bench上不同系统的成绩。人类专家手写程序的平均成功率是82.6%。几个用预制工具库加积累技能的智能体系统,CaP-X是68.3%,RHO是70.0%,ASPIRE是81.0%。而OpenRUA,用Claude Code配合Opus 5模型,拿到了99.0%,比人类专家写的程序还高出整整16个百分点,比此前最强的ASPIRE高出18个百分点。

在LIBERO-PRO这个专门测试抗干扰能力的基准上,结果更有说服力。这个基准会故意打乱物体初始位置,或者换一种说法描述同一个任务,用来检验AI是不是真的理解任务,而不是死记硬背。之前提到的OpenVLA和π0两个经过大量演示数据训练的模型,在这种扰动下成功率是0%。一个叫Harness VLA的系统,把编程智能体和训练好的策略模型结合起来,还要借助提前探索过的参考种子记忆和访问评测标准答案的权限,拿到了82.4%。OpenRUA什么都没有,没训练、没记忆、不能偷看答案,拿到87.0%,反而更高。

这个对比揭示的东西挺扎心的。那些花了大量功夫做记忆系统、做参考探索、还偷偷能看到评分标准的复杂系统,到头来还比不过一个什么都没准备、从零开始靠自己现场想办法的通用编程AI。

在RoboCasa365这个厨房场景任务集里,还有一个更值得深挖的数字。这个基准把任务分成了"训练数据里见过的模板"和"训练数据里没见过的模板"两类,专门测试泛化能力。一个叫RLDX-1的训练好的策略模型,在见过的模板上成功率21.3%,到了没见过的模板上直接掉到5.0%,跌了超过四分之三。把它和编程智能体结合的Harness VLA系统,见过的任务61.0%,没见过的任务13.8%,依然掉了将近五分之四。而OpenRUA,见过的任务26.3%,没见过的任务28.1%,几乎没有差别,甚至略高一点。

这说明什么。说明依赖训练数据的策略模型,一旦碰到训练分布之外的情况就容易崩,而OpenRUA因为是现场写代码解决问题,不存在"训练分布"这个概念,它每次都是从头推理这个具体场景该怎么办,所以反而更稳。

这就跟考试作弊和真正理解知识点的区别一样。一个学生如果是把题库背下来了,换一道稍微变了数字的题就可能做不出来;而一个真正理解了解题原理的学生,哪怕题目形式变了,照样能推导出答案。OpenRUA走的是后一条路,代价是每次都得现场"推导",速度慢一些,好处是碰到新情况不会直接崩溃。

算力堆上去会怎样

这里有个挺实际的问题:给AI更多思考时间,或者让它多试几次,成功率会不会继续涨。

论文做了一组实验,在LIBERO-10这个任务集上,测试不同的"对话轮数预算"和"输出算力预算"对成功率的影响。结果显示,随着允许AI多交互几轮,成功率确实在涨,但涨到一定程度就趴下了,而且不同模型趴下的位置完全不同。用Opus 5模型的时候,给100轮交互预算能解决50%的任务,给200轮能涨到70%,之后基本就不再涨了。用Fable 5.1模型,给100轮预算就能解决61%的任务,比Opus 5起步还快,最终趴在75%左右。而用Sonnet 5模型,给100轮预算几乎解决不了任何任务,只有1%,得一直加到400轮左右才慢慢爬到24%,而且这还是它的天花板。

这揭示了一个容易被忽略的事实:给AI更多试错机会,效果跟给学生更多做题时间类似,学得快的学生多给时间能冲到更高分,但天赋不够的学生,再怎么加时间也冲不过那道坎。算力和时间不是万能钥匙,底层模型本身的能力才是真正的天花板。

更有意思的是成本分析。按API市场价格算下来,Sonnet 5模型平均每次成功任务要花93.3美元,而Fable 5.1模型平均只要11.2美元。这不是因为Fable 5.1单位价格更便宜,实际上它每百万token的价格反而比Sonnet 5贵,但因为它成功率高、完成任务所需的交互轮数更少,折算下来每次成功的总花费反而更低。

这就像修车,一个修理工收费低但手笨,修一次车要反复试错半天还可能修不好;另一个修理工收费高但经验足,很快就能精准定位问题修好。算下来,后者可能更划算。单价便宜不等于总成本低,这个道理放在选择哪个AI模型上也一样适用。

失败的时候,到底是谁的错

一个诚实的研究不会只报喜不报忧。研究团队专门分析了413个失败案例,想搞清楚这些失败到底出在哪个环节。

分析结果挺有意思。58%的失败,其实不是AI能力不行,而是任务说明和评测标准之间本身就有矛盾。比方说有个抽屉任务,AI拉开了62到136毫米就停了,觉得已经完成任务,但评测标准要求必须拉开超过140毫米,而任务指令里压根没写这个具体数字。还有个把酒瓶放进酒架的任务,AI考虑到瓶子会顺着斜坡滚下去,特意把瓶子横放在凹槽里固定住,结果评测标准却要求瓶底必须落在架子底部一个22毫米宽的区域里。AI做出的选择甚至更合理,但评分规则没这么定义。

这说明一个挺重要的事:很多时候所谓的"AI失败"根本不是AI笨,是人类给的任务描述本身就留了歧义,而评测标准又用了一套AI压根看不到的隐藏规则来打分。这不是AI的锅,这是整个评测体系设计上的漏洞。

18%的失败涉及物理极限,比方说要抓的东西比夹爪张开的最大宽度还大,或者物体掉到地上而机械臂的手臂长度够不着。这类问题换个初始条件可能就成功了,说明的是操作余量太小,不是任务根本做不到。

剩下24%才是真正AI自己的失误,包括控制错误、感知错误、还有把预算浪费在无意义的等待上。比方说有个案例,AI测量到手柄宽度是30毫米,却给夹爪下了一个单指只留8毫米间距的命令,相当于明明量准了尺寸却下错了指令,结果物体被夹爪越夹越紧最后弹飞了出去。

这类错误读起来挺让人唏嘘的。AI已经具备了测量和推理的能力,但在把测量结果转换成实际执行指令这最后一步上,还是会犯一些看起来很基础的疏忽。这也提醒我们,写出好的感知程序和做出正确的决策,是两件不完全重叠的事。

写在后面

读完这篇论文,最让我意外的不是那99%和87%的成功率数字,而是那个Nut螺母任务的对比。几个花了大量功夫积累技能库、优化程序的系统成功率是0%、1%、9%,而OpenRUA一次性就拿到100%。这不是因为OpenRUA的AI更聪明,而是因为它手里有一把别人没有的钥匙,力传感器的原生访问权限。

这件事让我重新想了一下"工具"和"能力"的关系。我们总以为限制AI能力的是智力,是推理深度,但这个案例说明,很多时候限制AI表现的根本不是脑子,而是手上有没有合适的工具。给了对的工具,一个通用模型能瞬间碾压一群专门优化过的系统。这跟给一个本来挺聪明的人一把钝刀,他砍半天砍不开一根柴,而给他一把合适的斧子,一下就劈开了,问题从来不在于他的力气够不够。

另一个让我反复琢磨的点,是那个失败分析里58%的"任务标准矛盾"。这个数字其实在说一件挺尴尬的事:现在很多机器人测评基准,本身的设计就有问题,它们测的不是AI理解任务的能力,测的是AI能不能猜中评分者脑子里那个没写出来的隐藏标准。如果一个系统在这种评测下拿了低分,到底该归咎于AI不够聪明,还是该归咎于出题的人没把题出清楚。这个问题可能比表面上看到的成功率数字更值得深究。

如果有一天,机器人真的不再需要为每个新任务专门训练,而是像人类新员工一样,给个说明书和工作台就能自己摸索着上手,那整个机器人产业的成本结构会被怎样重新改写。

Q&A

Q1:OpenRUA是什么?

A:OpenRUA是一个让通用编程智能体直接操作机器人的系统,它不给AI预制的工具库或训练好的策略模型,只提供一个包含ROS 2文档和基础示例的工作目录,让AI自己写代码完成感知和控制任务。

Q2:OpenRUA的成功率表现如何?

A:使用Claude Code配合Opus 5模型,OpenRUA在CaP-Bench基准上成功率达到99.0%,在LIBERO-PRO基准上达到87.0%,均超过了依赖专门训练策略或预制工具库的现有系统。

Q3:OpenRUA和训练好的机器人策略模型比,优势在哪?

A:训练好的策略模型一旦碰到没见过的场景容易失败,比如RLDX-1在新任务上成功率从21.3%跌到5.0%。OpenRUA不依赖训练数据分布,而是现场写代码推理解决问题,在新旧任务上表现几乎没有差别。

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。