动作差异驱动的具身智能数据后处理:从墙上时间到物理状态变化
在准静态、机器人动作主导的任务里,决定相邻图像差异的主要是动作引起的状态变化,而不是墙上时间。时间戳应该主要用于同步、插值和动态任务,不应作为模型输入的直接因果变量。
也就是说:
训练时选哪些帧、怎么对齐动作,应该由动作幅度差异驱动;但时间戳不能丢,它负责同步和安全。
1. 为什么不能按墙上时间直接采样
因果链是:
动作 a_t → 机器人状态变化 → 物体/场景状态变化 → 图像变化
墙上时间 t_wall 本身不改变状态。
如果机械臂停着不动 5 秒,图像几乎不变,但墙上时间过去了 5 秒。
如果模型依赖时间戳,很容易学到“第几步”“过了多久”这类虚假特征,泛化到不同速度、不同控制频率时就会崩。
所以:
- 不要把绝对时间戳、墙钟时间直接喂给 ACT/VLA。
- 不要假设“相邻图片间隔相同 = 动作幅度相同”。
- 应该用动作差异来定义“帧之间的物理距离”。
2. 动作差异驱动重采样
设轨迹帧为:
观测 o_t,动作 a_t,时间戳 t_t
定义相邻动作差异:
d_t = D(a_t, a_{t-1})
D 可以设计为:
D = w_joint * ||q_t - q_{t-1}||_2
+ w_pose * (平移距离 + 旋转测地距离)
+ w_grip * |g_t - g_{t-1}|
然后计算累积动作弧长:
S_t = Σ d_i
训练采样时,不再按固定时间间隔取帧,而是:
- 在
S轴上均匀取点; - 或按固定
ΔS阈值取关键帧; - 或按分位数取帧。
伪代码:
def action_delta_resample(traj, N):
d = [D(traj.a[i], traj.a[i-1]) for i in range(1, len(traj))]
S = np.cumsum([0] + d)
targets = np.linspace(0, S[-1], N)
idx = np.searchsorted(S, targets)
return traj.subset(idx)
这样每个训练样本覆盖的物理动作量大致相同,而不是墙上时间相同。
3. 对 ACT 的具体影响
ACT 通常输入当前观测,输出未来 k 步动作 chunk。
如果按固定时间采样:
- 人类演示慢时,chunk 覆盖很小位移;
- 人类演示快时,chunk 覆盖很大位移;
- 策略学到的是“时间步”,不是“物理进度”。
建议:
- 图像与动作先按时间戳对齐。
- 用动作差异重采样关键帧。
- 构建 action chunk 时,按未来累积动作弧长采样,而不是固定时间步。
- 推理时仍按固定控制频率执行,但训练分布与推理频率匹配。
- 不要把时间戳作为 ACT 输入特征。
这样对 180° 大偏转尤其重要:
Gello 介入时人类可能快速修正大角度,动作幅度大;如果按固定时间采样,这些关键修正会被稀释。
4. 对 VLA 的影响
VLA 预训练通常假设固定帧率视频。微调时要注意:
- 可以继续按固定推理频率执行;
- 但训练帧的选择可以按动作差异重采样;
- 视觉 token 和动作 token 必须严格对齐;
- 语言指令里如果包含“慢慢”“快速”,时间可能重要,但视觉输入本身不直接编码时间戳。
VLA 后续建议:
固定推理频率 + 动作差异重采样训练帧 + 时间戳仅用于同步
不要直接把墙钟时间拼到视觉 token 里。
5. 对 RL 和 RLHF 的影响
RL 的 MDP 通常假设固定时间步。
如果控制频率稳定,时间间隔恒定,那没问题。
如果频率抖动,应该:
- 重采样到固定控制频率;
- 或用时间感知折扣:
γ^{Δt}; - 人类干预数据速度不均匀,必须重采样。
RLHF 的偏好标注里,人类可能偏好“更快”“更平滑”,但奖励模型输入应该是:
- 观测序列
- 动作序列
- 动作差异特征
- 任务阶段
- 可选力/电流
而不是绝对时间戳。
6. 什么时候时间仍然重要
以下任务不能完全忽略时间:
- 动态物体:传送带、下落、抛接;
- 等待物理过程:胶水固化、加热、液体流动;
- 接触后稳定:力控、柔顺装配;
- 安全超时、急停;
- 语言指令含速度/节奏。
这些情况下,时间应作为辅助变量或阶段变量,而不是视觉输入的直接条件。
7. 建议的数据后处理 pipeline
1. 原始数据:图像、关节、夹爪、力、时间戳
2. 时间同步:动作插值到图像时间戳
3. 计算动作差异 d_t
4. 计算累积动作弧长 S_t
5. 在 S 轴上均匀重采样 N 帧
6. 构建 action chunk:按未来 ΔS 均匀采样
7. 训练:图像 + 动作,不输入墙钟时间
8. 评估:使用相同 pipeline
关键原则:
- 时间戳用于同步、插值、安全、动态任务。
- 训练帧选择由动作差异驱动。
- 模型输入不直接依赖墙上时间。
如果现在图像、控制、Gello 的频率不一致,建议先做:
把所有轨迹按“动作弧长”重新参数化,再重采样到固定控制频率。
这样 ACT 和后续 VLA 都能复用同一套数据。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)