你有没有见过那种一边开车一边打电话的人,每次接完电话方向盘都会不自觉地晃一下?
机器人也有类似的毛病。
现在最先进的机器人大脑,用的是一种叫生成模型的技术来规划动作。它不是提前把所有步骤写死,而是像人一样一边想一边做。但问题是,"想"这件事需要时间,机器人的身体却不会为了等大脑想明白而停下来。这就造成了一个很尴尬的局面:大脑刚想好下一步该怎么动,身体已经不在原来的位置了。
这篇来自Magiclab Robotics和东南大学团队的论文,就是在解决这个"脑子跟不上身子"的问题。
机器人大脑想得太慢,身体等不及了
先说清楚现在的机器人是怎么干活的。
传统的机械臂控制靠的是写死的程序,什么时候抬手、什么时候松爪,全部提前编排好。但这种方式面对复杂多变的任务就露怯了,比如叠衣服,衣服每次褶皱的方式都不一样,写死的程序根本应付不来。
于是研究者们转向了生成模型,比如这篇论文里反复提到的Flow Matching。
Flow Matching:一种生成式人工智能技术,通过让一堆随机噪声逐步演变成目标数据(比如一段动作序列),从而让模型学会生成多样化又合理的结果,而不是只会输出一个固定答案。
这类模型的好处是,面对同一个场景,它可以生成好几种合理的应对方式,就像让人去拿桌上的杯子,可以从左边绕过去也可以从右边绕过去,两种都对。这种能力叫多模态。但代价是,这种"边想边生成"的过程比传统的闭环控制慢得多。
为了让慢吞吞的大脑和飞快转动的身体协调起来,工程师们发明了动作分块。
Action Chunking(动作分块):机器人每次调用大脑时,不是只生成下一个瞬间的动作,而是一口气生成未来一小段时间(比如几十帧)的完整动作序列,这样身体可以先执行这一段,大脑则利用这段时间去想下一段该怎么办。
这就好比你写一篇论文,不会写一个字就停下来想下一个字,而是先打好一段话的腹稿,边写这一段边构思下一段。
但新的麻烦来了。像VLA(视觉语言动作模型)这类高延迟的大模型,生成一个动作块可能要花不少时间,身体可不会傻等着,它会继续执行上一个动作块,等大脑终于把新计划想出来的时候,身体早就已经往前走了一截。
VLA (Vision-Language-Action Model):一种把视觉理解、语言理解和动作生成整合在一起的机器人大模型,能看懂场景、听懂指令、然后生成相应动作。
这就是论文开头提出的核心矛盾:预测和执行脱节了。大脑规划的起点,和身体实际所处的位置,根本对不上。
想象一下你在导航软件规划路线的时候网络卡了一下,软件按你十秒前的位置给你算了条路,可你这十秒已经往前开出去几百米了,新路线从一开始就是错的。如果不处理这个延迟问题,机器人的新动作计划就会像这条过时的导航路线一样,从起点就跟实际情况对不上。
业内已经有一些方法试图缝合这道裂缝,比如RTC(实时分块执行)会让新动作的生成,基于已经确定要执行的那一段动作前缀,这样至少开头那部分是衔接得上的。但问题在于,这些方法大多只盯着那段已经确定或者马上要执行的动作前缀做文章,前缀后面那一大截、还没真正定型的"动作尾巴",依然是靠重新撒一把随机噪声生成出来的。
这就是本文要啃的硬骨头:那段自由生成的尾巴,该怎么跟之前的生成过程保持一致?
噪声里藏着的秘密:机器人换脑子时,其实身体记得上一次想了什么
研究者们做了一件挺巧妙的侦查工作。
他们拿了一个叫π0.5的标准机器人策略模型做实验。这个模型训练的时候,每次生成动作都是从完全独立、毫无关联的高斯随机噪声开始的,理论上不同时刻生成的噪声之间不应该有任何联系。
高斯噪声(Gaussian noise):一种随机数生成方式,数值大体服从钟形的正态分布,在生成模型里常被用作"创作的起点",就像画家面对一张画满杂乱笔触的草稿纸,要从这堆杂乱里"提炼"出清晰的图像。
研究团队用了一种叫Flow Inversion(流反演)的技术,相当于把生成出来的动作序列,倒推回它最初对应的那个随机噪声是什么样子。
结果让人意外。同一个任务片段里,相邻时间生成的动作,反推出来的噪声竟然有很强的相关性,相关系数达到0.774;而不同任务片段之间的噪声相关性几乎为零,只有0.043,和完全独立的高斯参照组的0.000差不多。
这说明了什么?模型虽然是用独立噪声训练出来的,但是当它面对连续流畅的动作时,自己悄悄学出了一种"记忆",相邻时刻的动作在噪声空间里是有隐藏关联的。
这就好比你问一个人昨天走路的轨迹和今天走路的轨迹像不像,如果这个人走的是上班路线,两天的路线大概率是高度重合的;但如果你拿这个人上班的路线去跟另一个完全不认识的人随便乱走的路线比,那肯定对不上。机器人生成的动作虽然表面上看每次都是独立采样噪声,但骨子里的"行为惯性"已经悄悄体现在了噪声结构里。
更有意思的是,这种相关性不是固定对应某个位置的,而是跟着机器人实际走过的距离移动的。论文用三个不同的延迟场景做了验证,延迟1帧、5帧、9帧时,噪声相关性最强的位置分别精确对应着位移1、5、9的地方,而不是死板地对着同一个序号位置。
这个发现给了研究者一个重要启示:与其让每次生成都从零开始瞎蒙噪声,不如想办法把这种执行对齐的噪声关联性,明确地设计进模型里。
这就引出了这篇论文的核心方法:EAPN,全称是执行对齐渐进噪声。
两层噪声结构:让机器人的"随机性"学会认路
EAPN的设计思路可以拆成两个层面来理解,一层管的是不同动作块之间的衔接,另一层管的是同一个动作块内部的流畅性。
先说第一层,论文把它叫作执行对齐的块间关联。
简单说就是,机器人每生成一次新的动作块,不再是完全重新撒一把独立噪声,而是维护一条持续存在、贯穿所有生成过程的共享随机轨迹。这条轨迹按照机器人实际走过的物理位移来对齐,而不是按照固定的序号对齐。
这里论文用了一种叫AR(1)过程的数学工具来构造这条噪声轨迹。
AR(1)过程(一阶自回归过程):一种生成随机序列的方式,序列里每一个新的数值,都是在前一个数值的基础上,叠加一点新的随机扰动得到的,这样相邻的数值天然就会有一定的相关性,而离得越远的数值相关性就越弱。
论文里给出了一个具体的数学关系:两个相邻动作块之间的协方差,会随着对齐后的位置差距呈指数衰减。说白了就是,离实际执行位移最近的那个位置,噪声关联最强;离得越远,关联越弱,这跟研究团队在侦查阶段观察到的现象完全吻合。
这就好比你和朋友约好接力跑步,交接棒的时候,你不会随便找个地方把棒子扔给下一个人,而是要在他跑动的轨迹上,精确对准他当下所在的位置把棒子递过去。如果棒子递错了位置,哪怕只差几步,交接就会显得生硬甚至摔跤。EAPN做的就是这种精确的"交接棒对位",只不过交接的不是实体的棒子,而是一份看不见的随机性状态。如果不做这种位移对齐,而是简单粗暴地按固定序号去拼接噪声,那交接出来的动作很可能就是"接反了",新动作的起点跟机器人实际所处的状态根本对不上。
第二层是块内的时间关联,论文称为intra-chunk temporal correlation。
这一层解决的是另一个问题:哪怕块与块之间衔接好了,一个动作块内部,从第一帧到最后一帧,如果噪声也是互相独立的,那整个动作执行起来可能会一会儿快一会儿慢,显得很抽搐。EAPN给块内部也设计了一条私有的AR(1)随机过程,让块内相邻时刻的噪声天然带点关联,越靠近的动作时刻关联越强,隔得越远关联越弱。
这就像你在写一段连续的文字,相邻的句子语气风格应该是接近的,而不是每句话都换一个完全不同的人格去写,哪怕每句话单独拎出来看都没语法错误,连起来读也会觉得非常别扭。
两条噪声通道最后会按一个权重参数融合到一起,生成最终喂给模型的随机起点。论文里特别强调,这套融合后的随机结构虽然单个位置看起来还是标准的高斯分布,但整体的联合分布已经变了,所以不能把EAPN简单理解成一个"不需要重新训练、硬套上去就能用"的采样技巧,而是需要让模型真正学会适应这种新的、结构化的随机输入。
历史条件化:让机器人记得上次"想"到哪儿了
光有关联噪声还不够,论文还做了第二件事:显式地把历史随机状态当成一种条件信息,告诉模型"你上次想到哪儿了"。
具体做法是,EAPN会把上一次生成时用的噪声轨迹,按照机器人实际执行掉的位移量做对齐偏移,再结合一个有效性掩码(用来标记哪些位置确实有历史可以参考,哪些位置没有,比如任务刚开始的时候就没有历史),一起编码成一个条件向量,塞进生成模型里。
这个设计解决了一个很实际的问题:如果只是让噪声本身带有关联性,但不告诉模型这份关联具体是什么、怎么用,模型其实没法充分利用这个信息。
这就好比两个人写接力小说,哪怕你们俩文笔风格天生相似(对应噪声的隐性关联),但如果不互相通个气,告诉对方"我上一段写到主角走进了一间黑屋子,手里还拿着一把伞",下一个人接着写的时候照样容易接错方向。EAPN相当于强制加了这个"通气"的步骤,把历史的随机状态明明白白地摆在模型面前当参考。
训练的时候,论文还设计了一个很实际的细节:以一定概率随机丢弃历史信息,强迫模型在没有历史可依的情况下(比如任务刚重启)也能正常工作,不会因为过度依赖历史而在没有历史的时候出问题。
实验结果:从模拟到真实机器人的全面验证
说了这么多设计理念,实际效果到底怎么样?论文在D3IL、Kinetix、LIBERO三个仿真测试平台和两个真实机器人任务上做了验证。
在D3IL的Avoiding任务上(一个考察绕障路径多样性的测试),研究者引入了两个很有意思的指标。一个叫Mode Switch Rate(模式切换率),衡量机器人在相邻两次重新规划时有没有莫名其妙地从一种绕行方式切换成另一种;另一个叫Switch Gap,衡量切换发生时动作的跳变幅度有多大。
结果显示,使用EAPN后,任务成功率从73.13%提升到78.96%,提升了将近6个百分点;同时模式切换率从3.969%降到3.167%,切换幅度也从0.001913降到0.001672。更关键的是,这个提升不是靠让机器人变得呆板、只会一种走法换来的,机器人依然保持着多样化的绕行能力,只是切换得更少、更平滑了。
在Kinetix这个开放式物理控制测试平台上,论文测试了12类不同的控制任务,并系统地改变了推理延迟的大小。结果表明,随着延迟增大,所有方法的表现都会下降,但EAPN下降得明显更平缓,在大多数任务上都保持领先,平均成功率达到88.59%。
论文还专门做了一次消融实验,拆开看块间关联和块内关联各自的贡献。在Kinetix的mjc_swimmer任务上,只用ttRTC基线时成功率是46.60%,加入块间噪声关联后直接跃升到76.89%,这是最大的一块贡献;再加上块内噪声关联后进一步提升到78.85%;最终完整的EAPN达到79.26%。这说明块间对齐是主力,块内平滑是锦上添花的补充。
在LIBERO这个更贴近真实家庭场景的操作任务集上,论文分别测试了低延迟(1到4步)和高延迟(5到15步)两种场景。低延迟下EAPN平均成功率维持在96.4%到97.0%之间;高延迟下,当延迟达到15步这种比较极端的情况时,EAPN达到75.0%的平均成功率,比对照方法ttRTC高出2个百分点。这说明延迟越长、旧计划需要撑得越久的时候,这种执行对齐的历史噪声就越能发挥作用。
真实机器人实验是整篇论文最接地气的部分。研究团队测试了两个任务:物品收纳(让机械臂反复抓取不同厨房用品放进篮子)和双臂叠衣服。
物品收纳任务上,EAPN达到90.0%的成功率(18次成功中的20次尝试),比简单异步执行的65.0%高出25个百分点,比此前表现最好的VLASH方法也高出5个百分点。
叠衣服任务难度更大,涉及软体物料的形变,对历史依赖和双臂协调要求更高。EAPN达到96.7%的成功率(29/30),论文里还放了一组很直观的对比:基线方法执行同一次叠衣服任务用了56秒,期间出现了好几次反复的修正动作,看起来像是机械臂在"犹豫";而EAPN只用了33秒,整个过程更连贯。
研究者还专门检查了一个容易被忽略的问题:如果给机器人塞一套"有记忆"的随机噪声,会不会导致机器人对新出现的情况反应变迟钝,比如布料突然变形的时候反应不过来?论文通过记录机械臂的速度和加速度曲线发现,EAPN的运动曲线和ttRTC基本相当,反而比RTC和VLASH出现的大幅波动更少,说明这种"带记忆"的随机性并没有牺牲对实时变化的响应能力。
方法/场景 D3IL成功率 Kinetix平均成功率 LIBERO高延迟D=15成功率 真实机器人物品收纳 真实机器人叠衣服
DDPM-ACT基线 73.13% — — — —
ttRTC — — 73.0% 80.0% 63.3%
VLASH — — 68.3% 85.0% 93.3%
EAPN **78.96%** **88.59%** **75.0%** **90.0%** **96.7%**
写在后面
读完这篇论文,有一个点让我反复回味:模型明明是用独立噪声训练出来的,却自己悄悄学出了一种时间上的记忆结构。
这其实有点像神经科学里一直在争论的一个问题,人的很多"直觉反应"到底是天生设计好的,还是在后天大量重复的经验里自己涌现出来的。π0.5这个模型的训练目标里根本没有写"请学习相邻动作之间的关联",但它在海量连续动作数据的喂养下,自己在噪声空间里长出了这种结构。EAPN做的事情,某种程度上是把这个模型"无意间学会却没有被明确利用"的能力,用显式的数学结构和训练目标重新框定出来,逼它更彻底地利用起来。
这让我想到一个更大的问题:生成模型里,"随机的起点"到底应该有多随机?论文结尾提到的PYoCo工作,在视频生成领域也用了类似的相关噪声思路,但那是一个固定的相关结构,而EAPN是动态地跟着机器人实际走过的物理位移去调整的。这种"让随机性跟着真实世界的进度走"的想法,感觉还有很大的想象空间,不只是机器人,任何需要连续决策、又无法用确定性方法穷尽所有情况的系统,可能都值得问一句:你每次重新开始思考的时候,那个思考的起点,真的应该是完全忘掉上一次的吗?
Q&A
Q1:EAPN是什么?
A:EAPN全称是执行对齐渐进噪声,是一种让机器人在连续重新规划动作时保持一致性的方法,通过让相邻动作块共享一条根据实际执行进度对齐的随机噪声轨迹,避免机器人在换脑子思考下一步时出现动作突变或行为模式混乱。
Q2:EAPN相比之前的RTC等方法有什么不同?
A:RTC等方法主要靠固定已经确定要执行的那段动作前缀来保证衔接,但前缀之后还没定型的动作尾巴依然是靠独立随机噪声生成的。EAPN额外在噪声层面引入了块间和块内两种结构化关联,并把历史噪声状态显式作为条件告诉模型,让自由生成的部分也能延续之前的思路。
Q3:EAPN在真实机器人上效果如何?
A:在物品收纳任务上成功率达到90.0%,在双臂叠衣服任务上成功率达到96.7%,叠衣服用时也从基线的56秒缩短到33秒,过程中反复修正的动作明显减少,同时速度和加速度曲线保持稳定,没有出现反应迟钝的问题。







