你有没有想过一个问题:教小孩子骑自行车的时候,最有用的经验是什么?不是家长在旁边讲一百遍"要保持平衡",而是孩子真的摔倒过几次之后,身体自己记住了哪个角度会倒、该怎么救。
机器人的学习过程,长期以来恰恰缺了这一课。
**核心问题:机器人只会做"标准动作",不会"临场应变"**
现在最火的机器人控制方式叫做视觉-语言-动作模型
VLA(Vision-Language-Action)模型:一种让机器人看懂画面、理解语言指令、然后直接输出动作的智能系统,是当前机器人操作领域最主流的技术路线
。你给它一句话"把苹果放进篮子",配上一张摄像头画面,它就能规划出一串抓取、移动、放置的动作。这类模型在近几年进步飞快,π0、π0-FAST这些代表性模型已经能完成相当复杂的双臂协作任务。
但这里有个几乎被所有人忽略的软肋。
这些模型的训练数据,几乎清一色来自"专家成功演示"。人类操作员规规矩矩地做一遍任务,全程顺利,中间不出岔子,这样的视频喂给模型学习。问题是,现实世界不会天天给你顺利剧本。物体会打滑,会倾倒,会被放偏,双臂协作时一只手可能没跟上节奏。一旦执行过程偏离了"标准轨迹",机器人就走进了一片它从没见过的陌生地带,训练数据里根本没有教过它这种情况该怎么办。
论文里给出的对比数据很扎心。在RoboTwin 2.0的高难度双臂任务测试中,π0这个相当成熟的模型,平均任务成功率只有39.6%。什么概念?十次任务里,有六次是失败的。而在更细分的短程任务里,像"盖章"这种动作,成功率甚至只有3%。这不是模型能力不行,而是它遇到偏差之后完全不知道怎么纠正,一步错步步错,最后彻底崩盘。
已有的解决思路大致分两派。一派是"检测到问题就回滚",退回到更早的安全状态重新来过,比如利用世界模型预测或者干脆重启这个阶段。另一派是"提前准备纠错数据",靠人工设计或者随机扰动来制造一些"出错场景",让模型提前学过该怎么补救。
但这两派都有一个共同的盲点:它们都没有认真问过一个问题,机器人真实执行时,到底会以什么样的方式、什么样的幅度出错?
随机扰动就像是在教孩子骑车之前,随便找几个坑让他练习摔倒,但这些坑跟他家门口那条路上真正会遇到的坑,可能压根不是一回事。如果不去研究真实的失败模式,纠错训练数据很可能覆盖的是模型根本不会遇到的错误类型,而真正高频出现的偏差反而没被覆盖到。这就是这篇论文要解决的核心矛盾:纠错监督信号应该从哪里来才最有效。
**CARE的第一步:把失败经验变成统计规律**
研究团队提出的框架叫CARE(Corrective Atomic Robotic Execution,纠正性原子机器人执行)。它的第一个关键动作,是老老实实地让机器人先失败一百次。
具体做法是这样的:先让机器人不带任何纠错机制,执行一百次标准任务流程,把所有失败的案例记录下来。每次失败,系统会记录下失败发生的具体阶段,以及在那个阶段偏离了多少,包括三维空间上的平移误差和旋转误差(这里主要指绕竖直轴的偏航角)。
原子阶段(Atomic Stage):把一个长任务拆解成一个个最小的、有明确起止条件的子步骤,比如"抓取""放置""移交",每个阶段有清晰的开始和结束判断标准
这一步的巧妙之处在于,不同阶段的失败模式差别很大。抓取阶段常见的偏差是夹爪和物体没对齐,放置阶段常见的偏差是物体和目标位置差了一截。如果把所有阶段的偏差混在一起建一个笼统的模型,就像用一份"全国人均身高"的数据去给某个具体班级的学生做衣服,看似有数据支撑,实际上完全不贴身。CARE的做法是给每个阶段单独建一个"偏差分布",这样才能真正抓住每个环节各自的出错规律。
收集完这些真实的偏差数据后,团队对每个数值维度(比如x方向偏移、y方向偏移、偏航角)分别尝试拟合六种候选的统计分布,包括高斯分布、贝塔分布、伽马分布等,然后用赤池信息量准则
AIC(Akaike Information Criterion):一种用来在多个候选统计模型中挑选"最优拟合"的评价标准,兼顾模型的准确度和简洁性
和柯尔莫哥洛夫-斯米尔诺夫检验来挑出拟合得最好的那一个。
有了这个经验驱动的失败分布之后,CARE开始"造"新的失败场景。它从拟合好的分布里采样出一个新的偏差值,把这个偏差叠加到某个阶段的物体位姿上,然后让物理引擎或真实世界继续往下跑,观察系统会演变成什么样子。这里有个细节值得强调:合成出来的失败状态,不是简单复制之前收集过的某次失败,而是基于统计规律生成的全新物理状态,再经过物理动力学的真实演化。相当于不是把孩子摔过的那个坑原样搬回来,而是根据孩子容易摔跤的那类路况,专门规划出一条新的但同样具有代表性的练习路线。
针对每一个合成出的失败状态,仿真环境里用运动学逆解或运动规划算法自动生成纠正演示,真实世界里则靠人工远程操作来演示如何补救。这些纠正演示都很短,一旦达到该阶段的恢复目标就立刻结束,不会画蛇添足地继续往后走。
**CARE的第二步:知道什么时候该出手纠正**
光有纠正能力还不够,机器人还得知道"现在需要纠正吗"以及"该用哪种纠正手段"。这是CARE框架的第二个核心部件,叫原子纠正执行。
整个任务先被拆解成若干个原子阶段,这个拆解工作交给一个视觉语言模型
VLM Planner(视觉语言模型规划器):论文中使用GPT-4.1在任务开始时对高层指令进行一次性拆解,生成每个阶段的标准动作、监测线索、终止条件以及备用的纠正指令,之后不再频繁调用
来完成。规划器只在任务开始时被调用一次,输出的阶段计划固定不变,后续执行过程中不需要反复问它"现在该怎么办",这样可以避免频繁调用大模型带来的延迟。
真正负责实时判断的是一个三维几何监测器
3D Monitor(三维几何监测器):一个基于点云的规则判断器,不是学习出来的策略,也不是靠大模型做主观判断,而是用物理坐标和预设的几何阈值来客观检测夹爪、物体、目标之间的空间关系是否正常
。它会持续跟踪夹爪的开合状态,并在关键节点(比如夹爪合拢的瞬间、松开物体的瞬间)触发一次几何检查。检查时,系统用图像分割模型SAM 3提取夹爪、物体、目标区域的掩膜,再用深度估计模型Depth Anything 3给出深度信息,两者融合成三维点云,进而计算出诸如"夹爪和物体中心偏了多远""物体最终落点和目标差了多少"这样的具体数值。
一旦发现偏差超过预设阈值,系统会在两种纠正方式中做选择。一种是执行中调整
Intra-execution Adjustment(执行中调整):在动作还没完成、关键事件还没发生之前,检测到偏差趋势就立刻做出局部微调,避免继续朝错误方向执行下去
,比如快要抓偏了,赶紧在夹爪合拢前微调位置。另一种是执行后重新操作
Post-execution Re-operation(执行后重新操作):当某个阶段的结果已经确定失败,比如抓空了或者放歪了,就把这个原子阶段整体重新来一遍,而不是继续往下走
,比如已经抓空了,那就干脆重新抓一次。这两种手段用的是同一个VLA执行器来完成动作,不需要切换成另一套专门的"救火"模型。
这个设计其实很像老练的外科医生做手术。手术中如果发现缝合位置差了一点点,医生会当场微调,不会因此叫停整台手术重来;但如果发现某一针整个缝错了地方,那就必须拆了重缝。如果没有这种分级处理机制,任何一点小偏差都要整体推倒重来,手术效率会被拖垮到无法接受的地步;而如果所有问题都只靠现场小修小补,真正的大错又会被将就带过,留下隐患。CARE让系统自己判断当前的偏差属于哪一级,值得庆幸的是,这个判断依据的是客观的点云几何计算,而不是一个可能"看走眼"的语言模型在主观揣测。
论文专门做了对比实验来验证这个三维监测器相比大模型判断的优势。结果显示,三维监测器的平均判断准确率达到93.8%,而用GPT-4.1做视觉判断的准确率只有71.4%,差了整整22.4个百分点。更关键的是响应速度:三维监测器每次判断只需要0.24秒,而大模型判断平均要花3.40秒,快了14.1倍。想象一下开车时判断前方是否要急刹车,如果反应机制要三秒多才给出结论,这台车基本上已经撞上去了。
**FSR-Bench:专门考核"摔倒后能不能爬起来"的考场**
光有纠正能力还不够,怎么证明这套系统真的有用?这就需要一个新的评测标准。
现有的机器人操作基准测试,几乎都是从"干净的初始状态"开始考核,看机器人能不能顺利完成任务。这就好比考驾照只考正常路况下的直线行驶和倒车入库,完全不考"车子突然打滑了怎么办"。研究团队因此专门设计了一个新基准,叫失败状态恢复基准
FSR-Bench(Failure State Recovery Benchmark):专门评估机器人从中间失败状态恢复能力的测试基准,不同于常规基准从"标准起点"开始考核,它直接把机器人扔进一个已经出了问题的场景里,看它能不能自己爬出来
。
FSR-Bench一共设计了36个恢复场景,覆盖五类任务,分成两个难度档。简单档包含21种局部偏差,比如抓取失败、放置偏移、姿态错位,这类问题通常一次纠正就能解决。困难档包含15种结构性异常,比如物体倾倒、意外掉落、目标位置被占用,这类问题往往需要多步骤连续纠正,甚至需要双臂协调配合才能收拾残局。
这里有个设计特别值得说一说:训练数据和测试数据用的是完全不同的来源方式。训练时用的纠正数据,是在每种失败场景的预设范围内均匀随机采样得到的,这样做是为了避免"作弊",防止训练数据和测试数据本质上是同一批东西。而测试时的失败初始状态,则来自对一批"裸奔"(不带纠正机制)的标准策略进行大量试跑,统计出它们真实会踩中的失败分布,再从这个分布里采样、注入偏差、经过物理引擎演化,生成一个个全新的失败起点。这个设置保证了评测的公平性:所有被比较的方法,站在同一条起跑线上,面对的是同样真实、同样棘手的失败开局。
**数据说话:CARE到底带来了多大的提升**
理论说得再漂亮,最终还是要看数字。
在RoboTwin 2.0的七个高难度双臂任务上,π0搭配CARE之后,平均成功率从39.6%飙升到60.7%,提升了21.1个百分点。搭载π0-FAST(一种把动作离散成token序列的自回归架构)时,成功率从17.4%提升到33.1%,提升15.7个百分点。具体到某些任务,提升幅度更加惊人,比如"盖章"任务,π0的成功率从3%直接跳到29%,几乎是从"基本不可能"变成"接近三成能成"。
在RoboFactory的多臂协作任务上(涵盖双臂、三臂、四臂场景),π0搭配CARE后平均成功率从62.0%提升到74.0%,π0-FAST从26.7%提升到36.0%。
真实世界的表现同样亮眼。团队在一台双臂SO-101机器人平台上测试了四个长程操作任务,π0的平均成功率从30.8%提升到50.0%,π0-FAST从18.8%提升到31.3%。作为对照,团队还专门复现了另一套名为FailSafe的纠错方案在同一平台上跑了一遍,CARE的表现分别比它高出13.7和7.3个百分点。
在FSR-Bench这个专门的恢复能力考场上,π0的表现最亮眼,简单档的平均恢复成功率从38.8%提升到57.2%,困难档从15.8%提升到21.2%。
论文还做了细致的消融实验来拆解到底是"纠正数据"重要还是"实时判断执行框架"重要。结果显示两者都有贡献,但纠正数据的贡献更大一些。以π0为例,只加纠正数据(不改变执行框架)能把成功率从31.6%提升到40.8%,提升9.2个百分点;只改进执行框架(数据不变)能提升到35.8%,提升4.2个百分点;两者叠加则达到54.8%,比单独任何一项都要高出一大截。这说明"知道从哪里学"和"知道什么时候用"是两件互相成就的事情,缺一个都打折扣。
团队还专门比较了经验引导采样和均匀随机采样这两种数据合成策略。结果均匀采样明显吃亏,用经验引导的方式,π0平均成功率高出12.2个百分点,π0-FAST高出8.8个百分点。这也印证了开篇提出的那个判断:随机扰动很容易错过真正高频出现的长尾失败模式,而基于真实失败经验拟合出的分布,才能给纠正训练提供更有针对性的养分。
**写在后面**
读完这篇论文,最让我印象深刻的其实不是那些提升的百分点,而是那个近乎笨拙的第一步:先老老实实地跑一百次,记录下机器人到底是怎么摔跤的。
这跟深度学习圈子里近些年很流行的"端到端一步到位"的思路是有点拧着来的。CARE没有幻想一个模型能天生具备纠错的直觉,而是承认了一个朴素的事实:如果你不知道一个系统真实会犯什么样的错,你给它准备的"纠错练习"很可能是无的放矢。这种"先观察,后建模,再合成"的三段式思路,其实是把统计学里最基础的经验分布估计,重新请回了机器人学习的舞台中央。
论文里还有个细节让我多想了一下。三维监测器之所以能做到比大模型判断快14倍、准22个百分点,靠的不是更复杂的模型,而是把判断这件事拆解成了几何计算:算算点云中心的距离,算算法向量的夹角。有时候把一个模糊的"这个动作对不对"问题,转化成一个具体的、可以用坐标算出来的数字问题,反而比塞给大模型去"看图说话"更靠谱。这可能是个值得记住的教训:不是所有判断都需要语义理解,有些判断本质上就是几何题。
论文最后提到未来打算把强化学习融入CARE框架。这倒让人好奇,当机器人不再只是被动地从失败中总结经验分布,而是能主动去探索"我怎么做才能更快学会摔倒后怎么爬起来"的时候,这套系统又会进化成什么样子?
Q&A
Q1:CARE是什么,它主要解决什么问题?
A:CARE是一个让视觉语言动作机器人模型学会从失败中恢复的框架。它通过分析机器人真实执行任务时的失败数据,生成针对性的纠正训练样本,并结合三维几何监测在执行过程中实时判断何时需要局部调整或整体重做,从而解决机器人一旦偏离标准轨迹就束手无策的问题。
Q2:FSR-Bench和普通的机器人测试基准有什么不同?
A:普通基准测试通常从干净的初始状态开始考核机器人能否顺利完成任务,而FSR-Bench专门从中间失败状态开始考核,看机器人能不能自己纠正过来。它包含36个恢复场景,分为局部偏差和结构性异常两个难度档,能更真实地评估机器人的应急恢复能力。
Q3:CARE相比其他纠错方法效果提升有多大?
A:在仿真环境中平均任务成功率提升14.5个百分点,真实世界测试提升15.9个百分点,在FSR-Bench恢复能力测试中提升7.5个百分点,并且比另一套名为FailSafe的纠错方案表现更好。







