先记住一句话

RTC 解决的是 action chunk 的异步交接:新计划必须兼容已经 committed 的旧动作;同一类方法还包括延迟模拟、prefix conditioning、future-state conditioning、temporal ensemble 与少步生成。

observe at told chunk keeps executingmeasure committed prefixgenerate compatible suffixhandoffreact to new observation
旧计划committed prefix
并行推理condition on prefix + stale age
新计划compatible continuation
接管continuous handoff
关键时间不是 inference 开始,而是新 chunk 真正写入控制 buffer 的 commit 时刻。

1. 同步执行为什么会停顿

同步:observe → inference (robot waits) → execute chunk → observe ...
异步:execute old chunk ────────────────────────────→
          observe → infer next chunk → handoff

同步最简单,但 VLA 若需 200 ms,机器人每次重规划都停一下。异步消除等待,却产生两个 mismatch:

  • action compatibility:新 chunk 开头可能与旧 chunk 尚未执行的尾部跳变。
  • state staleness:模型用 inference 开始时的观测,输出在未来才接管,此时机器人状态已改变。

2. 几类 chunk 交接方法

方法做法主要取舍
Stop-and-go等新 chunk 完成再动一致但不连续,吞吐低
直接替换新 chunk 到达立刻接管反应快但可能跳变
Temporal ensemble对多个重叠预测加权平均平滑,可能平均掉多峰意图
RTC inpainting把已承诺的动作前缀作为硬/软条件,补全后续兼容旧轨迹,增加推理 guidance 成本
Training-time prefix训练时随机模拟 delay 并条件化 committed prefix推理便宜,需专门后训练且防 copy shortcut
Future-state conditioning预测接管时 state 或给执行进度修 stale observation,依赖状态/延迟估计

3. RTC 的核心直觉

当前 chunk 的一部分已经发给控制器,不能再更改;下一次 flow/diffusion generation 因此像 action inpainting:固定与 committed tail 对齐的前缀,只生成其后的自由部分。这样新 chunk 从机器人真实将要到达的轨迹继续,而不是从旧观测重新起步。

RTC 是 inference-time 方法,可用于已有 flow/diffusion VLA。它不等同于 RL 或 SFT;但为了去掉 guidance 开销,可以在后训练时直接教模型读取 action prefix。

4. Training-time RTC 学什么

训练时随机采样 simulated inference delay d
condition = observation at t + committed actions [a_t ... a_{t+d-1}]
target    = compatible continuation [a_{t+d} ...]

推理时把旧 chunk 未完成部分硬塞为 prefix,一次正常采样即可。必须随机化 delay、prefix 长度与 chunk phase,否则模型可能只学复制 prefix,不再看新视觉;对突然障碍或抓取失败的反事实测试能暴露这种 shortcut。

5. 同一家族的其他技巧

  • Latency augmentation:训练随机 observation/action delay,让策略显式鲁棒。
  • Chunk dropout / variable horizon:适应不同接管点与剩余 buffer。
  • Consistency/shortcut distillation:把多步 flow/diffusion 蒸馏成 1–2 步。
  • KV cache / static-prefix cache:多次动作去噪复用图像、文本和 state 的 K/V。
  • Adaptive replanning:稳定阶段执行更长,接触/不确定阶段高频重规划。
  • Residual correction head:小模型读取最新观测,实时修正较慢 base chunk。

6. 时间预算要端到端算

camera exposure + transport + preprocessing
+ policy queue + model inference + postprocess
+ network RPC + controller buffer + actuator response
= observation-to-actuation latency

RTC 只处理其中的策略生成与交接。若相机或 RPC 的 P95 jitter 很大,固定 delay training 仍会失败;部署应报告 latency 分布而非平均值,并把实际 delay/queue depth 喂给策略或 scheduler。

7. 评测不只看 success

  • 成功率 vs 人工添加 latency/jitter 曲线。
  • handoff 时 position/velocity/acceleration discontinuity。
  • 最新观测到已执行动作的 age。
  • 遇到新障碍、滑落、抓空时的 reaction time。
  • 吞吐、GPU 利用率、buffer underflow 和 safety intervention。

8. 四个实时计算

例 1:delay 对应 committed steps

控制频率 20 Hz,推理 180 ms;期间执行 $0.18×20=3.6$ 步,实际至少要按 4-step committed prefix 处理。

例 2:buffer 余量

旧 chunk 剩 7 步、20 Hz,可支撑 350 ms。若 inference P95=280 ms,理论余量 70 ms;再加 40 ms RPC 后只剩 30 ms,抖动很容易 underflow。

例 3:temporal ensemble

同一执行时刻的两个预测是 0.04、0.10 m,权重 0.75/0.25,加权命令 $0.75×0.04+0.25×0.10=0.055$ m。它更平滑,却可能位于两个有效模式之间。

例 4:handoff discontinuity

旧 chunk 下一速度 0.20 m/s,新 chunk 开头 -0.10 m/s,50 ms 内切换,近似加速度 $(-0.10-0.20)/0.05=-6$ m/s²;必须做 prefix 兼容或限加速度。

最容易混淆:

action 平滑不等于 reactive。Temporal averaging 或 prefix copy 可以非常顺,却忽略最新观测;必须同时测试连续性与突发变化响应。

自测

1. RTC 主要解决哪一种不一致?

新 chunk 与已 committed/正在执行的旧 chunk 之间的动作兼容性。

2. Training-time RTC 为什么可能形成 shortcut?

模型可能只复制给定动作前缀,弱化对最新视觉和状态的注意。

3. 为什么 temporal ensemble 可能伤害多峰策略?

两个各自有效但不同的动作模式被平均后,可能变成无效中间动作。

原始资料

Real-Time Chunking 把异步交接写成 action inpainting;Training-Time Action Conditioning 把 prefix 约束移到训练;Diffusion Policy 奠定 receding horizon action diffusion。