从随机动作块到真实闭环:Diffusion 与 Flow 策略的执行账本
TL;DR
- 场景:Diffusion 或 Flow 策略输出平滑动作只完成候选轨迹生成;真实闭环还要回答动作数据合同、数值求解时限、Action Chunk 衔接、滚动时域新鲜度、约束裁决和低层跟踪五个独立问题。
- 结论:把"模型→Policy 方框"展开为五层执行账本:动作数据合同、生成参数化与求解器、训练/推理分账、Receding Horizon 与低层控制解耦、同步/异步延迟账本 + RTC 等异步衔接方案。
- 产出:动作数据合同 10 字段表 + Diffusion/Flow 参数化对比 + MSE 平均化准确边界 + 同步执行延迟分解 + 异步 Action Chunking 三类账 + 6 种块衔接方案 + 4 种约束与安全选项 + 失败定位表。
版本矩阵
| 维度 | 状态 | 说明 |
|---|---|---|
| 动作数据合同 10 字段 | ✅ 已验证 | observation_time / action_time / control_mode / frame_id / units / dt·horizon / normalizer_version / valid_mask / embodiment / termination |
| DDPM 基础 | ✅ 已验证 | 通过逐步加噪与反向去噪学习生成分布;动作策略可预测噪声、A_0、速度或其他目标 |
| Diffusion Policy 核心设计 | ✅ 已验证 | 条件去噪扩散 + Receding Horizon + 视觉条件 + 时间序列扩散 Transformer(CNN+FiLM 与 Transformer-based DDPM 两种实现) |
| Diffusion Policy 实验结论 | ✅ 已验证 | 4 个机器人操作基准 15 个任务,平均比当时 SOTA +46.9%;论文给出条件但非任意机器人实时性或安全保证 |
| ACT(Action Chunking Transformer) | ✅ 已验证 | 学习动作序列的生成模型;用于缓解误差累积与非平稳示教问题 |
| π0 架构 | ✅ 已验证 | 在预训练视觉语言模型之上使用 Flow Matching 动作架构;在多种机器人数据上训练 |
| Flow Matching 数学 | ✅ 已验证 | 学习随生成时间 τ 变化的向量场 dA(τ)/dτ = v_θ(A(τ), τ, c);通过数值积分得到数据分布样本 |
| Flow Matching 与通用 ODE 求解器 | ✅ 已验证 | Flow Matching 原始工作描述为对条件概率路径向量场的回归;可使用通用 ODE 求解器 |
| Flow 不等于"一步就能执行",Diffusion 不等于"必然很慢" | ✅ 已验证 | 实际 NFE、蒸馏、求解器阶数、动作维度、条件编码缓存和硬件共同决定延迟 |
| MSE 平均化准确边界 | ✅ 已验证 | 仅在条件分布存在间隔大的多模式(如左绕 / 右绕)时 MSE 才会产生不可执行均值;多峰 ≠ 必须用生成式 |
| Receding Horizon 不等于低层闭环 | ✅ 已验证 | 策略更新较低频;伺服控制器仍需在更高频率计算电流/力矩/速度/位置命令 |
| Real-Time Chunking(RTC) | ✅ 已验证 | NeurIPS 2025 工作;针对 Diffusion / Flow Action Chunk Policy 推理时延;执行当前块时并行生成下一块;冻结确定会执行的动作前缀,对其余部分 Inpainting;论文称可在不重新训练策略的情况下应用 |
| 普通 Action Chunking 块边界问题 | ✅ 已验证 | RTC 论文指出普通 Action Chunking 仍可能在块边界出现暂停或分布外突跳 |
| 同步执行充分条件 | ✅ 已验证 | T_e2e,p99 + M < B_exec 替代 T_policy < hΔt(前者更接近实际门槛) |
| 约束与安全四种选项 | ✅ 已验证 | 约束投影 / Guidance / 规划器筛选 / 独立安全门禁;前三种能提高可行性但不能替代最后一种 |
| "Diffusion Policy = 某条固定公式" | ❌ 不成立 | 网络可预测噪声 / A_0 / 速度参数化;"Diffusion Policy"是一类条件扩散动作生成 |
| "MSE 一定失败 / 生成式一定更优" | ❌ 不成立 | 模型选择应由条件动作分布、数据覆盖、延迟预算、安全架构决定 |
| "10 条 Seed = 安全" | ❌ 不成立 | 候选可能都属于同一模式;筛选器若无可靠动力学与约束,只是 10 次暴露风险 |
| "Receding Horizon = 电机控制闭环" | ❌ 不成立 | 策略负责"到哪里",控制器负责"每个控制周期怎样稳定到达" |
| "RTC = 独立安全层" | ❌ 不成立 | RTC 处理推理与执行衔接;独立安全层负责约束、拒绝和强制停止 |
| "动作块平均能解决跳变" | ❌ 不成立 | 可能混合不同观察和意图;必须先定义承诺前缀、版本和衔接语义 |

摘要
Diffusion 或 Flow 策略输出平滑动作,只完成候选轨迹生成。真实闭环还需要动作数据合同、数值求解时限、Action Chunk 衔接、滚动时域新鲜度、约束裁决和低层跟踪。本文把这些环节拆成可观测执行账本。
关键词
Diffusion Policy、Flow Matching、Action Chunk、Receding Horizon、RTC
目录
- 核心结论
- 第一层:先定义动作数据合同
- [第二层:Diffusion 与 Flow 生成的是什么](#第二层:Diffusion 与 Flow 生成的是什么 "#%E7%AC%AC%E4%BA%8C%E5%B1%82diffusion-%E4%B8%8E-flow-%E7%94%9F%E6%88%90%E7%9A%84%E6%98%AF%E4%BB%80%E4%B9%88")
- 条件编码也需要时间语义
- [MSE 平均化的准确边界](#MSE 平均化的准确边界 "#mse-%E5%B9%B3%E5%9D%87%E5%8C%96%E7%9A%84%E5%87%86%E7%A1%AE%E8%BE%B9%E7%95%8C")
- 第三层:训练与推理流程必须分账
- [第四层:Receding Horizon 不是低层闭环](#第四层:Receding Horizon 不是低层闭环 "#%E7%AC%AC%E5%9B%9B%E5%B1%82receding-horizon-%E4%B8%8D%E6%98%AF%E4%BD%8E%E5%B1%82%E9%97%AD%E7%8E%AF")
- 第五层:同步与异步延迟账本
- 动作块衔接不是简单平均
- 约束与安全:四种选项不能混称
- 明确标注的执行伪代码
- 失败定位表
- 结语
- FAQ
核心结论
Diffusion 或 Flow 策略输出一段平滑动作,只证明生成模型在训练分布附近产生了连续序列。真实机器人还要回答五个彼此独立的问题:这段序列的单位、坐标系和时间戳是否正确;生成参数化与数值求解器是否按时完成;新旧 Action Chunk 是否连续且基于足够新的观察;动作是否满足机器人与环境约束;低层控制器能否稳定跟踪。动作块建模、生成模型、采样/积分器、滚动时域执行和低层控制不能被压成一个"Policy"方框。
H-P01 Diffusion Policy 把视觉运动策略表示为条件去噪扩散过程,并将 Receding Horizon、视觉条件和时间序列网络作为关键设计。H-P02 π0 则在预训练视觉语言模型之上使用 Flow Matching 动作架构,并在多种机器人数据上训练。两者都能建模动作分布,但论文中的任务结果只说明各自实验设置,不构成任意机器人上的实时性或安全保证。
第一层:先定义动作数据合同
设一个动作块为:
A_t=\[a_t,a_{t+1},\\ldots,a_{t+H-1}\]\\in\\mathbb{R}\^{H\\times D}
其中 (H) 是预测步数,(D) 是单步动作维度。这个矩阵本身没有执行语义。(a) 可能是关节位置、关节增量、速度、力矩、末端位姿、夹爪开度或混合控制量;相同数字在不同合同中可能产生完全不同的物理行为。
训练与推理数据至少要固定以下字段:
| 字段 | 必须说明的内容 | 缺失后的典型后果 |
|---|---|---|
observation_time |
图像、状态和语言条件各自采样时间 | 模型基于旧画面生成新动作 |
action_time |
示教动作实际生效时间,而非日志写入时间 | 学到错误的感知---动作相位 |
control_mode |
position/delta-position/velocity/torque 等 | 数值可用但物理语义错误 |
frame_id |
base、world、camera、tool 等坐标系 | 方向或旋转轴错置 |
units |
m、mm、rad、degree、N、N·m | 尺度灾难 |
dt 与 horizon |
单步周期、块长度、允许抖动 | 推理块与执行调度不匹配 |
normalizer_version |
每维缩放、裁剪和反归一化版本 | 离线正常、上线幅值异常 |
valid_mask |
Padding、缺测、终止后的无效动作 | 模型把补零当真实策略 |
embodiment |
机器人、关节顺序、工具、限位版本 | 跨机体动作映射错误 |
termination |
成功、失败、人工中止、急停 | 无法学习何时结束或退出 |
机器人动作数据最危险的问题常不是模型结构,而是"看似相同的张量实际来自不同时间、坐标系或控制模式"。上线前应对每批数据做单位、维度、时间单调性、关节顺序、限位和归一化可逆性检查,并保存转换版本;不能只靠训练 Loss 发现合同错误。

第二层:Diffusion 与 Flow 生成的是什么
Diffusion 动作块
在一种常见 DDPM 参数化中,对真实动作块 (A_0) 加噪:
A_k=\\sqrt{\\bar{\\alpha}_k}A_0+\\sqrt{1-\\bar{\\alpha}_k}\\epsilon, \\quad \\epsilon\\sim\\mathcal{N}(0,I)
网络在条件 (c) 下预测噪声:
\\mathcal{L}=\\mathbb{E}\\left\[\|\\epsilon-\\epsilon_\\theta(A_k,k,c)\|\^2\\right\]
H-P05 DDPM 建立了通过逐步加噪与反向去噪学习生成分布的基本形式。动作策略可以预测噪声,也可以采用 (A_0)、速度参数化或其他目标;"Diffusion Policy"不是某一条固定公式。
推理时从噪声动作块开始,经若干反向步骤得到候选 (\hat{A}_0)。网络结构负责估计去噪方向,调度器和求解器负责把这些方向离散成采样轨迹。步数、时间网格、随机项、Guidance 和数值精度都会改变延迟与输出;不能把"模型前向一次"当作完整策略耗时。
Flow Matching 动作块
Flow Matching 学习随生成时间 (\tau) 变化的向量场:
\\frac{dA(\\tau)}{d\\tau}=v_\\theta(A(\\tau),\\tau,c)
从基分布出发,通过数值积分得到数据分布中的动作块。H-P06 Flow Matching 的原始工作把它描述为对条件概率路径向量场的回归,并可使用通用 ODE 求解器。H-P02 π0 报告使用建立在 VLM 上的 Flow Matching 架构生成机器人动作。
Flow 不等于"一步就能执行",Diffusion 也不等于"必然很慢"。实际 NFE、蒸馏、求解器阶数、动作维度、条件编码缓存和硬件共同决定延迟。工程文档应分别记录模型参数化、积分器、步数与端到端时间。

条件编码也需要时间语义
动作生成网络的条件通常包括相机特征、语言指令、本体状态、上一动作和任务阶段。条件可以通过拼接、FiLM、交叉注意力或独立 Token 注入;这些结构差异本身不保证模型真的使用了每个条件。验收时应分别屏蔽视觉、语言和本体状态,交换时间顺序,并比较动作分布变化。若去掉关节速度后输出几乎不变,模型可能无法处理动态起点;若交换两帧图像仍得到相同动作,它可能只依赖静态外观。
条件缓存也要进入延迟账本。语言编码可在指令不变时复用,视觉与本体状态却通常必须随控制轮次更新。为了缩短延迟而复用旧视觉特征,会把计算优化转化为状态陈旧问题。系统应记录每个条件的采样时间、编码完成时间和被策略消费的时间,使用"最大条件年龄"而不是单一观察时间评价新鲜度。
MSE 平均化的准确边界
常见说法是"回归会把两种动作平均成危险动作,所以必须用 Diffusion"。准确说法应更窄。
在平方损失下,确定性回归器倾向于条件均值。当条件分布存在间隔很大的多个动作模式,例如障碍物可从左或右绕行,均值可能落在障碍物中间;这是多峰分布下的风险。若任务在给定观察下近似单峰、动作模式经过高层决策消歧,或回归目标本来就是连续控制最优值,MSE 并不会必然失败。反过来,生成模型虽能表达多峰,也可能模式坍缩、产生低概率危险样本或耗时过长。
模型选择应由条件动作分布、数据覆盖、延迟预算和安全架构决定,而不是由"生成式一定优于回归式"的口号决定。
第三层:训练与推理流程必须分账
训练流程至少包含:按真实时间切片 Observation 与 Action Chunk;转换到统一坐标和控制模式;应用固定版本归一化;生成有效 Mask;随机采样扩散或 Flow 时间;计算只覆盖有效动作的损失;按机体、任务、速度和接触阶段分桶评估。
推理流程则是:同步传感器与机器人状态;构造带时间戳条件;生成动作块;反归一化与动作适配;执行约束检查;写入动作缓冲;由低层控制器按自身周期跟踪。训练网络从未直接接触的任何变换,都必须进入部署合同和回放测试。
随机 Seed 只产生不同数值候选,不自动构成有意义的策略多样性。候选可能都属于同一模式,也可能差异来自采样噪声而非真实任务歧义。需要测模式覆盖、任务等价类、候选间距离、成功率、危险率和排名稳定性。更不能因为"采样十条再选一条"就声称安全:筛选器若没有可靠动力学与约束,十条只是十次暴露风险。

第四层:Receding Horizon 不是低层闭环
Action Chunking 常预测 (H) 步,但每轮只执行前 (h) 步,然后用新观察重新规划。这样可以减少单步策略调用,又避免整块开环执行。ACT 学习动作序列的生成模型,用于缓解误差累积与非平稳示教问题;Diffusion Policy 也把 Receding Horizon 作为关键组成。H-P03H-P01
但滚动重规划不等于电机控制闭环。策略通常在较低频率上更新动作参考;伺服控制器仍需在更高频率根据编码器、力传感器和动态状态计算电流、力矩、速度或位置命令。策略可以生成"到哪里",控制器负责"每个控制周期怎样稳定到达"。
执行前缀 (h) 的大小是系统参数:过大时观察更新慢、错误持续久;过小时策略调用频繁、容易耗尽延迟预算。它应依据任务动态、接触风险、控制频率、推理延迟分布和动作块质量共同确定,不能从论文示例直接复制。

第五层:同步与异步延迟账本
同步策略
同步执行通常是:停止或保持当前参考,采集观察,等待策略完成,再下发新动作。端到端延迟应拆为:
T_{e2e}=T_{sense}+T_{sync}+T_{pre}+T_{condition}+T_{sample}+T_{adapt}+T_{safety}+T_{transport}
还要记录调度抖动、GPU 排队、首次编译和网络尾延迟。对于"当前块继续执行、下一块必须在缓冲耗尽前到达"的具体设计,一个充分而非通用的条件是:
T_{e2e,p99}+M \< B_{exec}
其中 (B_{exec}) 是已安全排队动作的剩余执行时间,(M) 是时钟、抖动和切换裕度。原初稿中的 (T_{policy}<h\Delta t) 只在特定前缀缓冲定义下近似成立;若系统会暂停、保持最后命令、预测未来状态、并行计算或允许降频,门槛都不同。
异步 Action Chunking
H-P04 Real-Time Chunking(RTC)针对 Diffusion/Flow Action Chunk Policy 的推理时延,在执行当前块时并行生成下一块;它冻结确定会执行的动作前缀,并对其余部分做 Inpainting,且论文称该方法可在不重新训练策略的情况下应用。论文同时指出,普通 Action Chunking 仍可能在块边界出现暂停或分布外的突跳。
异步执行消除了"等模型算完才动"的停顿,却增加三类账:下一块使用的观察已经多旧;当前块中哪些动作不可再改;模型完成时机器人真实状态与预测起点差多少。RTC 是一种处理这些矛盾的方法,不是唯一方法,也不能替代独立安全层。

动作块衔接不是简单平均
新旧块的接缝可以采用多种工程方案:
- 硬切换:仅在位置、速度、加速度和接触模式差异均低于阈值时使用;
- 重叠融合:对重叠区加权,但接触动作或绕障模式不能盲目平均,左绕与右绕的均值可能不可行;
- 状态条件化:下一块显式以当前关节、末端速度、夹爪和接触状态为起点;
- Warm Start/Inpainting:保留将执行前缀,只生成可修改后缀;
- 末端约束:要求块首尾满足连续性、速度或动力学边界;
- 低层限幅:控制器施加速度、加速度、Jerk 和力矩变化限制,但它不能修复高层错误路线。
评价不能只看动作曲线是否光滑。还要测接缝位置/速度/加速度跳变、接触模式切换、跟踪误差、块边界失败率、缓冲欠载次数和观察年龄。
约束与安全:四种选项不能混称
约束投影把生成动作映射回关节限位、速度范围或简单凸集合;投影后的轨迹可能离数据分布很远,也未必避碰。
Guidance在采样或积分时加入目标与代价梯度;它依赖可微、尺度正确且足够可信的代价。
规划器筛选生成多个候选后用碰撞、动力学或任务代价排序;质量受候选覆盖和评估模型限制。
独立安全门禁在策略之外拥有否决权,检查状态新鲜度、关节与工作区、碰撞、力/力矩、速度、网络与看门狗,并可触发 Hold、撤退或急停。前三种能提高可行性,但都不能自动替代最后一种,因为生成模型、投影器和规划器可能共享同一错误假设。
明确标注的执行伪代码
以下仅是架构伪代码,未针对任何机器人验证:
text
while system_state == RUNNING:
obs = synchronized_snapshot()
if stale(obs) or invalid(obs):
enter_hold("state_invalid")
continue
proposal = policy.generate_chunk(obs, deadline)
action = action_adapter.denormalize_and_map(proposal)
verdict = safety_gate.check(action, obs, robot_limits)
if not verdict.accepted:
enter_hold(verdict.reason)
continue
prefix = stitch_with_active_buffer(action, current_state)
executor.enqueue(prefix)
feedback = monitor.read()
if deadline_miss(feedback) or no_progress(feedback):
enter_recovery(feedback.reason)
真实实现还需要线程安全、时钟同步、队列上限、取消语义、控制器接口和硬件急停,不应把这段伪代码直接部署。
失败定位表
| 现象 | 优先检查 | 不应先做的事 |
|---|---|---|
| 动作方向整体相反 | 坐标系、关节顺序、Delta 定义 | 增加采样步数 |
| 每个块内部平滑但边界突跳 | 观察年龄、起点状态、缓存与 Stitch | 只调低层滤波 |
| 推理偶发停顿 | p99 分阶段延迟、GPU 排队、缓冲余量 | 只看平均 FPS |
| 多 Seed 都撞同一障碍 | 数据模式覆盖、条件是否区分、筛选器 | 继续增加 Seed 数 |
| 离线回放正常、真机幅值过大 | 归一化版本、单位、控制模式、时钟 | 重新训练全部模型 |
| 安全投影后轨迹抖动 | 投影不连续、约束冲突、距训练分布过远 | 假定"合法即自然" |
| 接触后持续用力 | 力反馈、终止条件、块长度、低层力控 | 只依赖视觉策略 |
| 长延迟时还能动但任务失败 | 异步状态陈旧、冻结前缀过长、预测起点漂移 | 把"无停顿"当实时成功 |
结语
Diffusion 与 Flow 为机器人策略提供了表达多峰动作分布和长动作块的工具,但它们只解决"如何生成候选动作"的一部分。动作是否可执行,取决于数据合同;是否按时,取决于求解器和尾延迟;是否连续,取决于滚动执行与块衔接;是否安全,取决于独立约束与监控;是否稳定,最终还取决于低层控制。
正确的工程路径不是看到平滑轨迹就宣布闭环完成,而是建立完整账本:动作张量的物理语义、训练与推理转换、采样 NFE、同步或异步调度、缓冲余量、观察年龄、接缝指标、安全否决和控制跟踪。只有这些合同同时成立,随机动作块才真正变成机器人可以按时、安全、连续执行的动作。
FAQ
Flow Matching 就没有去噪步骤吗?
它通常通过学习向量场并数值积分生成样本;仍可能有多步求解,但不应机械套用 Diffusion 的参数化描述。
Action Chunk 直接平均能解决跳变吗?
可能暂时变平滑,却会混合不同观察和意图;必须先定义承诺前缀、版本和衔接语义。
RTC 能替代 Safety Gate 吗?
不能。RTC 处理推理与执行衔接,独立安全层负责约束、拒绝和强制停止。
错误速查卡
| 症状 | 根因 | 定位 | 修复 |
|---|---|---|---|
| 动作方向整体相反 | 坐标系 / 关节顺序 / Delta 定义错置;动作数据合同第一层缺失 | 核对 frame_id / control_mode / embodiment 字段;检查归一化是否对齐轴 |
冻结动作数据合同 10 字段;上线前做单位、维度、时间单调性、关节顺序、限位、归一化可逆性检查 |
| 离线正常、真机幅值过大 | 归一化版本 / 单位 / 控制模式 / 时钟错位 | 检查 normalizer_version 与 action_time;对比离线和在线的每维缩放 |
归一化固定为版本化工件;切换版本必须重测;保存转换版本链 |
| 每个块内部平滑但边界突跳 | 观察年龄过大;新块起点未基于当前状态;缓存与 Stitch 不一致 | 检查 stale(obs) / 最大条件年龄 / 块衔接策略 |
显式定义承诺前缀 + 版本 + 衔接语义;用状态条件化或 Warm Start |
| 推理偶发停顿 | p99 分阶段延迟 / GPU 排队 / 缓冲余量不足 | 拆分 T_e2e = T_sense + T_sync + T_pre + T_condition + T_sample + T_adapt + T_safety + T_transport | 用 T_e2e,p99 + M < B_exec 替代 T_policy < hΔt;按数据面调优 |
| 多 Seed 都撞同一障碍 | 数据模式覆盖不足 / 条件未区分 / 筛选器单一 | 检查数据多模态覆盖、候选间距离、模式覆盖指标 | 增加模式覆盖、任务等价类、候选间距离、成功率、危险率、排名稳定性测试 |
| 安全投影后轨迹抖动 | 投影不连续 / 约束冲突 / 距训练分布过远 | 检查投影后分布与训练集分布的 KL / 距离 | 约束投影 + Guidance + 规划器筛选组合;不要假定"合法即自然" |
| 接触后持续用力 | 力反馈缺失 / 终止条件不当 / 块长度过大 / 低层力控未启用 | 检查 termination 字段与低层力控接口 |
启用低层力控;合理设置块长度与终止条件;不要只依赖视觉策略 |
| 长延迟时无停顿但任务失败 | 异步 Action Chunking 状态陈旧 / 冻结前缀过长 / 预测起点漂移 | 记录观察年龄、冻结前缀、模型完成时真实状态 | 用 RTC 等异步方案但不要替代独立安全层;监控最大条件年龄 |
| "Diffusion Policy"被当某条固定公式 | 动作策略可预测噪声 / A_0 / 速度参数化 | 文档中是否只描述了 DDPM 噪声预测 | 工程文档分别记录模型参数化 / 积分器 / 步数 / 端到端时间 |
| 误把"生成式 = 一定优于回归式" | 多峰 ≠ 必须用生成式;MSE 边界被误读 | 条件动作分布是单峰还是多峰;数据是否覆盖多模式 | 按条件动作分布、数据覆盖、延迟预算、安全架构决定;不要凭口号选型 |
| 误把"10 条 Seed = 安全" | 候选可能都属于同一模式 | 测模式覆盖、任务等价类、候选间距离、危险率 | 筛选器若无可靠动力学与约束,10 条只是 10 次暴露风险 |
| 误把 Receding Horizon 当电机控制闭环 | 策略负责"到哪里",控制器负责"每个控制周期怎样稳定到达" | 策略频率 vs 控制器频率;编码器 / 力传感反馈是否进入控制器 | 短前缀重规划 + 高频反馈各自关闭不同环路;显式划分两环责任 |
| 误把 RTC 当 Safety Gate | RTC 处理推理与执行衔接;独立安全层负责约束、拒绝、强制停止 | 系统是否把 RTC 之外的安全检查独立布置 | 保留独立安全门禁;RTC 不替代 Safety Gate |
| 块衔接直接平均 | 接触 / 绕障模式被平均后可能不可行 | 检查接缝位置 / 速度 / 加速度跳变、接触模式切换 | 显式选择 6 种衔接方案之一(硬切换 / 重叠融合 / 状态条件化 / Warm Start / 末端约束 / 低层限幅) |
| 伪代码被直接部署 | 标注的"未针对任何机器人验证"被忽略 | 真实实现是否补齐线程安全、时钟同步、队列上限、取消语义、控制器接口、硬件急停 | 补齐生产化要素;不能直接部署工程示例伪代码 |
| 论文示例 hΔt 被原样复制 | 同步执行充分条件被简化 | 任务动态 / 接触风险 / 控制频率 / 推理延迟分布 / 动作块质量是否独立评估 | 重新评估 h 大小;用 T_e2e,p99 + M < B_exec 校准 |
valid_mask 缺失导致模型学错 |
Padding / 缺测 / 终止后的无效动作被当成真实策略 | 检查有效 Mask 是否在训练时正确应用 | 加入 valid_mask 字段;损失只覆盖有效动作 |
embodiment 字段漂移 |
跨机体动作映射错误;关节顺序、工具、限位版本未冻结 | 检查 embodiment 字段是否随数据集更新 | Embodiment 作为版本化工件;切换 embodiment 必重训 / 重测 |
| Flow Matching 误套用 Diffusion 公式 | 训练目标和数值路径不能混写 | 文档是否清晰描述向量场 + 数值积分路径 | Flow Matching = 向量场 + 数值积分;Diffusion = 噪声 + 去噪;分别记账 |
| 同步执行时仍出现块边界突跳 | Action Chunking 块边界分布外 + 推理未按时 | 普通 Action Chunking 在块边界可能暂停 / 分布外突跳 | 用 RTC 异步衔接;监控缓冲余量与观察年龄;保留独立安全层 |
作者:武子康的个人博客