PAPER DEEP DIVE
TemporalFlow-VLA:用机器人表面时间流为长时程操作学习执行历史
提出 TemporalFlow-VLA:用记录的关节状态、机器人几何与标定相机把机器人运动投影到图像平面,构造“机器人表面时间流”作为训练期监督,驱动两个与动作块对齐的时间查询 Q8/Q15 向动作专家提供结构化历史。部署时无需几何计算,配合异步历史特征缓存。LIBERO 平均成功率 97.63±0.26%,RoboTwin 2.0 十二任务 Clean/Randomized 85.5%/84.2%,AgiBot A3 真机三阶段任务分别提升 20.0/11.1 个百分点。
论文:TemporalFlow-VLA: Learning Physically Grounded Execution History for Long-Horizon Robot Manipulation
作者:Jiarui Yang, Yehao Lu, Yuning Su, Yu Zhong, Yufeng Xie, Yazhou Zhang, Haiyu Lan, Kaixiang Lu, Peiwen Lin, Chuang Wang, Junwei Liang, Enyu Li
机构:港科大(广州) · 浙江大学 · 西蒙弗雷泽大学 · 智元机器人 (AgiBot)
链接:arXiv:2608.26821
一句话总结
TemporalFlow-VLA 不在推理时做任何几何计算,却在训练时用机器人运动学把"机械臂表面在图像里如何移动"投影成监督信号,逼两个时间查询 token 学会压缩执行历史;在 RoboTwin 2.0 的 12 个双臂任务上取得 85.5%/84.2%(干净/随机化)成功率,长时程多阶段任务增益最大,真机 AgiBot A3 上三杯叠放成功率从 57.8% 提到 77.8%。
一、研究背景与动机
视觉-语言-动作 (VLA) 模型把预训练的视觉语言表征迁移到机器人控制,已在跨任务、跨本体上展现出泛化能力。但多数代表性 VLA 生成每个动作块 (action chunk) 时,依据的仍然主要是当前 RGB 观测、语言指令与机器人状态。这在多阶段操作里会制造一种棘手的歧义:视觉上相似的状态,可能对应完全不同的执行阶段。一次失败的抓取之后的画面,可能和抓取前的预备姿态几乎一样;同一个末端执行器位姿,既可能是"正在接近",也可能是"正在搬运",还可能是"正在从失败中恢复"。没有最近的时间演化信息,策略就可能误判当前所处的任务阶段、忽视上一个动作块的结果,或者重复已经执行过的行为,错误在多次重规划之间不断累积。
最直觉的补救办法是把历史帧喂给 VLM 主干,让模型自己推断时间线索。但本文作者先做了一个冷酷的诊断实验(论文图 2):把按时间顺序排列的三帧历史观测打乱顺序、只保持当前帧不变,离线动作流匹配损失几乎纹丝不动;而彻底移除历史,损失只上升约 4.6%。这说明两件事:历史信息确实有用,但这个不加约束的多帧基线对历史的正确顺序几乎不敏感——模型拿到了历史,却没有学会"按顺序读"历史。ViSTR-Bench 等评测也报告了多模态大模型在运动感知、空间关系、结果预测上的持续短板;对冻结多帧 VLA 的机制审计同样发现,历史独有的信息很弱,往往只在当前观测不可靠时才影响动作。
TraceVLA 提供了一个重要的反例:把被跟踪点的轨迹转成视觉提示、显式暴露历史运动,能大幅超过六帧历史基线。综合这些证据,作者把问题重新表述为:关键不是"给不给历史",而是如何把最近的物理变化表征成动作可用的形式。直接把历史帧塞进注意力是弱监督——模型没有理由去关注帧间差异;而如果把"机器人自己刚怎么动的"变成显式的、可监督的目标,历史表征就有了物理锚点。
由此诞生本文的核心构件:机器人表面时间流 (robot-surface temporal flow)。作者利用录制的关节状态、机器人几何 (URDF) 与标定相机,把"机械臂表面像素从 $t-15$ 到 $t$、从 $t-8$ 到 $t$ 的位移场"离线渲染出来,作为仅训练期使用的监督目标。部署时这条几何管线完全不存在——不估计光流、不做任何几何处理,只留下被这套监督"调教"过的两个紧凑时间查询。这是一个典型的"训练时重、部署时轻"的设计。
二、方法总览:并行时间通路
TemporalFlow-VLA 在预训练 $\pi_{0.5}$ 策略旁挂一条并行时间通路,原有动作生成路径保持不变。基础策略继续从当前 RGB、语言、机器人状态与扩散时间步预测动作块;时间通路额外接收 $t-15$、$t-8$ 与 $t$ 三个时刻的头部相机观测。对于 16 步动作块,$t-15$ 与 $t-8$ 大致对应上一个块的起点与中点,分别覆盖"完整上一块"与"最近半块"两个尺度。
通路的中心是两个受监督的时间查询 $Q_8$ 与 $Q_{15}$:$Q_8$ 表征从 $t-8$ 到 $t$ 的近期运动,$Q_{15}$ 捕捉从 $t-15$ 到 $t$ 的完整演化,并可在 $Q_8$ 的短程摘要之上进一步构建。动作 token 只能通过这两个查询获取历史信息,不能直接访问历史图像块。训练时,机器人运动学为查询提供表面时间流监督;部署时,运动学渲染器与流重建头全部缺席,只剩时间查询与动作生成计算,历史特征通过异步缓存复用。
三、运动学锚定的机器人表面时间流
监督信号的构造完全基于已知的机器人学量。对每个时间区间 $\rho \in \{8, 15\}$,记 $s = t - \rho$,$\mathbf{q}_\tau$ 为关节构型,$\mathbf{T}_B^l(\mathbf{q}_\tau)$ 为连杆到基座的齐次正运动学变换,$\mathbf{T}_{C\leftarrow B}$ 为标定好的基座到相机变换。一个只渲染机器人的渲染器给出每个可见机器人源像素 $p$ 的三维基座系表面交点 $\mathbf{X}_s^B(p)$ 与所属连杆 $l(p)$——注意这里用的是深度可见像素而非固定网格采样,表面按投影面积自然加权。恢复连杆系下的点、用目标时刻的正运动学搬运、再投影回目标图像,就是三步接力:
$$\bar{\mathbf{x}}^{l(p)}(p) = \left[\mathbf{T}_B^{l(p)}(\mathbf{q}_s)\right]^{-1}\bar{\mathbf{X}}_s^B(p) \tag{1}$$
$$\bar{\mathbf{X}}_t^B(p) = \mathbf{T}_B^{l(p)}(\mathbf{q}_t)\,\bar{\mathbf{x}}^{l(p)}(p) \tag{2}$$
$$\tilde{\mathbf{u}}_t(p) = \Pi_K\!\left(\mathbf{T}_{C\leftarrow B}\bar{\mathbf{X}}_t^B(p)\right) \tag{3}$$
其中 $\Pi_K$ 是相机内参 $K$ 下的透视投影。随后在目标帧的机器人位置/连杆 ID 渲染图上做最近邻查找,仅当投影在画面内、属于同一连杆 $l(p)$、且三维残差不超过 5 mm 时,这条对应才被保留——同一连杆约束排除了把"旧位置的连杆"错配到"新位置的另一个连杆"的伪对应。
把源、目标位置都表到 $224 \times 224$ 策略图像平面上,位移按图像尺寸归一化:
$$\mathbf{f}_\rho(p) = \frac{\mathbf{u}_t(p) - \mathbf{u}_s(p)}{224} \tag{4}$$
再在非重叠的 $14 \times 14$ 区域上做掩码算术平均,把逐像素流聚合成 $16 \times 16 \times 2$ 的目标。对每个块 $k$,$\mathcal{S}_k$ 是块内全部源像素,$\mathcal{V}_k \subseteq \mathcal{S}_k$ 只含有效自可见机器人像素:
$$\mathbf{F}_\rho(k) = \frac{1}{|\mathcal{V}_k|}\sum_{p \in \mathcal{V}_k}\mathbf{f}_\rho(p), \qquad c_\rho(k) = \frac{|\mathcal{V}_k|}{|\mathcal{S}_k|}, \qquad \mathbf{M}_\rho(k) = \mathbb{1}\!\left[c_\rho(k) \geq 0.1\right] \tag{5}$$
这里 $c_\rho(k)$ 度量的是有效机器人支撑占整个块面积的比例——它是损失的门控而非权重:机器人覆盖率不足的块直接不参与流损失。一个容易被忽视的设计是:机器人表面约束只施加在这条辅助目标上,时间通路本身仍然接收完整 RGB,因此物体与场景变化照样可供动作目标使用。
四、层级时间查询与联合注意力
可学习时间令牌 $\mathbf{q}_8$、$\mathbf{q}_{15}$ 被追加到标准 $\pi_{0.5}$ 前缀之后;帧身份嵌入只加在历史块 $\mathbf{V}_{15}$、$\mathbf{V}_8$ 上。查询的历史内容通过区间专属的解码器读出,采用 FiLM 通道调制加点式 MLP:
$$\hat{\mathbf{F}}_\rho = \mathbf{W}_\rho^o\,\mathrm{GELU}\!\left(\mathbf{W}_\rho^h \mathbf{H}_\rho + \mathbf{b}_\rho^h\right) + \mathbf{b}_\rho^o, \qquad \rho \in \{8, 15\} \tag{6}$$
两个解码器参数互不共享,不用卷积也不做上采样。损失只在 $\mathbf{M}_\rho = 1$ 处按 Huber 计算:
$$\mathcal{L}_{\mathrm{flow}}^\rho = \frac{\sum_k \mathbf{M}_\rho(k)\,\ell_{\mathrm{Huber}}\!\left(\hat{\mathbf{F}}_\rho(k), \mathbf{F}_\rho(k)\right)}{\sum_k \mathbf{M}_\rho(k) + \epsilon}, \qquad \mathcal{L}_{\mathrm{temp}} = \frac{1}{2}\left(\mathcal{L}_{\mathrm{flow}}^8 + \mathcal{L}_{\mathrm{flow}}^{15}\right) \tag{7}$$
时间信息如何进入动作专家?答案是利用模型既有的联合掩码自注意力,不加任何新模块。在第 $l$ 层,前缀 $\mathbf{P}^l$ 与动作后缀 $\mathbf{A}^l$ 各自经专家投影后拼接:
$$\mathbf{O}^l = \mathrm{Softmax}\!\left(\frac{\mathbf{Q}^l(\mathbf{K}^l)^\top}{\sqrt{d}} + \mathbf{B}(\mathbf{M})\right)\mathbf{V}^l \tag{8}$$
结构化掩码 $\mathbf{M}$ 的关键规则是:动作令牌保留原有 VLA 上下文、额外可见 $Q_8$ 与 $Q_{15}$,但被禁止直接访问 $\mathbf{V}_8$ 与 $\mathbf{V}_{15}$。历史视觉信息必须先被压缩进流监督的查询表征,才能影响动作生成。这个设计不需要单独的交叉注意力模块或历史残差门,动作专家原有的 AdaRMS 残差调制也得以保留。
最终目标函数把原动作流匹配损失与时间流重建损失联合优化:
$$\mathcal{L} = \mathcal{L}_{\mathrm{action}} + \lambda_{\mathrm{temp}}\,\mathcal{L}_{\mathrm{temp}}, \qquad \lambda_{\mathrm{temp}} = 1.0 \tag{9}$$
整个训练期都维持这条监督,使 $Q_8$、$Q_{15}$ 始终绑定在各自的时间尺度与运动语义上,而不是退化成无约束的"历史潜变量"——这正是与图 1 诊断中那个对顺序不敏感的弱基线的本质区别。
+ URDF 几何 + 相机标定"] --> R["机器人专用渲染器:
深度可见像素 → 3D 表面交点"] R --> FK["正运动学搬运:
T_B^l(q_s)⁻¹ → T_B^l(q_t) → Π_K 投影"] FK --> FLOW["机器人表面时间流标签:
F_8 与 F_15(16×16×2)"] FLOW --> SUP["监督 Q_8 / Q_15 时间查询:
L_temp = ½(L_flow^8 + L_flow^15)"] end subgraph DEPLOY["部署时(无几何计算)"] H15["t-15 历史帧(缓存)"] --> Q15["Q_15 查询"] H8["t-8 历史帧(缓存)"] --> Q8["Q_8 查询"] CUR["t 当前帧(同步编码)"] --> ACT Q15 --> JA["联合掩码注意力"] Q8 --> JA JA --> ACT["动作专家
流匹配生成动作块"] end SUP -. "训练完成后丢弃:
渲染器与流解算头不评估" .-> DEPLOY
五、异步历史特征缓存
如果每次重规划都同步编码 $t-15$、$t-8$、$t$ 三帧,历史图像编码就被放进了推理关键路径,多出两次视觉前向。作者用一个带时间戳的环形缓冲区解决:机器人执行当前动作块期间,头部相机观测写入缓冲区,后台进程异步提取并缓存视觉特征 $\mathbf{V}_\tau = \mathrm{VisualEncoder}(I_\tau)$。由于动作块长度与 $Q_8/Q_{15}$ 偏移都是固定的,下一次重规划需要的两帧历史特征完全可以在执行当前块时编码完毕。重规划时刻 $t$,历史特征直接从缓存取用,只有当前帧需要现场编码:
$$T_{\mathrm{naive}} = 3\,T_{\mathrm{vision}} + T_{\mathrm{joint}} + T_{\mathrm{action}}, \qquad T_{\mathrm{cache}} \approx T_{\mathrm{vision}} + T_{\mathrm{joint}} + T_{\mathrm{action}} \tag{10}$$
缓存只移除同步的历史图像编码,时间查询仍留在联合 Transformer 里参与计算。回合开始时历史尚不可用,用最早观测填充并标记无效,缓存绕过,直到两帧历史令牌齐备;窗口外的过期特征会被逐出。
六、实验结果
6.1 实验设置
所有策略在 8 块 NVIDIA H100 上训练,单卡批量 32。LIBERO 上联合训练 Spatial/Object/Goal/Long 四个套件 30k 步,以随机种子 0、2、5 报告均值±标准差,每套件每种子 500 次滚动。RoboTwin 2.0 上联合训练 12 个任务 60k 步,每任务 50 条干净演示与 500 条随机化演示,每任务每设定评测 100 次滚动,任务按执行时程 (H=1/2/3) 分组。时间流标签离线预计算;同等硬件与批量下,时间模块加辅助流解码器使训练墙钟时间约增加 20%。部署时几何标签管线不存在,辅助流解码器不参与计算。
6.2 RoboTwin 2.0:增益随时程放大
主结果(论文表 I)显示,TemporalFlow-VLA 在干净与随机化评测下分别取得 85.5% 与 84.2% 的平均成功率,随机化设定下比对比范围内最强的已发表基线高出 8.0 个百分点。更关键的是增益的时间结构:$H=2$ 时 80.8%、$H=3$ 时 87.5%(随机化),分别超出各自亚军 5.5 与 14.5 个百分点;而 $H=1$ 的平均值并非最佳。这一"时程依赖"模式与动机完全吻合:显式的近期执行历史,恰恰是在"成功取决于跨阶段保持进度"的任务上最值钱。
| 方法 | H=1 Clean/Rand | H=2 Clean/Rand | H=3 Clean/Rand | 总均值 Clean/Rand |
|---|---|---|---|---|
| $\pi_0$ | 84.0 / 84.3 | 71.3 / 65.8 | 57.8 / 44.0 | 63.5 / 55.3 |
| $\pi_{0.5}$ | 81.3 / 75.3 | 76.8 / 75.3 | 79.0 / 66.5 | 79.0 / 72.3 |
| X-VLA† | 90.3 / 88.8 | 52.3 / 52.0 | 57.5 / 61.0 | 66.7 / 67.3 |
| GigaWorld | 92.5 / 87.0 | 71.5 / 68.5 | 69.5 / 73.0 | 77.8 / 76.2 |
| TemporalFlow-VLA (本文) | 84.0 / 84.3 | 83.5 / 80.8 | 89.0 / 87.5 | 85.5 / 84.2 |
值得玩味的是 X-VLA 与 GigaWorld 在 $H \geq 2$ 上的急剧下滑——它们恰恰是缺少结构化历史表征的方法;而本文方法从 $H=1$ 到 $H=3$ 反而稳步上升(干净设定 84.0 → 89.0)。
6.3 LIBERO:在长套件上突破饱和区
| 方法 | Spatial | Object | Goal | Long | 均值 |
|---|---|---|---|---|---|
| $\pi_{0.5}$ | 98.8 | 98.2 | 98.0 | 92.4 | 96.85 |
| GR00T N1.7 | 97.5 | 98.5 | 97.5 | 94.5 | 97.0 |
| CronusVLA | 97.3 | 99.6 | 96.9 | 94.0 | 97.0 |
| HAMLET | 99.0 | 100.0 | 99.2 | 92.2 | 97.7 |
| MotionVLA | 96.2 | 98.0 | 96.2 | 91.2 | 95.4 |
| TemporalFlow-VLA | 97.60±0.20 | 99.40±0.20 | 96.93±0.61 | 96.60±0.87 | 97.63±0.26 |
LIBERO 整体 97.63±0.26%,与最强已发表系统持平;最清晰的优势出现在 LIBERO Long:96.60±0.87%,比此前最强的已发表均值高 2.1 个百分点。改进集中在与目标最契合的区间——多阶段、需要知道"当前状态是怎么来的"的操作,而非已经饱和的短时程套件。
6.4 消融:查询瓶颈与流监督各贡献多少
论文表 III 把四个因素拆开:原始历史帧、查询瓶颈、流监督、时间尺度。两个查询但不加流监督 (2Q w/o Flow) 已整体超过多帧基线(83.2%/83.6% 对 79.8%/81.5%);加上流监督达到 85.5%/84.2%,且在 $H=2$ 上额外贡献 3.7/1.5 个百分点。单查询对比里 $Q_8$ 整体优于 $Q_{15}$(84.8%/84.0% 对 83.9%/83.0%),但两个受监督尺度同时在场时整体最佳,说明 $Q_{15}$ 提供了互补的长程上下文。由于 2Q w/o Flow 与完整方法保持相同的查询槽数与历史窗口,剩余差距就干净地归因于流监督本身,而非时间容量或上下文长度。
在六个任务上用匹配窗口与扩散噪声做内容/顺序干预:打乱($t-15$ 与 $t-8$ 互换)与移除都使全部任务的动作损失上升;五个任务上打乱伤害最大,说明训练后的模型确实依赖正确的时序指派,而不仅是"有历史就行"。作者同时强调这是离线动作损失诊断,展示的是对时序指派的敏感性,不能直接当作在线成功率的替代指标。
6.5 推理效率与真机迁移
异步缓存使匹配的多重规划控制段上,服务端策略采样时间下降 7.8%——时间条件化被压到了单帧级的推理成本。真机评测在 AgiBot A3 上进行,两个三阶段操作任务(三杯叠放、两瓶装箱):每任务 280 条演示、训练 60k 步,三轮各 15 次试验共 45 次。结果:三杯叠放均值成功率从 57.8% 升至 77.8%(+20.0 个百分点),两瓶装箱从 86.7% 升至 97.8%(+11.1 个百分点)。增益在叠杯上更大——那正是需要跨多次放置与对齐步骤保持进度的任务。训练时只有头视图参与时间流监督,胸部视图仅作为观测输入。
七、局限性
作者自述的局限集中在时间尺度的选择:本文采用固定的历史观测集合($t-15$/$t-8$),没有系统研究历史帧数量与时间间隔如何影响时间表征学习;不同操作任务的最优时间视野与采样粒度,留待未来工作。
从第三方视角还可补充三点。其一,时间流监督的质量依赖 URDF 几何与相机标定的准确性以及关节状态的记录质量——真机上标定漂移、负载形变或动态遮挡会直接污染监督信号,论文未报告对这类扰动的鲁棒性分析。其二,机器人表面流只覆盖"机器人自己怎么动",物体被推动、滑落等场景变化仍靠完整 RGB 隐式传递,辅助目标并未直接监督物体层面的变化;在物体状态判别主导的任务上,这套监督的收益可能缩水。其三,LIBERO 上本文与最强基线的差距在短套件上已消失甚至落后(如 Spatial 低于 HAMLET、Object 低于 CronusVLA),方法优势高度依赖"多阶段"这一前提;此外 8 卡 H100、训练时间增加约 20% 的成本,以及未开源(文中未给出代码链接)都影响可复现性。
八、总结与展望
TemporalFlow-VLA 的贡献可以概括为一条主线加三项工程落地:主线是"用物理锚定的监督替代裸历史帧"——把记录的关节状态、机器人与相机几何离线投影成机器人表面时间流,用它监督两个与动作块对齐的时间查询,再以联合掩码注意力强制动作专家只能通过查询读历史;三项工程落地分别是层级双尺度查询、零新增模块的注意力集成、以及把历史编码移出关键路径的异步缓存。数字上:RoboTwin 2.0 十二任务 85.5%/84.2%(随机化超最强基线 8.0 个百分点,$H=3$ 超亚军 14.5 个百分点),LIBERO 97.63±0.26%、Long 96.60±0.87%,真机三杯叠放 +20.0 个百分点,服务端采样延迟还降了 7.8%。
这项工作的深层启示是:VLA 缺的不是历史输入,而是让历史变得"有物理意义"的监督信号。把机器人学里最现成的资产——运动学与标定——变成训练期的免费标注器,是一条比端对端堆帧更可解释、也更部署友好的路线。下一步自然的问题,正如作者指出的,是时间尺度本身:最优历史视野与采样粒度很可能随任务时程变化,若能把 $\{8, 15\}$ 这两个固定偏移变成可学习或自适应的选择,这条路线的天花板还会更高。
金句
"历史帧谁都会喂,但没人教模型按顺序读;TemporalFlow-VLA 干脆把'机械臂表面刚怎么动过'写成考卷——训练时严格监考,部署时轻装上阵。"



