ReGATE: Recurrent Gated Visual Fusion for Reactive Humanoid-Object Interaction

Hao Zhu, Jorge Peña-Queralta · arXiv 2611.02871 · 发表 2026-11-02
10 分钟阅读时长 3981字 4.40综合分 第 1 名11-04 Embodied AI 日报
目录 · 8 节1它到底在解决什么问题?2整体流程:先教一个看得见答案的老师,再教学生3学生怎么在看不清时撑过去?4为什么还需要训练技巧?5实验结果说明了什么?6我认为它的局限7一个机器人团队可以怎么试8结论
相关 5新颖 4实用 4证据 4时效 5

人形机器人去抱箱子,手一靠近,箱子就会挡住头上的深度相机,可控制器还得把抓起、搬走、放下这一整套做完。这篇论文的做法是:让机器人主要靠关节状态那条通路行动,深度画面只当作一路由学出来的门控缩放的修正,设计上希望画面不可靠时少放进来;前几帧攒下的信息存在循环层的记忆里,画面断了也不会马上丢。在仿真里抓取静止箱子,成功率是 85.2%,同样测法下对比方法 VisualMimic 只有 48.5%;箱子横向移动时成功率是 85.9%。在 Unitree G1 真机上,相机看过箱子一眼后被完全挡住,机器人仍然抓到了箱子。

它到底在解决什么问题?

先看一个场景(示意)。箱子放在机器人左前方 0.3 米,用户按下“去抓”的指令。机器人走近、弯腰、伸手,这几秒里头部相机看到的画面变化很大:

阶段(示意)相机看到的关节状态能告诉控制器的
走近箱子完整,位置清楚身体在往哪走
伸手手臂挡住箱子一部分手到了哪里
抱起箱子贴着身体,画面几乎没用关节在负重下的位置和速度变化,可以间接看出是否抱住
相机被遮全黑照常可用

如果控制器每一帧都把画面当作同等可信的输入,到了后两行就会被坏画面带偏。很多已有方案的做法是外接动作捕捉或单独的物体位姿估计器,把箱子的位置喂给控制器,这在实验室之外很难部署。这篇论文要的是只用机器人自己身上的传感器:头部深度相机加关节状态。

整体流程:先教一个看得见答案的老师,再教学生

论文用了机器人学习里常见的师生两阶段训练。

论文图 2:ReGATE 的整体结构。左边是老师和学生各自能拿到的输入;中间是老师,它能直接读到仿真里箱子的真实状态;右边是学生,只用关节状态、指令和深度画面。虚线箭头只在训练时存在,是老师给学生的监督。
论文图 2:ReGATE 的整体结构。左边是老师和学生各自能拿到的输入;中间是老师,它能直接读到仿真里箱子的真实状态;右边是学生,只用关节状态、指令和深度画面。虚线箭头只在训练时存在,是老师给学生的监督。
阶段谁能拿到什么学什么
第一阶段老师仿真里箱子的真实位置、接触信息、参考动作用强化学习学会整套搬运动作
第二阶段学生只有关节状态、深度画面、用户指令模仿老师的动作,并从自己的输入里估计老师掌握的箱子信息

第一阶段训练老师的同时,学生的估计模块已经在深度特征全部置零的条件下先练了一轮,学会只靠关节状态估计箱子信息。第二阶段学生的动作网络除了模仿老师,还会再用强化学习微调。老师只在仿真里训练时存在。部署到真机上的只有学生,它拿不到任何真实状态。用户指令包括走路的速度、转向速度,以及一个“要不要接触箱子”的开关。

学生怎么在看不清时撑过去?

学生的关键部件是一个循环模块,论文叫 recurrent gated fusion adapter。它每一步做三件事。

第一,深度画面先加上像素坐标,经过卷积网络和一个能记住前几帧的循环层,变成一组画面 token,每个 token 对应画面上的一块区域。

第二,关节状态和用户指令编码成一个向量,拿它去和这些画面 token 做 attention,找出当前这个动作阶段最该看画面的哪几块。用关节状态来提问有它的道理:不同阶段该看画面的地方不一样,比如走近时要看箱子在哪,问什么取决于机器人此刻在干什么。

第三,查到的画面信息先经过分层门控,再加回关节状态那条通路。门控分两层:第一层决定每个 attention 头的画面信息留多少,第二层决定整个画面修正加回多少。按论文图 3,模块把这一步的关节状态特征和 attention 打分拼在一起,分别送进两个线性层,再过 sigmoid。这样得到 8 个头各自的门控值和 1 个整体门控值,都在 0 到 1 之间。输入每一步都在变,所以门控值每一步都重新算一次。两个线性层的权重是训练中学出来的。乘过门控的画面修正直接加到关节状态特征上,再对相加的结果做一次 LayerNorm。整体门控为 0 时,加上的部分也是 0,结果就只剩关节状态那一路。论文沿用了前人的门控融合做法,并提醒门控值是为任务学出来的,不要把它当成传感器可靠程度的读数。门控和画面编码器、第二个循环层一起,只由学生估计模块的那组损失来训练,模仿老师动作的损失不会改动它们。

还有一个只看画面、不看关节状态的小预测头,训练时让它预测箱子在图像里的位置。它逼着画面特征自己学会定位箱子,而不是借关节状态的光。

融合后的结果不直接交给动作网络,而是先预测三样东西:箱子的状态、箱子在空间里的点云、两只手有没有真正碰到箱子。点云指把整只箱子的点按箱子当前的位姿摆到空间里,代表的是整个箱子,不只是相机看到的那一面。只有点云和接触这两个预测,连同关节状态和指令,进入第二个循环层,得到交给动作网络的状态表示。这样画面里的信息必须先变成“箱子在哪、碰没碰到”,才能影响动作。两个循环层各管一段。第一个在画面这边,把前几帧的画面特征带到当前帧。第二个在预测之后,把关节状态、指令、点云和接触预测,连同自己上一步的记忆,合成交给动作网络的状态表示。三个预测头只看当前这一步的融合结果,不读第二个循环层的记忆。第二个循环层由其中对齐老师表示那一项来训练:它的输出要去对齐老师的表示。老师的表示由老师自己的编码器算出,用到参考动作、箱子的真实状态和接触信息这些仿真里才有的量;这个编码器第一阶段训好后,在第二阶段冻住不动。所以画面断了以后,当前这一步的点云和接触预测并不会自动“记住”箱子:门控关上时,它们只能依靠关节状态那一路。真正保留历史的是两个循环层,尤其是第二个循环层里上一步的状态记忆。它和始终在线的关节状态一起,让交给动作网络的状态不会在画面断掉的那几帧突然变样。 Hoot 说

Hoot 说画面断掉时,箱子的信息还留在哪里收起 ✕
记忆在红框里:画面断了,当前这一步的预测只剩关节状态可用;之前看到的箱子,靠第二个循环层上一步的记忆带下来。
一步之内的流程图:深度画面经过第一个循环层变成画面 token;关节状态和指令编码成提问向量;两者在 attention 和两层门控里合并,再加回关节状态那一路;融合结果进入三个预测头;点云和接触预测进入第二个循环层,它带着上一步的记忆,输出交给动作网络;箱子状态预测只用于训练监督。深度画面第一个循环层带上前几帧关节状态和指令编码成提问向量attention 查画面,两层门控缩放再加回关节状态那一路门控关小时只剩关节状态三个预测头箱子状态、点云、接触,只看这一步第二个循环层点云、接触、关节状态、指令和上一步记忆带记忆箱子状态预测只在训练时当监督动作网络拿到的状态不会突然变样
一步之内的流程图:深度画面经过第一个循环层变成画面 token;关节状态和指令编码成提问向量;两者在 attention 和两层门控里合并,再加回关节状态那一路;融合结果进入三个预测头;点云和接触预测进入第二个循环层,它带着上一步的记忆,输出交给动作网络;箱子状态预测只用于训练监督。深度画面第一个循环层带上前几帧关节状态和指令编码成提问向量attention 查画面,两层门控缩放再加回关节状态那一路门控关小时只剩关节状态三个预测头箱子状态、点云、接触,只看这一步第二个循环层点云、接触、关节状态、指令和上一步记忆带记忆箱子状态预测只在训练时当监督动作网络拿到的状态不会突然变样
  1. 画面正常时:门控放进画面修正,点云和接触预测跟着画面更新,第二个循环层把这一步的结果写进记忆。
  2. 画面断掉时:当前这一步的预测只能依靠关节状态,不会自己记得箱子;之前看到的箱子信息由第二个循环层上一步的记忆带下来,加上始终在线的关节状态,交给动作网络的状态才不会突然变样。

从上往下是一步之内的信息流。门控只控制画面那一路放进来多少;三个预测头不读任何记忆;箱子状态的预测只用来在训练时监督,不进第二个循环层。 出处: 论文 §III-B(循环深度 token、关节状态提问的 attention、两层门控、交互状态预测)、§III-C(第二个循环层对齐冻住的老师表示)

为什么还需要训练技巧?

门控有一个容易出现的毛病。训练刚开始时,深度编码器是随机的,画面信息全是噪声,模型最省事的办法就是把门控关掉,只靠关节状态。门一旦过早关上,画面就再也学不进来。论文的办法是分步来:先用干净的深度画面、强制把两层门控都开满,让编码器学出有用的特征;热身结束后,门控从强制全开逐步过渡到模型自己学出来的值。也是从这时起,训练里开始加入局部遮挡和整帧全黑的画面。

另一个问题是采样。训练时每一局从示范动作的某一帧开始。如果均匀随机挑帧,伸手接触前后这种很短的过渡几乎抽不到。论文把每条示范切成五段:走近、准备接触、抱着、准备放下、放下后离开。每段按固定概率抽,和这一段有多长无关,再在段内随机挑帧。

论文图 4:按阶段抽起始帧。五张小图从左到右是走近、准备接触、抱着、准备放下、放下后离开。重点看第二段和第四段,也就是准备接触和准备放下:它们在示范里时间很短,均匀抽帧时很少被抽到,按阶段抽就能保证这两段过渡都练得到。
论文图 4:按阶段抽起始帧。五张小图从左到右是走近、准备接触、抱着、准备放下、放下后离开。重点看第二段和第四段,也就是准备接触和准备放下:它们在示范里时间很短,均匀抽帧时很少被抽到,按阶段抽就能保证这两段过渡都练得到。

实验结果说明了什么?

成功的标准是:13 秒的一局结束时,骨盆高度在 0.7 米以上,手和箱子之间的接触力至少 1 牛。评测在 MuJoCo 里进行,训练用的是另一个仿真器 Isaac Sim,箱子位置在训练时没有随机化,所以横向偏移的测试都是没见过的位置。

箱子横向位置(米)−0.5−0.30.0+0.2+0.3+0.5总体
VisualMimic23.343.363.370.053.350.048.5
ReGATE70.090.0100.076.763.383.385.2

(成功率 %,每个位置 30 次,共 330 次;表中只摘了部分位置,完整 11 个位置 ReGATE 都更高。)

静止箱子在 −0.2 到 +0.1 米这段中间区域,120 次全部成功。这说明正前方附近的抓取已经很稳,难点在两侧边缘,+0.2 到 +0.4 米最低,只有 63.3% 到 76.7%。VisualMimic 失败时,要么手没碰到箱子,要么抱起后站不稳。

箱子横向移动时更难,因为机器人碰到箱子的那一刻,箱子停下,机器人要马上稳住自己和箱子。测试里箱子以四档速度横穿,在 11 个位置之一下达抓取指令,总成功率 85.9%,和静止箱子差不多,说明整套控制器能抓住移动中的箱子。论文没有做消融,所以这份功劳不能单独记在循环层头上。按速度看,最慢的一档反而最差,只有 73.6%,其余三档都在 87% 以上。

真机上的结果是定性的。连续下达抓起、搬运、放下的指令,10 次全部完成。相机看过箱子后被完全挡住再下达抓取指令,机器人仍然抓到了箱子。

论文图 7:真机上相机被挡住后的抓取。重点看最后几帧:此时深度画面已经全黑,机器人仍然把箱子抱了起来。
论文图 7:真机上相机被挡住后的抓取。重点看最后几帧:此时深度画面已经全黑,机器人仍然把箱子抱了起来。

我认为它的局限

第一,最关键的门控没有消融。实验里没有去掉门控或去掉循环层的对照,所以 85.2% 里有多少来自门控设计,读者无从判断。和 VisualMimic 的对比同时换了整套控制器,差距不能全算在门控头上。

第二,画面被遮挡的鲁棒性只有定性证据。论文第 IV-B3 节在接触前、搬运中和放下前加入局部遮挡和整帧全黑,结果只用图 7 展示。图 7 是真机在画面被完全挡住时抱起箱子的一个成功示例,而这恰恰是这篇论文最想证明的事。

第三,任务很窄。只有一种箱子,抓取前的走近和“何时下达抓取指令”被明确排除在评测之外,论文设想交给视觉语言模型或更上层的控制器去做。

一个机器人团队可以怎么试

  1. 先在自己的仿真里复现“关节状态为主、画面加门控”的结构,只做一个物体、一个抓取动作,看遮挡情况下成功率是否比直接把画面拼进输入高。
  2. 补上论文缺的消融:分别去掉门控和循环层,测遮挡和全黑画面下的成功率,判断收益到底从哪来。
  3. 训练里加入分步开门控和按阶段抽起始帧,这两步代码改动小,可以单独验证。
  4. 上真机前,先在真机上录一段带遮挡的深度画面回放给策略,同时记下两层门控的取值,和仿真里相似遮挡场景下的取值对比。

结论

画面会被挡住时,与其让控制器每帧都相信画面,不如让它以关节状态为主、按需采信画面,并用循环层记住之前看到的信息。

维度评价
问题重要性高。真机抓取时遮挡几乎必然发生,不依赖外部位姿估计才能走出实验室
方法创新性中。门控融合在带视觉的行走控制里已有,这篇把它搬到了搬运任务
实验证据中低。静止和移动抓取有量化结果,但没有消融,遮挡只有定性示例
工程成本中。需要仿真里的师生训练和深度相机渲染,单张 RTX 5090 可以训练
是否值得尝试值得在人形或移动操作的抓取任务上试,先补消融再决定是否采用

读完这篇,你觉得

点一下即可,无需登录;再点一次撤回。只统计匿名次数,不记录你是谁。

讨论

欢迎补充实验细节、复现经验或不同看法。需 GitHub 登录。

正在加载讨论…