这项由加州大学伯克利分校、英伟达、卡内基梅隆大学和博世公司联合主导的研究,于2026年7月以预印本形式发布在学术论文平台arXiv上,编号为arXiv:2607.05369v1。感兴趣的读者可通过该编号查找完整原文。
说到机器人,大多数人脑子里浮现的要么是工厂流水线上重复拧螺丝的机械臂,要么是科幻电影里无所不能的人形机器。然而现实中,机器人所处的境地颇为尴尬——要么太"呆",只会死板地重复同一个动作;要么太"笨",面对稍微复杂一点的场景就束手无策。研究团队把这两类任务分别称为"固定自动化"和"泛化机器人学习",而他们真正感兴趣的,是夹在两者之间的一个巨大空白地带。
这个空白地带有一个新名字:**变分自动化**(Variational Automation,简称VA)。以超市收银台后面的打包机器人为例,它每天面对的商品形状各异、摆放位置随机,但工作环境、货架布局、机械臂型号这些大框架是固定的。这类任务既不像焊接那样千篇一律,也不像"帮我去任何一个陌生家庭的厨房里做饭"那样天马行空——它们处于一个"变化有限、但变化确实存在"的区间。商业和工业场景中,这样的任务比比皆是:仓库分拣、咖啡馆调饮、三明治流水线、数据中心插拔电缆……
当前主流的机器人学习方法在这里碰了壁。一类叫做"端到端视觉-语言-动作模型"(VLA)的方法,相当于给机器人喂大量演示视频,让它自己摸索规律。这种方法在花样多变的家庭环境里表现尚可,但一旦需要在同一个工作台上日复一日地保持高可靠性,它就开始频繁出错——而商业场景的容错空间极其有限,一条流水线每小时出几次错,成本就会急剧上升。另一类传统方法则是工程师手工写代码,精确到每一个关节角度,但这需要大量专业人力,面对新任务几乎要从头再来。
于是,研究团队提出了一套名为**GaP(Graph-as-Policy,图策略)**的新方案,核心思路是:让人工智能自动生成一张"任务执行地图",然后在虚拟的模拟环境里反复排练、自我改进,直到表现满意,再交给真实机器人去执行。
一、机器人的"乐谱":为什么要把任务画成一张图
理解GaP的核心,需要先理解一个比喻。把机器人要完成的任务想象成一首复杂的交响乐。单独一个演奏者很难同时看顾所有声部,但如果有一张乐谱,每个乐手只需负责自己的部分,整首曲子就能协调运转。GaP中的"计算图"(Computation Graph),就扮演了这张乐谱的角色。
这张图由"节点"和"边"构成。每个节点代表机器人需要执行的一个具体动作或判断,比如"拍一张照片"、"识别面前的物体是什么"、"规划一条不碰到障碍物的运动路径"、"闭合夹爪抓起物体"。边则代表信息流动的方向:上一个节点的输出,成为下一个节点的输入。有些边是"数据边",纯粹传递信息;有些边是"控制边",相当于"如果这一步成功,就执行下一步;如果失败,就执行备用方案"。
这种结构有几个显著好处。第一,模块化——每个节点独立运作,出问题时容易定位和修复,不会因为一处错误牵连整个系统。第二,可复用——识别物体的节点今天用在打包任务里,明天可以直接搬到另一个任务里,不需要重写。第三,透明——人工智能生成的这张图是可以被人类读懂的,不是一个不可解释的黑盒子。这一点在商业场景中至关重要:当系统出错时,工程师需要知道问题出在哪一步,而不是对着一个庞大的神经网络束手无策。
GaP的灵感部分来自两个经典系统。一个是机器人领域广泛使用的"机器人操作系统"(ROS),它本身就是基于计算图结构来组织各模块之间通信的;另一个是"任务与运动规划"(TAMP),一种通过层级图来同时处理高层决策和底层运动的经典方法。GaP相当于在这两者的基础上,加入了人工智能自动生成和自我优化的能力。
二、机器人的"技能书":MORSL库里藏着什么
有了乐谱框架,还需要具体的音符。GaP配套了一个名为**MORSL**(模块化开放机器人技能库)的工具箱,初始版本包含51个技能模块,覆盖了机器人执行任务所需的各类能力。
这些技能大致分为几个家族。感知类技能负责让机器人"看清楚"世界,包括SAM2、SAM3这类分割模型(能把图像中的物体一个个勾勒出来)、Grounding DINO(能根据文字描述找到对应物体)、Molmo(一种视觉问答模型)等共15个工具。抓取规划类技能负责决定从哪个角度、以什么姿势夹住物体,包括Contact GraspNet、GraspGen这类基于深度学习的抓取方案,共5个。运动规划类技能负责计算机械臂从当前位置到目标位置的无碰撞路径,使用的是cuRobo和cuRobov2这类高效的GPU并行规划工具,共8个。此外还有15个基于NumPy和OpenCV的二维、三维视觉处理工具,以及8个控制和验证原语。
每个技能模块都有明确声明的"输入"和"输出"接口,就像乐高积木的凸凸和凹凹——只要接口匹配,就可以自由组合。负责协调整个系统的AI"指挥官",在生成任务图时,会参考这些接口定义来决定哪些节点可以相互连接,避免把一个输出"照片"的节点,接到一个期待接收"三维点云"输入的节点上。
MORSL的设计遵循了Anthropic公司提出的"Agent Skills"规范,使得AI代理能够自动查阅技能说明、决定何时调用哪个技能,以及如何把它接入任务图中。这套体系是开放的,随着更多技能被加入,GaP能处理的任务范围也会不断扩大。
三、多个AI"工程师"分工协作:GaP的生成流程
GaP的运作流程,可以类比为一个小型工程团队接到一个新项目时的工作方式。甲方(用户)只需要提交一份自然语言任务描述,比如"在燃气炉上做爆米花",再加上相关物件的三维模型文件,剩下的工作就交给GaP内部的多个AI代理来完成。
第一位出场的是"行为代理"(Behavior Agent),相当于项目经理。它阅读任务描述,把整个任务拆解成若干个功能模块,比如"感知炉灶旋钮"、"抓取旋钮并旋转"、"找到爆米花锅"、"抓取锅柄"、"把锅放到炉灶上"、"等待加热"、"移走锅"、"关闭炉灶"。对于每个模块,它还会决定应该调用MORSL中的哪类技能。
接着,每个功能模块会被分配给对应的"技能代理"(Skill Agent),相当于各专业的工程师。技能代理负责在自己负责的模块内部,设计具体的节点序列和连接方式——先获取图像,再运行物体检测,再计算抓取姿态,再规划运动路径,再执行抓取动作,依此类推。每个技能代理只需要关注自己那一块,不需要理解整个任务的全貌,这大大降低了每个AI的工作复杂度,也减少了"上下文窗口"(AI能同时处理的信息量)的压力。
所有子模块生成完毕后,行为代理再将它们拼接成一张完整的计算图,并进行静态验证:检查数据类型是否匹配、连接是否合法、有没有悬挂的引用或孤立的节点。这一验证步骤能在图真正运行之前,就提前发现并报告结构性错误,避免机器人在执行到中途时因为程序崩溃而陷入危险状态。
四、在虚拟世界里"刷副本":自我学习的秘密
生成初始计算图只是第一步。GaP的真正亮点,在于它接下来会自动进入一个反复练习和改进的循环——这个过程被称为"基于排练的图优化"。
具体来说,GaP会调用英伟达的Isaac物理模拟器,在其中搭建出与真实任务对应的虚拟场景。在"做爆米花"这个任务里,虚拟场景包含一个逼真的Franka机械臂、一个燃气炉(带有可旋转的旋钮)、一个JiffyPop爆米花锅。然后,GaP会从任务的"信念空间"(也就是"物件在这个任务里可能出现的各种位置和姿态的分布")中采样N个不同的初始状态,在这N个场景里同时并行运行当前版本的计算图,观察结果。
在每个场景的每个关键节点之后,GaP都会记录下机器人和物体的状态——夹爪的开合程度、物体的三维位置、接触点信息等。这些记录就像考试卷的批注:哪道题做对了,哪道题在哪里出了问题。
当某个节点的通过率低于预期,GaP就会把失败案例的原始数据整理成一份"反馈报告",交给另一组AI分析代理。分析代理会尝试从物理层面找到根本原因——"夹爪没有接触到物体"意味着抓取位置计算有误;"物体在夹住后仍留在桌面"意味着夹爪并没有真正抓牢;"锅没有落在炉灶表面"意味着放置位姿需要调整。
基于这些分析,"图更新"模块会对计算图进行针对性修改:替换一个技能节点(比如把纯GraspGen抓取方案换成GraspGen与朝向包围盒方案的混合),调整某个节点的参数(比如修改放置目标的偏移量),或者重新设计某个感知模块(比如从识别整个锅改为专门识别锅的提手)。修改后的图会进入下一轮排练,如此往复,直到系统性能触达瓶颈不再提升,或者达到预设的迭代次数上限。
以"做爆米花"任务为例,自我学习经历了三个阶段。第一至三轮迭代中,最大的问题是夹爪无法稳定抓住锅,模拟器反馈显示夹爪与锅体之间始终没有接触,于是GaP将纯GraspGen方案替换为混合方案。第四轮时,GaP意识到应该抓提手而不是抓锅体,于是将感知目标从"锅"改为"锅的提手"。第四至第八轮,GaP持续微调锅放置到炉灶时的位姿偏移,直到锅能稳定落在炉灶中央。整个过程历时10轮迭代,最终在模拟环境中达到94%的成功率。
五、八项挑战的考卷:GaP在真实任务上的表现
为了检验GaP的实际能力,研究团队设计了八个全新的变分自动化基准任务,涵盖模拟和真实两类环境,每类各四个任务。这套基准本身也是这项研究的重要贡献之一,因为此前学界缺乏专门针对"变分自动化"场景的标准测试集。
前三大类任务——履行杂货订单、打包杂货商品、制作爆米花——各有模拟版本(在电脑中运行)和真实版本(在实际机械臂上执行),素材取自LIBERO这个知名机器人学习基准,但做了大幅扩展。原始的LIBERO任务中,物体位置几乎不变,这导致模型很容易通过死记硬背演示轨迹来"作弊",而GaP的测试版本引入了四种变化类型:物体在20×20平方厘米区域内随机移动、目标物体与容器互换位置、所有物体打乱顺序、以及以上所有变化混合出现。
在模拟环境下进行的5500次试验中(每个测试条件100次),GaP在所有变化类型下的成功率稳定保持在0.93到0.99之间,远高于同期的各类基线方法。对比最为鲜明的是对手VLA模型的表现:π0.5和MolmoAct2在物体完全不动的原始LIBERO任务上成功率高达96%和97%,一旦物体位置出现变化,成功率立刻跌至20%至26%的范围,与GaP的差距悬殊。
TipTop是另一个基线,它属于将大语言模型与传统任务运动规划结合的方法,理论上具备处理空间变化的能力。然而在实验中,它经常无法为形状特殊的物体(比如方形盒子)或高度不寻常的容器(高篮子)找到可行的运动路径,最终成功率徘徊在22%至31%之间。
GaP还展示了另一种用途:作为VLA模型的"前菜"。当GaP先把机械臂的腕部摄像头引导到目标物体正上方,再把控制权交给π0.5或MolmoAct2来执行抓取动作时,两个VLA模型的成功率都实现了显著提升——在某些测试条件下提升了一倍以上。这是因为GaP解决了VLA模型最头疼的问题:物体不在预期位置导致的"分布外"崩溃。当摄像头已经对准了目标,VLA就仿佛回到了它熟悉的训练场景,发挥也就更稳定了。
在真实机械臂上,GaP同样表现出色。履行杂货订单任务25次全部成功(100%),而对比方法TipTop只成功了8次(32%)。打包杂货任务中,GaP在30次尝试里成功了28次(93%)。制作爆米花任务完成20次中的18次(90%),两次失败分别源于一次逆运动学计算错误和一次因累积误差导致的夹持失败。在执行速度上,GaP完成单次拾放操作平均需要67秒(其中14.1秒用于感知,36.4秒用于运动执行),而TipTop平均需要95秒。
第四项任务是用UR5机械臂插拔USB-C数据线,这是一个对精度要求极高的任务。六个接口排成一排,机器人需要根据不同的语言指令("插入奇数号接口"、"按升序插入所有接口"等)完成相应动作,同时应对接口位置在距离和角度上的变化。在130次插入尝试中,GaP成功了121次,总体成功率0.93。GaP为这个任务生成的计算图直接调用了ROS系统中的原有节点,展现了它与传统工程方法无缝衔接的能力。
第五项任务是双臂协同洗箱子,两个Franka机械臂需要同时抓住一个放在堆垛上的箱子的两侧窄槽,将其抬起、翻转180度、再放到清洗台上。这个任务需要两臂精确同步,容错率极低。研究团队以一位专家工程师手工调试的计算图作为参照标准:手工版成功率0.987,GaP生成的版本成功率0.953,平均单次耗时分别为176秒和179秒,在3小时连续运行中每小时分别完成19次和18次任务。两者几乎相差无几,而GaP的版本是由AI自动生成的,无需工程师逐行编写代码。
六、切掉某个部件会怎样?三组消融实验的启示
为了验证GaP各个组件的必要性,研究团队做了三组"如果去掉某个部件会发生什么"的实验,这类实验在学术界被称为"消融实验",类似于厨师测试哪个食材对菜肴风味最关键。
第一组实验去掉"图结构",改为让一个单一AI直接输出Python脚本。结果成功率跌至零。原因在于,直接写代码时,AI需要从记忆里调用底层服务接口的确切方法名和参数格式,哪怕高层逻辑完全正确,一处细微的拼写错误或接口版本不匹配,就会让整个程序崩溃。图结构则把这些细节封装在独立节点里,避免了这类问题。
第二组实验把多个专业代理合并为一个单一的大语言模型。结果同样是成功率跌至零,所有试验在静态结构验证阶段就已失败。原因在于,单个AI同时需要管理全局数据流、局部逻辑设计和接口验证,超出了其能可靠处理的复杂度上限,频繁出现"悬挂引用"(引用了一个不存在的节点)或"节点命名冲突"等错误。更糟糕的是,即便经过多轮反馈迭代,单一模型往往在不同类型的错误之间来回震荡,无法收敛到稳定的正确解。
第三组实验去掉图验证步骤。结果显示,在"履行杂货订单"任务中,部分初次生成的子图存在错误连接——比如"运输阶段"的输入输出被错误地接到了"释放阶段",这类错误在运行时会导致程序崩溃。图验证步骤能提前发现并报告这些问题,帮助AI代理及时修正,显著提升了最终生成图的连通性和执行成功率。
七、研究的边界与未来的方向
任何一项研究都有它尚未触及的边界,坦诚地指出这些边界,往往比一味鼓吹成果更有价值。
研究团队明确指出,GaP目前的执行速度仍远低于工业标准。工业场景通常要求每小时处理500个单位,折算下来每个任务约7秒,而GaP目前完成一次拾放需要67秒左右,差距悬殊。瓶颈主要来自两个环节:调用视觉语言模型进行感知的推理时间,以及逆运动学和运动规划的计算时间。
在可靠性方面,GaP的表现已经令人鼓舞,但距离工业级要求(通常期望成功率在99%以上)仍有差距,尤其是在需要高精度的任务(如数据线插拔)中,还存在因视觉估计误差或深度估计不准确导致的失败。
在任务多样性方面,八个基准测试都是"准静态"的拾取-放置类任务,只有数据线插拔任务用到了力传感反馈。柔性物体处理、动态目标追踪、涉及动态力的复杂操作,目前还没有在GaP框架下被探索。
另一个值得关注的方向是:GaP目前在Benchmarks I和II(杂货任务)中,初次生成的计算图就已经达到了很高的成功率,因此跳过了自我学习环节。而在"做爆米花"这类更复杂的任务中,自我学习的价值才充分体现。这表明,随着任务复杂度提升,GaP的自我优化能力会越来越关键。
说到底,GaP这套系统的意义,在于它找到了一条介于"死板的传统编程"和"难以掌控的端到端学习"之间的中间路线。传统工程方法精确可靠,但设置成本极高,每换一个任务都要重新投入大量人力;端到端VLA模型灵活适应,但在需要长期稳定运行的商业场景中脆弱性明显。GaP用AI自动生成可解释的计算图,再用模拟器自我优化,试图把两者的优点结合起来。
对于可能使用工业机器人的工厂、仓库或服务业来说,这项研究描绘了一种可能的未来:当需要机器人完成一个新任务时,不再需要等待工程师花数周时间手动调试,而是提交一段任务描述,等待系统自动生成和排练,再部署到现场。这条路离真正落地还有距离,但方向已经变得更加清晰。
如果你对这项研究的技术细节感兴趣,完整论文可通过arXiv编号2607.05369查阅,代码和实验数据也将陆续在论文配套网站上公开。
Q&A
Q1:变分自动化(VA)任务和普通的工厂自动化有什么区别?
A:工厂里传统的固定自动化,比如汽车焊接,每次操作的对象形状完全相同、位置完全固定,机器人只需重复同一套动作就行。变分自动化则处于中间地带:任务本身是固定的,比如"把杂货装进袋子",但每次面对的物品种类、形状和摆放位置都不一样,机器人必须根据实时观察调整动作,不能死记硬背,但又不需要像家用机器人那样应付完全陌生的环境。
Q2:GaP系统的自我学习是怎么工作的,机器人真的会自己想出改进方法吗?
A:GaP的自我学习依赖模拟器。系统先在虚拟环境里运行当前版本的任务计划,在每个关键步骤后记录机器人和物体的状态,比如有没有真正抓住物体、物体有没有落在目标位置。遇到失败时,AI分析代理会从这些物理数据中推断出根本原因,然后修改计划,比如换一个抓取算法或调整放置位置的偏移量,再次排练,如此循环。这不是机器人凭空"想出"的,而是AI结合物理反馈数据做出的结构性调整。
Q3:GaP生成的计算图和人工工程师手写的代码相比,可靠性怎么样?
A:在双臂协同洗箱子这个任务中,GaP自动生成的计算图成功率为95.3%,而经验丰富的工程师手工调试的版本成功率为98.7%,两者差距约3个百分点,执行时间也基本持平(179秒对176秒)。对于一个完全由AI自动生成、无需人工逐行调试的系统来说,这个接近程度已经相当有说服力,但距离某些工业场景要求的99%以上可靠性仍有差距,研究团队也坦承这一点。