
你有没有想过,为什么机器人学一个新动作这么难?
人类学做一件事,比如把杯子放进微波炉再关上门,可能看一遍视频就会了。但机器人不行。它得先摸索几十次甚至几百次,撞坏几个杯子,才能勉强学会。而且每次撞坏东西,都得有人在旁边盯着,重新摆好场景,重新来一遍。这个过程慢、贵、还危险。
这就是Real2Gym这篇论文想解决的问题:能不能让机器人像人一样,看一段视频就学会一个技能,而且整个学习过程不用在真实世界里反复试错,而是先在虚拟环境里练熟了,再搬到现实中一次成功。
**试错的代价,比你想象的更贵**
先说说为什么机器人不能像强化学习那样疯狂试错。想象你在教机器人抓杯子,每次它失败一次,你就得重新把杯子摆回原位,重新启动机械臂,重新检查有没有损坏,这一套流程下来可能要几分钟。如果需要试错一千次才能学会,那就是几十个小时的纯人工值守时间,还不算杯子摔碎的成本。
强化学习*:一种机器学习方法,通过让智能体不断尝试动作并根据结果反馈调整策略,最终学会完成任务。
论文里提到,物理世界里试错还有个隐藏问题:失败之后往往很难把场景恢复到失败前的状态。比如机械臂抓杯子没抓稳,杯子摔到地上碎了,你没法让摔碎的杯子"复原",只能换一个新的。这在仿真里完全不是问题,一个reset()指令,场景瞬间回到初始状态。
所以答案很自然:把试错这件事挪到仿真里做。这不是什么新想法,强化学习圈子里早就在用仿真训练机器人了。但问题在于,仿真环境和现实世界的差距,业内叫"Sim2Real gap",一直是个头疼的坎。
**造一个像真的仿真环境,到底难在哪**
这里有个业内做法叫RialTo,一个之前的工作,它的流程是:先扫描场景,然后修补网格,然后建模关节结构,最后调物理参数。这一整套流程走下来,做一个新任务的仿真环境可能要花好几天,全靠人工一步步操作。
Real2Gym的作者们观察到一个更直接的问题:即使用最先进的多模态大模型,比如GPT-6 Astra,直接从视频生成Blender场景,效果也不够好。论文里给出的对比让人有点意外,GPT-6 Astra重建出来的场景,物体的尺寸经常不对,物体之间的相对位置会跑偏,摄像机角度也对不上。
Blender*:一款开源的三维建模和渲染软件,常用于制作可编辑的虚拟场景。
这些误差看起来很小,但后果很致命。想象一下你要往一个杯架里放杯子,如果场景里杯架的位置比实际偏了两厘米,机械臂伸过去要么撞上架子边缘,要么根本够不到杯子。这就是论文说的:"交叉几何误差会导致抓取间隙和接触几何失真",说白了就是:看起来像那么回事的虚拟场景,机械臂在里面根本没法正常干活。
**Real2Gym怎么解决这个矛盾**
论文提出的方案分成两条线:一条是把场景重建做得更精细、更严格地验证物理可行性;另一条是让机器人在这些验证过的环境里自己练,把成功和失败的经验都存下来变成可复用的技能。
先说第一条线,场景重建。整个流程从一段人类或机器人操作视频开始,先用一个叫Pi3X的几何估计工具从多个视角重建三维场景的形状,再用SAM2做实例分割,识别出哪些是要操作的物体、哪些是桌面这样的支撑面。
SAM2*:一种图像和视频分割模型,能自动识别画面中不同物体的轮廓边界。
Pi3X*:一种视觉几何估计方法,能从多张照片推算出物体在三维空间里的位置和形状。
这一步只是搭骨架。接下来才是这篇论文真正花心思的地方,事件驱动的修正。系统会盯着视频里的关键帧,也就是接触、抓取、支撑关系发生变化的那些瞬间,在每一帧上做自我检查。检查五个方面:主要偏差在哪、摄像机对齐没对齐、物体相对位置对不对、有没有穿模或者该接触的地方没接触上、外观像不像真实场景。
这个自我检查的过程有点像你搭乐高的时候,每拼几块就退后一步看看跟说明书图纸对不对,发现哪里歪了赶紧掰正,而不是把整套零件都拼完了才发现从第五步就错了得全部拆掉重来。如果每个关键帧都不检查,等把整个场景建完了才发现物体穿模、抓取动作根本执行不了,那前面所有工作等于白做。事件驱动的检查机制让错误在早期就被抓住修正,而不是积累到最后变成没法收拾的烂摊子。
验证通过之后,场景会被放进MuJoCo里跑一遍完整的物理仿真,看抓取稳不稳、支撑面会不会晃、物体释放是否正常。
MuJoCo*:一款专门用于机器人控制研究的物理仿真引擎,能精确模拟碰撞、重力、摩擦等物理效果。
**光有一个场景不够,得批量造出变体**
真实世界里机器人要面对的情况千变万化,杯子可能放左边也可能放右边,桌子可能高一点也可能矮一点。如果只在一个固定场景里训练,机器人学到的可能只是"记住了这个特定摆法",而不是真正学会了这个动作背后的逻辑。
论文的做法是,从一个验证通过的种子场景出发,系统性地在物体几何、位置朝向、支撑高度、材质、干扰物、背景、光照这几个维度上分别做扰动,每次只改一个变量,看看这个改动会不会让任务变得不可行。所有几何上的改动都会同步传播到视觉模型、碰撞网格、支撑面和机械臂安装约束里,保持内部一致。每个候选场景还得重新过一遍物理验证,失败的打回去重新调,通过的才会加入环境池。
这跟健身房里练不同重量的哑铃有点像。如果你只练一个固定重量,身体只会适应那一个负荷;换着来练轻的重的,肌肉才能真正学会发力的规律,而不是记住某一个特定动作。如果不做这种变体扩展,机器人学到的技能可能一换场景就失灵,那前面辛苦建的仿真环境也就失去了训练的意义。
**机器人怎么在这些环境里学本事**
场景和变体都准备好了,接下来是智能体怎么干活。这里有个挺关键的设计选择,就是决策的颗粒度。
论文对比的基线方法,比如直接用GPT-6 Astra做Direct Mode控制,是一步一动作地决策:每次模型只决定下一个具体动作,然后观察结果,再决定下一步。Real2Gym的做法不一样,它让智能体一次性生成一整段"操作阶段"的代码,比如"靠近物体、抓取、验证抓稳没有"这一串动作打包成一次响应。
这个设计带来的直接好处是效率。论文数据显示,在DROID数据集上,Real2Gym平均每个任务只需要16.17次模型响应,而GPT-6 Astra需要28.33次,GPT-5.6 Sol更是要71.42次。响应次数少了,意味着模型调用的token消耗也大幅下降,Real2Gym比GPT-6 Astra少了大约67.3%的token。
DROID*:一个大规模的真实世界机器人操作数据集,包含来自不同摄像机视角的机械臂演示视频。
EgoDex*:一个第一人称视角的人类操作数据集,记录了人手和手指的三维运动轨迹。
这就好比写文章,如果每写一个字就要停下来问一遍"这个字对不对",效率肯定比不上先打好一整段草稿再通篇检查。但这里有个反事实要追问:如果颗粒度太粗,会不会错过精细动作里的细节?论文在局限性部分也坦承了这一点,粗粒度的阶段级代码生成确实牺牲了一些局部的精细反应能力,这是效率和精度之间的权衡,作者也说未来想做自适应切换。
**做错了不白做,经验要存下来**
Real2Gym最有意思的一环,是它怎么处理"失败"这件事。
每次任务执行完,会有一个单独的分析过程去复盘这一集里发生了什么:观察到了什么、生成了什么代码、执行反馈是什么、最终结果如何。每一段代码执行都会被标记为正面效果、负面效果或者效果不明,这样同一集里成功的子步骤和失败的尝试能被区分开来。
失败分析会去对比失败的尝试和后续的修正动作,如果两者都有执行记录支撑,就能提炼出"什么情况下会出错、怎么纠正、下次遇到类似情况该怎么做"这样的经验规则。这些规则最终变成一种叫"技能"的东西,包含适用条件、任务步骤、效果检查点、物体相对运动规则和恢复策略。
技能库*:智能体在执行任务过程中积累下来的可复用经验集合,包含成功策略和失败修正规则。
这套机制最打动我的地方在于,运动规则是"物体相对的",也就是说它记录的是相对于物体锚点的位置关系和停止条件,而不是绝对坐标。这意味着即使下次杯子换了个位置,同样的技能规则依然能通过当前观测重新定位并生效。
这就像你学会了骑自行车拐弯,你学到的不是"在某条固定的街道左转九十度",而是"看到弯道就压低重心往内倾斜",这个技能能带到任何一条街上用。如果技能记的是绝对坐标,换个场景就完全失效,那积累经验这件事就没有意义了,每次都得从零开始学。
这套复用机制效果立竿见影。论文表格显示,用了技能库之后,Real2Gym在DROID上的成功率从75%涨到91.67%,在EgoDex上从83.33%基本持平但响应次数和token消耗都进一步下降。
**重建质量到底差多少,数字说话**
论文用GPT-6 Astra(打分模式)对重建结果打分,四个维度:内容对齐、视角对齐、动作保真度、仿真成功分数。
在DROID数据集上,Real2Gym的视角对齐得分是70.83,GPT-6 Astra只有30.00,差了整整40.83分。仿真成功分数上,Real2Gym是80.88,GPT-6 Astra是71.08。
在EgoDex数据集上差距更明显,Real2Gym的仿真成功分数达到85.76,比GPT-6 Astra的56.59高出51.5%的相对提升。论文里配的对比图也很直观,Real2Gym重建出来的场景,柜子结构、物体相对大小和位置、摄像机取景都更贴近原视频,而基线方法经常简化场景或者把物体位置搞乱。
**真机器人上到底行不行**
仿真里表现好不代表现实里就一定好使,这也是这类研究最容易被质疑的地方。论文在一台7自由度的Franka Emika Research 3机械臂上做了四个真实任务的测试:把积木放进盘子、把马克杯挂到杯架上、把杯子放进微波炉再关门、把盘子放到架子上。
Franka Emika Research 3*:一款常用于科研实验的七自由度机械臂。
结果是,在"把积木放进盘子"这个任务上,Real2Gym做到100%成功(3次里3次都成功),基线方法只有33%(3次里1次成功)。基线失败的原因挺有意思,积木的宽度稍微超过了平行夹爪水平张开的宽度,基线方法缺乏空间朝向的判断能力,一直尝试水平方向抓取导致夹爪卡住,而Real2Gym的智能体选择了从上往下抓,直接绕开了这个几何限制。
在"杯子放进微波炉再关门"这个长程任务上,Real2Gym同样是100%成功,基线是33%。基线失败要么是杯子放的位置卡在门槛上,要么是机械臂收回时撞到门框触发了安全停止。
有意思的是,在"把盘子放到架子上"这个任务上,两种方法零样本情况下都是0%成功率。这个任务对精度要求特别高,抓取时深度控制必须精确避免碰桌子,接近角度得让盘子的弧形边缘贴合平行夹爪的几何形状,放置时还要把盘子严丝合缝塞进狭窄的架子缝隙里。
**这才是真正的亮点,从失败里学会成功**
零样本失败之后,研究者们没有放弃这个任务,而是录了一段没有精确标定的第三人称视角的人类演示视频,用Real2Sim流程把它重建成一个交互式的数字孪生环境。
数字孪生*:与现实物体或场景高度对应的虚拟仿真副本,可以在虚拟环境里模拟真实世界的物理交互。
智能体在这个仿真环境里自己反复摸索。第一次尝试失败,第二次尝试还是失败,到第三次迭代,它终于摸索出一套稳定可行的技能,仿真里的成功率达到100%。这套从失败中提炼出来的技能库,被部署回真实的Franka机械臂上,结果真实世界的成功率也从0%变成了100%。
这个闭环最打动人的地方在于,它证明了仿真里试错真的能转化成现实里的能力,而不是自娱自乐。这也是这篇论文标题里"Real2Sim2Real"这个词的分量所在,从现实出发建仿真,在仿真里练本事,再把本事带回现实。
**这篇论文站在谁的肩膀上,又往前走了几步**
在Real2Gym之前,已经有不少工作在探索用仿真辅助机器人训练。RialTo构建数字孪生后用强化学习优化策略再迁移回真实机器人;SplatSim用三维高斯溅射技术生成视觉训练数据实现零样本部署;RoboGSim把高斯重建和物理引擎结合起来做演示合成和策略评估。
三维高斯溅射*:一种能快速生成照片级真实感三维场景的渲染技术。
Agentic Real2Sim这篇工作和Real2Gym的思路比较接近,都是用视觉语言智能体把机器人和物体的交互录像转换成可执行的场景副本。而Real2Gym往前多走了几步,一是加入了严格的事件驱动物理验证机制,二是引入了任务条件下的场景批量增强,三是设计了完整的技能提炼和复用体系,四是打通了从仿真到真机的部署闭环。
在智能体控制这条线上,SayCan把语言计划和已学会的机器人技能对接起来;Code as Policies让模型生成程序来完成空间推理;VoxPoser构建三维价值地图辅助运动规划。更近一点的ASPIRE把这套交互循环扩展成持久的技能积累,用验证过的代码修复构建可复用技能库。Agent as Policy进一步展示了复用已保存的程序能大幅减少重复试验的执行时间。Real2Gym在这条路径上的贡献,是把技能积累这件事和高保真的仿真环境重建牢牢绑在了一起,让技能不再是空中楼阁,而是有一个物理上站得住脚的练兵场做支撑。
**几个还没解决的坎**
论文自己也坦白了三个局限。第一是多视角的手腕摄像机和固定摄像机之间容易出现错位,导致点云里出现重影或者分层的表面,几何和纹理上还留有和原始视频对不上的地方。第二是控制颗粒度的问题,阶段级的代码生成虽然效率高,但缺乏应对高度受限操作所需要的局部精细反应能力。第三是目前的真机实验只在配备平行夹爪的Franka机械臂上做过,还没有验证过在灵巧手或者人形机器人平台上的表现。
好文章,需要你的鼓励
本文介绍LT-OPD训练框架,通过让极限压缩的多模态大模型在自己生成的内容上接受满血版模型指导,并配合渐进式课程学习,在仅保留5%视觉token时把性能保留率从68.6%提升到82.3%,且不增加推理成本。
本文解读ALIGNOPSD方法,该方法针对AI智能体训练中"决策与时间戳错配"问题,通过先对齐功能相同的决策场景再打分,并按可变长度决策段分配信用,在ALFWorld、WebShop、Search-QA三大任务上相比GRPO提升5.5%至8.7%。
本文介绍自适应一致性图(ACG)方法,通过持久化执行记忆图与预算感知的上下文构建,帮助AI智能体在长任务中减少信息失联,在多项基准测试中相比ReAct等基线方法提升了任务成功率。
多智能体AI协作时重复计算KV缓存浪费严重。PReCache提出预计算低秩缓存和中性基础缓存重构两项设计,免训练实现最高3.1倍加速、2.3倍吞吐提升,且准确率仅比不共享方案低1.1个百分点。