docs: 方案文档重写为最终版,只保留最终设计、依据与当前待解决事项;移除历史核查记录
This commit is contained in:
+766
-1423
File diff suppressed because it is too large
Load Diff
+308
-414
@@ -1,14 +1,7 @@
|
||||
# Transformer 避障运动策略:无老师闭环部署方案(审查稿 v2.3.1)
|
||||
# Transformer 避障运动策略:最终方案
|
||||
|
||||
> - v1(2026-10-17 20:06,`40af3b4`):模型一次生成整条 32 点路径,失败回落到原规划器("有老师部署")。
|
||||
> - v1.1(20:25,`c51f8f9`):加入后训练挖错循环。
|
||||
> - **v2(本稿)**:按用户决定改为 **无老师部署 + 每个控制周期重算(闭环)**,删除全部"回落原规划器"设计;
|
||||
> 加入具身智能领域主流做法的调研与对比(§1–§2),并据此调整模型输出、后训练方法和验收标准。
|
||||
> - v2.1(2026-10-17 20:58):训练机定为 RTX 3090 24 GB;near_column 验收改为 **30/30**,新增 §8.5「为什么会超时、无老师怎样做到 30/30」;新增 §8.6 控制周期业界调研与评估。
|
||||
> - v2.2(2026-10-17 21:10):调研 2024–2026 前沿生成式策略(流匹配/MeanFlow 一步生成、实时动作块 RTC、代价引导扩散规划、流策略强化学习微调、π0.5/FAST 等),逐项判断是否适用,新增 §2.4,并据此把动作头升级为**一步流匹配头 + 碰撞代价引导 + 前缀条件**(§6.1A)。
|
||||
> - **v2.3(2026-10-17 21:30):逐项可行性核查。** 4 路全文精读(约 40 篇论文)+ 沙箱 2D 双模态绕柱对照实验,对每一项方案给出证据等级、残余风险、门禁测试和回退;发现并修正 4 处硬伤(安全层离散检查漏检、`animTo` 时间律不可学、交叉淡入绕过安全层、训练/部署节奏不一致)和 24 处内部不一致。核查结论见新增 **§0A**,全部证据见 `docs/方案逐项核查报告.md`。
|
||||
> - 基于 `main@3c7c814`(贴立柱修复后的规划器)。本文只是方案,代码尚未编写。
|
||||
> - 审查重点:§0 定位、§2 差异与优化、§5 输出表示、§7 后训练(APG)、§8 闭环部署与安全层、§9 验收。
|
||||
> 基于 `main@3c7c814`(贴立柱修复后的规划器)。本文是方案,代码尚未编写。
|
||||
> 训练机:RTX 3090 24 GB。部署:浏览器(后续真机)。
|
||||
|
||||
---
|
||||
|
||||
@@ -16,183 +9,98 @@
|
||||
|
||||
| 项目 | 决定 |
|
||||
|---|---|
|
||||
| 部署形态 | **无老师**:运行时只有「神经策略 + 碰撞安全层」,不加载 IK 大表、PRM 路网、A*/RRT,也不调用 `solveDyn` / `routeRT` |
|
||||
| 运行方式 | **闭环滚动重算**(MPC 式):每个控制周期(默认 50 Hz,20 ms)读当前关节角和目标,重新推理一段短动作块,只执行最前面一小段,下一周期再算。某一周期算错,下一周期有机会纠正 |
|
||||
| 碰撞安全层 | **保留**。它不是老师:不做搜索,只对模型给出的下一小段做胶囊碰撞检查(已有 `collideFree` + 包围球预筛),不安全就换候选或刹停 |
|
||||
| 老师的角色 | 只在**离线训练**时出现:生成预训练数据。后训练阶段用可微碰撞代价(§7),基本不再需要老师 |
|
||||
| 不做的事 | 不学动力学(速度/加速度上限由插补器保证);不用相机/点云(环境固定:台架 + P01 立柱,几何已知) |
|
||||
| 收益目标 | 冷启动(新目标到第一个动作)< 10 ms;每次推理 + 安全检查 < 20 ms(每 60 ms 一次,留 3 倍余量;须 M4 后在浏览器实测,v2.3 更正);拖拽重规划 P99(现状约 321 ms)不再存在 |
|
||||
| 底线 | 实时拖拽**碰撞帧 = 0**(由安全层的距离下界认证保证,见 §8.3;离散采样检查不能单独作此保证);到达率、行程在 §9 的指标上不低于现有规划器 |
|
||||
| 部署形态 | **无运行时老师**:运行时只有「神经策略 + 碰撞安全层」,不加载 IK 大表、PRM 路网、A*/RRT,也不调用 `solveDyn` / `routeRT` |
|
||||
| 运行方式 | **闭环滚动执行**:执行频率 50 Hz(每步 20 ms);每 60 ms 读一次当前关节角和目标,推理一段 16 步动作块,安全层认证后提交前 3 步 |
|
||||
| 碰撞安全层 | 不做搜索,只对模型给出的候选做**距离下界认证**(§8.3),不安全就换候选或沿已认证刹停段停下 |
|
||||
| 老师的角色 | 只在**离线**出现:生成预训练数据;后训练以可微碰撞代价为主(§7) |
|
||||
| 不做的事 | 不学动力学(速度/加速度上限由时间律与插补器保证);不用相机/点云(环境固定:台架 + P01 立柱,几何已知) |
|
||||
| 收益目标 | 冷启动(新目标到第一个动作)< 10 ms;每次推理 + 安全认证 < 20 ms;消除现有拖拽重规划 P99 约 321 ms 的长尾 |
|
||||
| 底线 | 实时拖拽**碰撞帧 = 0**(由安全层距离认证保证);到达率、行程在 §9 指标上不低于现有规划器 |
|
||||
|
||||
为什么安全层必须保留:调研里最好的神经运动策略在静态场景里仍有约 10% 的轨迹发生碰撞(§1 DRP 附录表 6、ELMP 表 I)。
|
||||
我们的环境几何完全已知、检查只要几毫秒,保留它代价极小,却把"偶尔撞一下"变成"偶尔停一下"。
|
||||
**关于"风险":** 论文证据只能说明"别人在相近条件下做成过",没有一篇论文的条件(低维状态、单根固定立柱、约 4M 参数、浏览器推理、30/30)与本项目完全一致。因此本方案中只有安全层是**硬保证**(碰撞与否不依赖模型好坏);其余每一项都配有证据等级、本仓库可测的**门禁**(不过不进下一步)和**回退**(§10)。
|
||||
|
||||
---
|
||||
|
||||
## 0A. v2.3 逐项可行性核查结论(必读)
|
||||
## 1. 方案总览
|
||||
|
||||
**先说清楚一件事:没有任何方案能在实测前被"证明完全没有风险"。** 论文证据只能说明"别人在相近条件下做成过";我们的条件(低维状态、单根固定立柱、5M 参数、浏览器推理、30/30)没有一篇论文完全一样。所以 v2.3 的做法是:每一项都给出①证据等级 ②残余风险 ③在本仓库可测的**门禁**(通不过就不进下一步)④通不过时的**回退**。唯一做成"硬保证"的是安全层(改为距离认证后,碰撞与否不依赖模型好坏)。
|
||||
|
||||
证据等级:**A** 有充分证据(直接先例 + 数字) · **B** 部分证据(相近先例,需本仓库验证) · **C** 仅推断 · **✗** 有反证(已修改)
|
||||
|
||||
### 0A.1 四处硬伤(已在正文修正)
|
||||
|
||||
| # | 原方案 | 反证 | v2.3 修正 |
|
||||
| 模块 | 最终选择 | 证据等级 | 关键依据 |
|
||||
|---|---|---|---|
|
||||
| H1 | §8.3 安全层用 1°+半格离散采样"保证不撞" | 本臂杠杆实测:关节转 1°,TCP/胶囊最多移动 24.3 mm;0.5° 间距下两采样点之间可偏出约 6 mm,远大于 0.3 mm 余量。仓库自己的规划报告也记过 0.28 mm 残余侵入。Schwarzer 2005、LARC 均证明离散检查会漏检 | 臂×立柱/台架改为**距离下界认证**:d(q_a)+d(q_b) > Σ r_j·|Δθ_j|(r_j 为实测杠杆上界),不满足就二分;自碰撞对复用 pair2d 杠杆界。门禁:10⁵ 段离线 0.01° 审计,漏检 = 0 |
|
||||
| H2 | §4.5 沿用 `animTo`(全局 smoothstep + 总时长夹取)做时间参数化 | 同一状态的标签速度取决于输入看不到的"整条路径长度/进度" → 非马尔可夫;起步段 Δq≈0 → 闭环可能起不了步。MπNets 为此把老师路径重定时为匀速;Diffusion Policy 报告单步策略会卡在停顿动作 | 改为**局部可观测时间律**:匀速巡航 + 只按"剩余路程"决定的梯形加减速,并把当前速度 q_t−q_{t−1} 加入输入 |
|
||||
| H3 | §8.1 插补器对新旧动作块做时间集成/交叉淡入 | 实际执行的是两块的混合,没被安全层检查;左绕块与右绕块平均可能正好穿柱。π0 试过时间集成后放弃,BID 报告多模态下掉性能 | **删除交叉淡入**,执行的就是被认证过的那一块;块间连续性靠前缀条件(§6.1A) |
|
||||
| H4 | 部署每 20 ms 推理、只走 1 步;APG 每 3 步推理一次;"周期"三种定义 | BID(2408.17355)证明动作时域 = 1 会破坏块内一致性、导致来回摆动 | 统一为:**50 Hz 执行,每 3 步(60 ms)推理一次、提交 3 步**;APG 展开节奏与部署完全一致。"每步重推理"留作 A/B 对照 |
|
||||
| 模型规模 | 约 4.1M 参数编码器-解码器 Transformer,不用 VLA 大模型 | A | IMPACT 4.67M、300 Hz;π0 3B 单次预填充 46 ms(4090) |
|
||||
| 数据 | 采样式规划器离线造 5 万条任务 → 约 200 万"状态→动作块"样本 | B | MπNets、DRP、ELMP 均用规划器老师 |
|
||||
| 时间律 | 匀速巡航 + 梯形加减速,只依赖"当前速度 + 剩余路程";当前速度作输入 | B | MπNets 将老师路径重定时为匀速 |
|
||||
| 动作表示 | 16 步 × 6 轴关节增量 Δq | A | DRP;Diffusion Policy(位置式优于速度式) |
|
||||
| 动作头(默认) | **一步生成头**:MeanFlow 或 Shortcut + 条件 OT 配对,每次并行采 8 个噪声 → 8 条候选 | B | 沙箱双模态实验(§2.4);COT 双峰实证;MP1 约 6.8 ms |
|
||||
| 动作头(基线) | K=4 模式 WTA 头,与默认头 A/B,择优 | A | 多模态轨迹预测通用做法;沙箱实验同样通过 |
|
||||
| 块间连续 | 训练时前缀条件化:输入已提交未执行的步 | B | 2512.05964:推理零开销,d≥2 时优于推理时 RTC |
|
||||
| 碰撞修正 | 输出后 1–2 步解析胶囊距离梯度投影(仅 d < 余量时) | B | DiffusionSeeder:少步生成下在环引导收益很小;投影在已知环境下够用 |
|
||||
| 候选排序 | 与已提交块重叠步的一致性打分 + 价值头 | B | BID:一致性打分 + 多样本相对提升 32% |
|
||||
| 预训练 | 行为克隆 + FK 胶囊端点损失 | B | ELMP 式 FK 损失 |
|
||||
| 后训练(主) | APG:可微运动学展开 + 胶囊距离代价反传 | A | ELMP:碰撞率 31.3%→8.9%;1 万示范 + APG 胜 60 万纯 BC |
|
||||
| 后训练(辅) | 无老师挖错循环 + 门禁;可选 ReinFlow | B | DRP 迭代微调 +45%;ReinFlow +40% |
|
||||
| 安全层 | 距离下界认证 + 可刹停不变式 | A | Schwarzer 2005 连续认证;Thumm & Althoff 2022 failsafe |
|
||||
| 30/30 手段 | 子目标头、价值头、短前瞻、卡死换向 | B / C | AWE、SHAC、BID |
|
||||
|
||||
### 0A.2 逐项核查表
|
||||
证据等级:**A** 有直接先例与数字 · **B** 有相近先例,需本仓库验证 · **C** 仅推断。
|
||||
|
||||
| § | 方案 | 等级 | 关键证据 | 残余风险 | 门禁(本仓库) | 回退 |
|
||||
---
|
||||
|
||||
## 2. 依据
|
||||
|
||||
### 2.1 业界神经运动规划
|
||||
|
||||
| 工作 | 年份 / 会议 | 输入 | 输出 | 老师与数据量 | 关键做法 | 运行方式 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| §0 | 不用 VLA 大模型,3–5M 参数专用策略 | A | IMPACT 4.67M 参数、300 Hz;π0 3B 单次预填充 46 ms(4090) | — | — | — |
|
||||
| §4.1–4.3 | 采样式老师离线造 5 万条任务 | B | MπNets、DRP、ELMP 均用规划器老师;MπNets:老师不一致时碰撞率 13.78%,一致老师 0.94% | 我们的老师是随机采样式,同类任务可能左右绕不一致 | 同任务 5 个种子:同伦类一致率 ≥ 90%,行程 CV < 10% | 固定种子 + "最短同伦类优先",或用 PRM 路网 A*(确定)作老师 |
|
||||
| §4.3 D 类 | 不可达目标 → 停在最近安全位形 | B | DRP 有同类数据 | 停靠点随目标跳变 | 目标扫过立柱时相邻 20 ms 停靠点跳变 < 5 mm | 停靠标签加连续性约束 |
|
||||
| §4.5 | 时间参数化 | ✗→改 | 见 H2 | — | 近邻标签方差 < 10% 步长;起步失败率 = 0 | 输入当前速度 |
|
||||
| §4.5-④ | "路径后缀 = 免费 DAgger" | ✗→删 | DAgger 要求学生自己偏离后的状态;后缀仍是老师状态 | 协变量偏移 | 闭环到达率与单步准确率差距 | 关节噪声增广(σ 0.5–1°,DART +62%)+ 离线老师重标 + §7 |
|
||||
| §5.1 | 输入:sin/cos、TCP、6D 姿态、胶囊距离 | B | 6D 旋转连续(Zhou 2019);ELMP、MπNets 同类输入 | 位姿目标多 IK 分支 → 额外多峰;缺子目标/前缀/速度字段(已补) | 去胶囊特征消融差 ≥ 3 pp 才保留 | 加目标分支标志 |
|
||||
| §5.2 | 16 步 Δq 动作块 | A | DRP、Diffusion Policy(位置式优于速度式) | 补零样本过多 → 早停 | 补零占比 > 30% 则降权 | — |
|
||||
| §6.1 | IMPACT 式编码器-解码器去点云 | A(结构)/C(够不够) | IMPACT 原文表 7 | 实算约 4.1M | 1000 样本过拟合 → 0;held-out ≥ 95%(APG 前) | 加宽 |
|
||||
| §6.1A | **动作头:一步生成** | B | 沙箱实验见 0A.3;COT 有双峰实证;K-MF 表 1 原生 MeanFlow 会失败;OFP 自引导 λ=0.5 出现模态塌缩 | 小模型能否学出陡峭模态边界未知;训练不稳 | M5 A/B:一步头 vs WTA,看穿柱率、到达率、摇摆率 | **WTA K=4**(沙箱中同样全部通过) |
|
||||
| §6.1A | 一步头选型 | B | 首选 MeanFlow(沙箱验证)或 Shortcut+COT 配对(无需 JVP);**否决** Consistency Policy(原文承认偏向一侧)、OneDP(故意取单模态)、朴素 1 步 FM(数学上等于条件均值) | 组合未见论文 | 同上 | WTA |
|
||||
| §6.1A | 生成时碰撞代价引导 | ✗→改 | 无论文在 1–2 步下测过;DiffusionSeeder 5 步引导仅 80.6%→81.1%;RTC 附录:引导权重过大发散 | — | — | 改为**事后投影**:对输出块做 1–2 步解析胶囊距离梯度,只在 d < 余量时启用;修不了"绕错侧",靠多候选 + 安全层 |
|
||||
| §6.1A | 前缀条件(RTC) | B | RTC 原文只验证 n=5 步去噪、需反向传播;**训练时前缀条件化**(2512.05964)推理零开销,d≥2 时优于 RTC,天然适用 1 步生成器 | 我们 d≈0–1 时略差 | 块边界加速度跳变 vs 无前缀 | 无前缀 + 一致性打分 |
|
||||
| §6.1A | B 样条输出 | C | 仅 FAST/频域表示的间接证据 | 可能损失贴柱精度 | near_column 与 16 步 Δq 对比 | **默认改回 16 步 Δq**,B 样条降为可选 |
|
||||
| §6.2 | 损失:WTA-L1/CE、FK 胶囊端点、平滑 | B | ELMP 式 FK 损失(§III-B 式 2) | 流头损失原缺(已补:流匹配损失 + FK 损失加在一步输出上) | FK 消融:C 类碰撞率降 ≥ 20% 才保留 | — |
|
||||
| §6.3 | 训练配置与耗时 | C | DRP:4090 上 100 万步 3 天(含点云) | 原文"20 万步≈30 epoch"算错,实为约 68 epoch | 先跑 2000 步测吞吐再定步数 | 30 epoch ≈ 8.8 万步 |
|
||||
| §6.4 | 胶囊距离 PyTorch/JS 对拍 | A(工程) | 仓库已有 0 差异对拍惯例 | 浮点不可能"0 误差" | 布尔判定 0 差异 + 距离误差 < 1e-4 mm + 梯度对有限差分 < 1e-3 | — |
|
||||
| §7.1 | APG 可微微调(ELMP) | A | ELMP:碰撞率 31.3%→8.9%;1 万示范+APG 72.0% > 60 万纯 BC 57.9%;H=69 步仅用梯度裁剪 ≤1 | 铰链损失只能侧推,不能从"撞柱"换到另一侧;可能压缩多模态;ELMP 中路径长度 +23% | 每轮左右比例监控;行程门禁 | 保留 BC 锚定损失 |
|
||||
| §7.2 | 无老师挖错 + 门禁 | B | DRP 迭代师生微调 +45%(5 轮 10 h) | 门禁集与验收集重叠 → 选择偏差(已拆分) | 遗忘门禁:A 类每轮降幅 ≤ 0.5 pp | 回滚 |
|
||||
| §7.3 | 拒绝采样自蒸馏 | B | ReST | 选"最短" → 贴柱,余量变小、多样性塌缩 | C 类间隙中位数 ≥ 原 80% | 改为"间隙 ≥ 阈值中最短" |
|
||||
| §7 可选 | ReinFlow/DPPO | B | ReinFlow +40%,1–4 步可调,比 DPPO 省 62.8% 墙钟;DPPO 16 步块稳定 | RL 会重塑模式分布(DPPO D3IL) | 按左右分组平衡奖励 | 不做 |
|
||||
| §8.2 | 模式/噪声粘滞 | ✗→改 | BID:沿用上次噪声 7 个任务中 3 个变差;后向一致性打分 + N=16 相对 +32% | — | E5 摇摆 < 1% | **改为 BID 式一致性打分**(与已提交块重叠步加权 L2) |
|
||||
| §8.3 | 安全层 + 可刹停不变式 | 不变式 A;离散实现 ✗→改 | Thumm & Althoff 2022 failsafe 盾 | 刹停"最大减速度"原未定义(已补加速度上限) | 见 H1 | 训练余量提到 3–6 mm |
|
||||
| §8.3 | 安全层耗时 < 5 ms | C | 仓库 collideFree 1.25 ms/次 | 贴柱时预筛失效;每步 4–13° | near_column 全程 P99 < 5 ms | 距离认证一次查询覆盖整段;提交步数降到 2 |
|
||||
| §8.5 | 子目标头、价值头、短前瞻、卡死换向 | B / C | AWE(航点 +25%)、SHAC、BID | 卡死换向可能活锁 | 50 个对抗用例 3 s 内恢复 ≥ 95%,活锁 = 0 | 子目标改为离散绕行锚点分类 |
|
||||
| §8.6 | 50 Hz 策略层 | B | π0 50 Hz、Diffusion Policy 10 Hz 预测 16 执行 8 最优 | rAF 60 Hz 与 20 ms 不整除;后台标签页节流 | P99 周期误差 < 2 ms | Worker + 自有时钟 |
|
||||
| §8/§9 | 浏览器推理 2–5 ms | C(偏乐观) | WebGPU 每次 dispatch 33–67 μs、同步 2–3 ms(2604.02344 表 6) | 8 层 Transformer 约 150–300 次 dispatch → 调度开销 5–20 ms | **M4 后立刻**导出 ONNX 实测 batch=8 P99 | wasm-SIMD 多线程;每 3 步推理一次(预算 60 ms) |
|
||||
| §9 | 验收 30/30 | ✗→改 | 30/30 时失败率 95% 上界仍约 9.5% | 30 例被反复用于挑模型 | **新造 ≥1000 例 near_column 一次性验收集**(0 失败 ⇒ 上界约 0.3%);到达率分母只算可达任务 | — |
|
||||
| **MπNets**(NVIDIA) | 2022 CoRL | 点云 + 关节角 + 目标位姿 | 下一步关节位置 | 规划器 300 万+ 问题 | 端到端行为克隆;老师路径重定时为匀速 | 闭环 9 Hz,1 kHz PD 跟踪 |
|
||||
| **Neural MP**(CMU) | 2024 / IROS 2025 | 点云 + 关节角 + 目标 | GMM(LSTM) | 100 万–300 万条 | 测试时采样多条,选穿透最少的(去掉后成功率 81%→31%) | 开环为主 |
|
||||
| **DRP / IMPACT**(CMU) | 2025 CoRL | 点云 + 关节角 + 目标关节角 | 10 步关节增量 | cuRobo 1000 万条 | 大规模预训练 + 迭代师生微调 + "目标被挡停在最近安全处" | 闭环;4.67M 参数,300 Hz |
|
||||
| **ELMP**(ETH) | 2026 arXiv | 点云 + 关节角 + 目标位姿 | 关节增量 | AIT* 约 60 万条 | 行为克隆后 **APG 微调**,碰撞/到达/平滑损失直接反传 | 闭环 30 Hz |
|
||||
|
||||
### 0A.3 沙箱对照实验(2D 绕柱双模态,CPU)
|
||||
- ELMP:1 万条老师轨迹 + APG(成功率 72.0%)超过 60 万条纯行为克隆(57.9%);APG 把碰撞率降到 1/3 以下。
|
||||
- 最好的方法在静态场景仍有约 9–10% 碰撞(ELMP-APG 8.9%,DRP 10.16%),实际部署都配检查或反应层。
|
||||
- 共识:闭环、短动作块滚动执行、老师只离线用、必须后训练。
|
||||
|
||||
为验证"一步生成会不会把左右平均成穿柱",在沙箱做了一个最小实验:2D 点从柱左侧到右侧,示教一半从上绕一半从下绕,16 步动作块、每 3 步重推理,与本方案同构。代码 `ml/toy/toy_bimodal.py`,150 个"起终点都贴近中轴"的难例:
|
||||
### 2.2 本项目的条件
|
||||
|
||||
| 条件 | 主流 | 本项目 | 意味着 |
|
||||
|---|---|---|---|
|
||||
| 环境 | 未知、多变,靠点云 | 固定且精确已知(台架 + 立柱,1936 个胶囊) | 不需要点云编码器;模型可以小;碰撞检查精确 |
|
||||
| 机器人 | Franka 7 轴 | 自研 6 轴,J1/J3/J6 连续转 | 需处理连续轴展开 |
|
||||
| 碰撞模型 | SDF / 球近似 | 胶囊解析距离,可微 | 直接做 APG;安全层可认证 |
|
||||
| 平台 | 台式 GPU | 浏览器(后续真机) | 模型小,ONNX + WebGPU/wasm |
|
||||
|
||||
资源应投在**闭环稳定性、左右绕行选择和安全层**上,而不是感知和泛化。
|
||||
|
||||
### 2.3 前沿生成式技术取舍
|
||||
|
||||
| 技术 | 结论 | 理由 |
|
||||
|---|---|---|
|
||||
| VLA 大模型(π0/π0.5、GR00T、OpenVLA) | 不采用 | 无图像、无语言指令;3B 参数更慢不更准 |
|
||||
| 一步生成:MeanFlow(MP1)、Shortcut、条件 OT 配对 | **采用**(默认头候选) | 1 次前向;COT 有双峰实证;Shortcut 无需 JVP |
|
||||
| Consistency Policy、OneDP、朴素 1 步流匹配 | 不采用 | CP 原文承认偏向一侧;OneDP 有意取单模态;朴素 1 步 FM 等于条件均值,会穿柱 |
|
||||
| OFP 自蒸馏 | 不作首选 | 未找到公开代码;自引导 λ=0.5 时出现模态塌缩 |
|
||||
| 生成过程中代价引导(MPD/EDMP/GPD) | 不采用 | 无论文在 1–2 步下验证;改用输出后投影 |
|
||||
| 推理时 RTC | 不采用 | 原文只验证 5 步去噪且需反向传播;改用训练时前缀条件化 |
|
||||
| 时间集成 / 交叉淡入 | 不采用 | 执行的是未认证的混合块;左右两块平均可能穿柱;π0 弃用 |
|
||||
| FAST 动作分词 | 不采用 | 服务于语言骨干,自回归推理慢 |
|
||||
| B 样条动作表示 | 可选 | 仅间接证据;须 near_column 消融不掉点才启用 |
|
||||
| ReinFlow / DPPO | 可选第三阶段 | 适合到达/卡死/刹停等离散目标;须按左右分组平衡奖励 |
|
||||
|
||||
### 2.4 沙箱双模态对照实验
|
||||
|
||||
2D 点从柱左侧到右侧,示教一半从上绕一半从下绕,16 步动作块、每 3 步重推理,与本方案同构。代码 `ml/toy/toy_bimodal.py`,150 个"起终点都贴近中轴"的难例:
|
||||
|
||||
| 动作头 | 单样本、无安全层:到达 / 穿柱回合 | 8 候选 + 安全层:到达 / 穿柱 / 平均刹停 | 推理(CPU,8 候选) |
|
||||
|---|---|---|---|
|
||||
| MSE 回归 | 100% / 0% | 100% / 0% / 0 | 0.13 ms |
|
||||
| WTA K=4 | 100% / 0% | 100% / 0% / 0 | 0.19 ms |
|
||||
| 流匹配 10 步 | 100% / 4.0% | 99.3% / 0% / 3.7 | 2.13 ms |
|
||||
| **朴素流匹配 1 步** | 87.3% / **23.3%** | 81.3% / 0% / 14.0 | 0.25 ms |
|
||||
| 朴素流匹配 1 步 | 87.3% / **23.3%** | 81.3% / 0% / 14.0 | 0.25 ms |
|
||||
| **MeanFlow 1 步** | 100% / 2.7% | 100% / 0% / 0.3 | 0.25 ms |
|
||||
|
||||
结论与局限:
|
||||
- **证实**:朴素 1 步流匹配会把模态平均到柱子里(23% 穿柱),必须用 MeanFlow/Shortcut 一类;MeanFlow 1 步达到 10 步流匹配的质量,推理快约 8 倍。
|
||||
- **证实**:安全层在所有方法上都把穿柱降为 0,代价是刹停次数。
|
||||
- **没能区分**:闭环里状态一偏离中轴,MSE/WTA 也能自然打破对称,所以这个玩具任务太容易,**分不出一步头和 WTA 谁更好**。真实 6 轴、位姿目标下的多峰更复杂,必须在 M5 用真实数据 A/B,不能凭论文或玩具定结论。
|
||||
- 早期 300 步训练的 MSE 在同一难例上 100% 穿柱、加安全层后 0% 到达(卡死),说明"欠拟合时平均模态"的风险真实存在。
|
||||
|
||||
### 0A.5 修复状态(v2.3.1)
|
||||
|
||||
《方案逐项核查报告》是**修复前**的审查记录:它列的是问题和证据,不是修复结果。修复结果都落在本文正文里,状态如下:
|
||||
|
||||
| 类别 | 条目 | 状态 |
|
||||
|---|---|---|
|
||||
| 硬伤 | H1 安全层距离认证、H2 时间律、H3 删交叉淡入、H4 推理节奏统一 | ✅ 正文已改(§4.5、§8.1、§8.3) |
|
||||
| 方案替换 | 生成时引导→事后投影、RTC→训练时前缀、噪声粘滞→一致性打分、B 样条→可选、否决 CP/OneDP/朴素 1 步 FM、后缀≠DAgger | ✅ 正文已改(§2.4、§4.5、§6.1A、§8.2) |
|
||||
| 内部不一致 | I1 epoch、I2 样本数、I3 APG 展开长度、I4 时间集成、I5 候选数、I6 k_prev、I7 输入表、I8 流头损失、I9 延迟预算、I10 安全层耗时、I11 检查口径、I12 加速度上限(已列为待定参数)、I13 D 类分母、I14 门禁/验收分离、I15 用时口径、I16 碰撞保证表述、I17 重训耗时、I18 预热表述、I19 执行步数、I21 非马尔可夫、I22 子目标触发、I23 精修过安全层、I24 模型体积 | ✅ 正文已改 |
|
||||
| 内部不一致 | I20 route 基准口径不符 | 已重跑:仓库 40 例基准为到达 40/40、有效 39/40,§9.2 现状列已按实测改写;**说明老师本身在 1 例上路径不合格,M1 数据过滤(§4.4)必须把这类样本丢掉** |
|
||||
| **只能靠实测消除** | 浏览器推理延迟;一步头 vs WTA 谁更好;老师一致性;距离认证后的拒绝率是否影响 30/30;APG 是否压缩多模态;真机加速度上限 | ⏳ 已设门禁与回退(§0A.2),在 M1/M4/M5/M7 里按顺序测,**论文和推理消除不了** |
|
||||
|
||||
### 0A.4 仍需用户确认 / 实测才能消除的风险
|
||||
|
||||
1. 浏览器端推理延迟(最大不确定项,M4 后第一时间测)。
|
||||
2. 真机电机/驱动/通信方式(决定插补频率与刹停加速度上限)。
|
||||
3. 老师一致性(M1 第一项门禁)。
|
||||
4. Neural MP 式"运行时采样多条、用解析距离挑选"是否算违反"无运行时老师"——v2.3 的理解是**不算**(不做搜索,只对模型自己的候选打分),请确认。
|
||||
|
||||
---
|
||||
|
||||
## 1. 业界调研:具身智能里的神经运动规划
|
||||
|
||||
以下数据均来自论文原文(链接见 §13)。
|
||||
|
||||
| 工作 | 年份 / 会议 | 输入 | 输出 | 老师与数据量 | 关键做法 | 运行方式 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| **MπNets**(NVIDIA) | 2022 CoRL | 点云 + 当前关节角 + 目标位姿 | 下一步关节位置 | 规划器生成 300 万+ 问题、50 万+ 环境;8×V100 训练一周 | 端到端行为克隆 | 闭环 9 Hz,每次执行约 70% 推出的路径,1 kHz PD 跟踪 |
|
||||
| **Neural MP**(CMU) | 2024 / IROS 2025 | 点云 + 关节角 + 目标 | GMM(LSTM) | AIT* 等,100 万–300 万条 | **测试时优化(TTO)**:采样多条,选与场景穿透最少的 | 开环为主;冷启动约 2970 ms |
|
||||
| **MπFormer / Avoid Everything**(NVIDIA) | 2024 CoRL WS | 点云 | 关节动作 | 规划器数据 | 师生微调 + **困难负样本挖掘** | 闭环 |
|
||||
| **DRP / IMPACT**(CMU) | 2025 CoRL | 点云 + 当前关节角 + **目标关节角** | **动作块**:10 步关节增量,MSE 回归 | cuRobo 生成 **1000 万条**;4090 训练 3 天 | ① 大规模预训练 ② **迭代师生微调**(局部控制器 Geometric Fabrics 当老师,不用全局规划器,因为每步都规划太贵)③ 局部反应层 DCP-RMP 改写目标 ④ 加入"目标被挡→停在最近安全处"的数据 | 闭环;4.67 M 参数,300 Hz(4090),冷启动 3.48 ms |
|
||||
| **ELMP**(ETH) | 2026 arXiv | 点云 + 关节角 + 目标位姿(12 维) | 关节增量 | AIT* 约 60 万条 | 行为克隆后做 **APG 微调**:可微运动学展开,碰撞/到达/平滑三项损失直接反传,**不再需要老师数据** | MPC 式闭环 30 Hz;冷启动 7.8 ms |
|
||||
| Diffusion Policy / ACT 一类 | 2023– | 视觉 + 本体 | 动作块(扩散 / CVAE) | 人类示教 | 动作块 + 滚动执行(receding horizon)+ 时间集成 | 闭环 |
|
||||
|
||||
几个关键数字:
|
||||
- DRP:迭代师生微调使成功率比纯预训练**提高 45%**;纯预训练的 IMPACT "经常有轻微碰撞"。
|
||||
- ELMP:只用 1 万条老师轨迹 + APG(成功率 72.0%、碰撞 19.4%)就超过 60 万条纯行为克隆(57.9%、31.9%),**老师数据少 60 倍**;APG 把环境碰撞率降到原来的 1/3 以下。新环境下,采样 20 万个 APG 问题约 4.5 CPU 小时,而生成同样数量的老师轨迹要 1194 CPU 小时以上。
|
||||
- 即便最好的方法,静态场景碰撞率也约 9–10%(ELMP-APG 8.9%,DRP 10.16%)——所以实际部署都配有某种检查或反应层。
|
||||
|
||||
**行业共识**:
|
||||
1. 都是**闭环**策略,每个周期根据当前状态重新出动作,而不是一次性出整条路径。
|
||||
2. 输出**短动作块**(10 步左右)并滚动执行,兼顾平滑和反应速度。
|
||||
3. 老师只用于离线造数据;微调阶段倾向于**便宜的老师**(局部控制器)或**不要老师**(可微代价)。
|
||||
4. 纯模仿有"分布偏移、误差累积"问题,必须做后训练(DAgger / 师生微调 / APG)。
|
||||
|
||||
---
|
||||
|
||||
## 2. 我们的方案和主流的差异,以及据此做的优化
|
||||
|
||||
### 2.1 我们的独特条件
|
||||
|
||||
| 条件 | 主流(DRP/ELMP 等) | 本项目 | 意味着 |
|
||||
|---|---|---|---|
|
||||
| 环境 | 未知、多变,靠点云感知 | **固定且精确已知**(台架 + 立柱,1936 个胶囊) | 不需要点云编码器;模型可以小很多;碰撞检查是**精确**的 |
|
||||
| 机器人 | Franka 7 轴 | 自研 6 轴,J1/J3/J6 连续转 | 需处理连续轴展开 |
|
||||
| 碰撞模型 | SDF / 球近似,有感知噪声 | 胶囊解析距离,可微 | 可以直接做 APG;安全层可信 |
|
||||
| 运行平台 | 台式 GPU | 浏览器(后续真机) | 模型要小,ONNX + WebGPU/wasm |
|
||||
|
||||
结论:我们的问题比主流**窄得多也"干净"得多**,主流用来对付感知噪声和环境泛化的大部分复杂度(点云、千万级数据、多环境)都可以省掉,资源应投在**闭环稳定性、多解选择和安全层**上。
|
||||
|
||||
### 2.2 v1 方案与主流的差异 → v2 的调整
|
||||
|
||||
| # | v1 做法 | 主流做法 | v2 调整 | 理由 |
|
||||
|---|---|---|---|---|
|
||||
| 1 | 一次生成整条 32 点路径,开环执行 | 闭环 + 短动作块滚动执行 | **改为动作块策略**:每周期输出未来 16 步(320 ms),每 60 ms 推理一次,提交并执行前 3 步(v2.3 统一) | 用户要求每周期重算;可纠错、可应对拖拽目标变化 |
|
||||
| 2 | 失败回落原规划器 | 无回落;靠后训练提升 + 局部反应/检查 | **删除回落**,改为安全层:换候选 → 刹停保持 → 下周期重算 | 用户决定无老师部署 |
|
||||
| 3 | 512 桶离散化 + 自回归 186 token | DRP 用 MSE 回归动作块;Neural MP 用 GMM | **K 个模式的动作块头(K=4)+ 模式分类**,非自回归一次前向 | 闭环下多峰主要出现在"刚出发选左绕还是右绕",K 模式足够;一次前向比 186 步自回归快一个数量级 |
|
||||
| 4 | 以目标位姿为条件 | DRP 用目标关节角(IK 另算);ELMP 用目标位姿 | **用目标位姿**(位置 + 6D 旋转 + 模式标志),末段可选局部牛顿精修 | 无老师就没有全量 IK;位姿条件让模型连 IK 一起学。局部牛顿精修只是梯度下降几步,不属于搜索 |
|
||||
| 5 | 后训练:挖错 + 老师重标(每轮 1–2 小时老师计算) | DRP:便宜局部老师;ELMP:APG 无老师 | **主力换成 APG**(可微胶囊碰撞),挖错循环保留但不再需要老师重标 | 我们的胶囊模型可微且精确,正好适合 APG;省掉绝大部分老师计算 |
|
||||
| 6 | 拒判头(REJECT) | DRP:目标被挡时学会"停在最近安全处" | **改为"停靠"行为**:目标不可达时,数据里老师路径停在离目标最近的安全位形 | 闭环下"停在最近处"比"拒绝"更有用(目标常在拖拽中短暂进入立柱区) |
|
||||
| 7 | 20 万条老师数据 | 主流百万–千万条,但它们要泛化到任意环境 | **降到 5 万条**(+ 切片增广),其余靠 APG | ELMP 显示 APG 下 1 万条已胜过 60 万条纯克隆;我们的环境固定,需求更小 |
|
||||
| 8 | 无 | DRP 的 DCP-RMP 局部反应层 | 暂不做;安全层已覆盖静态环境。未来真机有人/动态障碍时再加 | 当前环境静态 |
|
||||
|
||||
### 2.3 v2 相对主流的额外优化点
|
||||
|
||||
1. **精确安全层**:主流因感知噪声做不到精确检查,我们可以。每周期对即将执行的动作段做 1° 细验 + 半格复验,保证**只执行检查过的动作**。
|
||||
2. **可刹停不变式**:只有当"执行这一段之后,仍存在一条已检查过的刹停轨迹"时才执行(见 §8.3),保证任何周期推理失败都能安全停住。
|
||||
3. **模式粘滞**:闭环每周期重算最怕左右摇摆(这一帧选左绕、下一帧选右绕)。部署时对"切换模式"加代价,除非当前模式不安全(§8.2)。
|
||||
4. **APG 损失直接用我们的胶囊距离**(`segSegDist` 的可微版本),训练和部署检查同一套几何,消除"训练用球、检查用网格"的口径差(ELMP 的做法有这个差)。
|
||||
5. **数据便宜**:环境固定,老师离线 5 万条在沙箱约 5 小时即可,不需要集群。
|
||||
|
||||
### 2.4 2024–2026 前沿生成式策略逐项评估(v2.2)
|
||||
|
||||
用户问:"能不能用更先进的大模型算法?"先说结论:**大模型本身(VLA,30 亿参数级)不适合这个任务**,但它们背后的几项**动作生成技术**很适合,而且能直接解决我们 v2 的三个弱点:K=4 固定模式太粗、动作块拼接处有顿挫、贴柱难例要靠规则兜底。
|
||||
|
||||
| 技术(代表工作) | 核心做法 | 公开结果 | 用在我们这里? |
|
||||
|---|---|---|---|
|
||||
| **流匹配动作头**(π0 / π0.5 action expert,2024–25) | 用流匹配从噪声生成连续动作块,天然多模态 | π0 以 50 Hz 输出 50 步动作块 | ✅ **采纳**,替换 K=4 WTA 头:不再只有 4 个固定"模式",左绕/右绕/上绕及其细分都能表达 |
|
||||
| **一步生成**:MeanFlow(MP1,AAAI 2026)、OFP(2026)、条件 OT 耦合(CoRL 2025)、Consistency Policy / OneDP | 学"平均速度场"或自蒸馏,1 次前向就出动作,不需迭代去噪 | MP1 推理约 6.8 ms;OFP 一步超过 100 步扩散,并在 π0.5 上一步胜过原 10 步;OneDP 1.5 Hz → 62 Hz | ✅ **采纳 OFP/MeanFlow**:OFP 从零自蒸馏,**不需要预训练老师模型**,与"无老师"原则一致;推理仍是 1–2 次前向 |
|
||||
| **代价引导采样**(MPD、EDMP、GPD,2023–25) | 采样过程中加入碰撞代价梯度,把轨迹推离障碍 | MPD/EDMP 引导显著提高成功率;GPD 约 0.8 s | ✅ **采纳,但只在 1–2 步内做**:我们已有可微胶囊距离(APG 要用),在去噪最后一步加一次梯度修正,几乎零额外训练成本。不采纳整条轨迹扩散(MPD 约 1 s,太慢) |
|
||||
| **扩散种子 + 优化**(DiffusionSeeder + cuRobo,CoRL 2024) | 扩散给初值,GPU 轨迹优化几轮 | 真机规划 26 ms,比 cuRobo 成功率高 51% | ⚠️ 部分采纳:只保留"对已生成动作块做 2–3 次局部梯度修正",不引入全局轨迹优化器(那等于又加回一个老师) |
|
||||
| **实时动作块执行 RTC**(Black 等,NeurIPS 2025) | 生成新动作块时,把已提交但未执行的动作当作"已知前缀"补全,异步推理不卡顿 | 解决动作块拼接处的停顿与跳变 | ✅ **采纳**:以"已提交的 3 步"为前缀条件生成新块,替代 v2 的时间集成;推理偶发超时也不会顿挫 |
|
||||
| **流/扩散策略的强化学习微调**(DPPO,ICLR 2025;ReinFlow,NeurIPS 2025) | 在仿真里用 PPO 类方法微调生成式策略 | ReinFlow 在操作任务上成功率平均提升 40%,可在 1–4 步去噪下微调,比 DPPO 省 60%+ 时间 | ✅ **采纳为第三阶段(可选)**:APG 擅长连续可微目标;"到达/卡死/安全层刹停次数"这类离散目标交给 ReinFlow。仿真就是我们的 GPU 批量 FK + 胶囊检测,3090 上可跑 |
|
||||
| **FAST 动作分词 / π0.5 知识隔离**(2025) | DCT 压缩动作块成离散 token,供大语言模型骨干学习 | FAST 训练提速最多 5 倍 | ❌ 分词本身不采纳(为语言大模型服务,自回归推理慢);⚠️ 借鉴"频域/样条表示":动作块改用 **B 样条控制点**输出,平滑性由表示保证 |
|
||||
| **VLA 大模型**(π0/π0.5、GR00T、OpenVLA) | 视觉语言骨干 + 动作专家 | 3B 模型单次预填充 46 ms(4090) | ❌ 不采纳:我们没有图像、没有语言指令,环境固定精确;30 亿参数只会更慢,不会更准 |
|
||||
|
||||
> **v2.3 核查修正(见 §0A)**:①碰撞代价引导改为输出后的事后投影(1–2 步生成下无引导证据);②RTC 改为训练时前缀条件化(2512.05964,推理零开销);③一步头首选 MeanFlow(沙箱验证)或 Shortcut+COT,否决 Consistency Policy/OneDP/朴素 1 步 FM;④B 样条降为可选;⑤OFP 未找到公开代码,不作首选。
|
||||
|
||||
**结论:v2.2 采纳"一步流匹配头 + 碰撞代价引导 + 前缀条件 + B 样条表示 + 可选 ReinFlow"。** 这正是 π0.5、MP1/OFP、MPD、RTC 这几条前沿线在"低维状态、精确几何、实时控制"场景下的组合,规模仍然是几百万参数。
|
||||
- 朴素 1 步流匹配会把模态平均进柱子;MeanFlow 1 步达到 10 步流匹配的质量,推理快约 8 倍。
|
||||
- 安全层在所有方法上把穿柱降为 0,代价是刹停。
|
||||
- 该任务过于简单(闭环中状态一偏离中轴即打破对称),**分不出一步头与 WTA 谁更好**,需在真实数据上 A/B(M5)。
|
||||
- 训练仅 300 步的 MSE 在同一难例上 100% 穿柱、加安全层后 0% 到达,说明欠拟合时平均模态的风险真实存在。
|
||||
|
||||
---
|
||||
|
||||
@@ -200,9 +108,9 @@
|
||||
|
||||
| 阶段 | 在哪里跑 | 说明 |
|
||||
|---|---|---|
|
||||
| 预训练数据生成 | Hark 沙箱(2 vCPU / 7 GB,Node)或用户机器 | 纯 JS,无需 GPU |
|
||||
| 预训练 + APG 微调 | **用户的 GPU 机器** | 沙箱无 GPU、无 PyTorch。**已定:RTX 3090 24 GB**(显存对 3–4 M 参数模型绰绰有余,可用 batch 1024–2048) |
|
||||
| 部署推理 | 浏览器(onnxruntime-web,WebGPU 优先,wasm 兜底);后续真机控制器 | 与现有查看器同页 |
|
||||
| 数据生成 | Hark 沙箱(2 vCPU / 7 GB,Node)或用户机器 | 纯 JS,无需 GPU |
|
||||
| 预训练 + 后训练 | 用户 RTX 3090 24 GB | batch 1024–2048 |
|
||||
| 部署推理 | 浏览器 onnxruntime-web(WebGPU / wasm-SIMD,按实测选);后续真机控制器 | 与现有查看器同页 |
|
||||
|
||||
```bash
|
||||
conda create -n armtf python=3.11 -y && conda activate armtf
|
||||
@@ -212,373 +120,351 @@ pip install numpy pyarrow tqdm tensorboard onnx onnxruntime
|
||||
|
||||
---
|
||||
|
||||
## 4. 第一步:离线造预训练数据(老师只在这里出现)
|
||||
## 4. 离线数据(老师只在这里出现)
|
||||
|
||||
### 4.1 新增文件
|
||||
### 4.1 文件
|
||||
|
||||
| 文件 | 作用 |
|
||||
|---|---|
|
||||
| `ml/gen/gen_dataset.cjs` | 采样任务 → 调老师 → 校验 → 时间参数化 → 写分片 |
|
||||
| `ml/gen/sampler.cjs` | 起点/目标采样(4.3) |
|
||||
| `ml/gen/sampler.cjs` | 起点/目标采样 |
|
||||
| `ml/gen/run_parallel.sh` | 多进程,不同种子 |
|
||||
| `ml/data/shard_XXXX.jsonl` | 原始样本(不入库) |
|
||||
|
||||
复用 `tests/route_bench_setup.cjs` 装配求解器(关节表、`docs/travel.json`、`docs/collide.json`)。
|
||||
|
||||
### 4.2 一条原始样本
|
||||
### 4.2 原始样本
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "s0003_000127", "mode": "pos" | "pose",
|
||||
"q0": [6], "T": [x,y,z], "R": [[3x3]] | null, "tool": 0,
|
||||
"path": [[6], ...], // 老师折线 q0 → via... → q_end
|
||||
"reached": true, // false = 目标不可达,q_end 为离目标最近的安全位形("停靠")
|
||||
"path": [[6], ...],
|
||||
"reached": true,
|
||||
"travel_deg": 123.4, "plan_ms": 812.0,
|
||||
"fp": "collide.json 指纹"
|
||||
}
|
||||
```
|
||||
|
||||
`reached=false` 表示目标不可达,路径终点为离目标最近的安全位形("停靠")。
|
||||
|
||||
### 4.3 采样分布(5 万条任务)
|
||||
|
||||
关节限位(`docs/travel.json`):J1/J3/J6 连续 ±180°;J2 [−92, 9],J4 [−111, 16],J5 [−93, 34]。
|
||||
关节限位:J1/J3/J6 连续 ±180°;J2 [−92, 9],J4 [−111, 16],J5 [−93, 34]。
|
||||
|
||||
| 类别 | 占比 | 采样方式 |
|
||||
|---|---:|---|
|
||||
| A 均匀 | 45% | q0、目标位形 b 均匀采样且无干涉;目标 = `fk(b)`(pose 模式加 `orient(b)`) |
|
||||
| B 直线被挡 | 30% | q0→b 关节直线 1° 细验有干涉(route_bench 口径) |
|
||||
| C 贴立柱 | 15% | b 满足 `nearColumn`,q0 在立柱另一侧(near_column_bench 口径) |
|
||||
| D 目标不可达 | 10% | 目标在立柱内/所有分支都撞/工作空间外;老师标签 = 停在离目标最近的安全位形 |
|
||||
| B 直线被挡 | 30% | q0→b 关节直线有干涉 |
|
||||
| C 贴立柱 | 15% | b 满足 `nearColumn`,q0 在立柱另一侧 |
|
||||
| D 目标不可达 | 10% | 目标在立柱内/所有分支都撞/工作空间外;标签为停靠 |
|
||||
|
||||
- pos / pose 各半;老师用 `solveDyn`(松手口径)。
|
||||
- **测试集隔离**:固定种子另造 2000 条留出;三个基准案例不进训练集。
|
||||
- pos / pose 各半;老师用 `solveDyn`,固定种子;同类任务优先取行程最短的绕行同伦类,保证左右选择一致。
|
||||
- 另造三个互不重叠的集合:**门禁集** 2000 条(挖错循环每轮用)、**held-out 验收集** 2000 条、**near_column 扩展验收集** ≥1000 条;两个验收集只在最终验收时用一次。现有三个基准不进训练集。
|
||||
|
||||
### 4.4 过滤
|
||||
|
||||
1. 整条路径 1° 细验 + 半格复验,任一段干涉即丢弃。
|
||||
1. 整条路径用距离下界认证(与 §8.3 同口径)复核,任一段不过即丢弃。仓库 `tests/route_bench.cjs` 上现有规划器有 1/40 例路径细验不过,这类样本必须丢掉。
|
||||
2. `poseRelaxed` 样本只当 pos 模式用。
|
||||
3. 行程 > 同任务 `routeRT` 1.5 倍的视为绕远(先统计,再定是否丢弃)。
|
||||
3. 行程 > 同任务 `routeRT` 1.5 倍的先统计,再定是否丢弃;按类别统计丢弃率(C 类 > 20% 说明老师在贴柱场景不可靠)。
|
||||
|
||||
### 4.5 时间参数化 → 闭环训练样本(v2 新增,关键)
|
||||
### 4.5 时间参数化 → 闭环训练样本
|
||||
|
||||
闭环策略学的是"在某个状态下,接下来 16 步怎么走",所以要把整条路径切成很多个"状态 → 动作块"样本:
|
||||
|
||||
1. **(v2.3 修正,见 H2)** 不再沿用 `animTo` 的全局 smoothstep + 总时长夹取。改为局部可观测时间律:按轴速比 `VREL = [0.6, 0.6, 0.9, 0.9, 1.2, 1.8]` 匀速巡航,加减速为梯形,且只取决于"当前速度 + 剩余路程"(加速度上限另设),控制周期 **dt = 20 ms**;当前速度 q_t − q_{t−1} 作为输入。
|
||||
2. 得到状态序列 q_0, q_1, …, q_N。对每个 t(每隔 3 步取 1 个,减少冗余)生成样本:
|
||||
- 输入:当前 q_t、目标 (T, R, mode)
|
||||
- 标签:未来 S = 16 步的增量 Δq_{t+1..t+16} = q_{t+k} − q_t(到终点后补零,即"停住")
|
||||
3. 每条路径约 40–50 个样本(route_bench 平均执行约 2.5 s)→ 5 万条任务约 200 万个训练样本(以 M1 的 stats.json 为准)。
|
||||
4. ~~路径后缀等于免费 DAgger~~(v2.3 删除:后缀仍是老师状态)。改为关节噪声增广(σ 0.5–1°)+ 离线老师重标,偏离状态的覆盖靠 §7。
|
||||
1. 时间律:按轴速比 `VREL = [0.6, 0.6, 0.9, 0.9, 1.2, 1.8]` 匀速巡航,梯形加减速,速度只取决于"当前速度 + 剩余路程"(每轴加速度上限 a_max 为待定参数,真机型号确定后设定),dt = 20 ms。
|
||||
2. 得到状态序列 q_0 … q_N,每隔 3 步取一个样本:
|
||||
- 输入:§5.1 全部字段(含当前速度、已提交前缀)
|
||||
- 标签:未来 16 步 Δq_{t+k} = q_{t+k} − q_t(到终点后补零)
|
||||
3. 每条路径约 40–50 个样本 → 约 200 万样本(以 `stats.json` 为准)。
|
||||
4. 协变量偏移对策:关节噪声增广(σ 0.5–1°,噪声状态由老师离线重标);偏离状态的进一步覆盖靠 §7。
|
||||
|
||||
### 4.6 耗时与存储
|
||||
|
||||
- `solveDyn` 约 0.7 s/条:5 万条在沙箱 2 进程约 5 小时;用户 8 核机器约 1.5 小时。
|
||||
- 300 万样本 × 约 0.5 KB ≈ 1.5 GB 原始;Parquet 约 300 MB。
|
||||
- `solveDyn` 约 0.7 s/条:沙箱 2 进程约 5 小时;8 核机器约 1.5 小时。
|
||||
- 200 万样本原始约 1 GB;Parquet 约 200 MB。
|
||||
|
||||
### 4.7 检查点
|
||||
|
||||
- [ ] `ml/data/stats.json`:类别、到达率、行程、样本数分布
|
||||
- [ ] 抽 20 条在查看器回放(新增 `?replay=` URL 参数)
|
||||
- [ ] 测试集与训练集、基准案例无重叠
|
||||
- [ ] `ml/data/stats.json`:类别、到达率、行程、样本数、补零样本占比
|
||||
- [ ] 老师一致性:同任务 5 个种子,同伦类一致率 ≥ 90%,行程变异系数 < 10%
|
||||
- [ ] 抽 20 条在查看器回放(新增 `?replay=` 参数)
|
||||
- [ ] 各集合与训练集无重叠
|
||||
|
||||
---
|
||||
|
||||
## 5. 第二步:表示与预处理
|
||||
## 5. 表示与预处理
|
||||
|
||||
文件 `ml/prep/build_dataset.py` → `train/val/test.parquet`、`norm.json`。
|
||||
|
||||
### 5.1 输入(条件)
|
||||
### 5.1 输入
|
||||
|
||||
| 量 | 维度 | 编码 |
|
||||
|---|---:|---|
|
||||
| 当前 q_t | 6 | 每轴 (sin, cos) → 12;限位轴另加归一化值 → +3 |
|
||||
| 当前 TCP 位置与姿态 | 3 + 6 | `fk(q_t)`、`orient(q_t)` 的 6D 表示(给模型笛卡尔线索) |
|
||||
| 当前关节速度 q_t − q_{t−1} | 6 | 按每轴速度上限归一化 |
|
||||
| 当前 TCP 位置与姿态 | 3 + 6 | `fk(q_t)`、`orient(q_t)` 的 6D 表示 |
|
||||
| 目标位置 T | 3 | /600 mm |
|
||||
| 目标姿态 R | 6 | 6D 表示;pos 模式填 0 |
|
||||
| 目标 − 当前 TCP | 3 | 位置差,/600 mm |
|
||||
| 目标 − 当前 TCP | 3 | /600 mm |
|
||||
| 模式 | 2 | one-hot [pos, pose] |
|
||||
| 上一周期选的模式 k_prev | K+1 | one-hot(含"无"),**仅 WTA 基线头使用** |
|
||||
| 当前关节速度 q_t − q_{t−1} | 6 | 按每轴速度上限归一化(v2.3 新增,使时间律可观测) |
|
||||
| 已提交未执行前缀 | 3×6 | 前缀 Δq + 有效长度掩码(v2.3 新增,训练时随机遮盖 0–3 步) |
|
||||
| 当前子目标 | 6 | 子目标头输出的关节途经点(sin/cos 前的弧度,归一化);无子目标时填当前 q(v2.3 新增) |
|
||||
| 关键胶囊对最小距离 | 8 | 当前位形下臂各段到立柱的胶囊距离(cheap,现成函数),给模型"离柱子多近"的直接信号 |
|
||||
| 已提交未执行前缀 | 3×6 + 3 | 前缀 Δq + 有效长度掩码;训练时随机遮盖 0–3 步 |
|
||||
| 当前子目标 | 6 | 子目标头输出的关节途经点(归一化);无子目标时填当前 q |
|
||||
| 关键胶囊对最小距离 | 8 | 臂各段到立柱的胶囊距离 |
|
||||
| 上一次所选模式 k_prev | 5 | one-hot(含"无"),仅 WTA 基线头使用 |
|
||||
|
||||
### 5.2 输出(动作块)
|
||||
### 5.2 输出
|
||||
|
||||
- **K = 4 个模式**,每个模式一整块 16 步 × 6 轴的关节增量 Δq(连续值,按每轴最大步长归一化)。
|
||||
- 一个模式分类头:4 类 logits。
|
||||
- 训练时 **winner-takes-all**:只对与标签最接近的那个模式回归,分类头学"选哪个"(MTR / 多模态轨迹预测的常用做法)。这样左绕、右绕会落到不同模式里,不会被平均到穿过立柱。
|
||||
- 附加头:到达剩余时间估计(帮助排序和早停)。
|
||||
- 默认一步生成头:每条候选 16 步 × 6 轴 Δq(按每轴最大步长归一化)。
|
||||
- WTA 基线头:K=4 条 16 步 Δq + 4 类模式 logits。
|
||||
- 两种头共用:价值头(剩余时间/代价)、子目标头(2 个关节途经点 + 是否需要)。
|
||||
|
||||
### 5.3 连续轴
|
||||
|
||||
J1/J3/J6 统一用 `unwrapTo` 口径展开后再做增量;预处理和部署共用一份实现,§6.4 对拍时一并验证。
|
||||
J1/J3/J6 统一用 `unwrapTo` 展开后再做增量;预处理与部署共用一份实现,对拍时一并验证。
|
||||
|
||||
---
|
||||
|
||||
## 6. 第三步:模型与预训练(行为克隆)
|
||||
## 6. 模型与预训练
|
||||
|
||||
### 6.1 结构(参考 IMPACT,去掉点云部分)
|
||||
### 6.1 结构
|
||||
|
||||
```
|
||||
条件特征(约 60 维)──MLP──▶ 8 个条件 token (d=192)
|
||||
条件特征(约 90 维)──MLP──▶ 8 个条件 token (d=192)
|
||||
│
|
||||
4 层 Transformer encoder
|
||||
│ (memory)
|
||||
K×16 个可学习动作 token ──▶ 4 层 Transformer decoder(非自回归,一次前向)
|
||||
│
|
||||
├─ 动作头:每 token 输出 6 维 Δq
|
||||
├─ 模式分类头:K=4
|
||||
├─ 价值头(剩余时间/代价):1 ← v2.1,§8.5
|
||||
└─ 子目标头:2 个关节空间途经点 + 是否需要(触发:新目标或目标跳变 > 50 mm;到达子目标 < 5° 后切下一个;v2.3 定义)← v2.1,§8.5
|
||||
16 个动作 token(一步头:注入噪声 + 时间嵌入;WTA:K×16 个可学习 token)
|
||||
▼
|
||||
4 层 Transformer decoder(非自回归,一次前向)
|
||||
├─ 动作输出:每 token 6 维 Δq
|
||||
├─ (WTA)模式分类头:4
|
||||
├─ 价值头:1
|
||||
└─ 子目标头:2 个关节途经点 + 是否需要
|
||||
```
|
||||
|
||||
| 超参 | 值 |
|
||||
|---|---|
|
||||
| d_model / 头数 / FFN | 192 / 8 / 768 |
|
||||
| encoder / decoder 层数 | 4 / 4 |
|
||||
| 参数量 | 约 3–4 M(DRP 为 4.67 M,含点云编码) |
|
||||
| 推理 | 一次前向得到 4 条候选动作块 |
|
||||
| 参数量 | 约 4.1M |
|
||||
|
||||
子目标触发:新目标或目标跳变 > 50 mm 时输出;到达当前子目标 < 5° 后切下一个。
|
||||
|
||||
### 6.1A v2.2 动作头升级:一步流匹配(默认)与 WTA(基线)
|
||||
### 6.2 动作头
|
||||
|
||||
| | v2 WTA 头(保留为基线) | **v2.2 一步流匹配头(默认)** |
|
||||
| | 一步生成头(默认) | WTA 头(基线) |
|
||||
|---|---|---|
|
||||
| 多模态 | 固定 K=4 个模式 | 连续分布;每周期并行采 K=8 个噪声 → 8 条候选 |
|
||||
| 训练 | WTA-L1 + 模式 CE | **MeanFlow**(沙箱已验证 1 步可用)或 Shortcut + COT 条件配对(无需 JVP);损失 = 流匹配损失 + FK 胶囊端点损失(加在一步输出上)。不采用 Consistency Policy / OneDP / 朴素 1 步 FM |
|
||||
| 输出 | 16 步 Δq | **16 步 Δq**(v2.3:B 样条 6 控制点降为可选,需 near_column 消融不掉点才启用) |
|
||||
| 前缀条件 | 无 | **训练时前缀条件化**(2512.05964):输入已提交且未执行的步,训练时随机遮盖前缀长度 0–3;推理零额外开销 |
|
||||
| 碰撞修正 | 无 | **事后投影**:对输出块做 1–2 步解析胶囊距离梯度,仅 d < 余量时启用(v2.3:生成中引导在 1–2 步下无证据) |
|
||||
| 推理成本 | 1 次前向 | 1–2 次前向 + 1 次解析梯度(JS 实现,不走 ONNX) |
|
||||
| APG 兼容 | ✅ | ✅(固定噪声后生成器是确定性可微映射) |
|
||||
| 多模态 | 连续分布;每次并行采 8 个噪声 → 8 条候选 | 固定 4 个模式 |
|
||||
| 训练 | MeanFlow 损失,或 Shortcut 自一致 + FM 锚定损失(配合条件 OT 配对) | WTA-L1 + 模式 CE |
|
||||
| 推理 | 1 次批量前向 | 1 次前向 |
|
||||
| 后处理 | 1–2 步解析胶囊距离梯度投影(JS 实现,仅 d < 余量时) | 同左 |
|
||||
| APG 兼容 | 固定噪声后为确定性可微映射 | 模式选择用 Gumbel-Softmax 或对 4 个模式各展开取最小代价 |
|
||||
|
||||
候选排序(v2.3 修正):不用"噪声粘滞"(BID 中 7 个任务有 3 个变差),改为 BID 式一致性打分:分数 = −‖候选与上一已提交块重叠步之差‖²(加权)− λ·价值头剩余代价。子目标头、价值头(§8.5)保持不变。
|
||||
M4 同时实现两种头,M5 预训练后在 near_column 与门禁集上 A/B(穿柱率、到达率、摇摆率),择优部署。
|
||||
|
||||
M4 同时实现两种头,M5 预训练后在 near_column + held-out 上 A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。
|
||||
### 6.3 损失
|
||||
|
||||
### 6.2 预训练损失
|
||||
一步生成头:
|
||||
|
||||
```
|
||||
L = WTA-L1(动作块, 最近模式) 权重 1.0
|
||||
+ CE(模式分类) 权重 0.5
|
||||
+ FK 损失:预测与标签位形下各连杆胶囊端点的位置差 权重 0.5 ← 借鉴 ELMP
|
||||
+ 平滑:二阶差分 权重 0.05
|
||||
+ L1(剩余时间) 权重 0.1 (与价值头共用一个输出,不重复)
|
||||
L = MeanFlow 损失(或 Shortcut 自一致 + FM 锚定) 1.0
|
||||
+ FK 损失:一步输出(固定噪声)的各连杆胶囊端点位置差 0.5
|
||||
+ 平滑:二阶差分 0.05
|
||||
+ 价值头 L1 + 子目标头 L1 0.1 / 0.1
|
||||
```
|
||||
|
||||
一步流匹配头(v2.3 补):
|
||||
WTA 头:
|
||||
|
||||
```
|
||||
L = MeanFlow 损失(或 Shortcut 自一致 + FM 锚定损失) 权重 1.0
|
||||
+ FK 损失:一步生成输出(固定噪声)的胶囊端点位置差 权重 0.5
|
||||
+ 平滑:二阶差分(作用于一步输出) 权重 0.05
|
||||
+ 子目标头 L1 + 价值头 L1 权重 0.1 / 0.1
|
||||
L = WTA-L1(动作块, 最近模式) 1.0
|
||||
+ CE(模式分类) 0.5
|
||||
+ FK 损失 0.5
|
||||
+ 平滑:二阶差分 0.05
|
||||
+ 价值头 L1 + 子目标头 L1 0.1 / 0.1
|
||||
```
|
||||
|
||||
### 6.3 训练配置
|
||||
### 6.4 训练配置
|
||||
|
||||
| 项 | 值 |
|
||||
|---|---|
|
||||
| 优化器 | AdamW,β=(0.9, 0.95),wd 0.01 |
|
||||
| 学习率 | 1e-3,预热 1000 步,余弦退火(DRP 预热 100 步;我们 batch 更大,取 1000,v2.3 更正表述) |
|
||||
| batch | 1024(3090 24 GB) |
|
||||
| 学习率 | 1e-3,预热 1000 步,余弦退火 |
|
||||
| batch | 1024 |
|
||||
| 精度 | bf16 混合精度 |
|
||||
| 步数 | 先跑 2000 步测吞吐再定;参考:200 万样本 × 30 epoch ÷ bs 1024 ≈ 6 万步(v2.3 更正:原"20 万步≈30 epoch"实为约 68 epoch),验证集闭环成功率不再上升即停 |
|
||||
| 预计耗时 | RTX 3090 约 1.5–3 小时(估算;DRP 4.67 M 参数在 4090 上预训练 100 万步用 3 天,我们的样本少、无点云编码,步数约其 1/5,跑完首轮再校正) |
|
||||
| 步数 | 先跑 2000 步测吞吐再定;参考 200 万样本 × 30 epoch ÷ 1024 ≈ 6 万步;验证集闭环到达率不再上升即停 |
|
||||
| 预计耗时 | RTX 3090 约 1.5–5.6 小时(按 2000 步吞吐实测重算) |
|
||||
|
||||
### 6.4 对拍与验证(每 epoch)
|
||||
### 6.5 对拍与验证
|
||||
|
||||
- `ml/eval/collide_torch.py`:胶囊距离的 PyTorch 批量版(**可微**,§7 要用),先与 JS `collideFree` 对拍 10 万个位形,判定 0 误差。
|
||||
- 验证用**闭环仿真**而不是单步误差:从 1000 个验证任务的 q0 出发,每 20 ms 推理一次、提交前 3 步,直到到达或超时(超时 = 老师同任务路径动画时长 × 2,最少 3 s),统计到达率、**用时 ≤ 老师 × 1.3 的达标率**(与 §9.2 口径一致,v2.3)、碰撞步数(安全层关闭时)、行程比。
|
||||
- `ml/eval/collide_torch.py`:可微胶囊距离 PyTorch 批量版,与 JS `collideFree` 对拍 10 万位形:布尔判定 0 差异,距离误差 < 1e-4 mm,梯度与有限差分相对误差 < 1e-3。
|
||||
- 每 epoch 闭环验证:从 1000 个验证任务出发,按部署节奏(每 60 ms 推理、提交 3 步)运行到到达或超时(老师路径时长 × 2,最少 3 s),统计到达率、用时 ≤ 老师 × 1.3 的达标率、碰撞步数(关安全层)、行程比、左/右/穿柱三类比例。
|
||||
|
||||
---
|
||||
|
||||
## 7. 第四步:后训练(无老师为主)
|
||||
## 7. 后训练
|
||||
|
||||
### 7.1 主力:APG 可微微调(借鉴 ELMP)
|
||||
|
||||
不再请老师标注,直接让模型在可微仿真里闭环展开,用代价反传:
|
||||
### 7.1 主力:APG 可微微调
|
||||
|
||||
```
|
||||
for 每个 batch(随机采样 q0 和目标,82 ms 级别的便宜采样,不需要老师):
|
||||
for 每个 batch(随机采样 q0 和目标,不需要老师):
|
||||
q = q0
|
||||
for t in 0..H-1 (H = 60 次推理 × 3 步 = 180 步 ≈ 3.6 s,与部署节奏一致;长任务分段截断反传,v2.3 更正):
|
||||
chunk, logits = π(obs(q, 目标))
|
||||
Δq = chunk[选中模式][0:3] # 执行前 3 步,与部署一致
|
||||
q = clamp(q + Δq) # 限位
|
||||
for t in 0..H-1 (H = 60 次推理 × 3 步 = 180 步 ≈ 3.6 s;长任务分段截断反传):
|
||||
chunk = π(obs(q, 目标, 前缀)) # 一步头固定噪声;WTA 见 §6.2
|
||||
Δq = chunk[0:3] # 与部署一致
|
||||
q = clamp(q + Δq)
|
||||
累计 L_col(q), L_smooth(Δq)
|
||||
L = w_tgt·L_target(q_H) + w_col·ΣL_col + w_smooth·ΣL_smooth (+ w_len·行程)
|
||||
反传(BPTT),梯度裁剪 ≤ 1.0
|
||||
L = w_tgt·L_target(q_H) + w_col·ΣL_col + w_smooth·ΣL_smooth (+ w_len·行程) + w_bc·L_BC
|
||||
反传,梯度裁剪 ≤ 1.0,lr 1e-4
|
||||
```
|
||||
|
||||
- **碰撞项** L_col = Σ_胶囊对 ReLU(margin − 胶囊距离),margin 取 `collide.json` 的 `margin_mm` 基础上再加 5 mm 训练余量;包含臂×立柱、臂×台架、臂×臂(非相邻段)。
|
||||
- **到达项**:位置误差² + λ_rot·‖R − R*‖_F²(弦距离,ELMP 同款,避免四元数梯度消失)。
|
||||
- **平滑项**:速度² + 加速度²。
|
||||
- 可加 **行程项**,直接把"关节行程短"写进目标(ELMP 用笛卡尔路径长度项做过同类事情)。
|
||||
- 模式选择不可导:用 Gumbel-Softmax,或对 K 个模式都展开 1 步再取最小代价(K=4,代价可接受)。
|
||||
- 采样任务分布同 §4.3,但 B/C/D 类提到 60%。
|
||||
- 预期:参照 ELMP,APG 主要降低碰撞率、提高末端精度;**不需要任何老师计算**。
|
||||
- 碰撞项 L_col = Σ ReLU(margin − 胶囊距离),margin = `margin_mm` + 训练余量(3–6 mm,覆盖安全层认证的保守量);含臂×立柱、臂×台架、臂×臂(非相邻段)。
|
||||
- 到达项:位置误差² + λ_rot·‖R − R*‖_F²。
|
||||
- 平滑项:速度² + 加速度²。
|
||||
- BC 锚定项:保留预训练损失,防止多模态被压缩;每轮监控左右比例。
|
||||
- 采样分布同 §4.3,B/C/D 类提到 60%,其中贴柱类 40%。
|
||||
|
||||
### 7.2 辅助:闭环挖错 + 门禁(v1.1 循环的无老师版)
|
||||
### 7.2 辅助:无老师挖错循环
|
||||
|
||||
每轮:
|
||||
1. **出题**:新种子 5 万任务 + 2000 段模型在环拖拽仿真(目标沿随机曲线移动)。
|
||||
2. **闭环作答**:完全按部署方式运行(含模式粘滞,**关闭安全层**以暴露真实错误)。
|
||||
3. **验算**:GPU 批量胶囊检查;记录到达、碰撞、行程、摇摆次数。
|
||||
4. **错题分类**:E1 撞了 / E2 没到(超时或卡在局部极小)/ E3 绕远(> 1.2× 参考)/ E4 末端精度差 / E5 模式来回切换 ≥ 3 次 / E6 拖拽失稳。
|
||||
5. **针对性训练**:错题的起点和目标(以及 ±5 mm / ±3° 的 10 个邻居)加入 APG 的采样池,按类别加权(E1、E6 ×2)。
|
||||
- 只有 E2(卡在局部极小——可微代价本身解决不了的"需要绕远路"问题)才可选地请老师离线给一条路径做行为克隆补充。这是唯一残留的老师用途,量很小,可以在沙箱慢慢跑。
|
||||
6. **门禁**(v2.3:门禁集与 §9 验收集分开造,验收集只在最后用一次):门禁集闭环到达率上升、三个基准不退化、上一轮修好的错题 95% 仍对;否则回滚。
|
||||
7. **停止**:连续 2 轮提升 < 0.5 个百分点,或满 6 轮,或达到 §9 全部标准。
|
||||
1. 出题:新种子 5 万任务 + 2000 段模型在环拖拽仿真。
|
||||
2. 闭环作答:完全按部署方式运行,**关闭安全层**以暴露真实错误。
|
||||
3. 验算:GPU 批量胶囊检查。
|
||||
4. 错题分类:E1 撞 / E2 没到(卡在局部极小)/ E3 绕远(> 1.2× 参考)/ E4 末端精度差 / E5 摇摆(≥ 3 次切换)/ E6 拖拽失稳。
|
||||
5. 错题及其 ±5 mm / ±3° 的 10 个邻居加入 APG 采样池(E1、E6 ×2);仅 E2 可离线请老师补少量路径。
|
||||
6. 门禁(用门禁集,不用验收集):到达率上升、A 类每轮降幅 ≤ 0.5 个百分点、上一轮修好的错题 95% 仍对;否则回滚。
|
||||
7. 停止:连续 2 轮提升 < 0.5 个百分点,或满 6 轮。
|
||||
|
||||
### 7.3 可选:拒绝采样自蒸馏
|
||||
|
||||
对每个任务采样多条闭环轨迹(不同模式、不同温度),只保留验算通过且最短的一条做行为克隆标签——模型自己当老师。适合 APG 收敛后进一步缩短行程。
|
||||
每个任务采样多条闭环轨迹,在"验算通过且最小间隙 ≥ 阈值"的样本中取最短的一条做行为克隆标签。门禁:C 类间隙中位数不低于自蒸馏前的 80%,刹停率不升。
|
||||
|
||||
### 7.4 可选:ReinFlow 微调
|
||||
|
||||
奖励 = 到达 − 刹停次数 − 卡死 − 用时,按左/右绕行分组平衡奖励,防止模式分布被重塑。
|
||||
|
||||
---
|
||||
|
||||
## 8. 第五步:无老师闭环部署
|
||||
## 8. 部署
|
||||
|
||||
### 8.1 每个控制周期做什么(默认 50 Hz)
|
||||
### 8.1 执行循环
|
||||
|
||||
```
|
||||
每 60 ms 推理一次(v2.3,见 H4;执行仍是 50 Hz,每步 20 ms):
|
||||
1. 读当前 q(真机读编码器;查看器读当前插补位形)和最新目标(拖拽时每周期都在变)
|
||||
2. 推理一次:一步头 8 条候选(WTA 基线为 4 条)16 步动作块 延迟须 M4 实测
|
||||
3. 按"模式概率 − 切换代价"排序(§8.2)
|
||||
4. 安全层依次检查候选的前 n=3 步(60 ms 的运动)+ 刹停段(§8.3)
|
||||
第一个通过的 → 把这 3 步"提交"给插补器;记下 k_prev
|
||||
(实际上 20 ms 后只走完第 1 步,第 2、3 步是已验证的"缓冲":
|
||||
下一周期的新结果会覆盖它们;若下一周期推理超时或全部不安全,就沿缓冲 + 刹停段安全停下)
|
||||
5. 全部不通过 → 进入刹停:按已验证的刹停轨迹减速停下,保持;下一周期继续推理
|
||||
6. 到达判据:TCP 误差 < 1 mm(pose 另需 < 0.5°)且速度≈0 → 结束;
|
||||
接近目标(< 5 mm)时可选做 1–3 次局部牛顿精修(solveTo 单步,不是全量 IK);精修段同样必须通过安全层认证(v2.3)
|
||||
执行:50 Hz,每步 20 ms,按已提交步走
|
||||
每 60 ms:
|
||||
1. 读当前 q、当前速度、已提交未执行前缀、最新目标
|
||||
2. 推理:一步头 8 条候选(WTA 为 4 条)16 步动作块
|
||||
3. 每条候选做 1–2 步胶囊距离梯度投影(仅 d < 余量时)
|
||||
4. 排序(§8.2)
|
||||
5. 安全层依次认证候选前 3 步 + 刹停段(§8.3),第一个通过的提交给执行器
|
||||
6. 全部不通过 → 沿上一次已认证的刹停段停下,下次继续推理
|
||||
7. 到达:TCP 误差 < 1 mm(pose 另需 < 0.5°)且速度≈0;
|
||||
接近目标(< 5 mm)时做 1–3 次局部牛顿精修(solveTo 单步),精修段同样过安全层认证
|
||||
```
|
||||
|
||||
v2.3:**删除插补器交叉淡入/时间集成**(见 H3)。执行的必须就是安全层认证过的那一块;块间连续性由前缀条件和一致性打分保证。"每 20 ms 重推理只执行 1 步"仅作 A/B 对照。
|
||||
执行的始终是安全层认证过的那一块,不做新旧块混合。执行时钟放在 Web Worker、按实际 dt 推进,避免 `requestAnimationFrame`(60 Hz)与 20 ms 不整除及后台节流造成的抖动。
|
||||
|
||||
### 8.2 模式粘滞(防左右摇摆)
|
||||
### 8.2 候选排序(防左右摇摆)
|
||||
|
||||
- WTA 基线:排序分数 = log p(k) − c·[k ≠ k_prev],c 初值 2.0;k_prev 仅对 WTA 头作为输入。
|
||||
- 一步头:BID 式一致性打分(见 §6.1A),不使用 k_prev / log p(k)。
|
||||
- 一步头:分数 = −Σ w_k‖候选第 k 步 − 已提交块第 k 步‖²(重叠步加权)− λ·价值头剩余代价。
|
||||
- WTA 头:分数 = log p(k) − c·[k ≠ k_prev] − λ·价值头剩余代价,c 初值 2.0。
|
||||
|
||||
### 8.3 安全层(唯一的硬保证)
|
||||
|
||||
- 检查内容(v2.3 修正,见 H1):臂×立柱/台架用**距离下界认证**——段两端最小距离之和 > Σ_j r_j·|Δθ_j|(r_j 为每轴实测杠杆上界,J1 约 9.0 mm/°)即判整段安全,否则二分到通过或判不安全;自碰撞对复用 pair2d 杠杆界;外加关节限位。离散 1°+半格检查只作快速预筛,不再作为保证。现有代码口径实为 1.5°+半格,文档原写法有误。
|
||||
- **可刹停不变式**:执行前还要检查"从第 3 步末状态按最大减速度(v2.3 新增每轴加速度上限,待真机参数)停下"的刹停段也无干涉。于是任何时候系统都处在"有一条已验证的停车路线"的状态,下一周期就算模型完全失效,也只会停下、不会撞。
|
||||
- 耗时(v2.3 重估):每步主导轴 4–13°,3 步 + 刹停段按离散采样需 13–39 个位形;8 候选最坏 8 × 39 × 1.25 ms ≈ 390 ms(不可接受)→ 实际做法:
|
||||
- 距离认证:每段一次距离查询覆盖整段,不通过才二分,通常 2–6 次查询;
|
||||
- 先用现有包围球预筛(大多数位形直接判安全,见 2026-10-15 记录 collideFree 2.9→1.8 ms);
|
||||
- 按排序**逐个**检查,第一个通过就停(多数周期只检查 1 条);
|
||||
- 目标:每周期安全检查 < 5 ms(需在 M6 实测;不达标则把检查放到 Web Worker 与推理流水线并行)。
|
||||
- 现有 `ik-glue.js` 的"每帧碰撞守卫"保留,作为第二道保险。
|
||||
- **距离下界认证**:对一段运动 q_a → q_b,若两端到障碍的最小距离之和 d(q_a) + d(q_b) > Σ_j r_j·|Δθ_j|(r_j 为每轴实测杠杆上界,J1 约 9.0 mm/°,六轴合计最大约 24.3 mm/°),则整段安全;否则二分,直到全部子段通过或判不安全。臂×立柱/台架用胶囊距离;自碰撞对复用 `pair2d` 杠杆界(J3 3.24、J4 2.54 mm/°)。外加关节限位。
|
||||
- 离散采样检查(现有 `pathFine`,1.5° + 半格)只作快速预筛,不作保证依据。
|
||||
- **可刹停不变式**:只有当"候选前 3 步 + 从第 3 步末按每轴 a_max 减速到停"整段都通过认证时才提交。任何时候系统都持有一条已认证的停车路线,下一次推理即使完全失效也只会停下。
|
||||
- 耗时:每段一次距离查询覆盖整段,不通过才二分(通常 2–6 次);按排序逐个认证,第一个通过即停;包围球预筛先行。目标每次 < 5 ms,否则放 Web Worker 与推理流水线并行。
|
||||
- `ik-glue.js` 的每帧碰撞守卫保留为第二道保险。
|
||||
|
||||
### 8.4 部署包里有什么、没有什么
|
||||
### 8.4 部署包
|
||||
|
||||
| 有 | 没有 |
|
||||
|---|---|
|
||||
| `traj_v2.onnx`(fp16,约 8.3 MB:4.13M 参数 × 2 B)+ `norm.json` | PRM 路网(`collide.json.roadmap`)、IK 候选大表 |
|
||||
| 胶囊碰撞检查(现有 `collideFree`、包围球预筛、`pair2d` 表) | `solveDyn` / `routeRT` / RRT / A* |
|
||||
| 正运动学 `fk` / `orient`、局部牛顿精修 `solveTo` 单步 | 全量 IK 枚举 |
|
||||
| `traj_policy.onnx`(fp16,约 8.3 MB)+ `norm.json` | PRM 路网、IK 候选大表 |
|
||||
| 胶囊距离与认证(`collideFree`、包围球预筛、`pair2d`) | `solveDyn` / `routeRT` / RRT / A* |
|
||||
| `fk` / `orient`、局部牛顿精修 `solveTo` 单步 | 全量 IK 枚举 |
|
||||
|
||||
`collide.json` 指纹写进模型;不一致时前端**拒绝运行并提示重训**(不再回落旧规划器)。
|
||||
`collide.json` 指纹写进模型;不一致时前端拒绝运行并提示重训。
|
||||
|
||||
### 8.5 为什么会"超时",以及无老师怎样做到 30/30
|
||||
### 8.5 near_column 30/30 的保障手段
|
||||
|
||||
**超时不是算得慢。** 模型每周期只要几毫秒,比原规划器快得多;"超时"指的是**机械臂在规定时间内没走到目标**,是决策错了,不是计算慢了。无老师闭环下有三种典型情形:
|
||||
"超时"指机械臂在规定时间内没走到目标,是决策问题而非计算速度问题。典型失效:局部极小/活锁(每次都想直穿、每次被安全层挡住)、左右摇摆、绕远。对策(运行时均不需要老师):
|
||||
|
||||
| 失效形态 | 现象 | 为什么更快的推理救不了 |
|
||||
|---|---|---|
|
||||
| 局部极小 / 活锁 | 目标在立柱背后,策略每周期都想"直着过去",安全层每周期都刹停,原地抖动 | 每周期都做同样的错误决定,算得再快也只是更快地重复 |
|
||||
| 模式摇摆 | 这一周期选左绕、下一周期选右绕,来回切换,进度为零 | 同上 |
|
||||
| 绕远 | 选了一条可行但很长的路,在时限内走不完 | 方向对了但路线差 |
|
||||
1. **子目标头**:给出 1–2 个关节途经点作为绕柱方向锚点,标签取老师路径拐点(离线)。
|
||||
2. **价值头**:预测剩余时间/代价,用于候选打分与进展判断;APG 中用 TD 自举监督。
|
||||
3. **短前瞻**:对每条候选再推一块,用胶囊认证 + 价值头给 32 步后终态打分。
|
||||
4. **卡死检测 + 强制换向**:0.3 s 内价值不降或连续 2 次刹停 → 切到另一绕行方向并锁定 1 s。
|
||||
5. **训练侧加强**:贴柱类占 APG 采样 40%;展开覆盖整段绕行;贴柱任务做拒绝采样自蒸馏。
|
||||
|
||||
原规划器不会这样,是因为它做**全局搜索**(PRM + A*)。去掉老师后,全局"想清楚往哪绕"这件事必须由模型自己承担。v2.1 用五个手段(全部在运行时不需要老师)把 near_column 要求提到 **30/30**:
|
||||
### 8.6 控制周期
|
||||
|
||||
1. **全局子目标头(分层)**:模型在冷启动(新目标到达的第一个周期)额外输出 1–2 个途经点(关节空间),作为"绕柱方向"的锚点;之后每周期的动作块以"当前子目标"为条件,到达子目标后切到下一个。训练标签直接取自老师路径的拐点(离线已有)。这相当于把老师的全局搜索结果蒸馏成一次前向。
|
||||
2. **价值头(剩余代价估计)**:模型额外预测"从这个状态到目标还要多少时间"。APG 展开时有真实值可监督,不需要老师。部署时用它给 K 个模式打分,并作为"有没有进展"的判据。
|
||||
3. **短前瞻选模式**:每次推理对候选(WTA 4 条 / 一步头 8 条)各自再往前推一块(共 2 次批量前向,延迟待实测),用 胶囊碰撞 + 价值头 给 32 步后的终态打分,选最好的。比只看第一块的概率更能避开"走两步就撞墙"的分支。
|
||||
4. **卡死检测 + 强制换向**:0.3 s 内价值头没有下降、或连续 2 个周期刹停 → 判定卡死,强制切到另一个绕行方向(另一个子目标/模式)并锁定 1 s(防止又切回来)。规则很简单、确定性、可测试。
|
||||
5. **训练侧针对性加强**:贴柱类任务在 APG 采样里占 40%;APG 展开长度覆盖整段绕行(约 3 s = 150 步 = 50 次推理,分段截断反传);对贴柱任务做拒绝采样自蒸馏(§7.3),模型自己成功的路线成为新标签。
|
||||
伺服层(参考):Franka FCI 1 ms;UR e-Series 2 ms、CB3 8 ms;ABB EGM 4 ms(滞后 10–20 ms);KUKA RSI 4/12 ms;FANUC DPM 约 8 ms;MoveIt Servo 默认 10 ms;RC 舵机 20 ms。
|
||||
|
||||
验收相应改为(§9.2):near pos / near rt 都必须 **30/30**,且到达用时 ≤ 老师路径动画时长 × 1.3。
|
||||
策略层(参考):MπNets 9 Hz;Diffusion Policy 10 Hz、预测 16 执行 8;ELMP 30 Hz;π0 50 Hz、约每 0.5 s 推理一次;DRP 300 Hz。业界均为"策略层 10–50 Hz + 伺服层 125 Hz–1 kHz"两层结构。
|
||||
|
||||
### 8.6 控制周期:业界案例与评估
|
||||
|
||||
**工业臂 / 研究臂的外部实时接口(伺服层)**
|
||||
|
||||
| 产品 / 接口 | 周期 | 说明 |
|
||||
|---|---|---|
|
||||
| Franka FCI(libfranka) | **1 ms(1 kHz)** | 关节位置/速度/力矩、笛卡尔位姿;每周期往返 + 计算必须 < 1 ms |
|
||||
| Universal Robots e-Series RTDE | **2 ms(500 Hz)** | `servoj` 默认 t = 0.002 |
|
||||
| Universal Robots CB3 RTDE | **8 ms(125 Hz)** | `servoj` 默认 t = 0.008 |
|
||||
| ABB EGM | **4 ms(250 Hz)**,可设为 4 ms 的整数倍 | 控制滞后 10–20 ms(随机型) |
|
||||
| KUKA RSI | **4 ms**(Fast)或 **12 ms**(Normal) | |
|
||||
| FANUC DPM | 约 **8 ms** | R-30iB 无 1–2 ms 通道 |
|
||||
| MoveIt Servo(ROS 2) | 默认 **10 ms**(新版);旧版示例 34 ms | 常设为 ros2_control 更新频率的倒数(如 50 Hz → 20 ms) |
|
||||
| 舵机(RC PWM) | **20 ms(50 Hz)** 帧周期 | 数字舵机可到更高帧率 |
|
||||
|
||||
**学习型策略的推理周期(策略层)**
|
||||
|
||||
| 方法 | 策略频率 | 动作块 | 执行方式 |
|
||||
|---|---|---|---|
|
||||
| MπNets | 9 Hz | 单步 | 线性插值,1 kHz PD 跟踪 |
|
||||
| Diffusion Policy | 10 Hz | 16 步 | 线性插值到 125 Hz 交给 UR5 |
|
||||
| ELMP | 30 Hz(真机) | 单步 Δq | 每步 3 个航点线性插值给 Franka 位置控制器 |
|
||||
| π0 | 50 Hz 动作,约每 0.5 s 推理一次 | 50 步(1 s) | 执行 25 步后重算 |
|
||||
| ACT | 50 Hz | 100 步 | 时间集成 |
|
||||
| DRP / IMPACT | 可跑 300 Hz(4090) | 10 步 | 闭环 |
|
||||
|
||||
**结论:业界一律是"两层"结构**——策略层 10–50 Hz(少数到 300 Hz)给出关节目标,伺服/插补层 125 Hz–1 kHz 负责平滑跟踪。没有人让神经网络直接跑 1 kHz 伺服环。
|
||||
|
||||
**对本方案的评估:**
|
||||
|
||||
1. **策略层 50 Hz(20 ms)合适**:与 π0、ACT 同档,高于 ELMP 的 30 Hz 和 MπNets 的 9 Hz;我们模型小(3–4 M)、无点云,v2.3:推理每 60 ms 一次(执行仍 50 Hz),推理 + 安全 < 20 ms 为目标,须实测。浏览器 rAF 为 60 Hz、与 20 ms 不整除且后台标签页会节流,执行时钟放 Web Worker、按实际 dt 插值。
|
||||
2. **"提交 3 步(60 ms)"合适,且应按刹停距离定**:它的作用是给推理抖动和通信滞后留缓冲。ABB EGM 自身就有 10–20 ms 滞后;60 ms 足以覆盖一次推理超时 + 一次滞后。真机上应改成规则:提交步数 n ≥ ⌈(通信滞后 + 1 次推理最坏耗时) / 20 ms⌉ + 1,且刹停段另行验证。
|
||||
3. **伺服层不归本方案管,但要匹配**:策略输出 50 Hz 关节目标,由插补器升采样到电机控制器的频率(舵机 50 Hz 直接用;总线舵机/步进/FOC 驱动通常 ≥ 250 Hz–1 kHz,做三次样条插值)。
|
||||
4. **做成可配置**:`dt`(默认 20 ms)、提交步数 n(默认 3)、动作块长度 S(默认 16 = 320 ms)。训练数据按 dt = 20 ms 生成;若真机必须改到 10 ms(100 Hz),只需把动作块重采样,或用 dt = 10 ms 重造数据(约 5 小时)。
|
||||
5. 你的电机/驱动型号确定后,按第 2、3 条把 n 和插补频率定下来。
|
||||
本方案:执行 50 Hz、每 60 ms 推理一次、提交 3 步。真机上提交步数 n ≥ ⌈(通信滞后 + 一次推理最坏耗时) / 20 ms⌉ + 1,刹停段另行认证;策略输出 50 Hz 关节目标,由插补器升采样到电机控制器频率。`dt`、n、动作块长度均可配置。
|
||||
|
||||
---
|
||||
|
||||
## 9. 第六步:评估与验收
|
||||
## 9. 评估与验收
|
||||
|
||||
### 9.1 测试集合
|
||||
|
||||
| 集合 | 来源 |
|
||||
|---|---|
|
||||
| route_bench | `tests/route_bench.cjs`,60 例 |
|
||||
| near_column_bench | `tests/near_column_bench.cjs`,30 例(pos / pose / rt) |
|
||||
| rt_drag_bench | `tests/rt_drag_bench.cjs`,12 例(改为模型在环逐周期运行) |
|
||||
| held-out | §4.3 留出 2000 条 |
|
||||
| 集合 | 来源 | 用途 |
|
||||
|---|---|---|
|
||||
| route_bench | `tests/route_bench.cjs`(40 例)+ 60 例随机基准 | 验收 |
|
||||
| near_column_bench | `tests/near_column_bench.cjs`,30 例(pos / pose / rt) | 验收 |
|
||||
| near_column 扩展 | §4.3 新造 ≥1000 例 | 一次性验收 |
|
||||
| rt_drag_bench | `tests/rt_drag_bench.cjs`,12 例(模型在环) | 验收 |
|
||||
| held-out | §4.3 2000 条 | 一次性验收 |
|
||||
| 门禁集 | §4.3 2000 条 | 训练中门禁,不参与验收 |
|
||||
|
||||
新增 `tests/policy_bench.cjs`:①现有规划器 ②策略(关安全层)③策略 + 安全层(部署形态),输出对比表。
|
||||
新增 `tests/policy_bench.cjs`:①现有规划器 ②策略(关安全层)③策略 + 安全层,输出对比表。
|
||||
|
||||
### 9.2 验收标准(部署形态 = 策略 + 安全层)
|
||||
|
||||
| 指标 | 要求 | 现状参考 |
|
||||
| 指标 | 要求 | 现有规划器 |
|
||||
|---|---|---|
|
||||
| 实际执行的碰撞帧 | **= 0**(以距离认证或 0.01° 审计测量,不用离散 1° 检查) | rt_drag_bench 0 |
|
||||
| 到达率 | route **60/60**,near pos **30/30**,near rt **30/30**,**另造 ≥1000 例 near_column 一次性验收集 0 失败**;held-out(分母只算可达任务)≥ 98%,D 类另考停靠距离 ≤ 老师 + 5 mm | 60 例随机基准(沙箱 bench.cjs)有效 60/60;**仓库 `tests/route_bench.cjs`(40 例)在 `3c7c814` 上重跑:到达 40/40、细验有效 39/40**(1 例到达但路径细验不过,2026-10-17 21:28 实测);near 30/30、30/30 |
|
||||
| 到达用时 | ≤ 老师同任务路径动画时长 × 1.3 | — |
|
||||
| 关节行程 | ≤ 现有规划器 × 1.10 | route 平均 467° |
|
||||
| 冷启动(新目标→第一个动作) | < 10 ms | 首次全量 IK 最差约 2 s |
|
||||
| 每次推理(每 60 ms)耗时(推理+安全层)P99 | < 20 ms | 拖拽重规划 P99 约 321 ms |
|
||||
| 刹停发生率 | < 2% 的周期 | — |
|
||||
| 模式摇摆(≥3 次切换)| < 1% 的任务 | — |
|
||||
| 策略单独(关安全层)碰撞率 | < 3%(参考:ELMP-APG 8.9%,DRP 10.16%) | — |
|
||||
| 实际执行的碰撞 | **= 0**(距离认证或 0.01° 审计测量) | rt_drag_bench 0 |
|
||||
| 到达率 | route 全部可达例到达;near pos **30/30**、near rt **30/30**;near_column 扩展集 **0 失败**;held-out 可达任务 ≥ 98%,D 类停靠距离 ≤ 老师 + 5 mm | `route_bench` 40 例:到达 40/40、细验有效 39/40;60 例随机基准有效 60/60;near 30/30、30/30 |
|
||||
| 到达用时 | ≤ 老师路径时长 × 1.3 | — |
|
||||
| 关节行程 | ≤ 现有规划器 × 1.10(按类别分别报告) | 60 例平均 467° |
|
||||
| 冷启动 | < 10 ms | 首次全量 IK 最差约 2 s |
|
||||
| 每次推理 + 安全认证 P99 | < 20 ms | 拖拽重规划 P99 约 321 ms |
|
||||
| 刹停发生率 | < 2% 的推理周期 | — |
|
||||
| 模式摇摆(≥3 次切换) | < 1% 的任务 | — |
|
||||
| 策略单独(关安全层)碰撞率 | < 3% | — |
|
||||
|
||||
说明:v2 曾提议 near_column 允许 29/30,用户否决(2026-10-17)。为保证 30/30,部署侧加入子目标头、价值头、短前瞻和卡死换向(§8.5)。
|
||||
说明:30 例全对时,失败率的 95% 置信上界约 9.5%;扩展集 1000 例 0 失败时约 0.3%,因此以扩展集作为 30/30 的统计支撑。
|
||||
|
||||
---
|
||||
|
||||
## 10. 风险与维护
|
||||
## 10. 当前存在的问题与风险
|
||||
|
||||
1. **局部极小**:可微代价和闭环策略都可能卡在立柱前"想直穿过去又被安全层挡住"。对策:B/C 类数据加权、模式头学左右绕、E2 错题少量老师补数据(§7.2)。这是无老师方案最大的风险。
|
||||
2. **碰撞模型/立柱变动 = 重训**:指纹不一致即拒绝运行。重训流程:§4(约 5 h)→ §6(约 1.5–5.6 h,以 2000 步吞吐实测为准)→ §7(约 2–4 h)。
|
||||
3. **安全层耗时**:最坏周期可能超 5 ms,见 §8.3 的流水线方案。
|
||||
4. **老师缺陷**:`ci27` 姿态根枚举漏分支(姿态偏差约 97.5°)会进入预训练数据;APG 的姿态到达项可以部分纠正,必要时先修老师。
|
||||
5. **真机迁移**:浏览器的"执行"是理想插补;真机需加速度/力矩限制(TOPP 类时间参数化)和跟踪误差余量(把 margin 再加大)。
|
||||
### 10.1 只能靠实测消除的风险(按里程碑顺序)
|
||||
|
||||
| # | 风险 | 门禁(不过不进下一步) | 回退 | 何时测 |
|
||||
|---|---|---|---|---|
|
||||
| R1 | 老师左右绕行不一致,标签自相矛盾 | 同任务 5 种子同伦类一致率 ≥ 90% | 固定"最短同伦类"偏好,或改用 PRM 路网 A* 作老师 | M1 |
|
||||
| R2 | 时间律仍有不可观测成分,闭环起不了步 | 近邻样本标签方差 < 10% 步长;起步失败率 = 0 | 进一步把剩余路程估计加入输入 | M1 / M5 |
|
||||
| R3 | 距离认证过于保守,贴柱处拒绝率高,影响 30/30 | near_column 上认证拒绝率统计;离线 10⁵ 段 0.01° 审计漏检 = 0 | 训练余量提高到 3–6 mm,接受行程变长;收紧杠杆界(按位形分区) | M2 / M7 |
|
||||
| R4 | 浏览器推理延迟:WebGPU 每次调度 33–67 μs,8 层 Transformer 约 150–300 次调度 | M4 后立即导出 ONNX,在目标浏览器测 batch=8(含前瞻 16)P99 | wasm-SIMD 多线程;去掉前瞻;减小模型 | **M4(最大不确定项)** |
|
||||
| R5 | 一步生成头在 6 轴、位姿目标下不如 WTA,或训练不稳 | M5 A/B:穿柱率、到达率、摇摆率 | 部署 WTA 头 | M5 |
|
||||
| R6 | 位姿目标的多 IK 分支带来额外多峰 | 不同肘/腕分支子集到达率 ≥ 主集 − 2 个百分点 | 加目标分支标志 | M5 |
|
||||
| R7 | APG 压缩多模态或拉长路径(ELMP 中路径 +23%) | 每轮左右比例与行程门禁 | 加大 BC 锚定权重;行程项 | M6 |
|
||||
| R8 | 卡死换向活锁 | 50 个"两侧都要绕远"对抗用例 3 s 内恢复 ≥ 95%,活锁 = 0 | 子目标改为离散绕行锚点分类 | M6 / M7 |
|
||||
| R9 | 安全层贴柱时耗时超标 | near_column 全程 P99 < 5 ms | Web Worker 流水线;提交步数降到 2 | M7 |
|
||||
| R10 | 训练耗时估计偏差 | 2000 步吞吐 ≥ 2 万样本/s | 降 epoch 或增大 batch | M5 |
|
||||
|
||||
### 10.2 已知缺陷
|
||||
|
||||
1. 现有规划器(老师)在 `tests/route_bench.cjs` 上有 1/40 例到达但路径细验不过;§4.4 的认证过滤会丢弃这类样本。
|
||||
2. `ci27` 姿态根枚举漏分支(姿态偏差约 97.5°)会影响 pose 数据;APG 姿态项可部分纠正,必要时先修老师。
|
||||
3. 胶囊模型或立柱变动即需重训:数据约 5 h + 预训练 1.5–5.6 h + 后训练 2–4 h。
|
||||
|
||||
### 10.3 需要用户确认
|
||||
|
||||
1. **真机电机/驱动型号与通信方式**:决定每轴加速度上限 a_max、插补频率与提交步数。
|
||||
2. **运行时多候选打分是否算"运行时老师"**:本方案的理解是不算(只对模型自己的候选做距离认证和打分,不做搜索)。
|
||||
|
||||
---
|
||||
|
||||
@@ -589,15 +475,16 @@ ml/
|
||||
gen/ gen_dataset.cjs sampler.cjs run_parallel.sh
|
||||
data/ (不入库)shard_*.jsonl stats.json *.parquet norm.json
|
||||
prep/ build_dataset.py
|
||||
model/ policy_transformer.py
|
||||
sim/ closed_loop.py # 闭环仿真(训练验证、挖错、APG 展开共用)
|
||||
model/ policy_transformer.py # 一步生成头 + WTA 头
|
||||
sim/ closed_loop.py # 闭环仿真(验证、挖错、APG 共用)
|
||||
eval/ collide_torch.py # 可微胶囊距离,与 JS 对拍
|
||||
apg/ apg_finetune.py
|
||||
mining/ mine_round.py gate.py loop.sh
|
||||
toy/ toy_bimodal.py # 2D 双模态对照实验
|
||||
configs/ base.yaml apg.yaml
|
||||
train.py export_onnx.py README.md
|
||||
webapp/js/ik-policy.js # 闭环推理 + 模式粘滞 + 安全层 + 刹停
|
||||
webapp/models/traj_v2.onnx traj_v2.norm.json
|
||||
webapp/js/ik-policy.js # 闭环推理 + 排序 + 安全认证 + 刹停
|
||||
webapp/models/traj_policy.onnx traj_policy.norm.json
|
||||
tests/policy_bench.cjs
|
||||
```
|
||||
|
||||
@@ -605,29 +492,36 @@ tests/policy_bench.cjs
|
||||
|
||||
| # | 内容 | 产出 | 在哪跑 |
|
||||
|---|---|---|---|
|
||||
| M1 | 数据生成器 + 时间参数化 + 1000 条试跑 | `ml/gen/*`、stats.json | 沙箱 |
|
||||
| M2 | 可微胶囊距离(PyTorch)与 JS 对拍 | `collide_torch.py`,10 万位形 0 误差 | 沙箱(CPU 即可) |
|
||||
| M3 | 5 万条老师数据 → 约 300 万闭环样本 | Parquet | 沙箱约 5 h 或用户机器 |
|
||||
| M4 | 模型 + 训练工程 + 闭环仿真;小数据过拟合测试 | `train.py`、`closed_loop.py` | 沙箱 CPU 验证可跑 |
|
||||
| M5 | 预训练(行为克隆) | checkpoint | **用户 GPU** |
|
||||
| M6 | APG 微调 + 挖错循环 3–6 轮 | 每轮 report.md | **用户 GPU** |
|
||||
| M6b | (可选)ReinFlow 强化学习微调:奖励 = 到达 − 刹停次数 − 卡死 − 用时 | 对比 M6 | **用户 GPU** |
|
||||
| M7 | 导出 ONNX + `ik-policy.js` 闭环部署 + 安全层实测 + `policy_bench` | 对比表 | 沙箱 + 浏览器 |
|
||||
| M8 | 移除查看器里对 `solveDyn`/`routeRT`/路网的运行时依赖(保留在 `ml/gen` 离线使用) | 部署包瘦身 | 沙箱 |
|
||||
| M1 | 数据生成器 + 时间律 + 1000 条试跑;老师一致性门禁 | `ml/gen/*`、stats.json | 沙箱 |
|
||||
| M2 | 可微胶囊距离(PyTorch)与 JS 对拍;距离认证实现与 10⁵ 段审计 | `collide_torch.py`、认证模块 | 沙箱 |
|
||||
| M3 | 5 万条老师数据 → 约 200 万样本 | Parquet | 沙箱约 5 h 或用户机器 |
|
||||
| M4 | 模型(两种头)+ 训练工程 + 闭环仿真;小数据过拟合;**导出 ONNX 测浏览器延迟** | `train.py`、`closed_loop.py`、延迟报告 | 沙箱 + 浏览器 |
|
||||
| M5 | 预训练;一步头 vs WTA A/B | checkpoint、A/B 报告 | 用户 GPU |
|
||||
| M6 | APG 微调 + 挖错循环 3–6 轮 | 每轮 report.md | 用户 GPU |
|
||||
| M6b | (可选)ReinFlow 微调 | 对比 M6 | 用户 GPU |
|
||||
| M7 | `ik-policy.js` 闭环部署 + 安全层实测 + `policy_bench` + 一次性验收 | 对比表 | 沙箱 + 浏览器 |
|
||||
| M8 | 移除查看器对 `solveDyn`/`routeRT`/路网的运行时依赖(保留在 `ml/gen` 离线使用) | 部署包瘦身 | 沙箱 |
|
||||
|
||||
## 13. 参考文献
|
||||
|
||||
- Fishman et al., *Motion Policy Networks*, CoRL 2022. https://arxiv.org/abs/2210.12209 ;闭环细节见补充材料 https://proceedings.mlr.press/v205/fishman23a/fishman23a-supp.pdf
|
||||
- Dalal et al., *Neural MP: A Generalist Neural Motion Planner*, 2024 / IROS 2025. https://arxiv.org/abs/2409.05864
|
||||
- Yang, Liu et al., *Deep Reactive Policy: Learning Reactive Manipulator Motion Planning for Dynamic Environments*, CoRL 2025. https://arxiv.org/abs/2509.06953
|
||||
- Fishman et al., *Avoid Everything: Model-Free Collision Avoidance with Expert-Guided Fine-Tuning*, CoRL 2024 Workshop(DRP 文中引用为 MπFormer)
|
||||
- Li et al., *ELMP: Efficient Learning for Motion Planning via Analytical Policy Gradients*, arXiv 2607.00215, 2026. https://arxiv.org/abs/2607.00215
|
||||
- 控制周期:Franka FCI https://frankarobotics.github.io/docs/overview.html ;UR RTDE https://www.universal-robots.com/articles/ur/interface-communication/remote-control-via-tcpip ;ABB EGM 应用手册 3HAC073318;KUKA RSI https://docs.quanser.com/quarc/documentation/kuka_rsi_block.html ;MoveIt Servo servo_parameters.yaml;Diffusion Policy https://arxiv.org/abs/2303.04137 ;π0 https://arxiv.org/abs/2410.24164 ;实时动作块执行 https://arxiv.org/abs/2506.07339
|
||||
- 前沿生成式策略(v2.2):π0 https://arxiv.org/abs/2410.24164 ;π0.5 https://arxiv.org/abs/2504.16054 ;知识隔离 https://arxiv.org/abs/2505.23705 ;FAST https://arxiv.org/abs/2501.09747 ;MP1 https://arxiv.org/abs/2507.10543 ;OFP https://arxiv.org/abs/2603.12480 ;条件 OT 流策略 https://proceedings.mlr.press/v305/sochopoulos25a.html ;Consistency Policy https://arxiv.org/abs/2405.07503 ;OneDP https://proceedings.mlr.press/v267/wang25ba.html ;MPD https://arxiv.org/abs/2308.01557 ;EDMP https://arxiv.org/abs/2309.11414 ;GPD https://arxiv.org/abs/2501.18229 ;DiffusionSeeder https://arxiv.org/abs/2410.16727 ;RTC https://arxiv.org/abs/2506.07339 ;DPPO https://arxiv.org/abs/2409.00588 ;ReinFlow https://arxiv.org/abs/2505.22094
|
||||
- Ross, Gordon, Bagnell, *A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning*(DAgger),AISTATS 2011
|
||||
|
||||
## 14. 需要用户确认
|
||||
|
||||
1. ~~训练机显卡~~:已定 RTX 3090 24 GB。
|
||||
2. ~~near_column 29/30~~:已否决,要求 30/30(§8.5)。
|
||||
3. 控制周期:按 §8.6 评估保持策略层 50 Hz、提交 3 步;**请告知真机电机/驱动类型与通信方式**,用于确定插补频率和提交步数。
|
||||
- MπNets:https://arxiv.org/abs/2210.12209
|
||||
- Neural MP:https://arxiv.org/abs/2409.05864
|
||||
- Deep Reactive Policy / IMPACT:https://arxiv.org/abs/2509.06953
|
||||
- ELMP:https://arxiv.org/abs/2607.00215
|
||||
- Diffusion Policy:https://arxiv.org/abs/2303.04137
|
||||
- π0:https://arxiv.org/abs/2410.24164 ;π0.5:https://arxiv.org/abs/2504.16054
|
||||
- FAST:https://arxiv.org/abs/2501.09747
|
||||
- MP1 / MeanFlow:https://arxiv.org/abs/2507.10543
|
||||
- One-Step Flow Policy:https://arxiv.org/abs/2603.12480
|
||||
- 条件 OT 流策略:https://proceedings.mlr.press/v305/sochopoulos25a.html
|
||||
- Kinematic MeanFlow:https://arxiv.org/abs/2610.00864
|
||||
- Consistency Policy:https://arxiv.org/abs/2405.07503 ;OneDP:https://arxiv.org/abs/2410.21257
|
||||
- MPD:https://arxiv.org/abs/2308.01557 ;EDMP:https://arxiv.org/abs/2309.11414 ;GPD:https://arxiv.org/abs/2501.18229 ;DiffusionSeeder:https://arxiv.org/abs/2410.16727
|
||||
- Real-Time Chunking:https://arxiv.org/abs/2506.07339 ;训练时动作条件化:https://arxiv.org/abs/2512.05964
|
||||
- Bidirectional Decoding(BID):https://arxiv.org/abs/2408.17355
|
||||
- DPPO:https://arxiv.org/abs/2409.00588 ;ReinFlow:https://arxiv.org/abs/2505.22094
|
||||
- Schwarzer, Saha, Latombe, *Adaptive Dynamic Collision Checking for Single and Multiple Articulated Robots in Complex Environments*, IEEE T-RO 2005
|
||||
- Thumm & Althoff, *Provably Safe Deep Reinforcement Learning for Robotic Manipulation in Human Environments*, ICRA 2022
|
||||
- Zhou et al., *On the Continuity of Rotation Representations in Neural Networks*, CVPR 2019
|
||||
- AWE(航点提取):https://arxiv.org/abs/2307.14326 ;SHAC:https://arxiv.org/abs/2204.07137
|
||||
- 控制周期:Franka FCI https://frankarobotics.github.io/docs/overview.html ;UR RTDE https://www.universal-robots.com/articles/ur/interface-communication/remote-control-via-tcpip ;ABB EGM 应用手册 3HAC073318;KUKA RSI https://docs.quanser.com/quarc/documentation/kuka_rsi_block.html
|
||||
|
||||
-3111
File diff suppressed because it is too large
Load Diff
@@ -1,953 +0,0 @@
|
||||
# 方案逐项核查报告(v2.3 证据附录)
|
||||
|
||||
> 2026-10-17。**这是修复前的审查记录**(问题 + 证据 + 建议),不是修复结果。修复已落在《Transformer轨迹拟合训练方案》v2.3.1 正文,状态表见其 §0A.5。
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 一、§4–§9 逐项核查与内部不一致
|
||||
|
||||
## 《Transformer 避障运动策略:无老师闭环部署方案 v2.2》§4–§9 可行性逐项核验
|
||||
|
||||
> 撰写:2026-10-17。审查对象:`/workspace/work/Robot_Arm/docs/Transformer轨迹拟合训练方案.md`(v2.2,基于 `main@3c7c814`)。
|
||||
> **范围**:§4–§9 中除"动作头选型(一步流/MeanFlow/WTA)、代价引导、RTC/前缀条件、APG/ReinFlow/DPPO 本身"之外的全部方案(那几项由其他报告负责:`guidance_rtc.md`、`finetune_alternatives.md`、`onestep.md`)。涉及它们的地方只核对**接口与数字是否自洽**。
|
||||
> **判定口径**:有充分证据 = 有论文/系统在相近设定下做过且给出数字;有部分证据 = 做过但设定差异大,或只证明了一部分;仅推断 = 无直接文献,靠推理;有反证 = 文献或本仓库数据直接与方案说法冲突。
|
||||
> **标注**:【原文】= 已抓取全文并定位章节/表号;【仓库】= 本仓库代码/文档/本次实测;【推断】= 我的推理;【未抓取】= 背景知识,未在本次全文中核实。
|
||||
> 全文与抽取文本存放:`/workspace/work/out/survey/src_v/`(本报告新抓取)与 `/workspace/work/out/survey/src/`(其他报告已抓取的 DRP/ELMP 等)。杠杆臂实测脚本:`/workspace/work/out/survey/src_v/lever.cjs`。
|
||||
|
||||
---
|
||||
|
||||
### 0. 结论速览
|
||||
|
||||
**整体判断**:§4–§9 的大框架(老师离线造数据 → 切成"状态→动作块"做行为克隆 → 无老师后训练 → 闭环滚动执行 + 安全层)有充分的同类先例(MπNets、DRP/IMPACT、ELMP)。但有 **4 个硬伤**必须在写代码前改掉,否则验收标准无法成立:
|
||||
|
||||
1. **安全层的"保证"不成立(有反证)**:§8.3 用 1°(+半格)离散采样 + 0.3 mm 余量做检查。本次实测本机械臂各关节杠杆:TCP 每度最大位移 J1 9.0 mm、J2 6.9 mm、J3/J4 4.2 mm、J5 2.3 mm,六轴同时动 1°(L∞)时最多 24.3 mm。即便 0.5° 间距,两采样点之间某点可偏离最近采样位形约 6 mm,远大于 0.3 mm 余量。仓库自己的报告也记录了"贴立柱时薄薄一层干涉整个夹在采样点之间"以及 0.28 mm 的残余侵入。"碰撞帧 = 0"目前只是"在离散检查口径下 = 0"。
|
||||
2. **时间参数化会产生非马尔可夫标签(有反证)**:§4.5 沿用 `animTo`:整条折线一次全局 smoothstep,总时长按路径长度缩放,并夹在 [372 ms, 2170 ms]。于是同一 (q, 目标) 状态下,标签速度取决于"整条路径有多长、走到了第几成",而这两样输入里都没有。起步段 Δq≈0,闭环每 20 ms 只执行第 1 步,可能**永远起不了步**。Diffusion Policy 报告过单步策略在"停顿动作"上过拟合、卡住的现象;MπNets 专门把老师路径重定时为匀速。
|
||||
3. **§8.1 的插补器交叉淡入/时间集成与安全层矛盾(有反证)**:实际执行的是两块的混合,不是安全层检查过的那 3 步。左绕块与右绕块平均后可能正好穿过立柱。BID 与 π0 都报告时间集成在多模态下会掉性能(π0 早期试过后放弃)。
|
||||
4. **训练/部署口径不一致**:APG 每次迭代执行 3 步(60 ms)再推理,部署是每 20 ms 推理、只走 1 步;"H=60 周期≈1.2 s"按 3 步/周期算其实是 3.6 s;§8.5 又写 150 周期≈3 s。此外,K=4(§5/§6.1/§8.1/§8.3/§8.5)与流匹配头的 K=8 候选(§6.1A)在多处混用。
|
||||
|
||||
**30/30 的统计含义**:30 次全对,失败率 95% 单侧置信上界约 9.5%(实算 1−0.05^(1/30)=0.095)。而且这 30 例在 §7.2 每轮门禁里都被用来挑模型,存在选择偏差。30/30 不能证明"无老师也可靠"。
|
||||
|
||||
---
|
||||
|
||||
### 1. 总表
|
||||
|
||||
| # | § | 方案(一句话) | 最佳证据(详见 §2) | 判定 | 主要残余风险 | 门禁测试(本仓库) / 不过时的回退 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1 | §4.1–4.3 | 用 `solveDyn` 离线造 5 万条任务(A45/B30/C15/D10,pos/pose 各半) | MπNets 3.27M 问题、DRP 10M 条、ELMP 60 万/1 万条【原文】;ELMP:1 万条+APG 胜 60 万条纯 BC | 有部分证据 | 老师是采样式(Lazy RRT-Connect+随机捷径),**一致性差**。MπNets 用全局规划器做老师时碰撞率 13.78%,换一致的混合老师降到 0.94% | 门禁:同一任务换 5 个种子跑老师,同类任务左右绕选择一致率 ≥ 90%、行程 CV < 10%。不过就改用确定性种子 + 固定绕行偏好(如"先选行程最短的同伦类"),或用 PRM 路网 A* 作老师(确定、最短) |
|
||||
| 2 | §4.3 D 类 | 目标不可达时,标签 = 停在离目标最近的安全位形(停靠) | DRP 加了"目标被挡→停在最近安全处"的数据(原文 §1 表述,具体数据量未核) | 有部分证据 | "最近安全位形"不唯一、不连续:目标移动 1 mm,停靠点可能跳到立柱另一侧 → 拖拽中抖动 | 门禁:rt_drag_bench 中目标扫过立柱时,停靠点 TCP 连续性(相邻 20 ms 跳变 < 5 mm)。不过就给停靠标签加连续性正则(选与上一停靠点最近的候选) |
|
||||
| 3 | §4.4 | 路径 1° 细验+半格复验过滤;行程>1.5×routeRT 先统计 | MπNets 拒收撞、超限、高 jerk、末端偏 >5 cm 的轨迹【原文 §4.2】 | 有部分证据 | 同一离散检查口径(见 #19);过滤阈值未定 | 门禁:被丢弃率按类别统计(C 类丢弃率 > 20% 说明老师在贴柱场景不可靠)。回退:贴柱类改用 0.25° 细验 + 距离下界认证 |
|
||||
| 4 | §4.5 ① | 按 `animTo`(VREL 轴速比 + 全局 smoothstep + 总时长夹取)把路径时间参数化成 20 ms 步 | MπNets:"fit a spline and retime it to have steady velocity"【原文 App/§4.2】;DP:"单步策略容易过拟合停顿动作,BC-RNN、IBC 在真机上会卡住"【原文 §3】 | **有反证** | ① 标签速度取决于整条路径长度与进度,输入里看不到 → 非马尔可夫;② 起步/收尾 Δq≈0 → 闭环"起不了步";③ 每步最多约 4.4°(J1)~13°(J6),远大于安全层预算假设 | 门禁:标签一致性测试——在 (q, 目标) 近邻(关节 <0.5°、目标 <2 mm)内比较 16 步标签的方差,要求 < 每轴步长的 10%。同时跑 1000 个 held-out 闭环,"10 个周期内 TCP 位移 < 1 mm"的起步失败率 = 0。不过就改为**局部可观测**的时间律:匀速巡航 + 只按"剩余路程"决定的梯形减速;或把当前速度 q_t−q_{t−1} 作为输入 |
|
||||
| 5 | §4.5 ② | 每 3 步取 1 个样本,标签 = 未来 16 步 Δq(相对 q_t,到终点补零) | DRP:10 步关节增量、MSE、转绝对目标【原文 §3.1】;DP:位置式动作块明显优于速度式【原文 §4.2】 | 有充分证据(表示本身) | 补零 = 大量"停住"标签,到达附近可能早停;样本数估计偏高(见不一致 I2) | 门禁:`stats.json` 统计每条路径的实际样本数,以及补零样本占比(> 30% 需降权) |
|
||||
| 6 | §4.5 ④ | "路径后缀天然覆盖从半路出发,等于免费的 DAgger 种子" | DAgger(Ross 2011)的核心正是:BC 只在老师状态上训练,误差随时域二次累积;必须在**学生自己访问的**状态上取标签【未抓取,背景】;MπNets:"单步训练、递归推理,累积噪声等价协变量偏移",用关节角高斯噪声增广【原文 §3.4】;DART:在老师演示中注噪,比 BC 平均提升 62%【原文摘要】 | **有反证**(说法错误) | 后缀仍是老师轨迹上的状态,不是偏离状态;不能替代 DAgger | 门禁:闭环 vs 开环误差对比——held-out 上"闭环到达率 − 单步回放准确率"的差距。回退/缓解:① 输入加关节噪声(σ≈0.5–1°)+ 由老师离线重标(允许,老师只在离线);② 依赖 §7 的 APG/挖错补偏移 |
|
||||
| 7 | §5.1 | 关节 sin/cos(12) + 限位轴归一化(3) + TCP 位置与 6D 姿态 + 目标 + 差值 + 模式 + k_prev + 8 个胶囊距离 | 6D 旋转:连续表示,不连续表示的平均误差最高达 6–14 倍【原文 Zhou 2019 §1】;MπNets 关节归一化到 [−1,1]【原文 §3.1】;ELMP 目标 12 维(位置+展平旋转矩阵)【原文 §IV】 | 有部分证据 | ① k_prev one-hot 对流匹配头无意义;② 缺子目标、前缀、速度输入(见 I7);③ 最小距离特征在对子切换处梯度不连续;④ 以位姿为目标时多 IK 分支带来**额外多峰**(不只左/右绕) | 门禁:消融——去掉胶囊距离特征,near_column 闭环到达率差异 ≥ 3 个百分点才保留。IK 多峰门禁:同一目标位姿下不同肘/腕分支的 held-out 子集到达率 ≥ 主集 −2 个百分点;不过就加"目标分支标志"或改为以老师终点关节角为条件(DRP 做法,需离线 IK) |
|
||||
| 8 | §5.2/5.3 | 输出 16×6 Δq(按每轴最大步长归一化);连续轴 `unwrapTo` 统一 | DRP 同类表示【原文】;连续轴展开为本仓库已有实现 | 有充分证据 | 每轴最大步长取决于 #4 的时间律,时间律一改,归一化要跟着改 | 门禁:§6.4 对拍,预处理与部署 unwrap 结果逐位一致(10 万样本 0 差异) |
|
||||
| 9 | §6.1 | IMPACT 式编码器-解码器,去掉点云;d=192,4+4 层,约 3–4M 参数 | IMPACT:6+6 层、隐层 128、FFN 1024、8 头、10 个动作 token、4.67M 参数、300 Hz(4090)【原文 App G 表 7】 | 有充分证据(结构)/ 仅推断(去点云后够不够) | 实算参数 ≈ 4.13M(编码 1.77M + 解码 2.36M),略超"3–4M";浏览器延迟未证(见 #24) | 门禁:M4 小数据过拟合(1000 样本训练损失 → 0)+ M5 后 held-out 闭环到达率 ≥ 95%(APG 前) |
|
||||
| 10 | §6.2 | WTA-L1 + CE + FK 胶囊端点损失(0.5) + 二阶平滑(0.05) + 剩余时间 L1(0.1) | ELMP 的 BC 损失 = 动作项 + λ_fk·Σ‖FK_i(q_pred)−FK_i(q_gt)‖(碰撞球中心)【原文 §III-B 式(2)】;DRP 用 MSE【原文】 | 有部分证据 | 只写了 WTA 头的损失;默认的流匹配头没有损失定义(FK 损失加在哪个输出上?),见 I8;权重未调 | 门禁:FK 损失消融,C 类闭环碰撞率(关安全层)下降 ≥ 20% 才保留 |
|
||||
| 11 | §6.3 | AdamW(0.9,0.95)、lr 1e-3、bs 1024、bf16、20 万步("30 epoch"),3090 约 1.5–3 h | DRP:AdamW 同参、bs 512、100 万步、4090 上 3 天(含点云)【原文表 7】 | 仅推断(时间) | **20 万步×1024 = 2.05 亿样本次 ≈ 68 epoch,不是 30**(I1);WTA 头每样本约 1.0 GFLOP(训练)→ 共 2.0e17 FLOP,3090 实际 10–35 TFLOPS 时需 1.6–5.6 h;流头约 0.5–1.8 h,但 MeanFlow/OFP 有额外前向/JVP 开销 | 门禁:先跑 2000 步测吞吐(样本/秒),据此重算;目标 ≥ 2 万样本/s。不过就降到 30 epoch(8.8 万步)或 bs 2048 |
|
||||
| 12 | §6.4 | 胶囊距离 PyTorch 可微版与 JS 对拍 10 万位形 0 误差;每 epoch 1000 任务闭环验证 | 仓库已有"4000/20000 位形与旧实现 0 差异"的对拍惯例【仓库】 | 有充分证据(工程可行) | "0 误差"对浮点距离不现实,应为布尔判定 0 差异 + 距离误差 < 1e-4 mm;对拍只证明一致,不证明连续安全 | 门禁即所述;附加:可微版梯度与有限差分相对误差 < 1e-3 |
|
||||
| 13 | §6.1/§8.5 | 子目标头:冷启动输出 1–2 个关节途经点,标签取老师路径拐点 | AWE:用动态规划在误差预算内选最少航点,把 DP/ACT 成功率最多提升 25%【原文 §1、§3】;SHAC/分层规划一类思路【推断】 | 有部分证据 | ① §5.1 输入没有子目标字段(I7);② "冷启动"在拖拽中无定义(I22);③ 单输出子目标头无法给出"另一侧"的备选(卡死换向需要它);④ 捷径平滑后的拐点不稳定 | 门禁:子目标头 top-2 方向覆盖率(老师同伦类在前 2 个子目标中)≥ 98%(C 类)。回退:子目标改为 K 个离散"绕行锚点"分类(左/右/上),标签用 AWE 式 DP 提取 |
|
||||
| 14 | §6.1/§8.5 | 价值头:预测剩余时间/代价;APG 展开时"有真实值可监督" | SHAC:用学到的 critic 截断可微仿真的 BPTT 时域(h=32 对 H=1000),同时缓解局部极小与梯度爆炸【原文 §1、§4】 | 有部分证据 | 截断展开内多数任务到不了目标 → 没有"真实剩余时间",必须用 TD 自举(SHAC 式),文中没写;价值头偏差会直接误导短前瞻与卡死检测 | 门禁:held-out 上价值头预测的剩余时间与实际闭环用时的 Spearman ≥ 0.8,C 类 ≥ 0.7。不过就让卡死检测只用几何进度(TCP 到目标距离、子目标距离) |
|
||||
| 15 | §8.5-3 | 短前瞻:对每个候选再推一块(32 步终态),用碰撞 + 价值打分 | Neural MP 测试时"采样多条选穿透最少"【原文,见 `finetune_alternatives.md`】;BID:每步采 N=16 个样本按前后一致性选择,相对提升 32%【原文 §5.2.1】 | 有部分证据 | 计算翻倍(见 I9 延迟预算);第二块基于预测状态,误差叠加 | 门禁:A/B(有/无前瞻)在 near_column + C 类 held-out 上,前瞻必须把卡死率降低 ≥ 50%,且 P99 周期耗时仍 < 15 ms |
|
||||
| 16 | §7.2 | 挖错循环:出题→闭环作答(关安全层)→GPU 验算→E1–E6 分类→邻域加权进 APG 池;E2 才少量请老师;门禁回滚 | Avoid Everything/MπFormer 困难负样本挖掘;DRP 迭代师生微调 +45%(每 1 万步替换一次基模型,共 5 轮,10 h)【原文 §3.2、表 7】 | 有部分证据 | ① 门禁用的 held-out 2000 与 3 个基准同时是 §9 的验收集 → 选择偏差(I14);② 挖错样本过采样 → 灾难性遗忘(门禁"95% 修好的仍对"只防一部分) | 门禁拆分:**新造**"门禁集"(2000)与"验收集"(2000 + 新造 near_column 扩展 1000 例),验收集只在最后用一次。遗忘门禁:A 类到达率每轮不降 > 0.5 个百分点 |
|
||||
| 17 | §7.3 | 拒绝采样自蒸馏:多样本闭环,只保留验算通过且最短的一条做 BC | ReST:Grow/Improve 循环,逐步提高过滤阈值【原文 §2】;RoboCat 式自我改进【未抓取】;ELMP 证据:加笛卡尔路径长度项后碰撞率由 8.9% 升到 10.9%【原文表 I】 | 有部分证据 | 选"最短" → 系统性贴着立柱走,余量变小 → 安全层刹停率上升;多样性塌缩(只剩一种绕法) | 门禁:自蒸馏后 C 类最小间隙中位数不得低于自蒸馏前的 80%;刹停率不升。选择准则改为"通过 + 间隙 ≥ 阈值的样本中最短" |
|
||||
| 18 | §8.2 | 模式粘滞:分数 = log p(k) − c·[k≠k_prev];流头改为"噪声粘滞"(保留上周期噪声) | BID:Warmstart(沿用上一决策的噪声)"平均小幅提升,但 7 个任务里有 3 个变差";BID 后向一致性准则(与上一块的加权 L2)+ N=16 采样,相对提升 32%【原文 §5.2.1、图 6】;DP:独立逐步采样会在两种模式间来回跳【原文 §3】 | 有部分证据(噪声粘滞**有反证**:BID 中不稳健) | 一步生成器下"同一噪声 → 同一模式"在状态变化后不保证成立;log p(k) 对流头无定义 | 门禁:E5(≥3 次切换)< 1% 任务,rt_drag_bench 摇摆计数。若噪声粘滞不过,改用 BID 式后向一致性打分(与上周期已提交块的重叠步加权 L2)作为排序项 |
|
||||
| 19 | §8.3 | 安全层:候选前 3 步按 1°+半格离散细验 + 可刹停不变式(第 3 步末按最大减速度刹停段也细验) | 不变式本身:Thumm & Althoff 的 failsafe 盾——每步只在"意图段安全且其末端存在已验证的刹停轨迹"时执行,否则执行**上一条已验证**刹停轨迹【原文 §III、图 3】,有充分证据;离散检查:Schwarzer 等证明离散分辨率检查会漏检,提出"两端距离之和 > 各点轨迹长度上界"的充分条件,"never fails"【原文式(1)】;LARC(胶囊+速度上界的连续认证):MoveIt/FCL 抽样审计在 21 条直接插值轨迹中发现碰撞;139 条"抽样无碰撞"的轨迹里有 27 条无法认证【原文摘要】;ELMP 评测用离散检查时余量取 30 mm【原文 §IV-A】 | 不变式:有充分证据;**按现有离散实现"保证零碰撞":有反证** | 杠杆实测:0.5° 间距下采样点间偏差上界 ≈ 24.3×0.25 ≈ 6 mm ≫ 0.3 mm;仓库报告 0.28/0.08 mm 残余侵入、"贴柱薄层整个夹在采样点间";刹停段"最大减速度"未定义;§8.1 交叉淡入使执行轨迹 ≠ 检查轨迹 | 门禁:①离线审计:10^5 个随机提交段(3 步+刹停),用 0.01° 细采样(或 Schwarzer 式距离认证)复核,漏检 = 0;②在 near_column 上统计"认证拒绝率"(认证判不安全而离散判安全的比例)。修正:静态障碍对(臂×立柱/台架)改用**距离下界认证**:d(q_a)+d(q_b) > Σ_j r_j·|Δθ_j|,r_j 用实测杠杆上界,不满足就二分;自碰撞对复用 pair2d 杠杆界(J3 3.24、J4 2.54 mm/°)。不过(认证拒绝导致 30/30 失败)就把训练余量提高到 ≥ 采样偏差上界(如 3–6 mm),并接受行程变长 |
|
||||
| 20 | §8.3 耗时 | 预筛 + 逐个检查 + 首个通过即停,目标 < 5 ms;不达标放 Web Worker | 仓库:collideFree 2.9→1.8→1.25 ms/次(pair2d 后);每帧守卫约 1.2 ms【仓库】 | 仅推断 | 贴柱时预筛基本失效(正是难例所在);样本数被低估(每步 4–13°,3 步 13–39 个采样点 + 刹停段),见 I10 | 门禁:M7 在 near_column 30 例 × 全程逐周期计时,安全层 P99 < 5 ms;不过就做距离认证(一次距离查询覆盖整段,通常比 N 次布尔更省),或把提交步数降到 2 |
|
||||
| 21 | §8.5-4 | 卡死检测:0.3 s 价值不降或连续 2 周期刹停 → 强制换向并锁定 1 s | 势场法局部极小的经典逃逸(随机游走/换向,Barraquand & Latombe RPP)【未抓取】;MπNets 指出局部控制器(STORM、Geometric Fabrics)在复杂几何中会卡在局部极小【原文 §5.1】 | 仅推断 | ① 两个方向都被挡 → 1 s 锁定后来回切换(活锁);② 流头没有离散"另一方向",依赖子目标头备选(#13);③ 1 s 锁定可能与目标拖拽冲突 | 门禁:构造"两侧都要绕很远"的 50 个对抗用例 + near_column,卡死后 3 s 内恢复进度的比例 ≥ 95%,活锁(换向 ≥ 3 次仍无进度)= 0。回退:卡死时允许跟随离线路网"锚点表"(**注意**:这等于部分老师,需用户同意) |
|
||||
| 22 | §8.6 | 策略层 50 Hz、提交 3 步、伺服层另行插补;浏览器 rAF 60 Hz 也能稳定跑 50 Hz | π0:50 Hz 机器人每 0.5 s 推理一次(执行 25/50 步),时间集成"hurt policy performance"故不用【原文 App D】;DP:10 Hz、预测 16 执行 8 最优,可承受 4 步延迟【原文 §5.3】;MπNets 9 Hz;ELMP 30 Hz【原文】 | 有部分证据 | ① **每 20 ms 重推理只执行 1 步 = 动作时域 1**,BID 证明这会破坏块内一致性、导致来回摆动【原文 §4.1】;② rAF 16.7 ms 帧与 20 ms 周期不整除 → 周期抖动(16.7/33.3 ms 交替),后台标签页定时器会被节流【推断】 | 门禁:A/B"每 1 步重推理"与"每 3 步重推理"(执行 3 步)在 E5 摇摆率、到达率、拖拽跟随误差上的对比。若后者不差,就默认每 3 步重推理(顺带把推理预算放宽到 60 ms)。周期抖动:用 Worker + 自有时钟按实际 dt 插值,测 P99 周期误差 < 2 ms |
|
||||
| 23 | §8.1-6 | 到达判据 TCP < 1 mm(pose < 0.5°),近目标做 1–3 次局部牛顿 | ELMP-APG 也只有 89.0% 在 1 cm 内、72.6% 在 5° 内【原文表 I】;MπNets 98.94% 在 1 cm 内【原文表 3】 | 有部分证据(必须依赖牛顿精修) | 精修段本身要过安全层(文中没写);牛顿步可能跨分支 | 门禁:held-out 中精修前误差 < 5 mm 的比例 ≥ 99%;精修后 < 1 mm 的比例 ≥ 99.5%;精修段 100% 经过安全层 |
|
||||
| 24 | §0/§8.1/§9.2 | 每周期推理 2–5 ms、推理+安全 < 10 ms(P99 < 15 ms),浏览器 onnxruntime-web,WebGPU 优先 | WebGPU 每次 dispatch 的开销:Chrome 33–67 μs(连续);带同步的单次操作 2–3 ms(Chrome)【原文 2604.02344 表 6】;社区多例小模型 WebGPU 比 wasm 慢【未抓取,检索摘要】 | 仅推断(且偏乐观) | 8 层 Transformer 约 150–300 次 dispatch → 仅调度开销就有 5–20 ms,外加每周期一次 GPU→CPU 回读;wasm 下 8 候选 × 前瞻 = 约 0.6–1.3 GFLOP/周期 | 门禁:M4 后**立即**导出 ONNX,在目标浏览器测 batch=8(含前瞻 batch=16)延迟 P99。若 > 5 ms,就用 wasm-SIMD 多线程或 fp32 小算子融合;仍不行就缩小解码 token(B 样条 6 个控制点而非 16 步)、去掉前瞻,或改为每 3 步推理一次 |
|
||||
| 25 | §9 | 验收:碰撞帧 0;route 60/60、near pos/rt 30/30、held-out ≥ 98%;用时 ≤ 老师×1.3;行程 ≤ 现有×1.10;刹停 < 2%;摇摆 < 1%;关安全层碰撞 < 3% | ELMP-APG 关安全层碰撞 8.9%、DRP 10.16%(环境不同)【原文】;ELMP:APG 使末端路径长度由 0.69 m 增至 0.85 m(+23%)【原文表 I】 | 有部分证据 / 部分指标**不可达** | ① held-out 含 10% 不可达(D 类),"到达 ≥ 98%"按定义不可能(I13);② 30/30 统计力弱(上界 9.5%);③ "碰撞帧 0"由离散检查测量,测不到采样点之间的穿模;④ APG 有拉长路径的先例,与 ≤1.10× 行程冲突 | 改:到达率分母只算可达任务,D 类单独考核"停靠距离 ≤ 老师 + 5 mm";near_column 另造 ≥ 1000 例的验收扩展集(0 失败 ⇒ 失败率上界约 0.3%);碰撞审计用 0.01° 或距离认证;行程门禁按类别分别报告 |
|
||||
|
||||
---
|
||||
|
||||
### 2. 逐项详述
|
||||
|
||||
#### 2.1 §4 老师离线造数据(#1–#3)
|
||||
|
||||
**(a)** §4.1–4.4:`solveDyn`(松手口径)为 5 万条采样任务(A 均匀 45%/B 直线被挡 30%/C 贴柱 15%/D 不可达 10%)生成折线,细验过滤后入库。
|
||||
|
||||
**(b) 证据**
|
||||
- MπNets【原文 https://arxiv.org/abs/2210.12209 §4、表 1、表 3、§5.2】:3.27M 问题 / 575k 环境。关键发现是**老师一致性**:用全局规划器(IK + AIT* + 样条平滑)当老师训出的 MπNets-G,在两种老师都能解的问题上环境碰撞率 **13.78%**;用一致性强的混合老师(Hybrid Expert)只有 **0.94%**(表 3)。作者明确把差异归因于"consistency of the expert"。
|
||||
- DRP【原文 https://arxiv.org/abs/2509.06953 §3.1】:cuRobo 生成 10M 条;预训练的 IMPACT "often incurs minor collisions"。
|
||||
- ELMP【原文 https://arxiv.org/abs/2607.00215 表 I、图 6】:1 万条老师 + APG 胜过 60 万条纯 BC;200k APG 问题采样 4.5 CPU 小时,同量老师轨迹 >1194 CPU 小时。
|
||||
- 本仓库【仓库 `docs/路径规划优化报告.md`】:`solveDyn` 的核心是 Lazy RRT-Connect + 50 次随机捷径 + 逐轴拉直,定种子 LCG,平均规划 662–837 ms。
|
||||
|
||||
**(c) 判定**:有部分证据。数据量(5 万)在"固定环境 + 后续 APG"的前提下合理(ELMP 先例);但老师属于"全局采样规划器"类型,正是 MπNets 中一致性差、导致策略碰撞多的那类。
|
||||
|
||||
**(d) 残余风险**:同一类任务里老师有时左绕、有时右绕(随机捷径的结果),会给多峰头制造"人为多峰",WTA/流头都会把容量浪费在拟合老师的随机性上。D 类"最近安全位形"在目标连续变化时不连续。§4.6 的 0.7 s/条对 C/D 类(难例、失败时搜到超时)偏乐观。
|
||||
|
||||
**(e) 缓解与门禁**:老师一致性门禁(见总表 #1)。可选的更一致老师:离线 PRM 路网(15103 条边、单一连通分量)+ A* 最短路 + 确定性平滑。确定、可复现,且已在仓库里。按类别计时:先跑 1000 条(M1),C/D 类 P90 规划时间 > 3 s 时重估 §4.6。
|
||||
|
||||
#### 2.2 §4.5 时间参数化与切片(#4–#6)——本节问题最大
|
||||
|
||||
**(a)** 按 `animTo` 的 VREL 轴速比做时间参数化(dt=20 ms),每 3 步取一个"(q_t, 目标) → 未来 16 步 Δq"样本;声称后缀"等于免费的 DAgger 种子"。
|
||||
|
||||
**(b) 证据**
|
||||
- 本仓库实现【仓库 `webapp/js/ik-glue.js` L376–L401】:各段时长 ∝ 该段"最慢轴所需时间"(`|Δq_j|/VREL_j` 的最大值);**整条折线做一次全局 smoothstep**(`u*u*(3-2u)`);总时长 = `ms·sum/150`,夹在 `[0.6ms, 3.5ms]`(ms=620 → 372–2170 ms)。按此推算主导轴的每步位移:平均 2.9°(J1/J2)~8.7°(J6),峰值(smoothstep 导数 1.5 倍)4.4°~13.1°/步;长路径被夹到 2170 ms 时还会更快。
|
||||
- MπNets【原文 §4.2 附近】:"we fit a spline to the path and retime it to have steady velocity",即特意匀速化。
|
||||
- Diffusion Policy【原文 https://arxiv.org/abs/2303.04137 §3 "Robustness to idle actions"】:"single-step policies can easily overfit to this pausing behavior… BC-RNN and IBC often get stuck"。
|
||||
- MπNets【原文 §3.4】:"trained for single-step prediction… compounded noise… equates covariate shift",用关节角高斯噪声增广。
|
||||
- DART【原文 https://arxiv.org/abs/1703.09327 摘要】:向老师注噪造数据,平均比 BC 提升 62%。
|
||||
- DAgger(Ross, Gordon, Bagnell, AISTATS 2011)【未抓取,背景】:BC 误差随时域 O(εT²) 累积,需要在学生自己访问的状态分布上取标签。
|
||||
|
||||
**(c) 判定**:切片做法本身有充分证据(DRP、DP 都这样做);**沿用 `animTo` 的时间律有反证**;"免费 DAgger"的说法**有反证**(概念错误)。
|
||||
|
||||
**(d) 残余风险**
|
||||
1. **非马尔可夫标签**:smoothstep 是对整条路径的进度 u 做的,同一 (q, 目标) 在短路径与长路径里的标签速度不同,在路径前段与后段也不同,而输入里没有速度、进度或路径长度。模型只能学到条件平均。
|
||||
2. **起步停滞**:u≈0 时 Δq_{t+1}≈0。闭环每 20 ms 只执行第 1 步,下一周期状态几乎不变,标签又是"几乎不动",可能形成不动点。
|
||||
3. 每步位移远大于安全层预算假设(I10)。
|
||||
4. 后缀样本仍是老师分布,对偏离状态没有监督;§7 的 APG/挖错能补一部分,但 APG 要从预训练模型出发,预训练崩了(如起步停滞)会拖累后训练。
|
||||
|
||||
**(e) 缓解与门禁**
|
||||
- 时间律改为局部可观测的:匀速(按 VREL 归一化的恒定巡航速度)+ 只在终点前按剩余路程梯形减速、起点按已行路程加速;或把 q_t−q_{t−1}(以及前缀块,若用 RTC)加入输入。
|
||||
- 噪声增广:输入关节加 σ=0.5–1° 噪声,由老师离线从扰动状态重规划一段作为标签(DART 式;老师只在离线,符合约束)。
|
||||
- 门禁:标签一致性测试 + 起步失败率 = 0(总表 #4);闭环/开环差距(#6)。
|
||||
|
||||
#### 2.3 §5 输入/输出表示(#7–#8)
|
||||
|
||||
**(a)** 输入:关节 sin/cos + 限位轴归一化、TCP 位置与 6D 姿态、目标位置/6D 姿态/差值、模式 one-hot、k_prev、8 个胶囊对最小距离;输出 16×6 Δq,按每轴最大步长归一化,连续轴 unwrap。
|
||||
|
||||
**(b) 证据**
|
||||
- Zhou 等《On the Continuity of Rotation Representations》【原文 https://arxiv.org/abs/1812.07035 §1】:3D 旋转在 ≤4 维下都不连续;不连续表示的平均误差最高达连续 6D 表示的 6–14 倍。
|
||||
- MπNets【原文 §3.1】:关节归一化到 [−1,1],输出归一化空间里的位移并 clamp。
|
||||
- ELMP【原文 §IV "Architecture"】:目标 12 维 = 位置 + 展平旋转矩阵;关节 7 维直接进 MLP。
|
||||
- DRP【原文 §3.1】:以**目标关节角**为条件,避开 IK 多解。
|
||||
- 胶囊距离作输入:无直接先例。C-space 距离场(CDF)作特征的讨论见 `finetune_alternatives.md`【其他报告】。
|
||||
|
||||
**(c) 判定**:6D、sin/cos、Δq 块均有充分证据;胶囊距离特征仅推断;"以位姿为目标让模型连 IK 一起学"有部分证据(ELMP 这样做,但 ELMP 的 1 cm 内到达率只有 89%)。
|
||||
|
||||
**(d) 残余风险**:位姿目标 → 多个 IK 分支(肘上/肘下、腕翻转)带来比"左/右绕"更多的模式,K=4 的 WTA 可能不够;k_prev 对流头无意义;缺子目标/前缀/速度输入;min 距离特征在最近对子切换处不可导。
|
||||
|
||||
**(e) 门禁**:见总表 #7、#8。
|
||||
|
||||
#### 2.4 §6.1 结构(#9)
|
||||
|
||||
**(a)** 条件 MLP → 8 个条件 token(d=192)→ 4 层编码器;K×16 个可学习动作 token → 4 层非自回归解码器;另有动作、模式、价值、子目标四个头。
|
||||
|
||||
**(b) 证据**:IMPACT【原文 DRP App G 表 7】:编码 6 层/解码 6 层、隐层 128、FFN 1024、8 头、sin-cos 位置编码、动作块 10;场景点云 128 token + 机器人点云 16 token;4.67M 参数(含 PointNet++ SA);300 Hz@4090、冷启动 3.48 ms。
|
||||
|
||||
**(c) 判定**:结构有充分证据;去掉点云后条件只剩约 60 维,用 8 个 token 表示属于设计选择(仅推断),属低风险。
|
||||
|
||||
**(d) 残余风险**:参数实算 ≈ 4.13M(`4·(4d²+2·d·FFN)` + `4·(8d²+2·d·FFN)`),fp16 约 8.3 MB(文中写约 7 MB),影响不大;浏览器推理延迟是真风险(#24)。
|
||||
|
||||
**(e) 门禁**:总表 #9、#24。
|
||||
|
||||
#### 2.5 §6.2 损失(#10)
|
||||
|
||||
**(b)** ELMP【原文 §III-B】:L_BC = λ_action·‖Δq_pred−Δq_gt‖ + λ_fk·Σ_i‖FK_i(q_pred)−FK_i(q_gt)‖(i 为碰撞球中心),与我们的"胶囊端点 FK 损失"同构;ELMP 未单独报告 FK 项的消融数字。MπNets【原文 §3.3】也用任务空间几何损失。
|
||||
|
||||
**(c)** 有部分证据。
|
||||
|
||||
**(d)** 损失只对 WTA 头写明;默认的流匹配头需要另定(例如在一步生成的 x̂ 上加 FK 项,见 `onestep.md`),否则 §6.2 对默认配置无效(I8)。剩余时间 L1 与价值头重复定义。
|
||||
|
||||
#### 2.6 §6.3 训练配置与耗时(#11)
|
||||
|
||||
**(a)** bs 1024、20 万步、bf16,3090 约 1.5–3 h。
|
||||
|
||||
**(b)** DRP【原文表 7】:bs 512 × 100 万步 = 5.12 亿样本次,4090 上 3 天 ≈ 1975 样本/s(瓶颈主要是点云)。本方案:20 万 × 1024 = **2.05 亿样本次(DRP 的 40%,不是 1/5)**。FLOP 估算【推断,见 `lever.cjs` 同目录脚本的计算】:WTA 头(64 个解码 token)训练约 0.99 GFLOP/样本 → 合计 2.0e17 FLOP;3090 bf16 稠密峰值约 71 TFLOPS,小模型实际 10–35 TFLOPS → **1.6–5.6 h**。流头(16 个 token)约 0.31 GFLOP/样本 → 0.5–1.8 h,但 MeanFlow 的 JVP、OFP 的自蒸馏额外前向会乘 1.5–3 倍。
|
||||
|
||||
**(c)** 仅推断:1.5–3 h 落在估算区间的乐观一侧。
|
||||
|
||||
**(d)** epoch 数自相矛盾(I1);每 epoch 1000 任务闭环验证也要计入。APG 显存【推断】:每个展开周期每样本激活约 4 MB,H=60 时约 0.27 GB/样本,150 周期时约 0.66 GB/样本 → 24 GB 卡 batch 只有约 30–80,需要激活检查点。ELMP 在 6×3090 上 APG 的 batch 只有 48,H=69【原文 §IV-A】。
|
||||
|
||||
**(e)** 门禁:吞吐实测后重算(总表 #11);APG 先跑 H=60、bs 32 的显存测试。
|
||||
|
||||
#### 2.7 §6.1/§8.5 子目标头、价值头、短前瞻(#13–#15)
|
||||
|
||||
- 子目标头:AWE【原文 https://arxiv.org/abs/2307.14326 §1/§3】把"预测下一动作"变为"预测下一航点",用 DP 在误差预算内选最少航点,最多 +25% 成功率。直接支持"以途经点为锚",而且给出了比"老师拐点"更稳定的标签提取方法。
|
||||
- 价值头:SHAC【原文 https://arxiv.org/abs/2204.07137 §1、§4】用学到的 critic 截断可微仿真展开(h=32 对 H=1000),兼治局部极小与梯度爆炸。本方案的"APG 展开时有真实值"只在展开内到达时成立,其余必须 TD 自举,文中缺失。
|
||||
- 短前瞻:BID【原文 https://arxiv.org/abs/2408.17355 §4、表 2】:每步采 16 个样本按后向一致性 + 前向对比选择,推理时间 13.2 ms → 25.9 ms(A5000),相对提升 32%。说明"多采样 + 打分"有效,但代价约 2 倍。
|
||||
|
||||
判定:子目标头、价值头有部分证据;短前瞻有部分证据。风险与门禁见总表 #13–#15。
|
||||
|
||||
#### 2.8 §7.2 挖错循环与门禁(#16)
|
||||
|
||||
**(b)** DRP 迭代师生微调【原文 §3.2】:每 1 万梯度步后学生替换基模型,共 5 轮,4090 上 10 h,成功率比预训练 **+45%**(表 6)。Avoid Everything/MπFormer 的困难负样本挖掘(DRP 文中引述)。
|
||||
|
||||
**(c)** 有部分证据:DRP 的循环用局部控制器(Geometric Fabrics)当"老师",本方案改用 APG 代价,这一替换由 ELMP 支持;"错题邻域加权进 APG 池"本身无直接先例(仅推断)。
|
||||
|
||||
**(d)** 门禁集与验收集重叠(I14);E2 的老师补数据把"无老师"变成"少量离线老师"(文中已说明,合规)。
|
||||
|
||||
#### 2.9 §7.3 拒绝采样自蒸馏(#17)
|
||||
|
||||
**(b)** ReST【原文 https://arxiv.org/abs/2308.08998 §2】:Grow(策略生成多样本)/ Improve(按分数过滤后微调,阈值逐步提高);作者也提到基于奖励的方法有 reward hacking 风险。ELMP【原文表 I】:加入笛卡尔路径长度惩罚后,碰撞率从 8.9% 升到 10.9%。这是"偏好短路径 → 更贴障碍"的直接证据。
|
||||
|
||||
**(c)** 有部分证据。门禁见总表 #17。
|
||||
|
||||
#### 2.10 §8.2 模式粘滞(#18)
|
||||
|
||||
**(b)** DP【原文 §3】:逐步独立采样会在左右两种策略间来回跳。BID【原文 §5.2.1】:Warmstart(从上一决策热启动噪声,即本方案的"噪声粘滞")"mild gains on average, but degrades performance on 3 out of 7 tasks";EMA/时间集成在 2 个任务上变差,原因是相邻块属于不同潜在策略,平均后"may not yield a plausible strategy";BID 后向一致性 + 前向对比在全部任务上提升,相对 +32%。
|
||||
|
||||
**(c)** 切换代价/一致性选择有部分证据;**单靠噪声粘滞有反证**(BID 中不稳健)。
|
||||
|
||||
**(e)** 改为 BID 式后向一致性打分(与上周期已提交块重叠步的加权 L2)+ 安全层,门禁见总表 #18。
|
||||
|
||||
#### 2.11 §8.3 安全层与可刹停不变式(#19–#20)——重点核查"是否真的保证不撞"
|
||||
|
||||
**(a)** 候选前 3 步 1° 细验 + 半格复验 + 关节限位;从第 3 步末按"最大减速度"停下的刹停段也要细验;全部不过就沿已验证刹停轨迹停下。
|
||||
|
||||
**(b) 证据**
|
||||
- **不变式**:Thumm & Althoff, ICRA 2022【原文 https://arxiv.org/abs/2205.06311 §III、图 3】:"During the execution of a trajectory between t_k and t_{k+1}, we calculate a failsafe trajectory starting from t_{k+2}. If this failsafe trajectory cannot be verified as safe, we execute the previously verified failsafe trajectory starting from t_{k+1}." 与本方案同构。但他们的验证用的是**连续时间可达集过近似**(胶囊包络),不是离散采样。
|
||||
- **离散检查会漏**:Schwarzer, Saha, Latombe, IEEE T-RO 2005【原文 http://ai.stanford.edu/~mitul/papers/SSLtro05.pdf 式(1)】:若两端位形下的距离之和 d(q_a)+d(q_b) 大于各点所走曲线长度的上界(≤ Σ_j r_j|Δθ_j|),整段无碰撞;固定分辨率法会漏检,自适应法 "never fails to detect collision"。
|
||||
- LARC 2026【原文 https://arxiv.org/abs/2608.29767 摘要】:胶囊 + 分量速度上界做连续认证,160 条 PIPER 轨迹上与固定细分辨率决策一致,工作量仅 24.8%;但 139 条"抽样无碰撞"的轨迹中 27 条无法认证。认证天然保守,会拒掉一些贴边路径。
|
||||
- ELMP 评测【原文 §IV-A】:离散检查(插值 3 倍,约 150 个位形)时安全余量取 **30 mm**。
|
||||
- 本仓库【仓库】:`collide.json` 的 `margin_mm = 0.3`;`ik-solver.js` L2777 注释原话:"贴立柱时薄薄一层干涉能整个夹在两个采样点之间(贴立柱测试 ci0:119.5° 的长边在 0.76 处 1° 复验撞)";`路径规划优化报告.md`:1° 细验后仍有 2 条路径最大侵入 0.28/0.08 mm。
|
||||
- **本次实测杠杆**【仓库,`src_v/lever.cjs`,19219 个无干涉随机位形】:TCP 每度最大位移 J1 9.02 / J2 6.93 / J3 4.17 / J4 4.17 / J5 2.25 / J6 ≈0 mm;六轴同时 1°(L∞)的上界最大 24.3 mm,中位 19.4 mm。工具法兰胶囊可能比 TCP 更远,上界只会更大。
|
||||
|
||||
**(c) 判定**:不变式的逻辑结构有充分证据;"按现有离散实现保证零碰撞"**有反证**。
|
||||
|
||||
**(d) 残余风险(逐条)**
|
||||
1. 采样间隙:采样间距 δ(L∞)时,两采样之间任意点距最近采样位形的位移 ≤ L·δ/2。δ=0.5°(1°+半格)时约 6 mm,δ=0.75°(现有 pathFine 等效)时约 9 mm,δ=1° 时约 12 mm,都 ≫ 0.3 mm。立柱是实心大体,漏检的是"擦边几毫米"而不是"整个穿过",但"碰撞帧 = 0"的承诺不成立。
|
||||
2. "最大减速度"在全文没有数值(§0 说插补器负责,`animTo` 只有 smoothstep,没有加速度上限),刹停段长度无从计算(I12)。
|
||||
3. §8.1 的交叉淡入:执行轨迹是新旧两块的混合,不等于任一被检查过的块(I4)。
|
||||
4. 局部牛顿精修段(§8.1-6)没写要过安全层。
|
||||
5. 验收里的"碰撞帧"本身也用离散口径测,测不到问题。
|
||||
|
||||
**(e) 修正与门禁**
|
||||
- 静态障碍对(臂×立柱、臂×台架)改用 Schwarzer/LARC 式距离下界认证:每段先算两端胶囊距离,满足 d_a + d_b > Σ_j r_j|Δθ_j|(r_j 取各连杆到各关节轴的最大距离,可离线算好)即放行,否则二分。自碰撞对复用已有 pair2d 杠杆界。
|
||||
- 删掉插补层交叉淡入(或让安全层检查淡入后的实际轨迹)。
|
||||
- 定义刹停:按每轴加速度上限 a_max 做梯形减速,写进配置并在训练数据时间律中使用同一 a_max。
|
||||
- 门禁:10^5 个随机"3 步 + 刹停"段做 0.01° 超细采样审计,漏检 = 0;near_column 上"认证拒绝率"< 5%,否则把训练余量(§7.1 的 margin+5 mm)提高到 ≥ 采样偏差上界,让策略本身留出足够间隙。
|
||||
|
||||
#### 2.12 §8.5 卡死检测与强制换向(#21)
|
||||
|
||||
**(b)** MπNets【原文 §5.1】:STORM 与 Geometric Fabrics 等局部方法在复杂几何中会卡在局部极小,"struggle to retract from a drawer and then reach into another drawer… without intermediate waypoints"。经典逃逸方法(随机游走/换向)【未抓取】。没有找到"神经闭环策略 + 规则换向"的直接先例。
|
||||
|
||||
**(c)** 仅推断。风险与门禁见总表 #21。
|
||||
|
||||
#### 2.13 §8.6 控制周期(#22)
|
||||
|
||||
**(b)** π0【原文 https://arxiv.org/abs/2410.24164 App D】:"We tried temporal ensembling early on and found that it hurt policy performance… 50Hz… inference every 0.5 seconds (after executing 25 actions)"。DP【原文 §5.3】:预测 16 步、执行 8 步最优,可承受 4 步延迟。BID【原文 §4.1】:每步重采样、只执行第 1 个动作 "destroys the consistency preserved within each chunk, potentially leading to oscillations"。
|
||||
|
||||
**(c)** 50 Hz 策略层有部分证据;"每 20 ms 重推理、只走 1 步"与主流(π0 执行 25/50、DP 执行 8/16)相反,属于动作时域 h=1 的极端,有反证风险。§8.6 表中工业接口周期(Franka 1 kHz、UR e 系列 500 Hz 等)属常识,本次未逐一抓取原始手册(【未抓取】)。
|
||||
|
||||
**(e)** 门禁见总表 #22。
|
||||
|
||||
#### 2.14 §9 验收指标(#25)
|
||||
|
||||
- held-out 含 D 类 10% 不可达任务 → "到达 ≥ 98%"按定义不可达(I13)。
|
||||
- 30/30 的 95% 单侧失败率上界 ≈ 9.5%;要把上界压到 1%,需要约 300 例 0 失败;压到 0.3% 需要约 1000 例。
|
||||
- ELMP 表 I:APG 后末端路径长度 0.69 → 0.85 m(+23%),关节路径 4.09 → 3.90 rad(−5%)。关节行程门禁(≤1.10×)在关节空间可能过得了,但需按类别报告。
|
||||
- 关安全层碰撞 < 3%:ELMP/DRP 的 8.9%/10.2% 是在未知、多变环境;固定环境下更低是合理推断,但没有直接证据。
|
||||
|
||||
---
|
||||
|
||||
### 3. 文档内部不一致清单
|
||||
|
||||
| 编号 | 位置 | 不一致 | 建议 |
|
||||
|---|---|---|---|
|
||||
| I1 | §6.3 | 20 万步 × bs 1024 = 2.05 亿样本次 = 300 万样本的约 **68 epoch**,不是 30;30 epoch 只需约 8.8 万步 | 二选一并重算耗时 |
|
||||
| I2 | §4.5-3 / §4.6 | "每条路径 50–150 个样本":route_bench 平均执行 2.46–2.60 s ≈ 130 步,每 3 步取 1 个 ≈ 43 个;A 类更短 → 总样本更可能约 200 万而非 300 万 | 以 M1 的 stats.json 为准 |
|
||||
| I3 | §7.1 vs §8.1 vs §8.5 | APG 每次迭代执行 3 步(60 ms),"H=60 个周期≈1.2 s"实为 3.6 s;部署每 20 ms 推理、只走 1 步,APG "与部署一致"不成立;§8.5 又写"150 个周期≈3 s"(按 20 ms/周期) | 统一"周期"定义;APG 展开节奏与部署一致(或部署改为每 3 步推理) |
|
||||
| I4 | §8.1 末段 vs §6.1A | §8.1 插补器"时间集成/交叉淡入",§6.1A 说 RTC 前缀"替代时间集成";而且淡入后的轨迹没被安全层检查过 | 删除淡入,或安全层检查实际执行轨迹 |
|
||||
| I5 | §5.2/§6.1/§8.1/§8.3/§8.5 vs §6.1A | 前者按 K=4 个模式写(含安全层耗时与前瞻计算),默认流头是 K=8 个候选 | 全文统一,安全层最坏情况按 8 个算 |
|
||||
| I6 | §5.1/§8.2 vs §6.1A | k_prev one-hot 与 log p(k) 对流头无定义;"噪声粘滞"不需要该输入 | 按头类型分开写 |
|
||||
| I7 | §5.1 vs §8.5/§6.1A | 输入表里没有子目标、已提交前缀(RTC)、当前速度,但后文都要以它们为条件 | 补入输入表并给维度 |
|
||||
| I8 | §6.2 vs §6.1A | 损失只针对 WTA;默认流头无损失定义;剩余时间 L1 与价值头重复 | 补流头损失 |
|
||||
| I9 | §0 / §8.1 / §8.5 / §8.6 / §9.2 | 预算"推理+安全 < 10 ms(留一倍余量)"、P99 < 15 ms;组成:生成 2–5 ms + 前瞻 2×(2–5) ms + JS 梯度引导 + 安全检查(目标 < 5 ms,§8.3 自认最坏约 70 ms)→ 合计 9–25 ms 以上 | 重做预算表;WebGPU 调度开销另计(#24) |
|
||||
| I10 | §8.3 | "4 候选 × 10 个采样位形"假设 3 步内 ≤ 约 3.3°;按 §4.5 时间律主导轴每步 4.4°~13°,3 步需 13–39 个采样 + 刹停段;单次 1.8 ms 是旧数据(pair2d 后为 1.25 ms) | 重估 |
|
||||
| I11 | §2.3/§8.3 vs 代码 | 文档写"1° 细验 + 半格复验"(等效 0.5°),现有 `pathFine` 为 EDGE_RES=1.5° + 半格(等效 0.75°) | 明确口径 |
|
||||
| I12 | §8.3 vs §0 | 刹停段"按最大减速度",但全文和 `animTo` 都没有加速度上限 | 定义 a_max |
|
||||
| I13 | §9.2 vs §4.3 | held-out 有 10% 不可达(D 类)却要求到达 ≥ 98% | 分母只算可达任务,D 类单独考核 |
|
||||
| I14 | §7.2-6 vs §9.1 | 留出 2000 + 三个基准每轮用于门禁/回滚,又作最终验收 → 选择偏差 | 拆出独立验收集,只用一次 |
|
||||
| I15 | §6.4 vs §9.2 | 验证超时 = 老师时长 ×2(最少 3 s),验收要求 ≤ ×1.3 | 验证同时报告 ×1.3 达标率 |
|
||||
| I16 | §0/§2.3/§8.3 vs 仓库 | "安全层保证碰撞帧 = 0"与离散检查 + 0.3 mm 余量矛盾(实测采样间偏差可达约 6 mm;仓库记录过 0.28 mm 残余侵入与夹缝漏检) | 改为距离认证,或如实降级表述 |
|
||||
| I17 | §10 vs §6.3 | 重训流程写"§6 约 4 h",§6.3 写 1.5–3 h | 统一 |
|
||||
| I18 | §6.3 | "预热 1000 步(同 DRP 量级)":DRP 为 100 步;"步数约其 1/5",但处理的样本数是 DRP 的 40% | 改表述 |
|
||||
| I19 | §2.2#1 vs §8.1 | "只执行前 2–4 步"与"提交 3 步、实际每周期只走 1 步"不同 | 统一 |
|
||||
| I20 | §9.2 现状列 vs `路径规划优化报告.md` | 文档写 route 现状 60/60 到达;报告第三轮写"有效路径 60/60,到达 58"(2 例目标超出可达区) | 在 `3c7c814` 上重跑核对 |
|
||||
| I21 | §4.5 vs §5.1 | 标签由全局 smoothstep 决定,但输入里没有速度/进度 → 非马尔可夫(见 #4) | 改时间律或加输入 |
|
||||
| I22 | §6.1 vs §8.5 | 子目标头"仅冷启动用",§8.5 又说"到达子目标后切到下一个";拖拽时目标每周期都在变,"冷启动"无定义 | 定义触发条件(如目标跳变 > X mm) |
|
||||
| I23 | §8.1-6 | 局部牛顿精修段没写要过安全层 | 补上 |
|
||||
| I24 | §8.4 | fp16 约 7 MB;实算 4.13M 参数 × 2 B ≈ 8.3 MB | 小问题 |
|
||||
|
||||
---
|
||||
|
||||
### 4. 未能核实 / 声明
|
||||
|
||||
- §8.6 工业接口周期表(Franka、UR、ABB EGM、KUKA RSI、FANUC DPM、MoveIt Servo)本次未逐一抓取原始手册,沿用文档原值(【未抓取】)。
|
||||
- DAgger 原文、Barraquand & Latombe RPP、RoboCat 未抓取,只作背景引用。
|
||||
- DRP 中"目标被挡→停在最近安全处"的数据量与效果,本次未定位到具体表格。
|
||||
- 浏览器端实际推理延迟没有任何本项目实测;WebGPU 结论来自 LLM 场景的调度开销测量(2604.02344),迁移到 4M 参数模型属推断。
|
||||
- 杠杆实测用 TCP 代替全部胶囊端点,工具法兰胶囊可能更远,上界只会更大;同时假设关节空间线性插值,与 §4.5 时间参数化后的 20 ms 步相符。
|
||||
- 训练耗时 FLOP 估算假设 3090 实际 10–35 TFLOPS,未实测。
|
||||
|
||||
### 5. 来源
|
||||
|
||||
- MπNets https://arxiv.org/abs/2210.12209(§3.4、§4.2、表 1、表 3、§5.1–5.2)
|
||||
- DRP/IMPACT https://arxiv.org/abs/2509.06953(§3.1、§3.2、表 6、App G 表 7)
|
||||
- ELMP https://arxiv.org/abs/2607.00215(§III-B、表 I、§IV-A 实现细节、图 6)
|
||||
- Diffusion Policy https://arxiv.org/abs/2303.04137(§3 时间一致性/停顿动作、§4.2 位置控制、§5.3 动作时域与延迟)
|
||||
- BID https://arxiv.org/abs/2408.17355(§4.1–4.2、§5.2.1、表 1–2)
|
||||
- π0 https://arxiv.org/abs/2410.24164(App D 推理与执行)
|
||||
- Zhou et al. 旋转表示 https://arxiv.org/abs/1812.07035(§1)
|
||||
- SHAC https://arxiv.org/abs/2204.07137(§1、§4)
|
||||
- AWE https://arxiv.org/abs/2307.14326(§1、§3)
|
||||
- DART https://arxiv.org/abs/1703.09327(摘要、§1)
|
||||
- ReST https://arxiv.org/abs/2308.08998(§2)
|
||||
- Schwarzer, Saha, Latombe, T-RO 2005 http://ai.stanford.edu/~mitul/papers/SSLtro05.pdf(式(1))
|
||||
- Thumm & Althoff, ICRA 2022 https://arxiv.org/abs/2205.06311(§III、图 3)
|
||||
- LARC https://arxiv.org/abs/2608.29767(摘要)
|
||||
- WebGPU 调度开销 https://arxiv.org/abs/2604.02344(表 6、§4.4)
|
||||
- 本仓库:`docs/路径规划优化报告.md`;`webapp/js/ik-solver.js`(L2376 EDGE_RES、L2777–2810 pathFine);`webapp/js/ik-glue.js`(L376–401 animTo);`docs/collide.json`(margin_mm=0.3);`docs/travel.json`;杠杆实测脚本 `/workspace/work/out/survey/src_v/lever.cjs`
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 二、一步/少步生成式动作头
|
||||
|
||||
## 一步 / 少步生成式机器人策略:全文精读与针对本项目的评估
|
||||
|
||||
> 编写日期:2026-10-17。所有数字均摘自 arXiv HTML 全文(或 PMLR PDF),并标注所在章节/表格。**【未核实】** = 全文中没找到,或只能从图里定性读出。**【推断】** = 我自己的分析,原文没有这么说。
|
||||
|
||||
### 0. 本项目设定(评估基准)
|
||||
|
||||
- 6-DOF 机械臂。环境固定且完全已知:一根立柱障碍,碰撞模型为胶囊体。
|
||||
- 输入为低维状态,约 60 维:q、TCP、目标位置/rot6d、胶囊距离。闭环 50 Hz,action chunk = 16 步。
|
||||
- 模型 3–5M 参数,浏览器内 ONNX 推理,运行时没有 teacher,在 RTX 3090 上训练。
|
||||
- 后训练:通过可微胶囊距离做解析策略梯度(APG)。
|
||||
- **核心风险**:必须保住多模态(从立柱左侧绕还是右侧绕)。一旦把两个模态平均掉,轨迹就会直接穿过立柱。
|
||||
|
||||
---
|
||||
|
||||
### 1. 贯穿所有论文的三个关键事实(先读)
|
||||
|
||||
1. **普通 Flow Matching 做 1 步 Euler,输出的正好是条件均值。** COT 论文附录 D.1 原话:"CFM evaluated with a 1-step euler solver approximately generates the conditional mean of the two conditional distributions"。Shortcut 论文 §2 也写道:"at t=0 … the predicted velocity at t=0 points towards the dataset mean"。在我们的设定里,这就等于"从立柱中间穿过去"。所以不能直接拿 FM 做 NFE=1。
|
||||
2. **主流基准几乎测不出多模态问题。** FreqPolicy Table 4:*vanilla* FM 做 NFE=1,在 Robomimic Can/Square/Transport/ToolHang 上就有 0.94/0.90/0.84/0.76。FreqPolicy Table 3:OpenVLA+FM 做 NFE=1,在 LIBERO 上平均 93.5%,NFE=10 是 93.7%。普通 FM 一步就能拿高分,说明这些任务在单个观测下近似单峰。**结论:各论文的成功率表对"左右绕柱"这类风险几乎没有证据力。** 真正有针对性的证据只有 COT(two-moons、fork、Maze 多路径、真机 Push-T 顺/逆时针)、CP(Push-T 模态丢失)和 Shortcut(Push-T/Transport 轨迹图,定性)。
|
||||
3. **【推断】任何连续的一步映射 G(z|o) 都会把少量质量落在两个模态之间。** z 服从高斯分布,支撑集是连通的;连续映射的像也必然连通,所以总会有一部分噪声被送进"缝隙",也就是穿柱区域。方法之间的差别只在于这部分质量有多小、边界有多陡。因此无论选哪种方法,**运行时都应该批量采 K 个噪声,用解析胶囊距离筛掉碰撞样本**,后训练也应该专门把边界样本推离立柱。
|
||||
|
||||
---
|
||||
|
||||
### 2. 逐篇精读
|
||||
|
||||
#### 2.1 MP1 — MeanFlow Policy(arXiv 2507.10543,v5,AAAI'26)
|
||||
URL:https://arxiv.org/html/2507.10543
|
||||
- **方法**:用 MeanFlow 学习区间平均速度 u(z,r,t),通过 MeanFlow Identity 构造带 stop-grad 的回归目标(需要 JVP),推理时 A0 = A1 − u(A1,0,1)。同时加 CFG(ω 混合有/无条件速度),并在 U-Net 下采样块上加 Dispersive Loss(λ=0.5,τ=1)(§Method,式 1–8)。
|
||||
- **teacher**:不需要,从头训练。
|
||||
- **NFE**:1。
|
||||
- **延迟/硬件**:平均 6.8 ms,RTX 4090,其中 Adroit Hammer 7.1±0.2 ms;FlowPolicy 12.6 ms,DP3 132.2 ms(Table 2)。注意这是含点云编码器的延迟。
|
||||
- **多模态证据**:**没有**任何双峰测试,也没讨论模态平均。Dispersive Loss 针对的是"表征塌缩"(不同状态映射到相近特征),不是动作模态塌缩。【推断】CFG(ω>1)本身有锐化、削减多样性的倾向。
|
||||
- **低维状态结果**:没有。输入为点云 + 状态,Adroit/Meta-World 共 37 任务,平均 78.9%(Table 1)。
|
||||
- **训练成本/稳定性**:需要 JVP。flow ratio=1.0(全部 r≠t)时平均成功率塌到 2.4%;ratio=0(退化为 FM)为 72.6%,0.5 最好,为 82.4%(Table 4)。第三方报告:OFP §4.2 称 MP1 训练"high variance and frequent loss spikes",OFP Fig.4 显示 MP1 在 150 条示教时性能下降。
|
||||
- **代码**:https://github.com/LogSSim/MP1 (已确认仓库存在,含代码目录)。
|
||||
|
||||
#### 2.2 OFP — One-Step Flow Policy(arXiv 2603.12480v1,2026-03)
|
||||
URL:https://arxiv.org/html/2603.12480
|
||||
- **方法**:不用外部 teacher,用 EMA 自蒸馏学习区间平均速度。目标为 û=(ẑ_r − z_t)/(r−t),只用前向、不需要 JVP,并配合"时间收缩"课程(§3.1,式 4–6)。另加 FM 边界锚定损失(式 7),以及基于 CFG 的 self-guidance(只用 CA 项,§3.2,式 12–13)。推理时用上一个 chunk 未执行的后缀做 warm-start,t_w=0.15(§3.3)。
|
||||
- **teacher**:不需要,用的是 EMA 自身。
|
||||
- **NFE**:1,也支持 4 等多步(Table 3)。
|
||||
- **延迟**:每个 chunk 17.58 ms;DP3(100 步)3225.67 ms,FM(100 步)1865.72 ms(§4.2)。**推理硬件【未核实】**,全文只写了训练用单卡 A100(App. B.3)。warm-start 使它略慢于 OneDP/MP1。
|
||||
- **多模态证据**:**没有**双峰测试。只有论述:"CP 的轨迹匹配目标偏 mode-covering,会平均多模态;OneDP 的 score distillation 偏 mode-seeking,会降低多样性"(§1、App. E.2)。消融里只用 SCT 时 NFE=1 为 68.7%,作者解释为"one-step predictions often average over multiple valid modes"(App. D.1,Table 6),加 SGR 后升到 71.4%。**风险信号**:λ_sg=0.5 时 "forcing the model into mode collapse",SR 降到 68.7%,最优是 0.05(Table 7c)。warm-start 的 t_w 过大(0.75)会"heavily suppress necessary generative randomness"(Table 7d)。
|
||||
- **低维状态结果**:没有。输入为 2D 图像 + 24/32 维本体状态,或点云(App. B.1)。56 任务 3D 平均 71.6%,DP3(100 步)为 66.4%(Table 2)。2D 7 任务为 68.3%(Table 1)。
|
||||
- **训练成本/稳定性**:用子批策略,p_sc=0.2、p_sg=0.1(Table 7a)。A100 上 3000 epoch,batch 64,主干 DiT 12 层/768 维(App. B.2–B.3)。作者声称比 MeanFlow 稳定,但**没有**给出内存/时长数字。只有仿真,没有真机(§6 Limitation)。
|
||||
- **代码**:全文**没有**找到代码链接,GitHub 搜索也无结果。
|
||||
|
||||
#### 2.3 OMP — One-step MeanFlow Policy with Directional Alignment(arXiv 2512.19347v3)
|
||||
URL:https://arxiv.org/html/2512.19347
|
||||
- **方法**:在 MP1 的基础上加方向对齐损失 L_DA = −log((cos α+1)/2),α 是预测平均速度与 v0=z_T−z_0 的夹角(§4.3.1,式 12)。另提供 DDE:用中心差分近似 du/dt,替代 JVP(式 14)。总损失 = MSE + λ_Disp·L_Disp + λ_DA·L_DA(式 13)。
|
||||
- **teacher**:不需要。
|
||||
- **NFE**:1。
|
||||
- **延迟**:只有 Fig.1 的 FPS 散点图,**没有具体 ms 数字【未核实】**。训练/测试在 RTX 4090(§5.1)。
|
||||
- **多模态证据**:**没有**。理论部分讨论的是"频谱偏置"和"低速区梯度饥饿",不是模态问题。**【推断】隐患**:L_DA 是对逐样本条件目标做余弦对齐。在双峰条件下,不同样本的目标方向相反,余弦损失的总体最优解并不等于边缘速度场(与 MSE 不同,余弦损失不满足"条件期望即最优"的性质),可能引入偏置。论文没有分析这一点。
|
||||
- **低维状态结果**:没有。输入为点云,平均 82.3%(JVP)/ 80.8%(DDE),MP1 为 78.9%(Table 1)。**数据可疑点**:Table 1 中 "OMP-JVP −L_DA" 一行与 MP1 一行逐项完全相同。
|
||||
- **训练成本**:JVP 与 DDE 的显存对比(Table 3):Adroit Hammer(H=4)6.60 vs 5.35 GB;Place Bottle(H=16)26.71 vs 19.19 GB。DDE 平均成功率掉 1.5 个点,Very Hard 任务上 77.8%→70.6%。作者证明 JVP 训练会使每层激活显存翻倍(App. B.3)。H=16 时 JVP 为 76.6%,DDE 为 78.2%(App. E.1,Table 5)。
|
||||
- **代码**:"Codes are included in our supplementary material"(App. D)。公开仓库**【未核实】**。
|
||||
|
||||
#### 2.4 K-MF — Kinematic MeanFlow(arXiv 2610.00864v1,2026-10-01,投稿 ICLR 2027)
|
||||
URL:https://arxiv.org/html/2610.00864
|
||||
- **方法**:利用运动学恒等式 u_{t,r}=(1−λ)u_{t,c}+λu_{c,r},把 MeanFlow 的时间导数项拆成两个子区间项(式 5–7)。c 的取法有三种:随机、固定中点、或由一个 3 层 MLP 学出 λ=G_φ(t,r)(式 8)。仍用 JVP,两个子区间在 batch 维拼接后一次算完(§3.2 Implementation)。
|
||||
- **teacher**:不需要,支持从头训练,也支持微调 FM 预训练的 RFM。
|
||||
- **NFE**:1。
|
||||
- **延迟(GR00T-N1.6,3B)**:action head 在 L40 上 eager 28.0 ms(FM 为 109.3),compiled 6.2 ms(FM 19.1);在 Jetson Orin 上 eager 63.6 ms、compiled 23.3 ms(Table 5a)。
|
||||
- **多模态证据**:**没有**双峰测试。它关注的是 VLA 速度场后期"局部加速度"激增(t=1 处达初值 76 倍)以及跨样本发散(§1),属于训练稳定性问题。
|
||||
- **低维状态结果**:没有。GR00T/SimVLA 输入为图像 + 语言 + 本体状态。PointNav(COMPASS,Unitree G1)的输入模态**【未核实】**,FM 73.8% vs K-MF 74.0%(Table 3)。
|
||||
- **训练成本/稳定性(重要)**:原生 MeanFlow 在 GR00T 上不加梯度裁剪就 Fail;加裁剪后 6.5%;再加渐进时间采样和 60K 步才到 87.0%(NFE=2);**NFE=1 时 Fail**。MVP 在 NFE=1 时也 Fail;α-Flow NFE=1 为 84.5%(Table 1)。K-MF 训练时长比 FM 多 33%(GR00T)/27%(SimVLA),GR00T 峰值显存 53.7 GB(FM 35.6,MF 52.4)(Table 5b)。LIBERO 平均:GR00T 微调 97.9%(FM 4 步 97.3%);SimVLA 从头训练 95.1%(FM 10 步 94.2%)(Table 2)。
|
||||
- **代码**:https://github.com/IntelChina-AI/K-MF 。2026-10-17 检查时仓库只有 README 和 imgs,**代码尚未发布**。
|
||||
|
||||
#### 2.5 DM1 — MeanFlow + Dispersive Regularization(arXiv 2510.07865v1,AAMAS 2026)
|
||||
URL:https://arxiv.org/html/2510.07865
|
||||
- **方法**:MeanFlow(JVP),把 4 种 dispersive 正则(InfoNCE-L2/Cos、Hinge、Covariance)加在多个中间嵌入层上(§3.3–3.4)。训练中 ρ=0.5 的样本强制 r=t(App. B.2)。
|
||||
- **teacher**:不需要。
|
||||
- **NFE**:1 或 5。
|
||||
- **延迟**:Franka 真机,RTX 2080 上网络推理 MF(1)=2.4 ms,MF(5)=10.5–13.8 ms,ShortCut(32) 约 77 ms,ReFlow(128) 约 306–313 ms(Table 3)。仿真里"0.07 s vs 2–3.5 s"是 50 个并行环境的总时间(§4.2.2)。
|
||||
- **多模态证据**:**没有**双峰测试。摘要和引言声称 dispersive 能"捕获多样多模态行为",但实验只有成功率和奖励。
|
||||
- **低维状态结果**:没有。输入为 ViT 图像 + 9 维本体状态(§4.3)。Robomimic 1 步(α_disp=0.1):Lift 0.975、Can 0.740、Square 0.350、Transport 0.280(App. D.0.1)。数据集为 DPPO 版的低质量数据,绝对值不能和 CP/OneDP 直接比较。**数据可疑点**:App. D 的文字有自相矛盾之处,例如 "decline from 0.700 at two steps to 0.775 at five steps"。
|
||||
- **训练成本**:只有复杂度论述(App. B.4),**没有**实测内存/时长。
|
||||
- **代码**:项目页 https://guowei-zou.github.io/dm1/ ,仓库 https://github.com/guowei-zou/dm1-release (已确认含代码目录)。
|
||||
|
||||
#### 2.6 Consistency Policy(arXiv 2405.07503,RSS 2024)
|
||||
URL:https://arxiv.org/html/2405.07503
|
||||
- **方法**:先训练 EDM teacher,再用 CTM-local 目标(相邻 t,u,任意 s)加 DSM 损失蒸馏出学生(§III-B)。支持 1 步,或在 {t_{2N/3}, t_{N/3}} 处做 3 步 chaining(§III-C)。初始噪声用低方差 N(0,1/T²)。
|
||||
- **teacher**:**需要**预训练 EDM teacher(仅训练期需要,运行时不需要)。
|
||||
- **NFE**:1 或 3。
|
||||
- **延迟**:仿真在 P5000 上 1 步 1 ms、3 步 2 ms,DDPM 110 ms(Table III)。真机在 3070 Ti 笔记本 GPU 上总计 21 ms,其中网络 13.5 ms(Table IV、XI)。
|
||||
- **多模态证据(直接负面证据)**:§V Limitations 写道:"both the teacher EDM policy and Consistency Policy lose some of Diffusion Policy's multimodality, e.g., by favoring one side of the Push-T task over the other",原因归于 ODE 蒸馏是确定性的。Table VI:低方差初始噪声在 1 步时 0.92 vs 0.90;作者自己也承认高方差的好处是"expressivity and multimodality"。
|
||||
- **低维状态结果(有)**:Push-T(state)1 步 0.82、3 步 0.84,DDPM 为 0.87(Table I);Franka Kitchen(state)1 步 p4=0.93,DDPM 为 0.98(Table II)。
|
||||
- **训练成本/稳定性**:"slightly less stable during training than Diffusion Policy",需要更长训练,每步还要跑 teacher(§V)。CTM 比 CTM-local 慢 40% 以上(A5000)(§IV-D)。dropout 0.2 很关键,去掉 s→0 段的 dropout 后从 0.92 降到 0.86(Table IX)。不用 teacher 的 CT 版本在 Square 上只有 0.55(Table X)。
|
||||
- **代码**:https://github.com/Aaditya-Prasad/consistency-policy (已确认存在)。
|
||||
|
||||
#### 2.7 OneDP — One-Step Diffusion Policy(arXiv 2410.21257)
|
||||
URL:https://arxiv.org/html/2410.21257
|
||||
- **方法**:在整条扩散链上最小化生成器分布与预训练 DP 分布的反向 KL(类似 SDS/VSD),配一个辅助生成器 score 网络(式 4–6)。OneDP-S 带噪声输入(随机策略);OneDP-D 不带噪声(确定性,等价于 Dirac 分布)。
|
||||
- **teacher**:**需要**预训练 DP,以及一个额外的 score 网络;三者都从 DP 权重初始化。
|
||||
- **NFE**:1。
|
||||
- **延迟**:真机在 V100 上动作生成 7 ms + 观测编码 9 ms;DDIM-10 为 66 ms,DDPM-100 为 660 ms(Table 5)。
|
||||
- **多模态证据**:**没有**双峰测试。作者主动选择了 mode-seeking:"reverse KL divergence typically induces mode-seeking behavior"(§2 Distillation Discussion)。【推断】OneDP-D 是确定性映射,按定义就没有多模态。OneDP-S 理论上可以保留,但反向 KL 天然倾向丢模态,OFP §1 也这么评价。
|
||||
- **低维状态结果**:没有。全部为视觉输入:Robomimic + PushT(图像)。DDPM 设定下 OneDP-S 平均 0.843,DP 为 0.829(Table 1);EDM 设定下 OneDP-S 为 0.830,CP 1 步(450 ep)为 0.672(Table 2)。
|
||||
- **训练成本**:只需在 DP 预训练的基础上额外花 2%–10%(20 epoch,CP 为 450 epoch)(§1、§3.1)。网络规模:仿真 DDPM 256M、EDM 67M(App.)。
|
||||
- **代码**:全文**没有**找到链接,GitHub 搜索无果**【未核实】**。
|
||||
|
||||
#### 2.8 COT Policy — Conditional OT Couplings(CoRL 2025,PMLR v305 sochopoulos25a;arXiv 2505.01179)
|
||||
URL:https://raw.githubusercontent.com/mlresearch/v305/main/assets/sochopoulos25a/sochopoulos25a.pdf 、https://arxiv.org/html/2505.01179v1
|
||||
- **方法**:对每个 minibatch 计算 OT 配对,代价为 ‖x0−x1‖² + ‖γ(c0−c1)‖²(式 4),其中噪声侧的条件 c0 是 c1 的随机置换。连续观测先 PCA 降维,再用 K-means 离散化(K≈batch size,默认 64)。之后做普通 CFM 训练(Alg. 1),推理用 midpoint 2 步或 Euler 1 步。
|
||||
- **teacher**:不需要,单阶段训练。
|
||||
- **NFE**:1–2。主表用 midpoint,NFE=2。
|
||||
- **延迟**:摘要称"10× speed-up compared to Diffusion Policy"。全文**没有给出 ms 数字【未核实】**。真机推理用 RTX 2080(App. C.4)。
|
||||
- **多模态证据(最强、最相关)**:
|
||||
- two-moons/fork(y=U{x,−x})低维任务:COT-CFM 在 NFE=1 时 W2²=0.345,CFM 1.490,OT-CFM 0.777(Euler);且只有 COT 在 NFE=1 时能还原出两个月牙。**CFM 1 步 ≈ 条件均值**(App. D.1,Table 5,Fig. 1/8)。
|
||||
- Maze2D:起点和终点都固定,q 值加噪声后得到多条路径。这和"左右绕柱"同构。Fig. 3 显示 COT 在 NFE=1/2 下都能覆盖多条路径,Trajectory Variance 高于 CFM(§3.2)。**只有图,没有表格数值【定量部分未核实】**。
|
||||
- 真机 Push-T:NFE=1 Euler 能同时复现顺时针和逆时针两种推法(App. C.3,Fig. 7)。
|
||||
- 反例:朴素 OT-CFM(不考虑条件)会得到有偏样本(Fig. 1)。K 太小时退化成 OT-CFM(Fig. 4)。
|
||||
- **低维状态结果**:two-moons/fork 是纯低维(4×64 SELU MLP,App. B.1)。Maze2D 的输入模态**【未核实】**。MimicGen/push-t 用图像。6 任务平均:COT(NFE=2)0.818 vs DP DDIM(NFE=20)0.781,CFM(NFE=2)0.790(Table 1)。
|
||||
- **训练成本**:与 CFM/DP 相同,收敛速度也相近(Fig. 5)。OT 用 EMD。PCA 特征向量矩阵会占显存(App. B.2)。作者承认的局限:K 需要调;高维时低 NFE 与高 NFE 仍有差距(§5)。
|
||||
- **代码**:https://github.com/ansocho/cot_policy (已确认存在)。
|
||||
|
||||
#### 2.9 Shortcut Models(Frans et al., arXiv 2410.12557, ICLR 2025)及其在 ReinFlow(arXiv 2505.22094)中的用法
|
||||
URL:https://arxiv.org/html/2410.12557 、https://arxiv.org/html/2505.22094
|
||||
- **方法**:网络同时以步长 d 为条件。d=0 时就是 FM 损失;d>0 时用自洽目标 s(x_t,t,2d)=½s(x_t,t,d)+½s(x'_{t+d},t+d,d) 做 bootstrap(Shortcut §3,式 4–5)。batch 中 k=1/4 的样本做自洽,其余做 FM。ReinFlow 在流轨迹中注入可学习噪声,把它变成离散时间马尔可夫过程,得到精确似然,再用 PPO 微调;微调后丢掉噪声网络(ReinFlow §4.1–4.3)。
|
||||
- **teacher**:不需要,单网络、单阶段。不需要 JVP,自洽目标只需额外两次前向。
|
||||
- **NFE**:任意,1/2/4 均可。ReinFlow 在 Can/Square 上用 1 步,在 Transport 上用 4 步(ReinFlow §5.2)。
|
||||
- **延迟**:两篇论文都**没有给出 ms**。ReinFlow 只给出每次迭代的 wall-time,在 RTX 3090 上测(ReinFlow App. D,Table 3)。
|
||||
- **多模态证据**:Shortcut Fig. 7 的说明称"Shortcut models can represent multimodal policies in a similar manner as diffusion policies"。1 步结果:Push-T 0.87、Transport 0.80;DP 1 步为 0.12/0.00(§5.5)。**只有定性轨迹图,没有双峰统计**。作者自承局限:"the mapping between noise and data is entirely dependent on an expectation over the dataset",且 1 步与多步之间仍有差距(§6)。
|
||||
- **低维状态结果**:ReinFlow 中 Franka Kitchen(state 输入)用 Shortcut 策略,参数仅 0.16M actor;同时测了 K=1/2/4 的 RL 微调(App. Table 2、Fig. 13,**只有曲线【数值未核实】**)。Gym 运动控制任务(state)用的是 1-ReFlow 策略,0.55–0.80M 参数。
|
||||
- **训练成本**:约比扩散模型多 16% 计算(Shortcut §3 脚注)。若自洽损失不稳定,可降低其占比;推荐使用非零 weight decay(§6 Best practices)。ReinFlow 的稳定性技巧:裁剪 log-ratio(state 任务 ε=0.01)、裁剪去噪动作、critic warm-up(ReinFlow App. D.2)。
|
||||
- **代码**:https://github.com/kvfrans/shortcut-models 、https://github.com/ReinFlow/ReinFlow (均已确认存在)。
|
||||
|
||||
#### 2.10 FreqPolicy(NeurIPS 2025,arXiv 2506.08822v2)
|
||||
URL:https://arxiv.org/html/2506.08822v2
|
||||
- **重名提醒**:NeurIPS 2025 有两篇 FreqPolicy。另一篇是 arXiv 2506.01583 "Frequency Autoregressive Visuomotor Policy"(4DVLab),属于自回归方法,不是一步生成器。本文按"一步/少步"的范围评估 2506.08822。
|
||||
- **方法**:FM 损失之外,加一项频域一致性损失:在两个任意时刻 s,r 的速度上做 type-II DCT 后对齐(§3.3,式 9–14),并按频段方差自适应加权。
|
||||
- **teacher**:不需要。
|
||||
- **NFE**:1。
|
||||
- **延迟**:真机在 RTX 4090 上 93.5 Hz(约 10.7 ms),DP 19.8 Hz,FM 20.2 Hz(§4.2)。OpenVLA 头为 6.05 Hz(Table 3)。
|
||||
- **多模态证据**:**没有**双峰测试。
|
||||
- **低维状态结果**:没有。输入为图像、点云或 VLA。Robomimic(图像)1 步:Can 0.98、Square 0.92、Transport 0.90、ToolHang 0.85(Table 1)。3D 53 任务平均 78.5%(Table 2)。消融里 vanilla FM 1 步为 0.94/0.90/0.84/0.76(Table 4),见 §1 第 2 点。
|
||||
- **训练成本**:每个样本需要两次前向,"demands more computational resources"(§5 Limitation)。在单卡 A100 上训练(App. A.3)。
|
||||
- **代码**:全文**没有**找到官方链接,GitHub 搜索只命中重名的另一篇**【未核实】**。
|
||||
|
||||
---
|
||||
|
||||
### 3. 汇总对比表(原文数据)
|
||||
|
||||
| 方法 | 需要 teacher | NFE | 延迟(硬件,出处) | 多模态证据 | 低维状态实验 | 训练风险 | 代码 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| MP1 | 否 | 1 | 6.8 ms,4090,含点云编码(T2) | 无 | 无 | JVP;他人报告 loss 尖峰 | 有 |
|
||||
| OFP | 否(EMA) | 1/多 | 17.58 ms,硬件未说明(§4.2) | 无;SGR 过强会塌缩(T7c) | 无 | 无 JVP;超参多 | 未找到 |
|
||||
| OMP | 否 | 1 | 无 ms(Fig.1) | 无;余弦损失存疑【推断】 | 无 | JVP 显存表(T3);DDE −1.5pt | 附录补充材料 |
|
||||
| K-MF | 否 | 1 | AH 6.2–63.6 ms,L40/Orin,3B(T5a) | 无 | 无(PointNav 模态未核实) | MF 1 步 Fail(T1);+27–33% 时长 | 仅 README |
|
||||
| DM1 | 否 | 1/5 | 2.4 ms,2080(T3) | 无(仅声称) | 无(9 维本体 + 图像) | JVP;文中数字自相矛盾 | 有 |
|
||||
| CP | **是** | 1/3 | 1 ms,P5000;21 ms,3070Ti(T3/T11) | **负面**:Push-T 偏向一侧(§V) | **有**:Push-T 0.82,Kitchen p4 0.93 | 比 DP 不稳;训练更久 | 有 |
|
||||
| OneDP | **是**(+score 网络) | 1 | 7 ms,V100(T5) | mode-seeking(自述);D 版确定性 | 无 | +2–10% 预训练成本 | 未找到 |
|
||||
| COT | 否 | 1–2 | 无 ms;"10×" | **最强**:two-moons/fork/Maze/真机 Push-T | 合成低维有;Maze 模态未核实 | 同 CFM;K 需调 | 有 |
|
||||
| Shortcut(+ReinFlow) | 否 | 1/2/4 | 无 ms | 定性(Fig.7) | **有**:Kitchen state 0.16M(仅曲线) | +16%;可 RL 微调 | 有 |
|
||||
| FreqPolicy | 否 | 1 | ~10.7 ms,4090(§4.2) | 无 | 无 | 2× 前向 | 未找到 |
|
||||
|
||||
---
|
||||
|
||||
### 4. 针对本项目的裁决表
|
||||
|
||||
评分:✅ 合适 / ⚠️ 有条件 / ❌ 不合适。所有评价都对照 §0 的设定。
|
||||
|
||||
| 方法 | 无 teacher 运行 | 训练可行性(3090,5M) | 浏览器 ONNX(1 网络,单/少次前向) | 多模态保真(左右绕柱) | 与 APG 后训练的契合 | 总评 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| **Shortcut** | ✅ | ✅ 无 JVP,+16% | ✅ 需额外输入 d | ⚠️ 只有定性证据;1 步与多步有差距 | ✅ 1 步时梯度直通;ReinFlow 证明可 RL 微调 | **首选骨架** |
|
||||
| **COT 耦合** | ✅ | ✅ 低维条件可直接 K-means,不需要 PCA【推断】 | ✅ 与普通 FM 结构相同 | ✅ 唯一有直接双峰证据 | ✅ 与骨架正交 | **首选插件**(训练时加在 Shortcut/MF 上)【推断:两者组合在原文中没有实验,只在 COT §5 中作为未来方向提到】 |
|
||||
| OFP | ✅ | ✅ 无 JVP,但超参多 | ✅;warm-start 需维护状态 | ⚠️ 无测试;SGR 有塌缩风险 | ✅ | 次选。只借鉴 warm-start 和 FM 锚定,SGR 关闭或 λ≤0.05 |
|
||||
| MeanFlow(MP1/DM1) | ✅ | ✅ 在 5M MLP 上 JVP 显存不是问题【推断】,但有稳定性报告(OFP §4.2、K-MF T1) | ✅ | ⚠️ 无测试;CFG 可能锐化掉一个模态【推断】 | ✅ | 备选 |
|
||||
| OMP | ✅ | ✅ | ✅ | ⚠️ 余弦对齐在双峰下可能有偏【推断】 | ✅ | 不建议直接采用 L_DA |
|
||||
| K-MF | ✅ | ⚠️ 为 3B VLA 设计,代码未发布 | ✅ | ⚠️ 无测试 | ✅ | 只在 MeanFlow 训练不稳时借鉴中点分解 |
|
||||
| FreqPolicy | ✅ | ✅(2× 前向) | ✅ | ⚠️ 无测试 | ✅ | 可作为平滑正则的辅助项(16 步 chunk 的 DCT) |
|
||||
| CP | ✅(训练需 teacher) | ⚠️ 两阶段,较不稳定 | ✅ | ❌ 原文自述丢模态 | ⚠️ | 不推荐 |
|
||||
| OneDP | ✅(训练需 teacher + score 网络) | ⚠️ 两阶段 | ✅ | ❌ mode-seeking / 确定性版本 | ⚠️ | 不推荐。【推断】若只关心"不平均",mode-seeking 反而不会穿柱,但会失去左右选择能力,且闭环中可能左右跳变 |
|
||||
|
||||
---
|
||||
|
||||
### 5. 排名推荐
|
||||
|
||||
1. **Shortcut Model 骨架 + COT 条件耦合 + FM 锚定(d=0),NFE=1,必要时用 2 步。**
|
||||
- 理由:不需要 teacher,不需要 JVP,单阶段训练,开销约 16%。同一个网络支持 1/2/4 步,可以按浏览器实测延迟取舍。ReinFlow 已在低维 state 任务(Kitchen,0.16M)上用它做过 RL 微调。COT 是唯一用双峰任务(fork、two-moons、Maze 多路径)证明"1 步不取均值"的方法,而且训练成本与 CFM 相同。
|
||||
- 低维 60 维状态可直接做 K-means(K≈batch),γ 按 COT App. E.1 选。【推断】最好把"同一状态下的左右样本"放进同一簇,这样 OT 才能把噪声空间按模态切开。
|
||||
2. **OFP 式自蒸馏(前向一致性 + FM 锚定 + warm-start)**,作为 1 的替代或补充。
|
||||
- 【推断】warm-start(上一 chunk 后缀加噪,t_w≈0.15)对 50 Hz 闭环特别有价值:它让相邻决策沿用同一模态,抑制左右跳变。但这只是推断,论文没有测模态一致性。
|
||||
- SGR 建议关闭,或 λ≤0.05,因为原文 λ=0.5 时出现模态塌缩。
|
||||
3. **MeanFlow(MP1 配方,不加 CFG,或 ω=1)**。在 5M 规模上 JVP 成本可接受。若出现 loss 尖峰,可以借鉴 K-MF 的中点分解,或 OMP 的 DDE。
|
||||
4. **FreqPolicy 的 DCT 一致性**:只作为辅助正则(降低 chunk 抖动),不单独作为主方法。
|
||||
5. **不推荐:CP、OneDP**。都依赖 teacher 训练,且分别有模态丢失(CP 原文自述)和 mode-seeking(OneDP 自述)。
|
||||
|
||||
**无论选哪种方法都应加上的工程措施【推断,均未在上述论文中验证】:**
|
||||
- **运行时多样本 + 解析碰撞筛选**:把 K 个噪声(如 8–32)打成一个 batch 做一次前向,用可微胶囊距离挑出无碰撞且代价最小的样本。这直接针对 §1 第 3 点(连续映射必然有样本落入缝隙)。
|
||||
- **模态一致性**:在一次绕柱过程中锁定噪声,或使用 warm-start,避免每 20 ms 重采样时左右翻转。
|
||||
- **APG 后训练时保住双模态**:只对 reward 求梯度会把整个分布推向单一模态。必须保留 FM/BC 锚定损失(类似 OFP 式 7、ReinFlow 的 W2/熵正则),并分别监控左/右样本比例。理想情况下,APG 应只把"缝隙样本"推离立柱(锐化分界),而不是改变左右比例。
|
||||
- **专门的多模态评估**:成功率不够(见 §1 第 2 点)。应在同一状态下采 N 个样本,统计左/右/穿柱三类比例,以及立柱附近状态的最小胶囊距离分布。
|
||||
|
||||
---
|
||||
|
||||
### 6. 明确的不确定项
|
||||
|
||||
1. 没有任何一篇论文在**低维状态 + 已知几何障碍 + 双峰绕行**的设定下给出定量的"穿越率/模态比例"。COT 的 Maze 证据最接近,但只有图,输入模态也未核实。
|
||||
2. 所有论文的模型规模都远大于 3–5M(OFP DiT 768×12;CP/OneDP 67–256M;COT 约 240M U-Net)。只有 ReinFlow 的 state 任务(0.16–0.8M)接近我们的规模。小模型能否学出陡峭的模态边界**未知**。
|
||||
3. 浏览器 ONNX 延迟:所有数字都来自 GPU,**没有** WASM/WebGPU 数据。5M 参数单次前向在浏览器里大约需要几毫秒【粗略推断】,必须实测。
|
||||
4. OFP 的推理硬件、OMP 和 COT 的 ms 延迟、OneDP/OFP/FreqPolicy 的代码、K-MF 的代码(尚未发布)均**未核实或不可得**。
|
||||
5. Shortcut 与 COT 组合、warm-start 抑制模态跳变、APG 下的模态保持,都是**推断**,没有文献实验。
|
||||
6. 数据质量疑点:OMP Table 1 有一行与 MP1 完全相同;DM1 附录文字自相矛盾;OFP 只有仿真结果。
|
||||
7. 各论文基准不同(Robomimic 的 ph/mh 数据、DPPO 低质量数据、点云 vs 图像),跨论文的成功率数字**不可直接比较**。
|
||||
|
||||
---
|
||||
|
||||
### 7. 实际抓取的来源 URL
|
||||
|
||||
- https://arxiv.org/html/2507.10543 (MP1)
|
||||
- https://arxiv.org/html/2603.12480 (OFP)
|
||||
- https://arxiv.org/html/2512.19347 (OMP)
|
||||
- https://arxiv.org/html/2610.00864 (K-MF)
|
||||
- https://arxiv.org/html/2510.07865 (DM1)
|
||||
- https://arxiv.org/html/2405.07503 (Consistency Policy)
|
||||
- https://arxiv.org/html/2410.21257 (OneDP)
|
||||
- https://raw.githubusercontent.com/mlresearch/v305/main/assets/sochopoulos25a/sochopoulos25a.pdf (COT,PMLR 版全文)
|
||||
- https://arxiv.org/html/2505.01179v1 (COT,arXiv 版)
|
||||
- https://arxiv.org/html/2410.12557 (Shortcut Models)
|
||||
- https://arxiv.org/html/2505.22094 (ReinFlow)
|
||||
- https://arxiv.org/html/2506.08822v2 (FreqPolicy)
|
||||
- GitHub 存在性检查:LogSSim/MP1、guowei-zou/dm1-release、Aaditya-Prasad/consistency-policy、ansocho/cot_policy、kvfrans/shortcut-models、ReinFlow/ReinFlow、IntelChina-AI/K-MF(仅 README)
|
||||
- proceedings.mlr.press/v305/sochopoulos25a 摘要页通过搜索结果确认;全文使用上面的 PMLR PDF。
|
||||
|
||||
本地提取的全文文本:/workspace/work/out/survey/src/*.txt(同目录下另有其他任务的文件,与本报告无关)。
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 三、代价引导与实时动作块(RTC)
|
||||
|
||||
## 代价引导扩散运动规划 + 实时分块(RTC)文献精读与对我方设定的评估
|
||||
|
||||
> 撰写:2026-10-17。全部结论来自下列已抓取的全文(HTML/PDF),引用均标注论文章节/表号。
|
||||
> 标记约定:**[原文]** = 论文直接给出的数字/陈述;**[推断]** = 我基于原文对我方设定做的推理,论文未直接验证;**[未验证]** = 未抓取全文或论文中仅有图、无可读数值。
|
||||
|
||||
### 0. 我方设定(评估基准)
|
||||
6-DOF 机械臂;固定且精确已知的环境(一根立柱,胶囊体碰撞模型,解析距离);低维状态;闭环 50 Hz;动作块 H=16 步(320 ms);每周期提交 s=3 步(60 ms 重规划一次);浏览器端推理;生成器计划 1 步或少步;运行时无教师/规划器;精确安全层校验已提交步。
|
||||
|
||||
### 1. 已抓取的来源
|
||||
| 论文 | URL |
|
||||
|---|---|
|
||||
| MPD (IROS'23) 2308.01557 | https://arxiv.org/pdf/2308.01557 |
|
||||
| MPD 期刊版 2412.19948 (v3) | https://arxiv.org/html/2412.19948 |
|
||||
| EDMP 2309.11414 | https://arxiv.org/html/2309.11414 |
|
||||
| GPD 2501.18229 | https://arxiv.org/html/2501.18229 |
|
||||
| CAMPD 2510.14615 (v2) | https://arxiv.org/html/2510.14615 |
|
||||
| DiffusionSeeder 2410.16727 | https://arxiv.org/html/2410.16727 |
|
||||
| RTC 2506.07339 (v2) | https://arxiv.org/html/2506.07339 |
|
||||
| Training-time RTC 2512.05964 (v2) | https://arxiv.org/html/2512.05964v2 |
|
||||
| BID 2408.17355 (v4) | https://arxiv.org/html/2408.17355 |
|
||||
| ACT 2304.13705 | https://arxiv.org/pdf/2304.13705 |
|
||||
|
||||
未抓取、仅在检索结果中出现(**[未验证]**):Soft RTC / "Action-Prior Denoising for Smooth Real-Time Chunking"(alphaxiv 2605.25537,据摘要把训练时 RTC 的二值前缀推广为连续权重窗口);FutureRTC(2607.24008);VLASH(2512.01031)、A2C2(2509.23224,训练时 RTC 论文 §II 提及:分别用"单个未来动作条件"和"轻量校正头"解决块间不连续)。
|
||||
|
||||
---
|
||||
|
||||
### 2. 代价引导扩散运动规划
|
||||
|
||||
#### 2.1 各方法要点与关键数字
|
||||
|
||||
**MPD(IROS'23,2308.01557)**
|
||||
- 算法(§III-D, Alg.1):每个去噪步先算先验均值 μ_t,再在 μ_t 处加代价梯度 g=−Σλ_i∇c_i,**丢弃协方差 Σ_t 缩放**(否则 t→0 时引导消失)。训练/推理 **25 个扩散步**(§IV-A "trained for 25 diffusion steps")。
|
||||
- 结果(Table I,100 个上下文×每上下文 100 条轨迹,RTX 3090;S = 批内至少一条无碰撞):
|
||||
- Panda Spheres(训练环境):DPrior 0.3 s / S 88% / 碰撞航点比 I 11.5% → MPD 1.1 s / S 100% / I 1.2%。
|
||||
- Panda Spheres-Extra Obstacles(新障碍):DPrior 0.3 s / 78% / I 23.9% → MPD 1.1 s / 93% / I 12.5%;CVAE-Posterior(先采样后优化)0.8 s / 45%。
|
||||
- Panda Shelf(训练环境):DPrior 100%/I 3.6% → MPD 100%/I 0.6%。
|
||||
- PointMass3D Maze-Extra:DPrior 51% → MPD 82%(I 14.8%→3.1%)。
|
||||
- 代价:引导使时间约 0.3 s → 1.0–1.1 s(≈3.5×),作者称主要开销在代价梯度而非网络(§IV-B)。
|
||||
- 真机(§IV-C):25 条无碰撞规划执行后 19/25 无碰撞,归因于球体碰撞近似误差。
|
||||
|
||||
**MPD 期刊版(2412.19948)**
|
||||
- B 样条控制点空间扩散;**DDIM 15 步 + 二次时间表**;**只在最后 i_cost=3 步施加代价梯度,每步 M=4 次内梯度步,共 12 次代价梯度步**;用信赖域 δ=0.15 约束偏离先验均值(式 15),λ_prior∈[0.25,0.5](附录 B)。作者原话:高噪声水平下"this gradient produces little effect",所以只在末段引导(§III-F)。
|
||||
- 延迟(§IV-D, Fig.7):EnvSpheres3D-Panda,100 条轨迹总计 ≈0.56 s,其中扩散采样仅 0.057 s(≈3.8 ms/次网络前向),**其余几乎全是代价梯度**。
|
||||
- 新障碍下有效轨迹占比(§IV-D):EnvWarehouse-Panda,Dprior 18.4% → MPD 73.5%;vs 无信息 GP 先验+代价(≈CHOMP)成功率 67.8% → 96.0%。
|
||||
- **"先采样再优化"对照(与我们的"事后梯度投影"最接近)**:基线 Dprior+Cost 使用**相同数量**的代价优化步(§IV-B)。真机 Table I:Dprior 成功 0%;Dprior+Cost 成功 100%、有效占比 37.0%、多样性 27.95;MPD 成功 100%、有效占比 78.0%、多样性 59.50。§IV-E/Fig.11 解释:轨迹大段已在障碍内时,事后梯度"更难把它移出碰撞"。
|
||||
- 局限(§V):提到可用"每步投影到安全流形"替代分类器式引导,但"projection can be computationally expensive"——未实验。
|
||||
|
||||
**EDMP(2309.11414)**
|
||||
- 在 MPD 基础上用 **12 个代价函数集成**(5 个相交体积 + 7 个扫掠体积),并行跑多条引导扩散,取最小碰撞代价(§III, Alg.1)。GPD 论文指出 EDMP 使用 T=256 去噪步(GPD §IV)。
|
||||
- 结果(Table I/II,MπNets 测试集,成功率%):EDMP Global/Hybrid/Both = 75.93/86.13/85.06;对比 MπNets(Hybrid 训练) 75.78/95.33/95.06。Table III:单引导平均 79.25% vs 集成 89.30%。
|
||||
- 失效模式(§III):SDF 型碰撞代价"在起终点之间有窄架子时挣扎";需"障碍膨胀"技巧才能诱出回撤行为(Fig.3)——即**局部极小值、需手工调代价**。
|
||||
|
||||
**GPD(2501.18229)**
|
||||
- 在 Bernstein 系数(8 个控制点)空间扩散,梯度经 Bᵀ 预条件(式 5)使整条轨迹"像拉绳子一样"整体移动;T=64(EDMP 为 256)。
|
||||
- Table I(单代价引导,成功率% Global/Hybrid/Both,时间):PD(无引导多项式先验)32.11/40.38/41.54,0.22 s;MPD 51.33/62.27/67.12,7.32 s;EDMP-1G 53.11/66.50/68.88,7.95 s;**GPD-1G 65.50/72.89/73.00,0.8 s**。→ 在同一参数化下,引导比无引导 +33 个百分点(Global),延迟 ×3.6。
|
||||
- Table II:GPD-7G 81.94/90.88/90.24(0.85 s);GPDS(单引导+RRT-Connect 拼接)87/92.83/92.61(1.9 s);单独 RRT-Connect 83.33/90.83/90.60(7.14 s)。
|
||||
- 失效模式(§III-B, Fig.3):航点空间引导只把个别航点推出碰撞,整条轨迹仍不可行;高噪声步的引导被去噪"拉回先验"所压倒。
|
||||
|
||||
**CAMPD(2510.14615)——反例:不用代价引导**
|
||||
- 无分类器引导(CFG),以障碍参数(球/长方体的位置尺寸)通过注意力条件化,无代价梯度(§III)。附录:T_train=25;DPM-Solver++ 推理仅 **T_inf=3 步**;输出加高斯滤波。
|
||||
- Table I(随机球环境,100 条/批):0.066 s / 批,S 97.5%(w=1),可行轨迹率 FTR 79.4–82.8%;对比 MPD 3.165 s、S 80.7%、FTR 59.6%(部分随机球)。CFG 强度 w=5 时 FTR 降到 67.9%、平滑性变差(**过强引导→离流形**)。
|
||||
- Table II(MπNet 测试集,N_batch=12):DDPM 25 步 成功 90.7%(7+20 ms,IK+规划);**DPM-Solver++ 3 步 w=1/2/5:86.9%/87.6%/78.9%(8+5 ms)**;N_batch=64:DDPM 98.3%,3 步 96.2%/97.2%/93.3%(8+7 ms);cuRobo 92.0%(N=12, 26 ms)/93.8%(N=64, 111 ms)。→ **少步(3 步)条件化生成器比 25 步只掉 ~1–4 个百分点**。
|
||||
|
||||
**DiffusionSeeder(2410.16727)——扩散出种子 + 事后优化**
|
||||
- 深度图条件 DDPM,**DDIM 5 步**、12 条种子,6 ms(RTX 4090,含 ViT);然后 cuRobo 优化 N_iters 次(§4.3, §5)。
|
||||
- Table 1(部分观测):25 次迭代 85.1% / 15 ms 规划;50 次 85.8%;475 次 86.2%;cuRobo-100 77.9% / 207 ms。
|
||||
- **附录 7.8.3:在环代价引导(k=60, n=20 步/时刻,扫参最优)只把成功率从 80.6% 提到 81.1%**;作者解释:条件化模型已输出低代价区域的种子。
|
||||
- **附录 7.8.9(无优化器)**:纯扩散输出无碰撞率仅 ≈38%,最大 jerk ≈270 rad/s³,经 cuRobo 优化降到 ≈106。→ 事后优化是主要"纠错"手段。
|
||||
- 分布外(附录 7.8.1,窄通道):DiffusionSeeder 与 cuRobo 同为 52.4%。
|
||||
|
||||
#### 2.2 问题逐条回答
|
||||
|
||||
**Q1:1–2 步去噪时代价引导还有效吗?**
|
||||
- **[原文] 没有任何一篇在 1–2 步下测试过代价引导。** 最少的是:MPD 期刊版 15 步 DDIM 且只在最后 3 步引导(每步 4 次内梯度),DiffusionSeeder 5 步(引导仅 +0.5 pt),CAMPD 3 步但用的是 CFG 不是代价梯度,RTC 用 5 步(是前缀修复引导,不是碰撞代价)。
|
||||
- **[原文] 少步会让梯度引导变得不稳定**:RTC 附录 A.2——n=5 时引导权重 β 过大导致动作块发散、最大加速度上升(Fig.7),β 需夹到 5;作者明说图像修复常用 n=100,控制里 n=5 才需要夹紧。GPD/MPD 都说高噪声阶段的梯度基本无效。
|
||||
- **[推断]** 在 1 步生成器上,"引导"在数学上退化为:一次网络前向 + 在输出(或其 x̂₁ 估计)上做若干梯度步——等价于事后梯度投影;在 2 步时,只有第二步之前一次机会,与 MPD"仅末段 3 步引导、每步多次内迭代"的有效方案在结构上相同,即本质上也是"先验输出 + 局部优化"。所以对我们而言,"1–2 步 + 引导"与"1 步 + 事后投影"区别很小,选后者更简单。
|
||||
|
||||
**Q2:相对无引导提升多少,代价多少延迟?**
|
||||
| 来源 | 无引导 | 有引导 | 延迟 |
|
||||
|---|---|---|---|
|
||||
| MPD-IROS Panda Spheres(训练环境) | S 88%, I 11.5% | S 100%, I 1.2% | 0.3→1.1 s / 100 条 |
|
||||
| MPD-IROS Panda Spheres + 新障碍 | 78%, I 23.9% | 93%, I 12.5% | 同上 |
|
||||
| MPD-期刊 Warehouse + 新障碍 | 有效 18.4% | 73.5% | 0.56 s,其中网络 0.057 s |
|
||||
| GPD(MπNets Global) | PD 32.11% | GPD-1G 65.50% | 0.22→0.8 s |
|
||||
| EDMP 集成 vs 单引导 | 79.25%(单) | 89.30%(12 个) | EDMP 8.22 s(GPD Table II) |
|
||||
| DiffusionSeeder(条件化模型) | 80.6% | 81.1% | 在环引导 n=20/步,额外开销未报 |
|
||||
| CAMPD(无代价引导) | — | 3 步 86.9–87.6% vs MPD 慢 ~48× | 66 ms vs 3.165 s / 100 条 |
|
||||
**规律 [原文+推断]**:引导的增益在"先验不知道障碍"(新障碍、分布外)时大(+15~+55 pt),在"先验已被环境条件化/训练环境已覆盖"时小(DiffusionSeeder +0.5 pt;MPD 训练环境主要是把碰撞航点比从 11.5% 压到 1.2%)。我们的环境是固定的、训练数据可完全覆盖 → 属于后一类。
|
||||
|
||||
**Q3:失效模式**
|
||||
- 局部极小:EDMP §III(SDF 代价在窄架子间失败,需障碍膨胀、多代价集成);MPD-期刊 §I(优化方法依赖初始化);GPD Fig.3(逐航点推不出整段碰撞)。
|
||||
- 离流形 / 分布偏移:MPD-期刊式 15 用 δ 信赖域"防止偏离先验太远导致分布偏移";RTC A.2:β 过大 → 发散、jerk ↑;CAMPD:CFG w=5 → FTR 82.8%→67.9%、平滑性变差。
|
||||
- 高噪声阶段引导无效、被先验压倒(MPD-期刊 §III-F;GPD §III-B)。
|
||||
- 未经优化的扩散输出动力学质量差:DiffusionSeeder 纯输出 jerk ≈270 rad/s³、无碰撞率 ≈38%(附录 7.8.9)。
|
||||
- 分布外场景无优势:DiffusionSeeder 窄通道 52.4% = cuRobo。
|
||||
|
||||
**Q4:能否用"对输出块的事后梯度投影"替代引导?**
|
||||
- **[原文] 反对证据**:MPD-期刊 Dprior+Cost(同等梯度步数)真机有效占比 37% vs MPD 78%,多样性 27.95 vs 59.50;CVAE-Posterior(先采样后优化)在 Panda+新障碍仅 45% vs MPD 93%。原因:先验样本大段穿过**训练时不存在**的障碍时,事后梯度难以把它推出来。
|
||||
- **[原文] 支持证据**:DiffusionSeeder(环境条件化先验 + 事后优化 25–50 次)85–86%,在环引导几乎无增益;CAMPD 条件化 3 步无引导即达 87–97%。
|
||||
- **[推断] 对我方的结论:可以替代,而且更合适。** 反对证据的前提是"推理时出现了先验没见过的障碍";我们的立柱是固定且已知的,先验在训练中就学会了绕柱的两种模式,事后投影只需修补小幅穿透/余量不足——正是事后局部优化擅长的。并且我们有解析胶囊距离,16×6=96 维块上做几次投影梯度步在 JS 中是亚毫秒级(未测)。唯一要防的是"整块已在柱子错误一侧"这类模式错误——投影修不了,应交给生成器多样本+安全层拒绝/回退。
|
||||
|
||||
---
|
||||
|
||||
### 3. 实时分块 RTC 与训练时前缀条件化
|
||||
|
||||
#### 3.1 RTC 算法(2506.07339, §3, Alg.1)
|
||||
- 异步:执行当前块的同时生成下一块;推理延迟 d=⌊δ/Δt⌋ 内必然执行的前 d 个动作被"冻结",其余"修复"(inpainting)。约束 d ≤ s ≤ H−d(Fig.3)。
|
||||
- 修复方法:基于 ΠGDM 的伪逆引导(式 2–4):v ← v + min(β, (1−τ)/(τ·r_τ²))·(Y−¹)ᵀ diag(W) ∂¹/∂A^τ,**每个去噪步需一次向量-雅可比积(反向传播)**。β 为作者新增的权重夹紧,β=5。
|
||||
- 软掩码(§3.2,式 5):前 d 步权重 1,之后到 H−s 指数衰减,最后 s 步为 0;作者称在 d 小时"critical"。A.4:指数衰减最好,线性几乎一样;Diffuser 式"硬覆盖"修复更便宜、"仍有一些收益"但不如引导式。
|
||||
- 延迟估计:取最近 b=10 次延迟的最大值;s=max(d, s_min)。
|
||||
|
||||
#### 3.2 所需推理步数与延迟
|
||||
- **[原文]** 仿真与真机都用 n=5(Table 4)。π0.5 上:每次去噪 14 ms→35 ms(2.5×),模型总延迟 76 ms→97 ms(Table 3);BID N=16 为 115–223 ms(Table 1)。
|
||||
|
||||
#### 3.3 是否适用于 1 步生成器
|
||||
- **[原文]** 作者:仅适用于扩散/流策略(§6);未测 n=1。A.2:τ=0 时权重无穷大必须夹紧;n=5、β≥4.25 时夹紧只决定第一步权重。
|
||||
- **[推断]** n=1 时整个输出就由"τ=0 处夹紧的一步 + 一次 VJP"决定,引导强度完全由 β 人工设定,属于无依据的外推;Pokle 等从 τ>0 起步的变体作者未尝试。而且浏览器端推理(ONNX Runtime Web 等)做反向传播不方便。→ 对我们 **不推荐推理时 RTC**。
|
||||
|
||||
#### 3.4 实测收益 vs 时间集成 / 朴素分块
|
||||
- **Kinetix 仿真(§4.1, Fig.5,H=8,2048 次/点)[原文定性,具体数值仅在图中,未读出]**:TE "across the board" 表现差,**即使 d=0**(多模态下有效动作的平均不一定有效);RTC 对延迟最鲁棒,领先 BID 且差距随 d 增大;硬掩码弱于软掩码(d 小时更明显);RTC 执行步长越短越好。
|
||||
- **真机(§4.2, Fig.6,π0.5,6 任务,480 回合)**:吞吐量在所有延迟下最佳,+100/+200 ms 时显著;RTC 对注入延迟"完全鲁棒",同步推理线性退化;**两种 TE 在 +100/+200 ms 下振荡到触发保护停机**;Fig.1:同样动作比同步快 20%,比 TE 更平滑;点蜡烛任务最终得分优势大。
|
||||
- **BID(2408.17355)**:N=16, K=3;相对 vanilla 闭环 +32%,与 EMA(=TE) 组合 +46%(§5.2, Fig.7);EMA 在 7 任务中 2 个下降,且最优衰减率因任务而异(附录 A.4);VQ-BeT 上 1→16 样本成功 49.1%→54.2%,时间 13.2→25.9 ms(Table 2)。RTC 论文称 BID 在仿真不如 RTC 且算力高很多。
|
||||
- **ACT 原文(2304.13705, §VI-A, Fig.8b)**:TE 对 ACT +3.3%,对 BC-ConvMLP +4%,对 VINN 下降;注意 ACT 测试时把 CVAE 的 z 设为 0(确定性解码,§IV),即 **TE 在"单峰确定性"预测上才有效**——这正是它在多模态扩散/流策略上失效的原因。
|
||||
|
||||
#### 3.5 更简单的训练时前缀条件化是否有效(2512.05964)
|
||||
- 方法(§IV):训练时随机采样延迟 d,前缀用真值非噪声动作并把其流匹配时间设为 1,只对后缀算损失;需允许逐 token 不同时间步(adaLN 的 scale/shift/gate 逐 token);推理零额外开销(Alg.1 代码几行)。
|
||||
- 结果 **[原文]**:仿真中 d≥2 时优于推理时 RTC,差距随 d 增大而扩大;**d=0、1 时"very marginally worse"**(Fig.3,数值仅在图中)。真机 π0.6(盒子组装、意式咖啡):成功率与时长与推理时 RTC 持平,端到端延迟 108 ms(d≈5)vs 135 ms(d≈7)。
|
||||
- 局限 **[原文]**:只支持"硬"前缀(d 个动作),不能像软掩码那样软利用剩余重叠;需按预期延迟选训练延迟分布(仿真用 {0..4} 指数递减权重,真机 U[0,10])。
|
||||
- **[推断]** 对 1 步生成器天然适用:它只是"条件输入",与积分步数无关。
|
||||
|
||||
#### 3.6 对我方设定的特殊考量 **[推断]**
|
||||
- 我们 H=16、s=3;若浏览器单次推理 <20 ms,则 d=0–1,硬前缀只有 0–1 个动作——恰好是训练时 RTC 相对最弱、软掩码最有价值的区间。建议:把上一块的**全部剩余重叠**(16−3=13 步)作为条件输入,并按 RTC 式 5 的衰减思路在训练中随机截断/加噪("软前缀"),或参考 Soft RTC(**[未验证]**)。这是对两篇论文的组合外推,需自己做消融。
|
||||
- **时间集成在我们场景有硬伤**:立柱左右绕行是典型双模态;两条各自无碰撞的块取平均可能正好穿柱(RTC Fig.2 正是此例)。安全层会拒掉,但会造成频繁回退/停顿。不建议用 TE。
|
||||
- 安全层与 RTC 互补:前缀条件化保证块间连续性(减少安全层因加速度跳变而拒绝),安全层保证已提交 3 步的硬安全。
|
||||
|
||||
---
|
||||
|
||||
### 4. 对我方设定的结论表
|
||||
|
||||
| 问题 | 结论 | 证据强度 | 不确定性 |
|
||||
|---|---|---|---|
|
||||
| 1–2 步下用代价引导 | **不采用**;改为"生成器输出 + 事后解析梯度投影" | 无论文测过 1–2 步引导 **[推断]**;少步引导不稳定 [原文 RTC A.2] | 1 步下引导 vs 投影的差异未经实验 |
|
||||
| 引导的预期增益 | 固定已知环境下小(先验已学会绕柱);主要收益是降低穿透/余量不足比例 | DiffusionSeeder +0.5 pt;MPD 训练环境 I 11.5%→1.2% [原文] | 我方先验的碰撞率需实测 |
|
||||
| 引导延迟代价 | 论文中 3.5–50× 开销,几乎全在代价梯度 | MPD/GPD/CAMPD [原文] | 我方解析胶囊距离很便宜,开销会小得多 **[推断,未测]** |
|
||||
| 事后投影替代引导 | **可以**,前提是障碍在训练分布内 | 支持:DiffusionSeeder、CAMPD;反对:MPD Dprior+Cost 37% vs 78%(仅在新障碍下)[原文] | 投影修不了"走错侧"的模式错误,需多样本或安全层回退 |
|
||||
| 失效模式 | 局部极小、离流形/jerk、模式错误 | EDMP/GPD/RTC A.2/CAMPD/DiffusionSeeder [原文] | — |
|
||||
| 推理时 RTC(ΠGDM 修复) | **不推荐**:需 VJP(浏览器难)、仅在 n=5 验证、n=1 无依据 | [原文] + **[推断]** | 若改用少步(≥3–5)可重新评估 |
|
||||
| 训练时前缀条件化 | **推荐**,对 1 步生成器天然适用、零推理开销 | 2512.05964 [原文](d≥2 优于 RTC,d≤1 略逊) | 我方 d≈0–1,硬前缀很短;需加"软/全重叠"条件化并做消融 **[推断]** |
|
||||
| 时间集成 | **不推荐** | RTC 仿真 TE 全面差、真机触发保护停机;BID 中 EMA 不稳;ACT 仅在确定性单峰下 +3.3% [原文] | 若生成器近似确定性单峰,TE 危害会小 |
|
||||
| BID | 可作为对照/上限,但需 N≈16 批采样 + 弱模型 | +32%(+46% 配 EMA),时间约 ×2 [原文] | 浏览器批量推理的实际延迟未知 |
|
||||
|
||||
### 5. 局限
|
||||
- 多篇关键数值只在图中(RTC Fig.5/6、训练时 RTC Fig.3/5、MPD-期刊 Fig.6、BID Fig.6/7),文本未给具体数字,本文只引用了定性结论。
|
||||
- 所有运动规划论文都是 7-DOF Panda、离线规划整条轨迹(H=32–64),而非 16 步闭环滚动块;成功率口径多为"批内至少一条成功",与我们单样本闭环不同。
|
||||
- 没有任何来源测试浏览器推理、1 步生成器 + 代价引导、或 50 Hz 下 d≈0–1 的 RTC。
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 四、后训练(APG/RL)与遗漏范式
|
||||
|
||||
## 后训练(fine-tune)方案与遗漏范式评估
|
||||
|
||||
> 范围:(A) 后训练方法(ELMP-APG、DPPO、ReinFlow、DRP/IMPACT、Neural MP TTO),以及 APG 与 RL 的对比;(B) 可能遗漏的范式(C-space 距离场、TD-MPC2、Diffusion Forcing、(VQ-)BeT、IBC、Mamba、Geometric Fabrics/RMPflow、cuRobo 式 GPU 轨迹优化做自监督精修)。
|
||||
> 我们的设定:6-DOF 机械臂;环境固定且完全已知(一根立柱,胶囊体碰撞,有解析距离);低维状态;50 Hz 闭环;16 步 action chunk;3–5M 参数;浏览器推理;**运行时不允许 teacher/planner**(teacher 只能离线用于预训练数据);单张 RTX 3090 训练;近立柱困难用例必须 30/30;必须保留左/右绕行的多模态。
|
||||
> 标注约定:**[原文]** = 已抓取全文并定位到章节;**[摘要]** = 只核对了摘要/检索摘录;**[未验证]** = 我的推断或背景知识,未在本次抓取的原文里核实。
|
||||
> 原文全文(HTML 及抽取的 txt)存放在 `/workspace/work/out/survey/src/<arxiv_id>.{html,txt}`。
|
||||
|
||||
---
|
||||
|
||||
### 0. 结论速览
|
||||
|
||||
| 方法 | 结论 | 一句话理由 |
|
||||
|---|---|---|
|
||||
| ELMP 解析策略梯度(APG) | **采用(作为主后训练阶段)** | 我们的环境固定、距离解析可得、运动学 rollout 天然可微,正是 APG 的理想条件;不需要新增专家数据 |
|
||||
| DPPO | **借鉴思路**(若主干是扩散模型,用于"补最后几例") | 能直接优化稀疏的 0/1 成功率,探索沿数据流形进行;但样本效率低,而且奖励不对称时会塌缩到单一模式 |
|
||||
| ReinFlow | **借鉴/备选**(主干若为 flow/shortcut,优先于 DPPO) | 1–4 步去噪即可做 RL;墙钟时间比 DPPO 少 62.82%;推理仍是确定性的 flow,适合浏览器 |
|
||||
| DRP / IMPACT 迭代师生微调 | **采用其思路**(离线 teacher 重标注 = 离线 DAgger) | teacher 只在离线用,符合规则;论文里成功率 +45%;对"近立柱擦碰"这种失败最有效 |
|
||||
| Neural MP 测试时优化(TTO) | **视规则而定:借鉴**(运行时多采样 + 解析距离挑选) | 用 K 个 chunk 采样再用胶囊距离打分很便宜,还能保住多模态;但它算不算"运行时 planner"需要你们拍板 |
|
||||
| CDF(C-space 距离场) | **借鉴**(作为 APG 损失或策略输入特征) | 关节空间梯度是单位范数,比"任务空间 SDF×雅可比"条件更好;立柱固定,可以离线预计算 |
|
||||
| RDF / Neural-JSDF | **否决**(作为替代);Neural-JSDF 可作特征参考 | 我们已有精确的解析胶囊距离,学出来的距离只会更不准 |
|
||||
| TD-MPC2 | **否决**(可借鉴"学习的价值函数"来截断 BPTT) | 动力学已知,没必要学世界模型;运行时 MPPI(512 样本×6 次迭代)本质上是 planner |
|
||||
| Diffusion Forcing | **否决**(可借鉴"带代价的引导采样") | 优势在长序列和记忆,我们 16 步 chunk、低维、无部分可观测,用不上 |
|
||||
| VQ-BeT / BeT | **借鉴**(显式离散"左/右模式 token"+连续残差) | 显式离散化模式,最直接地保证左右多模态;单次前向推理 |
|
||||
| IBC(能量模型/隐式 BC) | **否决** | 无导数优化(DFO)推理只适合 ≤5 维,我们的 chunk 是 16×6=96 维 |
|
||||
| Mamba / SSM 策略 | **否决** | 优势在长历史和视觉/3D 主干;我们是低维、短历史;浏览器端选择性扫描算子支持[未验证] |
|
||||
| Geometric Fabrics / RMPflow(+学习组件) | **借鉴为离线 teacher / 安全层参考** | 单独用会陷入局部极小;DRP 证明"策略+fabric"作离线 teacher 很有效 |
|
||||
| cuRobo 式 GPU 轨迹优化做自监督精修 | **采用**(离线:以策略 rollout 为初值做 L-BFGS 精修再蒸馏) | 从策略样本出发精修,会留在同一同伦类(左/右),既保住多模态又补精度;离线使用符合规则 |
|
||||
|
||||
---
|
||||
|
||||
### (A) 后训练方法
|
||||
|
||||
#### A1. ELMP — Efficient Learning for Motion Planning via Analytical Policy Gradients(arXiv 2607.00215,ETH RSL,2026-06-30)
|
||||
来源:https://arxiv.org/abs/2607.00215 ,全文 https://arxiv.org/html/2607.00215v1 **[原文]**
|
||||
|
||||
**是什么**:两阶段训练。阶段 1 用约 60 万条 AIT* 专家轨迹做 BC(损失 = 动作 L2 + 碰撞球心 FK 点匹配,Eq.1)。阶段 2 用 APG 微调:把策略在可微运动学层里自回归展开 H 步,`q_{t+1}=clamp(q_t+Δq_t)`,然后对目标、碰撞、平滑三项损失做 BPTT(Alg.1,§III-C)。
|
||||
- 目标项:位置平方误差 + λ_rot·‖R_pred−R_tgt‖_F²(弦距离,避免四元数损失的梯度消失),**只作用在终端 q_H**(Alg.1 第 15–16 行)。
|
||||
- 碰撞项:`Σ_t Σ_k ReLU(ε_margin − Φ_env(x_k(q_t)))`,用机器人球体近似和解析的原语 SDF(盒子、圆柱),并对非相邻连杆加自碰撞铰链损失(Eq.4,§III-D)。
|
||||
- 平滑项:速度和加速度的二次惩罚(Eq.5)。
|
||||
|
||||
**关键数字**:
|
||||
- 训练稳定性的处理(§IV-B):明确承认"长时域 BPTT 容易梯度消失或爆炸",对策只有 ① 用 BC 初始化作为稳定起点,② 梯度范数裁剪 ≤1.0。此外用 Adam,lr 1e-4 加指数衰减,16 位混合精度。**展开长度 H=69**,APG 训练 50 个 epoch(batch 48,DDP),BC 训练 500 个 epoch;硬件 6×RTX 3090;ε_margin=0.03 m。**没有截断 BPTT、没有学习的 critic、没有课程**;SHAC 只在结论里列为面向接触丰富系统的未来工作(§V)。
|
||||
- Tab.I(1800 道留出题):ELMP-BC → ELMP-APG,环境碰撞率 31.3% → 8.9%;平滑轨迹 92.6% → 99.1%;1 cm 内位置精度 70.4% → 89.0%;15° 内姿态精度 76.7% → 93.5%。同一套 APG 套到 MπNets 上,碰撞率也从 16.3% 降到 10.8%。
|
||||
- 数据效率(§IV-C,Fig.4):只用 1 万条专家轨迹预训练再做 APG,得到 72.0% 成功率、19.4% 碰撞率,**已经超过用满 60 万条的纯 BC**(57.9%、31.9%),相当于专家数据少 60 倍。APG 的增益在低数据区最大。
|
||||
- Tab.II:平均成功率 84.8%(cuRobo 86.1%,AIT* 76.7%,MπNets 50.1%,CuRobo-MPC 16.1%);冷启动 7.8 ms。在 Cubby(窄空间)上只有 72.7%,低于 cuRobo 的 88.0%:**在高度受限的几何里仍不如优化器**。
|
||||
- 新环境迁移(§IV-F):零样本 57.3% → APG 89.8%,在同一批题上高于 BC+专家数据的 85.0%。采样一道题 82 ms,AIT* 求一条专家轨迹 21.5 s;20 万道题采样需 4.5 CPU 小时,同规模专家数据需 1194 CPU 小时以上。
|
||||
- 加一项笛卡尔路径长度惩罚(ELMP-APG-Cartesian)后,末端路径从 0.85 m 缩到 0.63 m,碰撞率略升到 10.9%。说明换目标不需要新示范。
|
||||
- 真机(§IV-G):30 Hz MPC 式闭环,成功率 72.2%,碰撞率 25%(仿真是 8.9%)。差距归因于深度相机噪声,与我们无关,因为我们的环境完全已知。
|
||||
|
||||
**对我们的适配:采用(作为主后训练阶段)**
|
||||
- 适配度极高。我们的胶囊体解析距离就是 ELMP 的 Φ_env(甚至更好:胶囊–胶囊距离精确、处处次可微)。环境只有一根立柱,不需要 PointNet,展开计算极轻。3–5M 参数的低维网络,在 1 张 3090 上跑 batch 数千条并行 BPTT 应该可行(ELMP 用 6 卡是因为 PointNet++ 处理 6272 点)。**单卡可行性是推断 [未验证]**。
|
||||
- 我们需要的改动:
|
||||
1. **展开单位是 chunk**:50 Hz、16 步 chunk。如果每 8 步重规划一次、一个回合 3–6 s,就是约 150–300 个控制步、20–40 次策略调用。BPTT 深度按策略调用次数算,比 ELMP 的 69 次调用更深或相当(ELMP 每步都调用策略)。**这些回合长度是我的假设,请按实际 episode 长度核对。**
|
||||
2. **梯度爆炸对策(ELMP 之外的补充,[未验证] 为背景知识)**:
|
||||
- 截断 BPTT:每 k 次策略调用 detach 一次 q。
|
||||
- 对 q_t 的梯度做逐步裁剪或衰减(γ-discount backprop)。
|
||||
- 短窗口 + 终端价值(SHAC 式,ELMP §V 提到 SHAC)。
|
||||
- 保留 BC 损失作为锚点(ELMP 原文没写联合 BC 损失,属于我的建议)。
|
||||
- 积分步本身是 `q+Δq`,雅可比为 I + ∂π/∂q。只要策略对 q 的 Lipschitz 常数不大,爆炸风险主要来自网络而非动力学;可用谱归一化或 LayerNorm 控制。
|
||||
3. **铰链损失的盲区**:ReLU(ε−d) 在 d>ε 时梯度为 0。当 BC 策略的轨迹"冲着柱子中心"时,SDF 梯度只能侧推,**无法跨同伦类**(不会从"撞上"直接变成"绕左/绕右"),而且对称位置的梯度可能相互抵消。近立柱困难用例可能卡在局部极小,因此单靠 APG 不一定能到 30/30(推断)。
|
||||
4. **多模态风险**:若主干是扩散或 flow,APG 需要对采样链做重参数化反传(flow 用 1–4 步最可行)。梯度会把每个样本在它自己的模式内往外推,大体能保住左/右;但会压缩方差,让输出趋向确定性。如果立柱一侧代价更低,也会改变左右比例。需要监控左/右比例,并加 BC 或 KL 锚定(推断)。
|
||||
5. 我们的成功判据(30/30)是二值的,APG 优化的是稠密代理损失。代理与判据之间要对齐:ε_margin 设成略大于验收裕度,并对困难用例采样加权。
|
||||
|
||||
#### A2. DPPO — Diffusion Policy Policy Optimization(arXiv 2409.00588)
|
||||
来源:https://arxiv.org/html/2409.00588 **[原文]**
|
||||
|
||||
**是什么**:把去噪过程视为一个 MDP,嵌进环境 MDP,组成双层的 "Diffusion Policy MDP"。每个去噪步都是高斯似然,因此可以直接用 PPO(§4,Fig.3)。
|
||||
|
||||
**关键数字和技巧**:
|
||||
- 只微调最后 K′ 个去噪步,或者改用 DDIM 微调(训练时 η=1,评估时 η=0,最少可到 5 步)(§4.3)。state 输入时预训练 20 步、微调最后 10 步(§5.3)。K′ 太小(如 3)会降低渐近性能(App C.2)。
|
||||
- 探索噪声:σ_k 下限 σ_min^exp 取 0.01–0.1,似然评估时 σ_min^prob=0.1(§4.3)。PPO 的 clip 比例按"被裁剪样本占 10–20%"来调,早期去噪步的 ε 用 0.1×(App)。
|
||||
- MLP 头比 UNet 更容易稳定微调;MLP 下 T_a<T_p 会不稳定(§4.3 脚注)。**T_a=16 时 DPPO 仍能稳定提升,Gaussian/GMM 则可能完全学不动(§6,Fig.11 右)**。这一点和我们的 16 步 chunk 直接相关。
|
||||
- Robomimic(state 输入):Lift/Can 收敛到约 100%,Transport 超过 90%(§5.3)。Furniture-Bench 真机零样本 80%(16/20),Gaussian 策略仿真 88%、真机 0%(§5.4)。
|
||||
- 墙钟时间:DPPO-MLP 比 Gaussian 慢 21–24%(App D);从零训练约是 Gaussian 的 6 倍(App C.3)。**样本效率低于 off-policy 方法**,是作者承认的主要局限(§7)。
|
||||
- **多模态相关**:在 D3IL Avoid 实验(§6,Fig.10)里,作者**特意只奖励"最上方模式"**,DPPO 就会收敛到这个模式。也就是说,RL 会按奖励重塑模式分布。另外 App(Kitchen)指出:预训练没学到的模式,DPPO 也补不回来。
|
||||
- 结构化、在流形上的探索:去噪的多轮噪声让探索留在专家数据流形附近,适合"预训练已覆盖成功模式"的情形(§6 Benefit 1)。
|
||||
|
||||
**对我们的适配:借鉴思路**
|
||||
- 优点:直接优化 0/1 成功(例如"30/30、零碰撞"这种不可微判据);对长 chunk 稳定。我们的仿真只是运动学积分加解析距离,在 3090 上并行几千到几万个环境的成本极低,因此 RL 的"样本贵"在我们这里大幅缓解(推断)。
|
||||
- 缺点:
|
||||
- 如果左/右奖励不完全对称,或某侧略易成功,PPO 会把概率质量移到一侧,**违背"保留左右多模态"**。需要按模式平衡奖励或采样(例如按初始 BC 样本的绕行侧分组计算优势),或者显式加模式条件(见 B6)。
|
||||
- 需要扩散主干,浏览器推理要跑 K 步去噪;部署时可以用 DDIM 少步。
|
||||
- 建议定位:APG 之后若仍剩少量困难失败,用 DPPO/ReinFlow 以稀疏成功奖励"补尾巴",并加模式平衡。
|
||||
|
||||
#### A3. ReinFlow — Fine-tuning Flow Matching Policy with Online RL(arXiv 2505.22094)
|
||||
来源:https://arxiv.org/html/2505.22094 **[原文]**
|
||||
|
||||
**是什么**:在 flow 的确定性路径上加一个可学习的噪声网络(noise injection net),把 flow 变成离散时间马尔可夫过程,得到精确、闭式的高斯似然,然后用 PPO 式裁剪目标联合训练速度网络和噪声网络(§4.1–4.3,Alg.1)。**微调后丢掉噪声网络,部署的仍是确定性 flow**(§4.3)。
|
||||
|
||||
**关键数字**:
|
||||
- 摘要和 §1:Rectified Flow 在运动任务上回报平均净增 135.36%,墙钟时间比 DPPO 省 82.63%。Shortcut 模型在操作任务上成功率平均净增 40.34%,**可以只用 4 步甚至 1 步去噪**;总体墙钟时间比 DPPO 少 62.82%。
|
||||
- Robomimic 视觉任务成功率平均提升 45.77%,Can/Square 只用 1 步,Transport 用 4 步(§5.2)。
|
||||
- 去噪步数从 DPPO 的 10 步降到 4 步(App B)。成功率收敛到 100% 时,噪声水平会自然衰减(§4.3)。
|
||||
- 正则(§4.4,§6):默认在 state 任务上用熵正则;W2 正则约束会限制提升。噪声幅度是最关键的超参:过小探索不足,适中时回报可达 3 倍。
|
||||
- 局限(§7):on-policy,样本效率不高;对噪声幅度敏感。
|
||||
|
||||
**对我们的适配:借鉴/备选(若走 RL 路线,优先于 DPPO)**
|
||||
- 与浏览器部署最兼容:1–4 步 flow,推理成本约等于 1–4 次 MLP 前向。
|
||||
- 同样有 RL 的模式塌缩风险(见 A2),需要模式平衡。熵正则对保持左右两支可能有帮助,但论文**没有**测多模态保持 [未验证]。
|
||||
- 主干若是 flow/shortcut,也可以先 APG(通过 1–4 步 flow 反传)再 ReinFlow。二者共用同一个网络。
|
||||
|
||||
#### A4. Deep Reactive Policy(DRP)/ IMPACT(arXiv 2509.06953;作业说是 CoRL 2025,arXiv 页面只写了网站链接,**会议归属未验证**)
|
||||
来源:https://arxiv.org/html/2509.06953 **[原文]**
|
||||
|
||||
**是什么**:IMPACT 是一个以点云为条件、带 action chunk 的 Transformer 策略,预训练数据是 cuRobo 生成的 1000 万条轨迹(§3.1)。随后做**迭代师生微调**(§3.2):teacher = 冻结的 IMPACT 输出 chunk 的第一个动作作为中间目标,交给 Geometric Fabrics(用特权 SDF 的局部避障控制器)精修,得到 q_e,再用 q_e 监督 student。在 IsaacGym 里并行,每 1 万个梯度步用 student 替换 teacher 里的 base,循环往复。作者特意**不用 cuRobo 当微调 teacher**,因为每个仿真步、每个并行环境都调用规划器代价太高(§3.2)。运行时还叠加 DCP-RMP,处理动态障碍(§3.3)。
|
||||
|
||||
**关键数字**:
|
||||
- 迭代师生微调让成功率比预训练提升 45%(§3.2,Tab.6)。Tab.1:Static Environment 上 IMPACT 无微调 58.25 → 微调后 84.60;cuRobo(有特权信息)82.97。
|
||||
- 网络:4.67M 参数,冷启动 3.48 ms,300 Hz(RTX 4090)。NeuralMP 加 TTO 是 20M 参数、2970 ms(App E,Tab.5)。
|
||||
- 架构:6 层解码器、8 头、隐藏维 128、FF 1024,**action chunk 10**(Tab.7)。
|
||||
- 消融:同数据同微调下,IMPACT 比 NeuralMP 的 LSTM-GMM 再高 9%(App D,Tab.4)。
|
||||
|
||||
**对我们的适配:采用其思路(离线 teacher 重标注 = 离线 DAgger)**
|
||||
- 规模几乎一模一样:4.67M 参数,与我们的 3–5M 吻合;chunk 10 与我们的 16 接近。
|
||||
- "teacher 只在离线用"完全符合我们的规则:在 policy 自己访问到的状态上(特别是近立柱、即将擦碰的状态),离线调用 teacher(我们现有的 planner,或 fabric/局部优化器)重标注,再蒸馏。这正面解决 BC 的协变量偏移。DRP 的失败分析也是"预训练策略经常小擦碰"(§3.2),和我们近立柱用例的症状一致。
|
||||
- 多模态:如果 teacher 只做局部精修(fabric 或局部优化),就会保持 student 当前所在的绕行侧。**不要用全局规划器重新规划去当标签**:全局规划器可能把左侧状态标成右侧路线,破坏模式一致性(推断)。
|
||||
|
||||
#### A5. Neural MP 测试时优化(arXiv 2409.05864)
|
||||
来源:https://arxiv.org/html/2409.05864 **[原文]**
|
||||
|
||||
**是什么**:PointNet++ 加 LSTM 加 GMM 输出头,用 100 万到 300 万条 AIT*(经样条平滑)轨迹蒸馏。测试时假设障碍静止、控制器能精确跟踪,用线性前向模型从策略**采样 N 条完整轨迹**,用机器人 SDF 统计与场景点云的穿透,选穿透最少的那条执行(§III-C,Eq.,"selecting the path with minimal objective value across 100 trajectories")。
|
||||
|
||||
**关键数字**:
|
||||
- 真机无物体任务(Tab.I,§V):基础策略 66.67%(AIT*-80s 是 72.92%),加 TTO 达到 95.83%;规划时间从 1 s 增到 3 s。
|
||||
- 手持物体:完整方法 81%,去掉 TTO 31%,去掉 Objaverse 数据 44%(§V)。
|
||||
- App VIII-C:Bins 场景的 100 条采样轨迹里有 25% 完全无碰撞,TTO 从中挑选;基础策略的失败多是"回归不精导致的轻微擦碰"。
|
||||
- 数据缩放:1K 条 15%,10K 条 50%,100K 条 65%,1M 条 80%(§V 仿真)。
|
||||
- 编码器大小 4M/8M/16M 参数对应 94%/93%/92%,最小的反而最好(App IX)。GMM 比 L2/L1/PointMatch 分别高 7%/12%/24%。
|
||||
- DRP 的 Tab.5 给出 NeuralMP 加 TTO 的冷启动为 2970 ms。
|
||||
|
||||
**对我们的适配:借鉴(视规则而定)**
|
||||
- 我们可以做轻量版:每次重规划时从生成式策略采样 K(例如 8–32)个 16 步 chunk,用**解析胶囊距离**打分(最小间隙、终端误差),选最优。浏览器端代价约为 K 次前向加 K×16×(连杆胶囊数) 次距离计算,50 Hz 下可承受(推断)。
|
||||
- 这样还能**保住多模态**:采样覆盖左右两支,打分只剔除碰撞样本。
|
||||
- **需要你们判断**:用解析距离做运行时评分是否算"运行时 planner"。它不调用 teacher,只是碰撞检查加 argmin;比 Neural MP 的整轨迹 TTO 轻得多。若规则不允许,就只在训练评估时使用,或者用它来生成 APG/RL 的困难用例。
|
||||
- 局限:选择只发生在已采样的集合内。若 K 个样本全部撞柱,TTO 救不了;它是补丁而不是根治。
|
||||
|
||||
#### A6. APG 与 RL 在我们设定下的对比
|
||||
|
||||
| 维度 | APG(ELMP 式) | RL(DPPO / ReinFlow) |
|
||||
|---|---|---|
|
||||
| 样本效率 | 很高:每条 rollout 都给出全参数的精确梯度。ELMP 用 1 万条示范加 APG 就超过 60 万条纯 BC(§IV-C)**[原文]** | 低:on-policy PPO,DPPO §7 自认低于 off-policy;ReinFlow §7 同样自认 **[原文]** |
|
||||
| 墙钟时间(单张 3090,我们的运动学仿真) | 每步计算是"前向+反传 BPTT",显存随 H×batch 线性增长;预计数小时级 **[未验证估计]** | 仿真极便宜,可大规模并行;ReinFlow 比 DPPO 省 62.82% 墙钟时间 **[原文]**;整体预计与 APG 同量级或更慢 **[未验证估计]** |
|
||||
| 稳定性 | 依赖 BC 初始化和梯度裁剪(ELMP §IV-B);长展开有爆炸/消失和混沌损失面的风险(ELMP 引用 Metz 2021) | DPPO 和 ReinFlow 都报告微调稳定;对 clip 比例、噪声下限、噪声幅度敏感 **[原文]** |
|
||||
| 能处理的目标 | 只能处理**可微**的稠密代价:间隙铰链、终端位姿、平滑、路径长度 | 任意奖励,包括**稀疏 0/1 成功**和"零碰撞"这类不可微判据 |
|
||||
| 跨同伦类 | 不能(局部梯度只侧推)**[推断]** | 可以,但前提是探索覆盖到另一模式(DPPO 的探索停在数据流形附近)**[原文 §6]** |
|
||||
| 多模态保持 | 每个样本在自己的模式内被推;风险是方差压缩、比例漂移 **[推断]** | 风险较大:会按奖励重塑模式(D3IL 实验)**[原文]**;需要模式平衡 |
|
||||
| 主干要求 | 确定性策略最简单;扩散/flow 需对采样链做重参数化反传 | 需要随机策略:扩散用 DPPO,flow 用 ReinFlow |
|
||||
|
||||
**BPTT 时域问题小结**:ELMP 只用了"BC 初始化 + 梯度范数裁剪 ≤1 + 混合精度 + lr 1e-4 指数衰减",展开 H=69 步就稳定了(§IV-B)**[原文]**。我们若按 chunk 展开、总控制步 150–300,可以加这些手段 **[未验证,建议]**:
|
||||
- 截断 BPTT(例如每 2–4 个 chunk detach 一次);
|
||||
- 碰撞项按时间步加权,困难区间权重更高;
|
||||
- SHAC 式短窗口加学习的终端价值(ELMP §V 提及);
|
||||
- 联合保留 BC 损失(权重逐步退火);
|
||||
- 先短后长的课程(展开长度逐步增加)。
|
||||
|
||||
**推荐流水线(推断)**:BC 预训练(含左右两模式)→ 离线 teacher 重标注 / DAgger(A4)以及 cuRobo 式离线精修蒸馏(B10)→ APG 微调稠密代价(A1)→ 若困难用例仍未到 30/30,用 ReinFlow/DPPO 加模式平衡的稀疏成功奖励补尾巴(A2/A3)→(规则允许时)运行时 K 采样加解析距离挑选(A5)作为最后的安全网。
|
||||
|
||||
---
|
||||
|
||||
### (B) 可能遗漏的范式
|
||||
|
||||
#### B1. CDF — Configuration Space Distance Fields for Manipulation Planning(RSS 2024,arXiv 2406.01137)
|
||||
来源:https://arxiv.org/html/2406.01137v1 **[原文]**
|
||||
|
||||
**是什么**:在关节空间定义距离场 f_c(p,q) = 从 q 到"使机器人表面接触点 p 的关节构型集合"的最小弧度距离。它满足关节空间的 eikonal 方程 ‖∇_q f_c‖=1(§III),因此一步梯度投影就能求出全身 IK。神经 CDF 用 MLP 拟合,损失 = 距离 + 梯度余弦 + eikonal + tension(§IV)。
|
||||
|
||||
**关键数字**:
|
||||
- Tab.I(Franka,RTX 3090):投影迭代 1/2 次时,MAE 4.99/1.64 cm,成功率 60.3%/87.8%;推理 0.49 ms,投影 0.71 ms 级。
|
||||
- Tab.II:CDF 在 10.6 ms 内得到 8773 个全身 IK 解;SDF 方法 971 ms 只有 3652 个;吞吐超过 70 万解/秒,快约 180 倍(§V)。
|
||||
- Tab.IV(7D 运动规划):QP-IPOPT 成功率 CDF 93% vs SDF 51%;Geometric Fabrics 88% vs 74%;QP 控制器能跑 200 Hz 以上(§VI)。
|
||||
- 局限(§VII):无符号;零水平集样本有限时近处不准。
|
||||
|
||||
**对我们的适配:借鉴**
|
||||
- 立柱固定,可以**离线**为这根柱子求出 6-DOF CDF(或训练一个小 MLP),用作:
|
||||
① APG 的碰撞损失。关节空间梯度单位范数、方向一致,比"任务空间距离 × FK 雅可比"条件更好,可能缓解铰链损失的梯度消失和对称抵消(推断)。
|
||||
② 策略的额外输入特征(f_c 和 ∇_q f_c,共 7 维),直接告诉网络"往哪个关节方向离柱子最近"。
|
||||
- 我们的解析胶囊距离已经精确,所以 CDF 用作**辅助**,不用作替代。
|
||||
|
||||
#### B2. RDF — Representing Robot Geometry as Distance Fields(ICRA 2024,arXiv 2307.00533)**[摘要]**
|
||||
来源:https://export.arxiv.org/api/query?id_list=2307.00533
|
||||
用 Bernstein 多项式编码每个连杆的 SDF,再经运动学链组合成关节空间可查询的机器人 SDF,任务空间和关节空间都光滑可微。
|
||||
**否决**:我们是胶囊几何加解析距离,已精确、可微,RDF 只是更精细的机器人网格表示,不带来新能力。
|
||||
|
||||
#### B3. Neural-JSDF(Koptev, Figueroa, Billard,RA-L 2023,DOI 10.1109/LRA.2022.3227860)**[摘要/检索摘录]**
|
||||
来源:https://doi.org/10.1109/lra.2022.3227860 ,代码 https://github.com/epfl-lasa/Neural-JSDF
|
||||
用神经网络学习关节空间隐式 SDF(机器人到点的距离),梯度给出关节空间排斥场。用于 QP-IK 时平均 250 Hz,用于采样式 MPC 时 92 Hz;分别比基线距离计算快 15% 和 40%(摘要)。
|
||||
**否决**(作为替代):同上,我们有解析距离;而且它依赖运行时 QP/MPC 控制器。
|
||||
|
||||
#### B4. TD-MPC2(ICLR 2024,arXiv 2310.16828)
|
||||
来源:https://arxiv.org/html/2310.16828 **[原文]**
|
||||
**是什么**:在隐式(无解码器)世界模型的潜空间里,用 MPPI 做局部轨迹优化,配 TD 学习的 Q 值和最大熵策略先验。
|
||||
**关键数字**:
|
||||
- 104 个任务、单一超参(§1);多任务模型 1M–317M 参数,在单张 3090 上以 GPU·天计(Tab.1)。
|
||||
- 基础 5M 模型中,Q 网络约 3.16M 参数(App)。
|
||||
- 规划超参:H=3,6 次迭代,种群 512,策略先验样本 24,精英 64(App 超参表)。
|
||||
**否决**:
|
||||
- 我们的动力学(运动学积分)完全已知,学世界模型是多余的。
|
||||
- 运行时 MPPI(512×6×H)在浏览器里跑 50 Hz 很重,而且本质上就是运行时 planner,违反规则。
|
||||
- **可借鉴的一点**:学一个 V(q, goal) 作为 APG 截断 BPTT 的终端价值(SHAC 式)[未验证]。
|
||||
|
||||
#### B5. Diffusion Forcing(arXiv 2407.01392)
|
||||
来源:https://arxiv.org/html/2407.01392 **[原文]**
|
||||
**是什么**:对每个 token 使用独立的噪声水平做扩散训练,用因果模型实现"next-token + 全序列扩散"的混合。支持变长 rollout、长时域引导,以及 Monte Carlo Guidance(MCG,对多条未来样本平均引导梯度)(§3)。
|
||||
**证据**:D4RL 2D 迷宫的 6 个环境全部超过 Diffuser(§4.2,Tab.1);真机实验是需要记忆的水果换位任务(§4.4)。
|
||||
**否决**:它的长处(长序列稳定、记忆、部分可观测)我们用不上:16 步 chunk、低维、完全可观测。引导采样需要运行时代价梯度,性质上接近 A5 的运行时评分,规则同样存疑。
|
||||
|
||||
#### B6. BeT / VQ-BeT(arXiv 2206.11251 / 2403.03181)
|
||||
来源:https://export.arxiv.org/api/query?id_list=2206.11251 **[摘要]** ;https://arxiv.org/html/2403.03181 **[原文]**
|
||||
**是什么**:BeT 用 k-means 把动作离散化,Transformer 预测类别加连续偏移。VQ-BeT 用残差 VQ-VAE 对**动作 chunk** 分层离散化,主码做粗聚类、次码做细节(§3.2,N_q=2 已足够),再用 GPT 式模型预测码和偏移。
|
||||
**证据**:无条件生成任务中 5/7 个环境超过 BC、BeT 和 Diffusion Policy(§1);条件任务中除 BlockPush 外全部最优(§4);用熵指标衡量模式覆盖(§4)。
|
||||
**借鉴**:左/右绕行就是一个天然的二值模式。可以设计**显式离散模式 token**(左/右,或 VQ 主码)加连续残差头。好处有三:
|
||||
- 多模态由结构保证,而不是靠采样运气;
|
||||
- RL 微调时可以在模式条件下分别优化,避免塌缩;
|
||||
- APG 可以只穿过连续残差头反传(VQ 码不可微,需要 straight-through,[未验证])。
|
||||
推理是单次前向,适合浏览器。
|
||||
|
||||
#### B7. IBC — Implicit Behavioral Cloning(arXiv 2109.00137)
|
||||
来源:https://arxiv.org/html/2109.00137 **[原文]**
|
||||
用 InfoNCE 训练能量模型,推理时用无导数优化、Langevin 或自回归方法求 argmin 动作。能表示不连续、多值的函数(§2–3)。
|
||||
**否决**:原文 App B.1 写明 DFO 推理"适合 y 不超过 5 维",高维需要自回归或梯度法。我们的 chunk 是 16×6=96 维,推理需要迭代优化,浏览器 50 Hz 不现实;训练需要大量负样本(批 512、每个 256 个反例),也不稳定。
|
||||
|
||||
#### B8. Mamba / SSM 策略(MaIL arXiv 2406.08234;Mamba Policy arXiv 2409.07163,IROS 2025)
|
||||
来源:https://arxiv.org/html/2409.07163 **[原文]**,https://export.arxiv.org/api/query?id_list=2406.08234 **[摘要]**
|
||||
- Mamba Policy:在 DP3 的 3D 扩散策略里替换 UNet 主干,参数量减少 80% 以上,FLOPs 最多省 90%,成功率最多高 5%(§1,Fig.1)。
|
||||
- MaIL:在 LIBERO 小数据设置下优于 Transformer(摘要)。
|
||||
**否决**:收益来自"压缩大视觉/3D 主干"和"长历史建模",我们的低维、短历史设定里 MLP/小 Transformer 已足够。浏览器端(ONNX/WebGPU)对选择性扫描算子的支持**未验证**,存在部署风险。
|
||||
|
||||
#### B9. Geometric Fabrics / RMPflow + 学习组件
|
||||
来源:RMPflow https://export.arxiv.org/api/query?id_list=1811.07049 **[摘要]**;Geometric Fabrics https://export.arxiv.org/api/query?id_list=2109.10443 **[摘要]**;Fabric-Guided Policy https://arxiv.org/html/2405.02250v1 **[原文,部分]**;Neural Geometric Fabrics https://proceedings.mlr.press/v205/xie23a.html **[摘要]**;DRP(A4)**[原文]**
|
||||
- Geometric Fabrics 是可证明稳定的二阶"行为动力学",由多个几何项(避障、关节限位等)组合而成。
|
||||
- NGF(CoRL 2022)从示范中学习 fabric 的项,在 23-DoF 手臂系统上超过 RMP 和前馈/循环网络 40–100%。
|
||||
- 2405.02250 让 RL 策略输出到 fabric 层,说明 fabric 能保证平滑和安全,并"移除动作和速度惩罚",从而简化奖励(§V)。
|
||||
- 单独用局部反应式方法会陷入局部极小:DRP §1 和 ELMP §I 都这样指出;CDF Tab.IV 中 fabric 在 7D 上为 88%/74%。DRP 把"策略+fabric"作为**离线 teacher**,带来 +45%(A4)。
|
||||
|
||||
**借鉴**:
|
||||
- 首选:作为 A4 的离线局部 teacher(输入策略的中间目标,fabric 用解析胶囊距离精修,再蒸馏)。
|
||||
- 若规则允许"反应式安全层"(它不是 planner,只是控制律),可以在运行时加一个极薄的 fabric/RMP 避障项作安全网。是否允许由你们决定。
|
||||
|
||||
#### B10. cuRobo 式 GPU 轨迹优化作为**自监督精修器**(arXiv 2310.17274)
|
||||
来源:https://arxiv.org/html/2310.17274 **[原文]**
|
||||
**是什么**:GPU 批量 L-BFGS 加近似并行线搜索,再加粒子优化初始化(§4),配合几何规划器做种子。
|
||||
**关键数字**:
|
||||
- 全局运动生成平均 50 ms 内完成,比 Tesseract 快 60 倍(§1);几何规划器 20 ms(RTX 4090 + Ryzen 9 7950X)。
|
||||
- 在 2600 道 MotionBenchMaker/MπNets 题上成功率 99.8%,只失败 5 道(§7,Fig.6)。
|
||||
|
||||
**采用(离线)**:把策略自己的 rollout(覆盖左右两支)作为初值,用批量 L-BFGS 在解析胶囊代价(间隙铰链、终端、平滑/最小 jerk)上做局部精修,得到同一同伦类内无碰撞、更平滑的轨迹,再回灌做 BC/蒸馏("self-improvement")。好处:
|
||||
- 不需要全局规划器,离线使用符合规则;
|
||||
- 初值来自策略,**保持绕行侧**,天然保住左右多模态(推断);
|
||||
- 和 APG 互补:APG 是"在参数空间做梯度",精修是"在轨迹空间做梯度再蒸馏"。后者每条轨迹可以迭代很多步而没有 BPTT 爆炸问题,对近立柱困难用例更稳(推断)。
|
||||
|
||||
我们的问题只有 6 维、一根柱子,不需要 cuRobo 本体,用 PyTorch 自己写一个批量 L-BFGS 或 Adam 轨迹优化即可 [未验证工作量估计]。
|
||||
|
||||
---
|
||||
|
||||
### 未能确认 / 需注意
|
||||
- DRP 的会议归属(CoRL 2025)未在 arXiv 元数据里确认。
|
||||
- ELMP 是否在 APG 阶段联合保留 BC 损失:原文 Alg.1 没有,所以"保留 BC 锚点"属于我们的建议。
|
||||
- 所有"单卡 3090 可行""墙钟数小时""浏览器 K 采样可承受"都是基于模型规模的推断,没有实测。
|
||||
- Neural-JSDF 只核对了摘要;RDF、BeT、RMPflow、Geometric Fabrics、NGF、MaIL 只核对了摘要。
|
||||
- "运行时用解析距离做采样评分或反应式安全层"是否违反"运行时不得有 teacher/planner",需要项目方裁定。A5、B5、B9 的结论都依赖这个裁定。
|
||||
Reference in New Issue
Block a user