docs: 方案 v2.3 逐项可行性核查(§0A、4 处硬伤修正、证据附录、2D 双模态对照实验)
This commit is contained in:
+584
-45
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<title>Transformer 避障运动策略:无老师闭环部署方案(v2.2)</title>
|
<title>Transformer轨迹拟合训练方案</title>
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
color: #1a1a1a;
|
color: #1a1a1a;
|
||||||
@@ -251,35 +251,130 @@
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<header id="title-block-header">
|
||||||
|
<h1 class="title">Transformer轨迹拟合训练方案</h1>
|
||||||
|
</header>
|
||||||
<nav id="TOC" role="doc-toc">
|
<nav id="TOC" role="doc-toc">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#transformer-避障运动策略无老师闭环部署方案审查稿-v22"
|
<li><a href="#transformer-避障运动策略无老师闭环部署方案审查稿-v23"
|
||||||
id="toc-transformer-避障运动策略无老师闭环部署方案审查稿-v22">Transformer
|
id="toc-transformer-避障运动策略无老师闭环部署方案审查稿-v23">Transformer
|
||||||
避障运动策略:无老师闭环部署方案(审查稿 v2.2)</a>
|
避障运动策略:无老师闭环部署方案(审查稿 v2.3)</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#0-定位与边界" id="toc-0-定位与边界">0. 定位与边界</a></li>
|
<li><a href="#0-定位与边界" id="toc-0-定位与边界">0. 定位与边界</a></li>
|
||||||
|
<li><a href="#0a-v23-逐项可行性核查结论必读"
|
||||||
|
id="toc-0a-v23-逐项可行性核查结论必读">0A. v2.3
|
||||||
|
逐项可行性核查结论(必读)</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#0a1-四处硬伤已在正文修正"
|
||||||
|
id="toc-0a1-四处硬伤已在正文修正">0A.1 四处硬伤(已在正文修正)</a></li>
|
||||||
|
<li><a href="#0a2-逐项核查表" id="toc-0a2-逐项核查表">0A.2
|
||||||
|
逐项核查表</a></li>
|
||||||
|
<li><a href="#0a3-沙箱对照实验2d-绕柱双模态cpu"
|
||||||
|
id="toc-0a3-沙箱对照实验2d-绕柱双模态cpu">0A.3 沙箱对照实验(2D
|
||||||
|
绕柱双模态,CPU)</a></li>
|
||||||
|
<li><a href="#0a4-仍需用户确认--实测才能消除的风险"
|
||||||
|
id="toc-0a4-仍需用户确认--实测才能消除的风险">0A.4 仍需用户确认 /
|
||||||
|
实测才能消除的风险</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#1-业界调研具身智能里的神经运动规划"
|
<li><a href="#1-业界调研具身智能里的神经运动规划"
|
||||||
id="toc-1-业界调研具身智能里的神经运动规划">1.
|
id="toc-1-业界调研具身智能里的神经运动规划">1.
|
||||||
业界调研:具身智能里的神经运动规划</a></li>
|
业界调研:具身智能里的神经运动规划</a></li>
|
||||||
<li><a href="#2-我们的方案和主流的差异以及据此做的优化"
|
<li><a href="#2-我们的方案和主流的差异以及据此做的优化"
|
||||||
id="toc-2-我们的方案和主流的差异以及据此做的优化">2.
|
id="toc-2-我们的方案和主流的差异以及据此做的优化">2.
|
||||||
我们的方案和主流的差异,以及据此做的优化</a></li>
|
我们的方案和主流的差异,以及据此做的优化</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#21-我们的独特条件" id="toc-21-我们的独特条件">2.1
|
||||||
|
我们的独特条件</a></li>
|
||||||
|
<li><a href="#22-v1-方案与主流的差异--v2-的调整"
|
||||||
|
id="toc-22-v1-方案与主流的差异--v2-的调整">2.2 v1 方案与主流的差异 → v2
|
||||||
|
的调整</a></li>
|
||||||
|
<li><a href="#23-v2-相对主流的额外优化点"
|
||||||
|
id="toc-23-v2-相对主流的额外优化点">2.3 v2 相对主流的额外优化点</a></li>
|
||||||
|
<li><a href="#24-20242026-前沿生成式策略逐项评估v22"
|
||||||
|
id="toc-24-20242026-前沿生成式策略逐项评估v22">2.4 2024–2026
|
||||||
|
前沿生成式策略逐项评估(v2.2)</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#3-训练环境" id="toc-3-训练环境">3. 训练环境</a></li>
|
<li><a href="#3-训练环境" id="toc-3-训练环境">3. 训练环境</a></li>
|
||||||
<li><a href="#4-第一步离线造预训练数据老师只在这里出现"
|
<li><a href="#4-第一步离线造预训练数据老师只在这里出现"
|
||||||
id="toc-4-第一步离线造预训练数据老师只在这里出现">4.
|
id="toc-4-第一步离线造预训练数据老师只在这里出现">4.
|
||||||
第一步:离线造预训练数据(老师只在这里出现)</a></li>
|
第一步:离线造预训练数据(老师只在这里出现)</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#41-新增文件" id="toc-41-新增文件">4.1 新增文件</a></li>
|
||||||
|
<li><a href="#42-一条原始样本" id="toc-42-一条原始样本">4.2
|
||||||
|
一条原始样本</a></li>
|
||||||
|
<li><a href="#43-采样分布5-万条任务" id="toc-43-采样分布5-万条任务">4.3
|
||||||
|
采样分布(5 万条任务)</a></li>
|
||||||
|
<li><a href="#44-过滤" id="toc-44-过滤">4.4 过滤</a></li>
|
||||||
|
<li><a href="#45-时间参数化--闭环训练样本v2-新增关键"
|
||||||
|
id="toc-45-时间参数化--闭环训练样本v2-新增关键">4.5 时间参数化 →
|
||||||
|
闭环训练样本(v2 新增,关键)</a></li>
|
||||||
|
<li><a href="#46-耗时与存储" id="toc-46-耗时与存储">4.6
|
||||||
|
耗时与存储</a></li>
|
||||||
|
<li><a href="#47-检查点" id="toc-47-检查点">4.7 检查点</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#5-第二步表示与预处理" id="toc-5-第二步表示与预处理">5.
|
<li><a href="#5-第二步表示与预处理" id="toc-5-第二步表示与预处理">5.
|
||||||
第二步:表示与预处理</a></li>
|
第二步:表示与预处理</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#51-输入条件" id="toc-51-输入条件">5.1
|
||||||
|
输入(条件)</a></li>
|
||||||
|
<li><a href="#52-输出动作块" id="toc-52-输出动作块">5.2
|
||||||
|
输出(动作块)</a></li>
|
||||||
|
<li><a href="#53-连续轴" id="toc-53-连续轴">5.3 连续轴</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#6-第三步模型与预训练行为克隆"
|
<li><a href="#6-第三步模型与预训练行为克隆"
|
||||||
id="toc-6-第三步模型与预训练行为克隆">6.
|
id="toc-6-第三步模型与预训练行为克隆">6.
|
||||||
第三步:模型与预训练(行为克隆)</a></li>
|
第三步:模型与预训练(行为克隆)</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#61-结构参考-impact去掉点云部分"
|
||||||
|
id="toc-61-结构参考-impact去掉点云部分">6.1 结构(参考
|
||||||
|
IMPACT,去掉点云部分)</a></li>
|
||||||
|
<li><a href="#61a-v22-动作头升级一步流匹配默认与-wta基线"
|
||||||
|
id="toc-61a-v22-动作头升级一步流匹配默认与-wta基线">6.1A v2.2
|
||||||
|
动作头升级:一步流匹配(默认)与 WTA(基线)</a></li>
|
||||||
|
<li><a href="#62-预训练损失" id="toc-62-预训练损失">6.2
|
||||||
|
预训练损失</a></li>
|
||||||
|
<li><a href="#63-训练配置" id="toc-63-训练配置">6.3 训练配置</a></li>
|
||||||
|
<li><a href="#64-对拍与验证每-epoch" id="toc-64-对拍与验证每-epoch">6.4
|
||||||
|
对拍与验证(每 epoch)</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#7-第四步后训练无老师为主"
|
<li><a href="#7-第四步后训练无老师为主"
|
||||||
id="toc-7-第四步后训练无老师为主">7.
|
id="toc-7-第四步后训练无老师为主">7. 第四步:后训练(无老师为主)</a>
|
||||||
第四步:后训练(无老师为主)</a></li>
|
<ul>
|
||||||
|
<li><a href="#71-主力apg-可微微调借鉴-elmp"
|
||||||
|
id="toc-71-主力apg-可微微调借鉴-elmp">7.1 主力:APG 可微微调(借鉴
|
||||||
|
ELMP)</a></li>
|
||||||
|
<li><a href="#72-辅助闭环挖错--门禁v11-循环的无老师版"
|
||||||
|
id="toc-72-辅助闭环挖错--门禁v11-循环的无老师版">7.2 辅助:闭环挖错 +
|
||||||
|
门禁(v1.1 循环的无老师版)</a></li>
|
||||||
|
<li><a href="#73-可选拒绝采样自蒸馏" id="toc-73-可选拒绝采样自蒸馏">7.3
|
||||||
|
可选:拒绝采样自蒸馏</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#8-第五步无老师闭环部署" id="toc-8-第五步无老师闭环部署">8.
|
<li><a href="#8-第五步无老师闭环部署" id="toc-8-第五步无老师闭环部署">8.
|
||||||
第五步:无老师闭环部署</a></li>
|
第五步:无老师闭环部署</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#81-每个控制周期做什么默认-50-hz"
|
||||||
|
id="toc-81-每个控制周期做什么默认-50-hz">8.1 每个控制周期做什么(默认 50
|
||||||
|
Hz)</a></li>
|
||||||
|
<li><a href="#82-模式粘滞防左右摇摆" id="toc-82-模式粘滞防左右摇摆">8.2
|
||||||
|
模式粘滞(防左右摇摆)</a></li>
|
||||||
|
<li><a href="#83-安全层唯一的硬保证" id="toc-83-安全层唯一的硬保证">8.3
|
||||||
|
安全层(唯一的硬保证)</a></li>
|
||||||
|
<li><a href="#84-部署包里有什么没有什么"
|
||||||
|
id="toc-84-部署包里有什么没有什么">8.4 部署包里有什么、没有什么</a></li>
|
||||||
|
<li><a href="#85-为什么会超时以及无老师怎样做到-3030"
|
||||||
|
id="toc-85-为什么会超时以及无老师怎样做到-3030">8.5
|
||||||
|
为什么会"超时",以及无老师怎样做到 30/30</a></li>
|
||||||
|
<li><a href="#86-控制周期业界案例与评估"
|
||||||
|
id="toc-86-控制周期业界案例与评估">8.6 控制周期:业界案例与评估</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#9-第六步评估与验收" id="toc-9-第六步评估与验收">9.
|
<li><a href="#9-第六步评估与验收" id="toc-9-第六步评估与验收">9.
|
||||||
第六步:评估与验收</a></li>
|
第六步:评估与验收</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#91-测试集合" id="toc-91-测试集合">9.1 测试集合</a></li>
|
||||||
|
<li><a href="#92-验收标准部署形态--策略--安全层"
|
||||||
|
id="toc-92-验收标准部署形态--策略--安全层">9.2 验收标准(部署形态 = 策略
|
||||||
|
+ 安全层)</a></li>
|
||||||
|
</ul></li>
|
||||||
<li><a href="#10-风险与维护" id="toc-10-风险与维护">10.
|
<li><a href="#10-风险与维护" id="toc-10-风险与维护">10.
|
||||||
风险与维护</a></li>
|
风险与维护</a></li>
|
||||||
<li><a href="#11-目录规划" id="toc-11-目录规划">11. 目录规划</a></li>
|
<li><a href="#11-目录规划" id="toc-11-目录规划">11. 目录规划</a></li>
|
||||||
@@ -291,8 +386,8 @@ id="toc-7-第四步后训练无老师为主">7.
|
|||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<h1
|
<h1
|
||||||
id="transformer-避障运动策略无老师闭环部署方案审查稿-v22">Transformer
|
id="transformer-避障运动策略无老师闭环部署方案审查稿-v23">Transformer
|
||||||
避障运动策略:无老师闭环部署方案(审查稿 v2.2)</h1>
|
避障运动策略:无老师闭环部署方案(审查稿 v2.3)</h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<ul>
|
<ul>
|
||||||
<li>v1(2026-10-17 20:06,<code>40af3b4</code>):模型一次生成整条 32
|
<li>v1(2026-10-17 20:06,<code>40af3b4</code>):模型一次生成整条 32
|
||||||
@@ -310,6 +405,13 @@ RTC、代价引导扩散规划、流策略强化学习微调、π0.5/FAST
|
|||||||
等),逐项判断是否适用,新增
|
等),逐项判断是否适用,新增
|
||||||
§2.4,并据此把动作头升级为<strong>一步流匹配头 + 碰撞代价引导 +
|
§2.4,并据此把动作头升级为<strong>一步流匹配头 + 碰撞代价引导 +
|
||||||
前缀条件</strong>(§6.1A)。</li>
|
前缀条件</strong>(§6.1A)。</li>
|
||||||
|
<li><strong>v2.3(2026-10-17 21:30):逐项可行性核查。</strong> 4
|
||||||
|
路全文精读(约 40 篇论文)+ 沙箱 2D
|
||||||
|
双模态绕柱对照实验,对每一项方案给出证据等级、残余风险、门禁测试和回退;发现并修正
|
||||||
|
4 处硬伤(安全层离散检查漏检、<code>animTo</code>
|
||||||
|
时间律不可学、交叉淡入绕过安全层、训练/部署节奏不一致)和 24
|
||||||
|
处内部不一致。核查结论见新增 <strong>§0A</strong>,全部证据见
|
||||||
|
<code>docs/方案逐项核查报告.md</code>。</li>
|
||||||
<li>基于
|
<li>基于
|
||||||
<code>main@3c7c814</code>(贴立柱修复后的规划器)。本文只是方案,代码尚未编写。</li>
|
<code>main@3c7c814</code>(贴立柱修复后的规划器)。本文只是方案,代码尚未编写。</li>
|
||||||
<li>审查重点:§0 定位、§2 差异与优化、§5 输出表示、§7 后训练(APG)、§8
|
<li>审查重点:§0 定位、§2 差异与优化、§5 输出表示、§7 后训练(APG)、§8
|
||||||
@@ -368,6 +470,415 @@ ms)读当前关节角和目标,重新推理一段短动作块,只执行最
|
|||||||
的轨迹发生碰撞(§1 DRP 附录表 6、ELMP 表 I)。
|
的轨迹发生碰撞(§1 DRP 附录表 6、ELMP 表 I)。
|
||||||
我们的环境几何完全已知、检查只要几毫秒,保留它代价极小,却把"偶尔撞一下"变成"偶尔停一下"。</p>
|
我们的环境几何完全已知、检查只要几毫秒,保留它代价极小,却把"偶尔撞一下"变成"偶尔停一下"。</p>
|
||||||
<hr />
|
<hr />
|
||||||
|
<h2 id="0a-v23-逐项可行性核查结论必读">0A. v2.3
|
||||||
|
逐项可行性核查结论(必读)</h2>
|
||||||
|
<p><strong>先说清楚一件事:没有任何方案能在实测前被"证明完全没有风险"。</strong>
|
||||||
|
论文证据只能说明"别人在相近条件下做成过";我们的条件(低维状态、单根固定立柱、5M
|
||||||
|
参数、浏览器推理、30/30)没有一篇论文完全一样。所以 v2.3
|
||||||
|
的做法是:每一项都给出①证据等级 ②残余风险
|
||||||
|
③在本仓库可测的<strong>门禁</strong>(通不过就不进下一步)④通不过时的<strong>回退</strong>。唯一做成"硬保证"的是安全层(改为距离认证后,碰撞与否不依赖模型好坏)。</p>
|
||||||
|
<p>证据等级:<strong>A</strong> 有充分证据(直接先例 + 数字) ·
|
||||||
|
<strong>B</strong> 部分证据(相近先例,需本仓库验证) ·
|
||||||
|
<strong>C</strong> 仅推断 · <strong>✗</strong> 有反证(已修改)</p>
|
||||||
|
<h3 id="0a1-四处硬伤已在正文修正">0A.1 四处硬伤(已在正文修正)</h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr class="header">
|
||||||
|
<th>#</th>
|
||||||
|
<th>原方案</th>
|
||||||
|
<th>反证</th>
|
||||||
|
<th>v2.3 修正</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>H1</td>
|
||||||
|
<td>§8.3 安全层用 1°+半格离散采样"保证不撞"</td>
|
||||||
|
<td>本臂杠杆实测:关节转 1°,TCP/胶囊最多移动 24.3 mm;0.5°
|
||||||
|
间距下两采样点之间可偏出约 6 mm,远大于 0.3 mm
|
||||||
|
余量。仓库自己的规划报告也记过 0.28 mm 残余侵入。Schwarzer 2005、LARC
|
||||||
|
均证明离散检查会漏检</td>
|
||||||
|
<td>臂×立柱/台架改为<strong>距离下界认证</strong>:d(q_a)+d(q_b) > Σ
|
||||||
|
r_j·</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>H2</td>
|
||||||
|
<td>§4.5 沿用 <code>animTo</code>(全局 smoothstep +
|
||||||
|
总时长夹取)做时间参数化</td>
|
||||||
|
<td>同一状态的标签速度取决于输入看不到的"整条路径长度/进度" →
|
||||||
|
非马尔可夫;起步段 Δq≈0 → 闭环可能起不了步。MπNets
|
||||||
|
为此把老师路径重定时为匀速;Diffusion Policy
|
||||||
|
报告单步策略会卡在停顿动作</td>
|
||||||
|
<td>改为<strong>局部可观测时间律</strong>:匀速巡航 +
|
||||||
|
只按"剩余路程"决定的梯形加减速,并把当前速度 q_t−q_{t−1} 加入输入</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>H3</td>
|
||||||
|
<td>§8.1 插补器对新旧动作块做时间集成/交叉淡入</td>
|
||||||
|
<td>实际执行的是两块的混合,没被安全层检查;左绕块与右绕块平均可能正好穿柱。π0
|
||||||
|
试过时间集成后放弃,BID 报告多模态下掉性能</td>
|
||||||
|
<td><strong>删除交叉淡入</strong>,执行的就是被认证过的那一块;块间连续性靠前缀条件(§6.1A)</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>H4</td>
|
||||||
|
<td>部署每 20 ms 推理、只走 1 步;APG 每 3
|
||||||
|
步推理一次;"周期"三种定义</td>
|
||||||
|
<td>BID(2408.17355)证明动作时域 = 1
|
||||||
|
会破坏块内一致性、导致来回摆动</td>
|
||||||
|
<td>统一为:<strong>50 Hz 执行,每 3 步(60 ms)推理一次、提交 3
|
||||||
|
步</strong>;APG 展开节奏与部署完全一致。"每步重推理"留作 A/B 对照</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<h3 id="0a2-逐项核查表">0A.2 逐项核查表</h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr class="header">
|
||||||
|
<th>§</th>
|
||||||
|
<th>方案</th>
|
||||||
|
<th>等级</th>
|
||||||
|
<th>关键证据</th>
|
||||||
|
<th>残余风险</th>
|
||||||
|
<th>门禁(本仓库)</th>
|
||||||
|
<th>回退</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§0</td>
|
||||||
|
<td>不用 VLA 大模型,3–5M 参数专用策略</td>
|
||||||
|
<td>A</td>
|
||||||
|
<td>IMPACT 4.67M 参数、300 Hz;π0 3B 单次预填充 46 ms(4090)</td>
|
||||||
|
<td>—</td>
|
||||||
|
<td>—</td>
|
||||||
|
<td>—</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§4.1–4.3</td>
|
||||||
|
<td>采样式老师离线造 5 万条任务</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>MπNets、DRP、ELMP 均用规划器老师;MπNets:老师不一致时碰撞率
|
||||||
|
13.78%,一致老师 0.94%</td>
|
||||||
|
<td>我们的老师是随机采样式,同类任务可能左右绕不一致</td>
|
||||||
|
<td>同任务 5 个种子:同伦类一致率 ≥ 90%,行程 CV < 10%</td>
|
||||||
|
<td>固定种子 + "最短同伦类优先",或用 PRM 路网 A*(确定)作老师</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§4.3 D 类</td>
|
||||||
|
<td>不可达目标 → 停在最近安全位形</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>DRP 有同类数据</td>
|
||||||
|
<td>停靠点随目标跳变</td>
|
||||||
|
<td>目标扫过立柱时相邻 20 ms 停靠点跳变 < 5 mm</td>
|
||||||
|
<td>停靠标签加连续性约束</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§4.5</td>
|
||||||
|
<td>时间参数化</td>
|
||||||
|
<td>✗→改</td>
|
||||||
|
<td>见 H2</td>
|
||||||
|
<td>—</td>
|
||||||
|
<td>近邻标签方差 < 10% 步长;起步失败率 = 0</td>
|
||||||
|
<td>输入当前速度</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§4.5-④</td>
|
||||||
|
<td>"路径后缀 = 免费 DAgger"</td>
|
||||||
|
<td>✗→删</td>
|
||||||
|
<td>DAgger 要求学生自己偏离后的状态;后缀仍是老师状态</td>
|
||||||
|
<td>协变量偏移</td>
|
||||||
|
<td>闭环到达率与单步准确率差距</td>
|
||||||
|
<td>关节噪声增广(σ 0.5–1°,DART +62%)+ 离线老师重标 + §7</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§5.1</td>
|
||||||
|
<td>输入:sin/cos、TCP、6D 姿态、胶囊距离</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>6D 旋转连续(Zhou 2019);ELMP、MπNets 同类输入</td>
|
||||||
|
<td>位姿目标多 IK 分支 → 额外多峰;缺子目标/前缀/速度字段(已补)</td>
|
||||||
|
<td>去胶囊特征消融差 ≥ 3 pp 才保留</td>
|
||||||
|
<td>加目标分支标志</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§5.2</td>
|
||||||
|
<td>16 步 Δq 动作块</td>
|
||||||
|
<td>A</td>
|
||||||
|
<td>DRP、Diffusion Policy(位置式优于速度式)</td>
|
||||||
|
<td>补零样本过多 → 早停</td>
|
||||||
|
<td>补零占比 > 30% 则降权</td>
|
||||||
|
<td>—</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§6.1</td>
|
||||||
|
<td>IMPACT 式编码器-解码器去点云</td>
|
||||||
|
<td>A(结构)/C(够不够)</td>
|
||||||
|
<td>IMPACT 原文表 7</td>
|
||||||
|
<td>实算约 4.1M</td>
|
||||||
|
<td>1000 样本过拟合 → 0;held-out ≥ 95%(APG 前)</td>
|
||||||
|
<td>加宽</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§6.1A</td>
|
||||||
|
<td><strong>动作头:一步生成</strong></td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>沙箱实验见 0A.3;COT 有双峰实证;K-MF 表 1 原生 MeanFlow 会失败;OFP
|
||||||
|
自引导 λ=0.5 出现模态塌缩</td>
|
||||||
|
<td>小模型能否学出陡峭模态边界未知;训练不稳</td>
|
||||||
|
<td>M5 A/B:一步头 vs WTA,看穿柱率、到达率、摇摆率</td>
|
||||||
|
<td><strong>WTA K=4</strong>(沙箱中同样全部通过)</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§6.1A</td>
|
||||||
|
<td>一步头选型</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>首选 MeanFlow(沙箱验证)或 Shortcut+COT 配对(无需
|
||||||
|
JVP);<strong>否决</strong> Consistency
|
||||||
|
Policy(原文承认偏向一侧)、OneDP(故意取单模态)、朴素 1 步
|
||||||
|
FM(数学上等于条件均值)</td>
|
||||||
|
<td>组合未见论文</td>
|
||||||
|
<td>同上</td>
|
||||||
|
<td>WTA</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§6.1A</td>
|
||||||
|
<td>生成时碰撞代价引导</td>
|
||||||
|
<td>✗→改</td>
|
||||||
|
<td>无论文在 1–2 步下测过;DiffusionSeeder 5 步引导仅 80.6%→81.1%;RTC
|
||||||
|
附录:引导权重过大发散</td>
|
||||||
|
<td>—</td>
|
||||||
|
<td>—</td>
|
||||||
|
<td>改为<strong>事后投影</strong>:对输出块做 1–2
|
||||||
|
步解析胶囊距离梯度,只在 d < 余量时启用;修不了"绕错侧",靠多候选 +
|
||||||
|
安全层</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§6.1A</td>
|
||||||
|
<td>前缀条件(RTC)</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>RTC 原文只验证 n=5
|
||||||
|
步去噪、需反向传播;<strong>训练时前缀条件化</strong>(2512.05964)推理零开销,d≥2
|
||||||
|
时优于 RTC,天然适用 1 步生成器</td>
|
||||||
|
<td>我们 d≈0–1 时略差</td>
|
||||||
|
<td>块边界加速度跳变 vs 无前缀</td>
|
||||||
|
<td>无前缀 + 一致性打分</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§6.1A</td>
|
||||||
|
<td>B 样条输出</td>
|
||||||
|
<td>C</td>
|
||||||
|
<td>仅 FAST/频域表示的间接证据</td>
|
||||||
|
<td>可能损失贴柱精度</td>
|
||||||
|
<td>near_column 与 16 步 Δq 对比</td>
|
||||||
|
<td><strong>默认改回 16 步 Δq</strong>,B 样条降为可选</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§6.2</td>
|
||||||
|
<td>损失:WTA-L1/CE、FK 胶囊端点、平滑</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>ELMP 式 FK 损失(§III-B 式 2)</td>
|
||||||
|
<td>流头损失原缺(已补:流匹配损失 + FK 损失加在一步输出上)</td>
|
||||||
|
<td>FK 消融:C 类碰撞率降 ≥ 20% 才保留</td>
|
||||||
|
<td>—</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§6.3</td>
|
||||||
|
<td>训练配置与耗时</td>
|
||||||
|
<td>C</td>
|
||||||
|
<td>DRP:4090 上 100 万步 3 天(含点云)</td>
|
||||||
|
<td>原文"20 万步≈30 epoch"算错,实为约 68 epoch</td>
|
||||||
|
<td>先跑 2000 步测吞吐再定步数</td>
|
||||||
|
<td>30 epoch ≈ 8.8 万步</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§6.4</td>
|
||||||
|
<td>胶囊距离 PyTorch/JS 对拍</td>
|
||||||
|
<td>A(工程)</td>
|
||||||
|
<td>仓库已有 0 差异对拍惯例</td>
|
||||||
|
<td>浮点不可能"0 误差"</td>
|
||||||
|
<td>布尔判定 0 差异 + 距离误差 < 1e-4 mm + 梯度对有限差分 <
|
||||||
|
1e-3</td>
|
||||||
|
<td>—</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§7.1</td>
|
||||||
|
<td>APG 可微微调(ELMP)</td>
|
||||||
|
<td>A</td>
|
||||||
|
<td>ELMP:碰撞率 31.3%→8.9%;1 万示范+APG 72.0% > 60 万纯 BC
|
||||||
|
57.9%;H=69 步仅用梯度裁剪 ≤1</td>
|
||||||
|
<td>铰链损失只能侧推,不能从"撞柱"换到另一侧;可能压缩多模态;ELMP
|
||||||
|
中路径长度 +23%</td>
|
||||||
|
<td>每轮左右比例监控;行程门禁</td>
|
||||||
|
<td>保留 BC 锚定损失</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§7.2</td>
|
||||||
|
<td>无老师挖错 + 门禁</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>DRP 迭代师生微调 +45%(5 轮 10 h)</td>
|
||||||
|
<td>门禁集与验收集重叠 → 选择偏差(已拆分)</td>
|
||||||
|
<td>遗忘门禁:A 类每轮降幅 ≤ 0.5 pp</td>
|
||||||
|
<td>回滚</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§7.3</td>
|
||||||
|
<td>拒绝采样自蒸馏</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>ReST</td>
|
||||||
|
<td>选"最短" → 贴柱,余量变小、多样性塌缩</td>
|
||||||
|
<td>C 类间隙中位数 ≥ 原 80%</td>
|
||||||
|
<td>改为"间隙 ≥ 阈值中最短"</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§7 可选</td>
|
||||||
|
<td>ReinFlow/DPPO</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>ReinFlow +40%,1–4 步可调,比 DPPO 省 62.8% 墙钟;DPPO 16
|
||||||
|
步块稳定</td>
|
||||||
|
<td>RL 会重塑模式分布(DPPO D3IL)</td>
|
||||||
|
<td>按左右分组平衡奖励</td>
|
||||||
|
<td>不做</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§8.2</td>
|
||||||
|
<td>模式/噪声粘滞</td>
|
||||||
|
<td>✗→改</td>
|
||||||
|
<td>BID:沿用上次噪声 7 个任务中 3 个变差;后向一致性打分 + N=16 相对
|
||||||
|
+32%</td>
|
||||||
|
<td>—</td>
|
||||||
|
<td>E5 摇摆 < 1%</td>
|
||||||
|
<td><strong>改为 BID 式一致性打分</strong>(与已提交块重叠步加权
|
||||||
|
L2)</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§8.3</td>
|
||||||
|
<td>安全层 + 可刹停不变式</td>
|
||||||
|
<td>不变式 A;离散实现 ✗→改</td>
|
||||||
|
<td>Thumm & Althoff 2022 failsafe 盾</td>
|
||||||
|
<td>刹停"最大减速度"原未定义(已补加速度上限)</td>
|
||||||
|
<td>见 H1</td>
|
||||||
|
<td>训练余量提到 3–6 mm</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§8.3</td>
|
||||||
|
<td>安全层耗时 < 5 ms</td>
|
||||||
|
<td>C</td>
|
||||||
|
<td>仓库 collideFree 1.25 ms/次</td>
|
||||||
|
<td>贴柱时预筛失效;每步 4–13°</td>
|
||||||
|
<td>near_column 全程 P99 < 5 ms</td>
|
||||||
|
<td>距离认证一次查询覆盖整段;提交步数降到 2</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§8.5</td>
|
||||||
|
<td>子目标头、价值头、短前瞻、卡死换向</td>
|
||||||
|
<td>B / C</td>
|
||||||
|
<td>AWE(航点 +25%)、SHAC、BID</td>
|
||||||
|
<td>卡死换向可能活锁</td>
|
||||||
|
<td>50 个对抗用例 3 s 内恢复 ≥ 95%,活锁 = 0</td>
|
||||||
|
<td>子目标改为离散绕行锚点分类</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§8.6</td>
|
||||||
|
<td>50 Hz 策略层</td>
|
||||||
|
<td>B</td>
|
||||||
|
<td>π0 50 Hz、Diffusion Policy 10 Hz 预测 16 执行 8 最优</td>
|
||||||
|
<td>rAF 60 Hz 与 20 ms 不整除;后台标签页节流</td>
|
||||||
|
<td>P99 周期误差 < 2 ms</td>
|
||||||
|
<td>Worker + 自有时钟</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>§8/§9</td>
|
||||||
|
<td>浏览器推理 2–5 ms</td>
|
||||||
|
<td>C(偏乐观)</td>
|
||||||
|
<td>WebGPU 每次 dispatch 33–67 μs、同步 2–3 ms(2604.02344 表 6)</td>
|
||||||
|
<td>8 层 Transformer 约 150–300 次 dispatch → 调度开销 5–20 ms</td>
|
||||||
|
<td><strong>M4 后立刻</strong>导出 ONNX 实测 batch=8 P99</td>
|
||||||
|
<td>wasm-SIMD 多线程;每 3 步推理一次(预算 60 ms)</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>§9</td>
|
||||||
|
<td>验收 30/30</td>
|
||||||
|
<td>✗→改</td>
|
||||||
|
<td>30/30 时失败率 95% 上界仍约 9.5%</td>
|
||||||
|
<td>30 例被反复用于挑模型</td>
|
||||||
|
<td><strong>新造 ≥1000 例 near_column 一次性验收集</strong>(0 失败 ⇒
|
||||||
|
上界约 0.3%);到达率分母只算可达任务</td>
|
||||||
|
<td>—</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<h3 id="0a3-沙箱对照实验2d-绕柱双模态cpu">0A.3 沙箱对照实验(2D
|
||||||
|
绕柱双模态,CPU)</h3>
|
||||||
|
<p>为验证"一步生成会不会把左右平均成穿柱",在沙箱做了一个最小实验:2D
|
||||||
|
点从柱左侧到右侧,示教一半从上绕一半从下绕,16 步动作块、每 3
|
||||||
|
步重推理,与本方案同构。代码 <code>ml/toy/toy_bimodal.py</code>,150
|
||||||
|
个"起终点都贴近中轴"的难例:</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr class="header">
|
||||||
|
<th>动作头</th>
|
||||||
|
<th>单样本、无安全层:到达 / 穿柱回合</th>
|
||||||
|
<th>8 候选 + 安全层:到达 / 穿柱 / 平均刹停</th>
|
||||||
|
<th>推理(CPU,8 候选)</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>MSE 回归</td>
|
||||||
|
<td>100% / 0%</td>
|
||||||
|
<td>100% / 0% / 0</td>
|
||||||
|
<td>0.13 ms</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>WTA K=4</td>
|
||||||
|
<td>100% / 0%</td>
|
||||||
|
<td>100% / 0% / 0</td>
|
||||||
|
<td>0.19 ms</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>流匹配 10 步</td>
|
||||||
|
<td>100% / 4.0%</td>
|
||||||
|
<td>99.3% / 0% / 3.7</td>
|
||||||
|
<td>2.13 ms</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td><strong>朴素流匹配 1 步</strong></td>
|
||||||
|
<td>87.3% / <strong>23.3%</strong></td>
|
||||||
|
<td>81.3% / 0% / 14.0</td>
|
||||||
|
<td>0.25 ms</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td><strong>MeanFlow 1 步</strong></td>
|
||||||
|
<td>100% / 2.7%</td>
|
||||||
|
<td>100% / 0% / 0.3</td>
|
||||||
|
<td>0.25 ms</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>结论与局限:</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>证实</strong>:朴素 1 步流匹配会把模态平均到柱子里(23%
|
||||||
|
穿柱),必须用 MeanFlow/Shortcut 一类;MeanFlow 1 步达到 10
|
||||||
|
步流匹配的质量,推理快约 8 倍。</li>
|
||||||
|
<li><strong>证实</strong>:安全层在所有方法上都把穿柱降为
|
||||||
|
0,代价是刹停次数。</li>
|
||||||
|
<li><strong>没能区分</strong>:闭环里状态一偏离中轴,MSE/WTA
|
||||||
|
也能自然打破对称,所以这个玩具任务太容易,<strong>分不出一步头和 WTA
|
||||||
|
谁更好</strong>。真实 6 轴、位姿目标下的多峰更复杂,必须在 M5 用真实数据
|
||||||
|
A/B,不能凭论文或玩具定结论。</li>
|
||||||
|
<li>早期 300 步训练的 MSE 在同一难例上 100% 穿柱、加安全层后 0%
|
||||||
|
到达(卡死),说明"欠拟合时平均模态"的风险真实存在。</li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="0a4-仍需用户确认--实测才能消除的风险">0A.4 仍需用户确认 /
|
||||||
|
实测才能消除的风险</h3>
|
||||||
|
<ol type="1">
|
||||||
|
<li>浏览器端推理延迟(最大不确定项,M4 后第一时间测)。</li>
|
||||||
|
<li>真机电机/驱动/通信方式(决定插补频率与刹停加速度上限)。</li>
|
||||||
|
<li>老师一致性(M1 第一项门禁)。</li>
|
||||||
|
<li>Neural MP
|
||||||
|
式"运行时采样多条、用解析距离挑选"是否算违反"无运行时老师"——v2.3
|
||||||
|
的理解是<strong>不算</strong>(不做搜索,只对模型自己的候选打分),请确认。</li>
|
||||||
|
</ol>
|
||||||
|
<hr />
|
||||||
<h2 id="1-业界调研具身智能里的神经运动规划">1.
|
<h2 id="1-业界调研具身智能里的神经运动规划">1.
|
||||||
业界调研:具身智能里的神经运动规划</h2>
|
业界调研:具身智能里的神经运动规划</h2>
|
||||||
<p>以下数据均来自论文原文(链接见 §13)。</p>
|
<p>以下数据均来自论文原文(链接见 §13)。</p>
|
||||||
@@ -683,6 +1194,14 @@ ReinFlow。仿真就是我们的 GPU 批量 FK + 胶囊检测,3090 上可跑</
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
<blockquote>
|
||||||
|
<p><strong>v2.3 核查修正(见
|
||||||
|
§0A)</strong>:①碰撞代价引导改为输出后的事后投影(1–2
|
||||||
|
步生成下无引导证据);②RTC
|
||||||
|
改为训练时前缀条件化(2512.05964,推理零开销);③一步头首选
|
||||||
|
MeanFlow(沙箱验证)或 Shortcut+COT,否决 Consistency Policy/OneDP/朴素
|
||||||
|
1 步 FM;④B 样条降为可选;⑤OFP 未找到公开代码,不作首选。</p>
|
||||||
|
</blockquote>
|
||||||
<p><strong>结论:v2.2 采纳"一步流匹配头 + 碰撞代价引导 + 前缀条件 + B
|
<p><strong>结论:v2.2 采纳"一步流匹配头 + 碰撞代价引导 + 前缀条件 + B
|
||||||
样条表示 + 可选 ReinFlow"。</strong> 这正是 π0.5、MP1/OFP、MPD、RTC
|
样条表示 + 可选 ReinFlow"。</strong> 这正是 π0.5、MP1/OFP、MPD、RTC
|
||||||
这几条前沿线在"低维状态、精确几何、实时控制"场景下的组合,规模仍然是几百万参数。</p>
|
这几条前沿线在"低维状态、精确几何、实时控制"场景下的组合,规模仍然是几百万参数。</p>
|
||||||
@@ -816,10 +1335,12 @@ class="sourceCode json"><code class="sourceCode json"><span id="cb2-1"><a href="
|
|||||||
<p>闭环策略学的是"在某个状态下,接下来 16
|
<p>闭环策略学的是"在某个状态下,接下来 16
|
||||||
步怎么走",所以要把整条路径切成很多个"状态 → 动作块"样本:</p>
|
步怎么走",所以要把整条路径切成很多个"状态 → 动作块"样本:</p>
|
||||||
<ol type="1">
|
<ol type="1">
|
||||||
<li>按现有 <code>animTo</code> 的轴速比
|
<li><strong>(v2.3 修正,见 H2)</strong> 不再沿用 <code>animTo</code>
|
||||||
|
的全局 smoothstep + 总时长夹取。改为局部可观测时间律:按轴速比
|
||||||
<code>VREL = [0.6, 0.6, 0.9, 0.9, 1.2, 1.8]</code>
|
<code>VREL = [0.6, 0.6, 0.9, 0.9, 1.2, 1.8]</code>
|
||||||
做时间参数化(与查看器动画同口径),控制周期 <strong>dt = 20
|
匀速巡航,加减速为梯形,且只取决于"当前速度 +
|
||||||
ms</strong>。</li>
|
剩余路程"(加速度上限另设),控制周期 <strong>dt = 20
|
||||||
|
ms</strong>;当前速度 q_t − q_{t−1} 作为输入。</li>
|
||||||
<li>得到状态序列 q_0, q_1, …, q_N。对每个 t(每隔 3 步取 1
|
<li>得到状态序列 q_0, q_1, …, q_N。对每个 t(每隔 3 步取 1
|
||||||
个,减少冗余)生成样本:
|
个,减少冗余)生成样本:
|
||||||
<ul>
|
<ul>
|
||||||
@@ -827,9 +1348,11 @@ ms</strong>。</li>
|
|||||||
<li>标签:未来 S = 16 步的增量 Δq_{t+1..t+16} = q_{t+k} −
|
<li>标签:未来 S = 16 步的增量 Δq_{t+1..t+16} = q_{t+k} −
|
||||||
q_t(到终点后补零,即"停住")</li>
|
q_t(到终点后补零,即"停住")</li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li>每条路径平均约 50–150 个样本 → 5 万条任务约 300 万个训练样本。</li>
|
<li>每条路径约 40–50 个样本(route_bench 平均执行约 2.5 s)→ 5
|
||||||
<li><strong>路径后缀天然覆盖"从半路出发"</strong>,等于免费的 DAgger
|
万条任务约 200 万个训练样本(以 M1 的 stats.json 为准)。</li>
|
||||||
种子数据。</li>
|
<li><del>路径后缀等于免费 DAgger</del>(v2.3
|
||||||
|
删除:后缀仍是老师状态)。改为关节噪声增广(σ 0.5–1°)+
|
||||||
|
离线老师重标,偏离状态的覆盖靠 §7。</li>
|
||||||
</ol>
|
</ol>
|
||||||
<h3 id="46-耗时与存储">4.6 耗时与存储</h3>
|
<h3 id="46-耗时与存储">4.6 耗时与存储</h3>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -977,24 +1500,28 @@ K×16 个可学习动作 token ──▶ 4 层 Transformer decoder(非自回
|
|||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>训练</td>
|
<td>训练</td>
|
||||||
<td>WTA-L1 + 模式 CE</td>
|
<td>WTA-L1 + 模式 CE</td>
|
||||||
<td>OFP 自蒸馏(或 MeanFlow),从零训练,无需预训练老师模型</td>
|
<td><strong>MeanFlow</strong>(沙箱已验证 1 步可用)或 Shortcut + COT
|
||||||
|
条件配对(无需 JVP);损失 = 流匹配损失 + FK
|
||||||
|
胶囊端点损失(加在一步输出上)。不采用 Consistency Policy / OneDP / 朴素
|
||||||
|
1 步 FM</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>输出</td>
|
<td>输出</td>
|
||||||
<td>16 步 Δq</td>
|
<td>16 步 Δq</td>
|
||||||
<td><strong>B 样条</strong>:6 个控制点 × 6 关节,再采样成 16
|
<td><strong>16 步 Δq</strong>(v2.3:B 样条 6 控制点降为可选,需
|
||||||
步;自带平滑</td>
|
near_column 消融不掉点才启用)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>前缀条件</td>
|
<td>前缀条件</td>
|
||||||
<td>无,靠时间集成</td>
|
<td>无</td>
|
||||||
<td>输入"已提交前 3 步",新块从前缀接着走(RTC 思路)</td>
|
<td><strong>训练时前缀条件化</strong>(2512.05964):输入已提交且未执行的步,训练时随机遮盖前缀长度
|
||||||
|
0–3;推理零额外开销</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>碰撞引导</td>
|
<td>碰撞修正</td>
|
||||||
<td>无</td>
|
<td>无</td>
|
||||||
<td>最后一步加一次可微胶囊距离梯度修正:a ← a + η·∇d_capsule(d <
|
<td><strong>事后投影</strong>:对输出块做 1–2 步解析胶囊距离梯度,仅 d
|
||||||
安全距离时)</td>
|
< 余量时启用(v2.3:生成中引导在 1–2 步下无证据)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>推理成本</td>
|
<td>推理成本</td>
|
||||||
@@ -1008,9 +1535,10 @@ K×16 个可学习动作 token ──▶ 4 层 Transformer decoder(非自回
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>模式粘滞改为"噪声粘滞":上一周期选中候选的噪声向量保留下来,本周期作为
|
<p>候选排序(v2.3 修正):不用"噪声粘滞"(BID 中 7 个任务有 3
|
||||||
8
|
个变差),改为 BID 式一致性打分:分数 =
|
||||||
个噪声之一,相邻周期自然延续同一绕行方向。子目标头、价值头(§8.5)保持不变。</p>
|
−‖候选与上一已提交块重叠步之差‖²(加权)−
|
||||||
|
λ·价值头剩余代价。子目标头、价值头(§8.5)保持不变。</p>
|
||||||
<p>M4 同时实现两种头,M5 预训练后在 near_column + held-out 上
|
<p>M4 同时实现两种头,M5 预训练后在 near_column + held-out 上
|
||||||
A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。</p>
|
A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。</p>
|
||||||
<h3 id="62-预训练损失">6.2 预训练损失</h3>
|
<h3 id="62-预训练损失">6.2 预训练损失</h3>
|
||||||
@@ -1046,7 +1574,8 @@ A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。</p>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>步数</td>
|
<td>步数</td>
|
||||||
<td>约 20 万步(300 万样本约 30
|
<td>先跑 2000 步测吞吐再定;参考:200 万样本 × 30 epoch ÷ bs 1024 ≈ 6
|
||||||
|
万步(v2.3 更正:原"20 万步≈30 epoch"实为约 68
|
||||||
epoch),验证集闭环成功率不再上升即停</td>
|
epoch),验证集闭环成功率不再上升即停</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
@@ -1126,9 +1655,9 @@ APG 收敛后进一步缩短行程。</p>
|
|||||||
<h2 id="8-第五步无老师闭环部署">8. 第五步:无老师闭环部署</h2>
|
<h2 id="8-第五步无老师闭环部署">8. 第五步:无老师闭环部署</h2>
|
||||||
<h3 id="81-每个控制周期做什么默认-50-hz">8.1 每个控制周期做什么(默认 50
|
<h3 id="81-每个控制周期做什么默认-50-hz">8.1 每个控制周期做什么(默认 50
|
||||||
Hz)</h3>
|
Hz)</h3>
|
||||||
<pre><code>每 20 ms:
|
<pre><code>每 60 ms 推理一次(v2.3,见 H4;执行仍是 50 Hz,每步 20 ms):
|
||||||
1. 读当前 q(真机读编码器;查看器读当前插补位形)和最新目标(拖拽时每周期都在变)
|
1. 读当前 q(真机读编码器;查看器读当前插补位形)和最新目标(拖拽时每周期都在变)
|
||||||
2. 推理一次:得到 K=4 条 16 步动作块 + 模式概率 ≈ 2–5 ms(估算)
|
2. 推理一次:一步头 8 条候选(WTA 基线为 4 条)16 步动作块 延迟须 M4 实测
|
||||||
3. 按"模式概率 − 切换代价"排序(§8.2)
|
3. 按"模式概率 − 切换代价"排序(§8.2)
|
||||||
4. 安全层依次检查候选的前 n=3 步(60 ms 的运动)+ 刹停段(§8.3)
|
4. 安全层依次检查候选的前 n=3 步(60 ms 的运动)+ 刹停段(§8.3)
|
||||||
第一个通过的 → 把这 3 步"提交"给插补器;记下 k_prev
|
第一个通过的 → 把这 3 步"提交"给插补器;记下 k_prev
|
||||||
@@ -1137,21 +1666,28 @@ Hz)</h3>
|
|||||||
5. 全部不通过 → 进入刹停:按已验证的刹停轨迹减速停下,保持;下一周期继续推理
|
5. 全部不通过 → 进入刹停:按已验证的刹停轨迹减速停下,保持;下一周期继续推理
|
||||||
6. 到达判据:TCP 误差 < 1 mm(pose 另需 < 0.5°)且速度≈0 → 结束;
|
6. 到达判据:TCP 误差 < 1 mm(pose 另需 < 0.5°)且速度≈0 → 结束;
|
||||||
接近目标(< 5 mm)时可选做 1–3 次局部牛顿精修(solveTo 单步,不是全量 IK)</code></pre>
|
接近目标(< 5 mm)时可选做 1–3 次局部牛顿精修(solveTo 单步,不是全量 IK)</code></pre>
|
||||||
<p>插补器在两个周期之间做平滑过渡(下一块与正在执行的块做时间集成/交叉淡入,ACT
|
<p>v2.3:<strong>删除插补器交叉淡入/时间集成</strong>(见
|
||||||
的 temporal ensembling 思路),避免每 20 ms 一顿。</p>
|
H3)。执行的必须就是安全层认证过的那一块;块间连续性由前缀条件和一致性打分保证。"每
|
||||||
|
20 ms 重推理只执行 1 步"仅作 A/B 对照。</p>
|
||||||
<h3 id="82-模式粘滞防左右摇摆">8.2 模式粘滞(防左右摇摆)</h3>
|
<h3 id="82-模式粘滞防左右摇摆">8.2 模式粘滞(防左右摇摆)</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>排序分数 = log p(k) − c·[k ≠ k_prev],c 初值 2.0(在 §7.2 的 E5
|
<li>WTA 基线:排序分数 = log p(k) − c·[k ≠ k_prev],c 初值 2.0;k_prev
|
||||||
统计上调)。</li>
|
仅对 WTA 头作为输入。</li>
|
||||||
<li>训练时 k_prev
|
<li>一步头:BID 式一致性打分(见 §6.1A),不使用 k_prev / log
|
||||||
作为输入(§5.1),模型自己也学会"保持当前绕行方向"。</li>
|
p(k)。</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3 id="83-安全层唯一的硬保证">8.3 安全层(唯一的硬保证)</h3>
|
<h3 id="83-安全层唯一的硬保证">8.3 安全层(唯一的硬保证)</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>检查内容:候选前 3 步的连续运动做 1° 细验 + 半格复验(与现有
|
<li>检查内容(v2.3 修正,见
|
||||||
<code>pathFine</code> 同口径),外加关节限位。</li>
|
H1):臂×立柱/台架用<strong>距离下界认证</strong>——段两端最小距离之和
|
||||||
|
> Σ_j r_j·|Δθ_j|(r_j 为每轴实测杠杆上界,J1 约 9.0
|
||||||
|
mm/°)即判整段安全,否则二分到通过或判不安全;自碰撞对复用 pair2d
|
||||||
|
杠杆界;外加关节限位。离散
|
||||||
|
1°+半格检查只作快速预筛,不再作为保证。现有代码口径实为
|
||||||
|
1.5°+半格,文档原写法有误。</li>
|
||||||
<li><strong>可刹停不变式</strong>:执行前还要检查"从第 3
|
<li><strong>可刹停不变式</strong>:执行前还要检查"从第 3
|
||||||
步末状态按最大减速度停下"的刹停段也无干涉。于是任何时候系统都处在"有一条已验证的停车路线"的状态,下一周期就算模型完全失效,也只会停下、不会撞。</li>
|
步末状态按最大减速度(v2.3
|
||||||
|
新增每轴加速度上限,待真机参数)停下"的刹停段也无干涉。于是任何时候系统都处在"有一条已验证的停车路线"的状态,下一周期就算模型完全失效,也只会停下、不会撞。</li>
|
||||||
<li>耗时:3 步 × 4 候选,最坏约 4 × 10 个采样位形 × 约 1.8 ms ≈ 70
|
<li>耗时:3 步 × 4 候选,最坏约 4 × 10 个采样位形 × 约 1.8 ms ≈ 70
|
||||||
ms(太慢)→ 实际做法:
|
ms(太慢)→ 实际做法:
|
||||||
<ul>
|
<ul>
|
||||||
@@ -1421,13 +1957,16 @@ rt)</td>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>实际执行的碰撞帧</td>
|
<td>实际执行的碰撞帧</td>
|
||||||
<td><strong>= 0</strong></td>
|
<td><strong>= 0</strong>(以距离认证或 0.01° 审计测量,不用离散 1°
|
||||||
|
检查)</td>
|
||||||
<td>rt_drag_bench 0</td>
|
<td>rt_drag_bench 0</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>到达率</td>
|
<td>到达率</td>
|
||||||
<td>route <strong>60/60</strong>,near pos <strong>30/30</strong>,near
|
<td>route <strong>60/60</strong>,near pos <strong>30/30</strong>,near
|
||||||
rt <strong>30/30</strong>,held-out ≥ 98%</td>
|
rt <strong>30/30</strong>,<strong>另造 ≥1000 例 near_column
|
||||||
|
一次性验收集 0 失败</strong>;held-out(分母只算可达任务)≥ 98%,D
|
||||||
|
类另考停靠距离 ≤ 老师 + 5 mm</td>
|
||||||
<td>60/60、30/30、30/30</td>
|
<td>60/60、30/30、30/30</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
|
|||||||
+96
-19
@@ -1,4 +1,4 @@
|
|||||||
# Transformer 避障运动策略:无老师闭环部署方案(审查稿 v2.2)
|
# Transformer 避障运动策略:无老师闭环部署方案(审查稿 v2.3)
|
||||||
|
|
||||||
> - v1(2026-10-17 20:06,`40af3b4`):模型一次生成整条 32 点路径,失败回落到原规划器("有老师部署")。
|
> - v1(2026-10-17 20:06,`40af3b4`):模型一次生成整条 32 点路径,失败回落到原规划器("有老师部署")。
|
||||||
> - v1.1(20:25,`c51f8f9`):加入后训练挖错循环。
|
> - v1.1(20:25,`c51f8f9`):加入后训练挖错循环。
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
> 加入具身智能领域主流做法的调研与对比(§1–§2),并据此调整模型输出、后训练方法和验收标准。
|
> 加入具身智能领域主流做法的调研与对比(§1–§2),并据此调整模型输出、后训练方法和验收标准。
|
||||||
> - v2.1(2026-10-17 20:58):训练机定为 RTX 3090 24 GB;near_column 验收改为 **30/30**,新增 §8.5「为什么会超时、无老师怎样做到 30/30」;新增 §8.6 控制周期业界调研与评估。
|
> - 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.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`(贴立柱修复后的规划器)。本文只是方案,代码尚未编写。
|
> - 基于 `main@3c7c814`(贴立柱修复后的规划器)。本文只是方案,代码尚未编写。
|
||||||
> - 审查重点:§0 定位、§2 差异与优化、§5 输出表示、§7 后训练(APG)、§8 闭环部署与安全层、§9 验收。
|
> - 审查重点:§0 定位、§2 差异与优化、§5 输出表示、§7 后训练(APG)、§8 闭环部署与安全层、§9 验收。
|
||||||
|
|
||||||
@@ -28,6 +29,80 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 0A. v2.3 逐项可行性核查结论(必读)
|
||||||
|
|
||||||
|
**先说清楚一件事:没有任何方案能在实测前被"证明完全没有风险"。** 论文证据只能说明"别人在相近条件下做成过";我们的条件(低维状态、单根固定立柱、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 对照 |
|
||||||
|
|
||||||
|
### 0A.2 逐项核查表
|
||||||
|
|
||||||
|
| § | 方案 | 等级 | 关键证据 | 残余风险 | 门禁(本仓库) | 回退 |
|
||||||
|
|---|---|---|---|---|---|---|
|
||||||
|
| §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%);到达率分母只算可达任务 | — |
|
||||||
|
|
||||||
|
### 0A.3 沙箱对照实验(2D 绕柱双模态,CPU)
|
||||||
|
|
||||||
|
为验证"一步生成会不会把左右平均成穿柱",在沙箱做了一个最小实验: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 |
|
||||||
|
| **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.4 仍需用户确认 / 实测才能消除的风险
|
||||||
|
|
||||||
|
1. 浏览器端推理延迟(最大不确定项,M4 后第一时间测)。
|
||||||
|
2. 真机电机/驱动/通信方式(决定插补频率与刹停加速度上限)。
|
||||||
|
3. 老师一致性(M1 第一项门禁)。
|
||||||
|
4. Neural MP 式"运行时采样多条、用解析距离挑选"是否算违反"无运行时老师"——v2.3 的理解是**不算**(不做搜索,只对模型自己的候选打分),请确认。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 1. 业界调研:具身智能里的神经运动规划
|
## 1. 业界调研:具身智能里的神经运动规划
|
||||||
|
|
||||||
以下数据均来自论文原文(链接见 §13)。
|
以下数据均来自论文原文(链接见 §13)。
|
||||||
@@ -103,6 +178,8 @@
|
|||||||
| **FAST 动作分词 / π0.5 知识隔离**(2025) | DCT 压缩动作块成离散 token,供大语言模型骨干学习 | FAST 训练提速最多 5 倍 | ❌ 分词本身不采纳(为语言大模型服务,自回归推理慢);⚠️ 借鉴"频域/样条表示":动作块改用 **B 样条控制点**输出,平滑性由表示保证 |
|
| **FAST 动作分词 / π0.5 知识隔离**(2025) | DCT 压缩动作块成离散 token,供大语言模型骨干学习 | FAST 训练提速最多 5 倍 | ❌ 分词本身不采纳(为语言大模型服务,自回归推理慢);⚠️ 借鉴"频域/样条表示":动作块改用 **B 样条控制点**输出,平滑性由表示保证 |
|
||||||
| **VLA 大模型**(π0/π0.5、GR00T、OpenVLA) | 视觉语言骨干 + 动作专家 | 3B 模型单次预填充 46 ms(4090) | ❌ 不采纳:我们没有图像、没有语言指令,环境固定精确;30 亿参数只会更慢,不会更准 |
|
| **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 这几条前沿线在"低维状态、精确几何、实时控制"场景下的组合,规模仍然是几百万参数。
|
**结论:v2.2 采纳"一步流匹配头 + 碰撞代价引导 + 前缀条件 + B 样条表示 + 可选 ReinFlow"。** 这正是 π0.5、MP1/OFP、MPD、RTC 这几条前沿线在"低维状态、精确几何、实时控制"场景下的组合,规模仍然是几百万参数。
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -173,12 +250,12 @@ pip install numpy pyarrow tqdm tensorboard onnx onnxruntime
|
|||||||
|
|
||||||
闭环策略学的是"在某个状态下,接下来 16 步怎么走",所以要把整条路径切成很多个"状态 → 动作块"样本:
|
闭环策略学的是"在某个状态下,接下来 16 步怎么走",所以要把整条路径切成很多个"状态 → 动作块"样本:
|
||||||
|
|
||||||
1. 按现有 `animTo` 的轴速比 `VREL = [0.6, 0.6, 0.9, 0.9, 1.2, 1.8]` 做时间参数化(与查看器动画同口径),控制周期 **dt = 20 ms**。
|
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 个,减少冗余)生成样本:
|
2. 得到状态序列 q_0, q_1, …, q_N。对每个 t(每隔 3 步取 1 个,减少冗余)生成样本:
|
||||||
- 输入:当前 q_t、目标 (T, R, mode)
|
- 输入:当前 q_t、目标 (T, R, mode)
|
||||||
- 标签:未来 S = 16 步的增量 Δq_{t+1..t+16} = q_{t+k} − q_t(到终点后补零,即"停住")
|
- 标签:未来 S = 16 步的增量 Δq_{t+1..t+16} = q_{t+k} − q_t(到终点后补零,即"停住")
|
||||||
3. 每条路径平均约 50–150 个样本 → 5 万条任务约 300 万个训练样本。
|
3. 每条路径约 40–50 个样本(route_bench 平均执行约 2.5 s)→ 5 万条任务约 200 万个训练样本(以 M1 的 stats.json 为准)。
|
||||||
4. **路径后缀天然覆盖"从半路出发"**,等于免费的 DAgger 种子数据。
|
4. ~~路径后缀等于免费 DAgger~~(v2.3 删除:后缀仍是老师状态)。改为关节噪声增广(σ 0.5–1°)+ 离线老师重标,偏离状态的覆盖靠 §7。
|
||||||
|
|
||||||
### 4.6 耗时与存储
|
### 4.6 耗时与存储
|
||||||
|
|
||||||
@@ -253,14 +330,14 @@ K×16 个可学习动作 token ──▶ 4 层 Transformer decoder(非自回
|
|||||||
| | v2 WTA 头(保留为基线) | **v2.2 一步流匹配头(默认)** |
|
| | v2 WTA 头(保留为基线) | **v2.2 一步流匹配头(默认)** |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 多模态 | 固定 K=4 个模式 | 连续分布;每周期并行采 K=8 个噪声 → 8 条候选 |
|
| 多模态 | 固定 K=4 个模式 | 连续分布;每周期并行采 K=8 个噪声 → 8 条候选 |
|
||||||
| 训练 | WTA-L1 + 模式 CE | OFP 自蒸馏(或 MeanFlow),从零训练,无需预训练老师模型 |
|
| 训练 | WTA-L1 + 模式 CE | **MeanFlow**(沙箱已验证 1 步可用)或 Shortcut + COT 条件配对(无需 JVP);损失 = 流匹配损失 + FK 胶囊端点损失(加在一步输出上)。不采用 Consistency Policy / OneDP / 朴素 1 步 FM |
|
||||||
| 输出 | 16 步 Δq | **B 样条**:6 个控制点 × 6 关节,再采样成 16 步;自带平滑 |
|
| 输出 | 16 步 Δq | **16 步 Δq**(v2.3:B 样条 6 控制点降为可选,需 near_column 消融不掉点才启用) |
|
||||||
| 前缀条件 | 无,靠时间集成 | 输入"已提交前 3 步",新块从前缀接着走(RTC 思路) |
|
| 前缀条件 | 无 | **训练时前缀条件化**(2512.05964):输入已提交且未执行的步,训练时随机遮盖前缀长度 0–3;推理零额外开销 |
|
||||||
| 碰撞引导 | 无 | 最后一步加一次可微胶囊距离梯度修正:a ← a + η·∇d_capsule(d < 安全距离时) |
|
| 碰撞修正 | 无 | **事后投影**:对输出块做 1–2 步解析胶囊距离梯度,仅 d < 余量时启用(v2.3:生成中引导在 1–2 步下无证据) |
|
||||||
| 推理成本 | 1 次前向 | 1–2 次前向 + 1 次解析梯度(JS 实现,不走 ONNX) |
|
| 推理成本 | 1 次前向 | 1–2 次前向 + 1 次解析梯度(JS 实现,不走 ONNX) |
|
||||||
| APG 兼容 | ✅ | ✅(固定噪声后生成器是确定性可微映射) |
|
| APG 兼容 | ✅ | ✅(固定噪声后生成器是确定性可微映射) |
|
||||||
|
|
||||||
模式粘滞改为"噪声粘滞":上一周期选中候选的噪声向量保留下来,本周期作为 8 个噪声之一,相邻周期自然延续同一绕行方向。子目标头、价值头(§8.5)保持不变。
|
候选排序(v2.3 修正):不用"噪声粘滞"(BID 中 7 个任务有 3 个变差),改为 BID 式一致性打分:分数 = −‖候选与上一已提交块重叠步之差‖²(加权)− λ·价值头剩余代价。子目标头、价值头(§8.5)保持不变。
|
||||||
|
|
||||||
M4 同时实现两种头,M5 预训练后在 near_column + held-out 上 A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。
|
M4 同时实现两种头,M5 预训练后在 near_column + held-out 上 A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。
|
||||||
|
|
||||||
@@ -282,7 +359,7 @@ L = WTA-L1(动作块, 最近模式) 权重 1.0
|
|||||||
| 学习率 | 1e-3,预热 1000 步,余弦退火(同 DRP 量级) |
|
| 学习率 | 1e-3,预热 1000 步,余弦退火(同 DRP 量级) |
|
||||||
| batch | 1024(3090 24 GB) |
|
| batch | 1024(3090 24 GB) |
|
||||||
| 精度 | bf16 混合精度 |
|
| 精度 | bf16 混合精度 |
|
||||||
| 步数 | 约 20 万步(300 万样本约 30 epoch),验证集闭环成功率不再上升即停 |
|
| 步数 | 先跑 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,跑完首轮再校正) |
|
| 预计耗时 | RTX 3090 约 1.5–3 小时(估算;DRP 4.67 M 参数在 4090 上预训练 100 万步用 3 天,我们的样本少、无点云编码,步数约其 1/5,跑完首轮再校正) |
|
||||||
|
|
||||||
### 6.4 对拍与验证(每 epoch)
|
### 6.4 对拍与验证(每 epoch)
|
||||||
@@ -341,9 +418,9 @@ for 每个 batch(随机采样 q0 和目标,82 ms 级别的便宜采样,不
|
|||||||
### 8.1 每个控制周期做什么(默认 50 Hz)
|
### 8.1 每个控制周期做什么(默认 50 Hz)
|
||||||
|
|
||||||
```
|
```
|
||||||
每 20 ms:
|
每 60 ms 推理一次(v2.3,见 H4;执行仍是 50 Hz,每步 20 ms):
|
||||||
1. 读当前 q(真机读编码器;查看器读当前插补位形)和最新目标(拖拽时每周期都在变)
|
1. 读当前 q(真机读编码器;查看器读当前插补位形)和最新目标(拖拽时每周期都在变)
|
||||||
2. 推理一次:得到 K=4 条 16 步动作块 + 模式概率 ≈ 2–5 ms(估算)
|
2. 推理一次:一步头 8 条候选(WTA 基线为 4 条)16 步动作块 延迟须 M4 实测
|
||||||
3. 按"模式概率 − 切换代价"排序(§8.2)
|
3. 按"模式概率 − 切换代价"排序(§8.2)
|
||||||
4. 安全层依次检查候选的前 n=3 步(60 ms 的运动)+ 刹停段(§8.3)
|
4. 安全层依次检查候选的前 n=3 步(60 ms 的运动)+ 刹停段(§8.3)
|
||||||
第一个通过的 → 把这 3 步"提交"给插补器;记下 k_prev
|
第一个通过的 → 把这 3 步"提交"给插补器;记下 k_prev
|
||||||
@@ -354,17 +431,17 @@ for 每个 batch(随机采样 q0 和目标,82 ms 级别的便宜采样,不
|
|||||||
接近目标(< 5 mm)时可选做 1–3 次局部牛顿精修(solveTo 单步,不是全量 IK)
|
接近目标(< 5 mm)时可选做 1–3 次局部牛顿精修(solveTo 单步,不是全量 IK)
|
||||||
```
|
```
|
||||||
|
|
||||||
插补器在两个周期之间做平滑过渡(下一块与正在执行的块做时间集成/交叉淡入,ACT 的 temporal ensembling 思路),避免每 20 ms 一顿。
|
v2.3:**删除插补器交叉淡入/时间集成**(见 H3)。执行的必须就是安全层认证过的那一块;块间连续性由前缀条件和一致性打分保证。"每 20 ms 重推理只执行 1 步"仅作 A/B 对照。
|
||||||
|
|
||||||
### 8.2 模式粘滞(防左右摇摆)
|
### 8.2 模式粘滞(防左右摇摆)
|
||||||
|
|
||||||
- 排序分数 = log p(k) − c·[k ≠ k_prev],c 初值 2.0(在 §7.2 的 E5 统计上调)。
|
- WTA 基线:排序分数 = log p(k) − c·[k ≠ k_prev],c 初值 2.0;k_prev 仅对 WTA 头作为输入。
|
||||||
- 训练时 k_prev 作为输入(§5.1),模型自己也学会"保持当前绕行方向"。
|
- 一步头:BID 式一致性打分(见 §6.1A),不使用 k_prev / log p(k)。
|
||||||
|
|
||||||
### 8.3 安全层(唯一的硬保证)
|
### 8.3 安全层(唯一的硬保证)
|
||||||
|
|
||||||
- 检查内容:候选前 3 步的连续运动做 1° 细验 + 半格复验(与现有 `pathFine` 同口径),外加关节限位。
|
- 检查内容(v2.3 修正,见 H1):臂×立柱/台架用**距离下界认证**——段两端最小距离之和 > Σ_j r_j·|Δθ_j|(r_j 为每轴实测杠杆上界,J1 约 9.0 mm/°)即判整段安全,否则二分到通过或判不安全;自碰撞对复用 pair2d 杠杆界;外加关节限位。离散 1°+半格检查只作快速预筛,不再作为保证。现有代码口径实为 1.5°+半格,文档原写法有误。
|
||||||
- **可刹停不变式**:执行前还要检查"从第 3 步末状态按最大减速度停下"的刹停段也无干涉。于是任何时候系统都处在"有一条已验证的停车路线"的状态,下一周期就算模型完全失效,也只会停下、不会撞。
|
- **可刹停不变式**:执行前还要检查"从第 3 步末状态按最大减速度(v2.3 新增每轴加速度上限,待真机参数)停下"的刹停段也无干涉。于是任何时候系统都处在"有一条已验证的停车路线"的状态,下一周期就算模型完全失效,也只会停下、不会撞。
|
||||||
- 耗时:3 步 × 4 候选,最坏约 4 × 10 个采样位形 × 约 1.8 ms ≈ 70 ms(太慢)→ 实际做法:
|
- 耗时:3 步 × 4 候选,最坏约 4 × 10 个采样位形 × 约 1.8 ms ≈ 70 ms(太慢)→ 实际做法:
|
||||||
- 先用现有包围球预筛(大多数位形直接判安全,见 2026-10-15 记录 collideFree 2.9→1.8 ms);
|
- 先用现有包围球预筛(大多数位形直接判安全,见 2026-10-15 记录 collideFree 2.9→1.8 ms);
|
||||||
- 按排序**逐个**检查,第一个通过就停(多数周期只检查 1 条);
|
- 按排序**逐个**检查,第一个通过就停(多数周期只检查 1 条);
|
||||||
@@ -456,8 +533,8 @@ for 每个 batch(随机采样 q0 和目标,82 ms 级别的便宜采样,不
|
|||||||
|
|
||||||
| 指标 | 要求 | 现状参考 |
|
| 指标 | 要求 | 现状参考 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 实际执行的碰撞帧 | **= 0** | rt_drag_bench 0 |
|
| 实际执行的碰撞帧 | **= 0**(以距离认证或 0.01° 审计测量,不用离散 1° 检查) | rt_drag_bench 0 |
|
||||||
| 到达率 | route **60/60**,near pos **30/30**,near rt **30/30**,held-out ≥ 98% | 60/60、30/30、30/30 |
|
| 到达率 | route **60/60**,near pos **30/30**,near rt **30/30**,**另造 ≥1000 例 near_column 一次性验收集 0 失败**;held-out(分母只算可达任务)≥ 98%,D 类另考停靠距离 ≤ 老师 + 5 mm | 60/60、30/30、30/30 |
|
||||||
| 到达用时 | ≤ 老师同任务路径动画时长 × 1.3 | — |
|
| 到达用时 | ≤ 老师同任务路径动画时长 × 1.3 | — |
|
||||||
| 关节行程 | ≤ 现有规划器 × 1.10 | route 平均 467° |
|
| 关节行程 | ≤ 现有规划器 × 1.10 | route 平均 467° |
|
||||||
| 冷启动(新目标→第一个动作) | < 10 ms | 首次全量 IK 最差约 2 s |
|
| 冷启动(新目标→第一个动作) | < 10 ms | 首次全量 IK 最差约 2 s |
|
||||||
|
|||||||
+3110
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,953 @@
|
|||||||
|
# 方案逐项核查报告(v2.3 证据附录)
|
||||||
|
|
||||||
|
> 2026-10-17。四路全文精读 + 沙箱实验。各节原样收录,正文结论见《Transformer轨迹拟合训练方案》§0A。
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 一、§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 的结论都依赖这个裁定。
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
# 2D 绕柱玩具实验:比较不同动作头在"左右(上下)双模态绕行"下的闭环表现
|
||||||
|
import torch, torch.nn as nn, numpy as np, math, time, sys, json
|
||||||
|
torch.manual_seed(0); np.random.seed(0); torch.set_num_threads(2)
|
||||||
|
R=1.0; H=16; STEP=0.05
|
||||||
|
def demo(s,g,mode):
|
||||||
|
via=np.array([0.0, 1.35*mode])
|
||||||
|
pts=[s, np.array([-0.9,0.95*mode]) if s[0]<-0.9 else s, via, np.array([0.9,0.95*mode]), g]
|
||||||
|
P=np.array(pts); L=np.r_[0,np.cumsum(np.linalg.norm(np.diff(P,axis=0),axis=1))]
|
||||||
|
n=int(L[-1]/STEP)+1; u=np.linspace(0,L[-1],n)
|
||||||
|
x=np.interp(u,L,P[:,0]); y=np.interp(u,L,P[:,1]); Q=np.c_[x,y]
|
||||||
|
# 平滑
|
||||||
|
for _ in range(20): Q[1:-1]=0.5*Q[1:-1]+0.25*(Q[:-2]+Q[2:])
|
||||||
|
return Q
|
||||||
|
def sample_task(hard=False):
|
||||||
|
sy=np.random.uniform(-0.3,0.3) if hard else np.random.uniform(-1.5,1.5)
|
||||||
|
gy=np.random.uniform(-0.3,0.3) if hard else np.random.uniform(-1.5,1.5)
|
||||||
|
return np.array([np.random.uniform(-2.5,-1.6),sy]), np.array([np.random.uniform(1.6,2.5),gy])
|
||||||
|
def collide_path(Q):
|
||||||
|
return np.any(np.linalg.norm(Q,axis=1)<R)
|
||||||
|
def build(n=3000):
|
||||||
|
O=[];A=[]
|
||||||
|
for _ in range(n):
|
||||||
|
s,g=sample_task(hard=np.random.rand()<0.4)
|
||||||
|
d=s[1]+g[1]
|
||||||
|
mode = np.sign(d) if abs(d)>0.3 else (1 if np.random.rand()<0.5 else -1)
|
||||||
|
Q=demo(s,g,mode)
|
||||||
|
if collide_path(Q): continue
|
||||||
|
D=np.diff(Q,axis=0); D=np.r_[D,np.zeros((H,2))]
|
||||||
|
for i in range(len(Q)-1):
|
||||||
|
O.append(np.r_[Q[i],g]); A.append(D[i:i+H].reshape(-1)/STEP)
|
||||||
|
return torch.tensor(np.array(O),dtype=torch.float32), torch.tensor(np.array(A),dtype=torch.float32)
|
||||||
|
O,A=build(); print('samples',len(O),flush=True)
|
||||||
|
AD=2*H
|
||||||
|
def mlp(i,o,h=256): return nn.Sequential(nn.Linear(i,h),nn.SiLU(),nn.Linear(h,h),nn.SiLU(),nn.Linear(h,h),nn.SiLU(),nn.Linear(h,o))
|
||||||
|
class MSE(nn.Module):
|
||||||
|
def __init__(s): super().__init__(); s.f=mlp(4,AD)
|
||||||
|
def loss(s,o,a): return ((s.f(o)-a)**2).mean()
|
||||||
|
def sample(s,o,k=1): return s.f(o).unsqueeze(1).expand(-1,k,-1)
|
||||||
|
class WTA(nn.Module):
|
||||||
|
K=4
|
||||||
|
def __init__(s): super().__init__(); s.f=mlp(4,AD*s.K+s.K)
|
||||||
|
def out(s,o):
|
||||||
|
y=s.f(o); return y[:,:AD*s.K].view(-1,s.K,AD), y[:,AD*s.K:]
|
||||||
|
def loss(s,o,a):
|
||||||
|
p,l=s.out(o); e=(p-a[:,None]).abs().mean(-1); k=e.argmin(1)
|
||||||
|
return e.gather(1,k[:,None]).mean()+0.5*nn.functional.cross_entropy(l,k)
|
||||||
|
def sample(s,o,k=1):
|
||||||
|
p,l=s.out(o)
|
||||||
|
if k==1: return p.gather(1,l.argmax(1)[:,None,None].expand(-1,1,AD))
|
||||||
|
o_=l.argsort(1,descending=True); return p.gather(1,o_[:,:,None].expand(-1,-1,AD)) # 按概率排序
|
||||||
|
class FM(nn.Module):
|
||||||
|
def __init__(s,steps): super().__init__(); s.f=mlp(4+AD+1,AD); s.steps=steps
|
||||||
|
def loss(s,o,a):
|
||||||
|
e=torch.randn_like(a); t=torch.rand(len(a),1); z=(1-t)*a+t*e
|
||||||
|
return ((s.f(torch.cat([o,z,t],1))-(e-a))**2).mean()
|
||||||
|
def sample(s,o,k=1):
|
||||||
|
B=len(o); oo=o.repeat_interleave(k,0); z=torch.randn(B*k,AD); dt=1/s.steps
|
||||||
|
for i in range(s.steps):
|
||||||
|
t=torch.full((B*k,1),1-i*dt); z=z-dt*s.f(torch.cat([oo,z,t],1))
|
||||||
|
return z.view(B,k,AD)
|
||||||
|
class MF(nn.Module): # MeanFlow (Geng et al. 2025)
|
||||||
|
def __init__(s): super().__init__(); s.f=mlp(4+AD+2,AD)
|
||||||
|
def u(s,o,z,r,t): return s.f(torch.cat([o,z,r,t],1))
|
||||||
|
def loss(s,o,a):
|
||||||
|
B=len(a); e=torch.randn_like(a)
|
||||||
|
t=torch.rand(B,1); r=torch.rand(B,1); t,r=torch.maximum(t,r),torch.minimum(t,r)
|
||||||
|
eq=(torch.rand(B,1)<0.75); r=torch.where(eq,t,r)
|
||||||
|
z=(1-t)*a+t*e; v=e-a
|
||||||
|
fn=lambda z_,r_,t_: s.u(o,z_,r_,t_)
|
||||||
|
u,dudt=torch.func.jvp(fn,(z,r,t),(v,torch.zeros_like(r),torch.ones_like(t)))
|
||||||
|
tgt=(v-(t-r)*dudt).detach()
|
||||||
|
return ((u-tgt)**2).mean()
|
||||||
|
def sample(s,o,k=1):
|
||||||
|
B=len(o); oo=o.repeat_interleave(k,0); e=torch.randn(B*k,AD)
|
||||||
|
x=e-s.u(oo,e,torch.zeros(B*k,1),torch.ones(B*k,1)); return x.view(B,k,AD)
|
||||||
|
def train(m,iters=6000,bs=512):
|
||||||
|
opt=torch.optim.AdamW(m.parameters(),1e-3,weight_decay=1e-4)
|
||||||
|
sch=torch.optim.lr_scheduler.CosineAnnealingLR(opt,iters)
|
||||||
|
for it in range(iters):
|
||||||
|
idx=torch.randint(0,len(O),(bs,)); l=m.loss(O[idx],A[idx])
|
||||||
|
opt.zero_grad(); l.backward(); opt.step(); sch.step()
|
||||||
|
return m
|
||||||
|
def seg_collide(p,q):
|
||||||
|
for a in np.linspace(0,1,6):
|
||||||
|
if np.linalg.norm(p+(q-p)*a)<R: return True
|
||||||
|
return False
|
||||||
|
@torch.no_grad()
|
||||||
|
def rollout(m,s,g,k=1,safety=False,commit=3,T=500):
|
||||||
|
p=s.copy(); hits=0; ups=[]; brakes=0
|
||||||
|
for t in range(0,T,commit):
|
||||||
|
o=torch.tensor(np.r_[p,g],dtype=torch.float32)[None]
|
||||||
|
C=m.sample(o,k)[0].numpy().reshape(-1,H,2)*STEP
|
||||||
|
chosen=None
|
||||||
|
for c in C:
|
||||||
|
path=p+np.cumsum(c[:commit],0)
|
||||||
|
if not safety: chosen=c; break
|
||||||
|
pts=np.r_[p[None],path]
|
||||||
|
if not any(seg_collide(pts[i],pts[i+1]) for i in range(commit)): chosen=c; break
|
||||||
|
if chosen is None: brakes+=1; continue
|
||||||
|
for d in chosen[:commit]:
|
||||||
|
q=p+d
|
||||||
|
if seg_collide(p,q): hits+=1
|
||||||
|
p=q
|
||||||
|
if abs(p[0])<0.5: ups.append(np.sign(p[1]))
|
||||||
|
if np.linalg.norm(p-g)<0.1: return dict(ok=1,hits=hits,brakes=brakes,steps=t,mode=np.mean(ups) if ups else 0)
|
||||||
|
return dict(ok=0,hits=hits,brakes=brakes,steps=T,mode=np.mean(ups) if ups else 0)
|
||||||
|
def evaluate(m,k,safety,n=150,hard=True):
|
||||||
|
np.random.seed(123); res=[rollout(m,*sample_task(hard),k=k,safety=safety) for _ in range(n)]
|
||||||
|
ok=np.mean([r['ok'] for r in res]); col=np.mean([r['hits']>0 for r in res])
|
||||||
|
br=np.mean([r['brakes'] for r in res]); up=np.mean([r['mode']>0 for r in res if r['ok']]) if ok>0 else float('nan')
|
||||||
|
return dict(reach=round(ok,3),collide_ep=round(col,3),brakes=round(br,1),frac_up=round(up,2))
|
||||||
|
methods={'MSE':lambda:MSE(),'WTA4':lambda:WTA(),'FM10':lambda:FM(10),'FM1':lambda:FM(1),'MeanFlow1':lambda:MF()}
|
||||||
|
which=sys.argv[1:] or list(methods)
|
||||||
|
out={}
|
||||||
|
for name in which:
|
||||||
|
torch.manual_seed(0); t0=time.time(); m=train(methods[name]()); tt=time.time()-t0
|
||||||
|
o=torch.tensor(np.r_[[-2,0],[2,0]],dtype=torch.float32)[None]
|
||||||
|
t1=time.time(); [m.sample(o,8) for _ in range(50)]; lat=(time.time()-t1)/50*1000
|
||||||
|
r={'train_s':round(tt),'infer_ms_k8':round(lat,2)}
|
||||||
|
r['hard_raw_k1']=evaluate(m,1,False); r['hard_safe_k8']=evaluate(m,4 if name=='WTA4' else (1 if name=='MSE' else 8),True)
|
||||||
|
r['easy_raw_k1']=evaluate(m,1,False,hard=False)
|
||||||
|
out[name]=r; print(name,json.dumps(r,ensure_ascii=False),flush=True)
|
||||||
|
json.dump(out,open(f'/workspace/work/toy/res_{"_".join(which)}.json','w'),indent=1)
|
||||||
Reference in New Issue
Block a user