docs: 方案 v2.3.1 补齐其余 20 处不一致修复,新增 §0A.5 修复状态表;核查报告标注为修复前记录;route_bench 实测 39/40
This commit is contained in:
+117
-34
@@ -256,9 +256,9 @@
|
||||
</header>
|
||||
<nav id="TOC" role="doc-toc">
|
||||
<ul>
|
||||
<li><a href="#transformer-避障运动策略无老师闭环部署方案审查稿-v23"
|
||||
id="toc-transformer-避障运动策略无老师闭环部署方案审查稿-v23">Transformer
|
||||
避障运动策略:无老师闭环部署方案(审查稿 v2.3)</a>
|
||||
<li><a href="#transformer-避障运动策略无老师闭环部署方案审查稿-v231"
|
||||
id="toc-transformer-避障运动策略无老师闭环部署方案审查稿-v231">Transformer
|
||||
避障运动策略:无老师闭环部署方案(审查稿 v2.3.1)</a>
|
||||
<ul>
|
||||
<li><a href="#0-定位与边界" id="toc-0-定位与边界">0. 定位与边界</a></li>
|
||||
<li><a href="#0a-v23-逐项可行性核查结论必读"
|
||||
@@ -272,6 +272,8 @@ id="toc-0a1-四处硬伤已在正文修正">0A.1 四处硬伤(已在正文修
|
||||
<li><a href="#0a3-沙箱对照实验2d-绕柱双模态cpu"
|
||||
id="toc-0a3-沙箱对照实验2d-绕柱双模态cpu">0A.3 沙箱对照实验(2D
|
||||
绕柱双模态,CPU)</a></li>
|
||||
<li><a href="#0a5-修复状态v231" id="toc-0a5-修复状态v231">0A.5
|
||||
修复状态(v2.3.1)</a></li>
|
||||
<li><a href="#0a4-仍需用户确认--实测才能消除的风险"
|
||||
id="toc-0a4-仍需用户确认--实测才能消除的风险">0A.4 仍需用户确认 /
|
||||
实测才能消除的风险</a></li>
|
||||
@@ -386,8 +388,8 @@ id="toc-92-验收标准部署形态--策略--安全层">9.2 验收标准(部
|
||||
</ul>
|
||||
</nav>
|
||||
<h1
|
||||
id="transformer-避障运动策略无老师闭环部署方案审查稿-v23">Transformer
|
||||
避障运动策略:无老师闭环部署方案(审查稿 v2.3)</h1>
|
||||
id="transformer-避障运动策略无老师闭环部署方案审查稿-v231">Transformer
|
||||
避障运动策略:无老师闭环部署方案(审查稿 v2.3.1)</h1>
|
||||
<blockquote>
|
||||
<ul>
|
||||
<li>v1(2026-10-17 20:06,<code>40af3b4</code>):模型一次生成整条 32
|
||||
@@ -456,12 +458,14 @@ ms)读当前关节角和目标,重新推理一段短动作块,只执行最
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>收益目标</td>
|
||||
<td>冷启动(新目标到第一个动作)< 10 ms;每周期推理 + 安全检查 <
|
||||
10 ms;拖拽重规划 P99(现状约 321 ms)不再存在</td>
|
||||
<td>冷启动(新目标到第一个动作)< 10 ms;每次推理 + 安全检查 < 20
|
||||
ms(每 60 ms 一次,留 3 倍余量;须 M4 后在浏览器实测,v2.3
|
||||
更正);拖拽重规划 P99(现状约 321 ms)不再存在</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>底线</td>
|
||||
<td>实时拖拽<strong>碰撞帧 = 0</strong>(安全层保证);到达率、行程在 §9
|
||||
<td>实时拖拽<strong>碰撞帧 = 0</strong>(由安全层的距离下界认证保证,见
|
||||
§8.3;离散采样检查不能单独作此保证);到达率、行程在 §9
|
||||
的指标上不低于现有规划器</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -868,6 +872,55 @@ A/B,不能凭论文或玩具定结论。</li>
|
||||
<li>早期 300 步训练的 MSE 在同一难例上 100% 穿柱、加安全层后 0%
|
||||
到达(卡死),说明"欠拟合时平均模态"的风险真实存在。</li>
|
||||
</ul>
|
||||
<h3 id="0a5-修复状态v231">0A.5 修复状态(v2.3.1)</h3>
|
||||
<p>《方案逐项核查报告》是<strong>修复前</strong>的审查记录:它列的是问题和证据,不是修复结果。修复结果都落在本文正文里,状态如下:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>类别</th>
|
||||
<th>条目</th>
|
||||
<th>状态</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>硬伤</td>
|
||||
<td>H1 安全层距离认证、H2 时间律、H3 删交叉淡入、H4 推理节奏统一</td>
|
||||
<td>✅ 正文已改(§4.5、§8.1、§8.3)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>方案替换</td>
|
||||
<td>生成时引导→事后投影、RTC→训练时前缀、噪声粘滞→一致性打分、B
|
||||
样条→可选、否决 CP/OneDP/朴素 1 步 FM、后缀≠DAgger</td>
|
||||
<td>✅ 正文已改(§2.4、§4.5、§6.1A、§8.2)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>内部不一致</td>
|
||||
<td>I1 epoch、I2 样本数、I3 APG 展开长度、I4 时间集成、I5 候选数、I6
|
||||
k_prev、I7 输入表、I8 流头损失、I9 延迟预算、I10 安全层耗时、I11
|
||||
检查口径、I12 加速度上限(已列为待定参数)、I13 D 类分母、I14
|
||||
门禁/验收分离、I15 用时口径、I16 碰撞保证表述、I17 重训耗时、I18
|
||||
预热表述、I19 执行步数、I21 非马尔可夫、I22 子目标触发、I23
|
||||
精修过安全层、I24 模型体积</td>
|
||||
<td>✅ 正文已改</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>内部不一致</td>
|
||||
<td>I20 route 基准口径不符</td>
|
||||
<td>已重跑:仓库 40 例基准为到达 40/40、有效 39/40,§9.2
|
||||
现状列已按实测改写;<strong>说明老师本身在 1 例上路径不合格,M1
|
||||
数据过滤(§4.4)必须把这类样本丢掉</strong></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td><strong>只能靠实测消除</strong></td>
|
||||
<td>浏览器推理延迟;一步头 vs WTA
|
||||
谁更好;老师一致性;距离认证后的拒绝率是否影响 30/30;APG
|
||||
是否压缩多模态;真机加速度上限</td>
|
||||
<td>⏳ 已设门禁与回退(§0A.2),在 M1/M4/M5/M7
|
||||
里按顺序测,<strong>论文和推理消除不了</strong></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 id="0a4-仍需用户确认--实测才能消除的风险">0A.4 仍需用户确认 /
|
||||
实测才能消除的风险</h3>
|
||||
<ol type="1">
|
||||
@@ -1032,8 +1085,8 @@ APG)。</li>
|
||||
<td>1</td>
|
||||
<td>一次生成整条 32 点路径,开环执行</td>
|
||||
<td>闭环 + 短动作块滚动执行</td>
|
||||
<td><strong>改为动作块策略</strong>:每周期输出未来 16 步(320
|
||||
ms),只执行前 2–4 步</td>
|
||||
<td><strong>改为动作块策略</strong>:每周期输出未来 16 步(320 ms),每
|
||||
60 ms 推理一次,提交并执行前 3 步(v2.3 统一)</td>
|
||||
<td>用户要求每周期重算;可纠错、可应对拖拽目标变化</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
@@ -1417,9 +1470,25 @@ type="checkbox" />测试集与训练集、基准案例无重叠</label></li>
|
||||
<tr class="odd">
|
||||
<td>上一周期选的模式 k_prev</td>
|
||||
<td style="text-align: right;">K+1</td>
|
||||
<td>one-hot(含"无"),用于模式粘滞</td>
|
||||
<td>one-hot(含"无"),<strong>仅 WTA 基线头使用</strong></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>当前关节速度 q_t − q_{t−1}</td>
|
||||
<td style="text-align: right;">6</td>
|
||||
<td>按每轴速度上限归一化(v2.3 新增,使时间律可观测)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>已提交未执行前缀</td>
|
||||
<td style="text-align: right;">3×6</td>
|
||||
<td>前缀 Δq + 有效长度掩码(v2.3 新增,训练时随机遮盖 0–3 步)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>当前子目标</td>
|
||||
<td style="text-align: right;">6</td>
|
||||
<td>子目标头输出的关节途经点(sin/cos
|
||||
前的弧度,归一化);无子目标时填当前 q(v2.3 新增)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>关键胶囊对最小距离</td>
|
||||
<td style="text-align: right;">8</td>
|
||||
<td>当前位形下臂各段到立柱的胶囊距离(cheap,现成函数),给模型"离柱子多近"的直接信号</td>
|
||||
@@ -1454,7 +1523,7 @@ K×16 个可学习动作 token ──▶ 4 层 Transformer decoder(非自回
|
||||
├─ 动作头:每 token 输出 6 维 Δq
|
||||
├─ 模式分类头:K=4
|
||||
├─ 价值头(剩余时间/代价):1 ← v2.1,§8.5
|
||||
└─ 子目标头:2 个关节空间途经点 + 是否需要(仅冷启动用)← v2.1,§8.5</code></pre>
|
||||
└─ 子目标头:2 个关节空间途经点 + 是否需要(触发:新目标或目标跳变 > 50 mm;到达子目标 < 5° 后切下一个;v2.3 定义)← v2.1,§8.5</code></pre>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
@@ -1546,7 +1615,12 @@ A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。</p>
|
||||
+ CE(模式分类) 权重 0.5
|
||||
+ FK 损失:预测与标签位形下各连杆胶囊端点的位置差 权重 0.5 ← 借鉴 ELMP
|
||||
+ 平滑:二阶差分 权重 0.05
|
||||
+ L1(剩余时间) 权重 0.1</code></pre>
|
||||
+ L1(剩余时间) 权重 0.1 (与价值头共用一个输出,不重复)</code></pre>
|
||||
<p>一步流匹配头(v2.3 补):</p>
|
||||
<pre><code>L = MeanFlow 损失(或 Shortcut 自一致 + FM 锚定损失) 权重 1.0
|
||||
+ FK 损失:一步生成输出(固定噪声)的胶囊端点位置差 权重 0.5
|
||||
+ 平滑:二阶差分(作用于一步输出) 权重 0.05
|
||||
+ 子目标头 L1 + 价值头 L1 权重 0.1 / 0.1</code></pre>
|
||||
<h3 id="63-训练配置">6.3 训练配置</h3>
|
||||
<table>
|
||||
<thead>
|
||||
@@ -1562,7 +1636,8 @@ A/B;若一步流匹配不优于 WTA,回退 WTA(风险可控)。</p>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>学习率</td>
|
||||
<td>1e-3,预热 1000 步,余弦退火(同 DRP 量级)</td>
|
||||
<td>1e-3,预热 1000 步,余弦退火(DRP 预热 100 步;我们 batch 更大,取
|
||||
1000,v2.3 更正表述)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>batch</td>
|
||||
@@ -1593,8 +1668,9 @@ epoch),验证集闭环成功率不再上升即停</td>
|
||||
<code>collideFree</code> 对拍 10 万个位形,判定 0 误差。</li>
|
||||
<li>验证用<strong>闭环仿真</strong>而不是单步误差:从 1000 个验证任务的
|
||||
q0 出发,每 20 ms 推理一次、提交前 3 步,直到到达或超时(超时 =
|
||||
老师同任务路径动画时长 × 2,最少 3
|
||||
s),统计到达率、碰撞步数(安全层关闭时)、行程比。</li>
|
||||
老师同任务路径动画时长 × 2,最少 3 s),统计到达率、<strong>用时 ≤ 老师
|
||||
× 1.3 的达标率</strong>(与 §9.2
|
||||
口径一致,v2.3)、碰撞步数(安全层关闭时)、行程比。</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<h2 id="7-第四步后训练无老师为主">7. 第四步:后训练(无老师为主)</h2>
|
||||
@@ -1603,7 +1679,7 @@ ELMP)</h3>
|
||||
<p>不再请老师标注,直接让模型在可微仿真里闭环展开,用代价反传:</p>
|
||||
<pre><code>for 每个 batch(随机采样 q0 和目标,82 ms 级别的便宜采样,不需要老师):
|
||||
q = q0
|
||||
for t in 0..H-1 (H = 60 个周期 ≈ 1.2 s,长任务分段展开):
|
||||
for t in 0..H-1 (H = 60 次推理 × 3 步 = 180 步 ≈ 3.6 s,与部署节奏一致;长任务分段截断反传,v2.3 更正):
|
||||
chunk, logits = π(obs(q, 目标))
|
||||
Δq = chunk[选中模式][0:3] # 执行前 3 步,与部署一致
|
||||
q = clamp(q + Δq) # 限位
|
||||
@@ -1643,7 +1719,8 @@ E3 绕远(> 1.2× 参考)/ E4 末端精度差 / E5 模式来回切换 ≥
|
||||
<li>只有
|
||||
E2(卡在局部极小——可微代价本身解决不了的"需要绕远路"问题)才可选地请老师离线给一条路径做行为克隆补充。这是唯一残留的老师用途,量很小,可以在沙箱慢慢跑。</li>
|
||||
</ul></li>
|
||||
<li><strong>门禁</strong>:留出集闭环到达率上升、三个基准不退化、上一轮修好的错题
|
||||
<li><strong>门禁</strong>(v2.3:门禁集与 §9
|
||||
验收集分开造,验收集只在最后用一次):门禁集闭环到达率上升、三个基准不退化、上一轮修好的错题
|
||||
95% 仍对;否则回滚。</li>
|
||||
<li><strong>停止</strong>:连续 2 轮提升 < 0.5 个百分点,或满 6
|
||||
轮,或达到 §9 全部标准。</li>
|
||||
@@ -1665,7 +1742,7 @@ Hz)</h3>
|
||||
下一周期的新结果会覆盖它们;若下一周期推理超时或全部不安全,就沿缓冲 + 刹停段安全停下)
|
||||
5. 全部不通过 → 进入刹停:按已验证的刹停轨迹减速停下,保持;下一周期继续推理
|
||||
6. 到达判据:TCP 误差 < 1 mm(pose 另需 < 0.5°)且速度≈0 → 结束;
|
||||
接近目标(< 5 mm)时可选做 1–3 次局部牛顿精修(solveTo 单步,不是全量 IK)</code></pre>
|
||||
接近目标(< 5 mm)时可选做 1–3 次局部牛顿精修(solveTo 单步,不是全量 IK);精修段同样必须通过安全层认证(v2.3)</code></pre>
|
||||
<p>v2.3:<strong>删除插补器交叉淡入/时间集成</strong>(见
|
||||
H3)。执行的必须就是安全层认证过的那一块;块间连续性由前缀条件和一致性打分保证。"每
|
||||
20 ms 重推理只执行 1 步"仅作 A/B 对照。</p>
|
||||
@@ -1688,9 +1765,11 @@ mm/°)即判整段安全,否则二分到通过或判不安全;自碰撞对
|
||||
<li><strong>可刹停不变式</strong>:执行前还要检查"从第 3
|
||||
步末状态按最大减速度(v2.3
|
||||
新增每轴加速度上限,待真机参数)停下"的刹停段也无干涉。于是任何时候系统都处在"有一条已验证的停车路线"的状态,下一周期就算模型完全失效,也只会停下、不会撞。</li>
|
||||
<li>耗时:3 步 × 4 候选,最坏约 4 × 10 个采样位形 × 约 1.8 ms ≈ 70
|
||||
ms(太慢)→ 实际做法:
|
||||
<li>耗时(v2.3 重估):每步主导轴 4–13°,3 步 + 刹停段按离散采样需 13–39
|
||||
个位形;8 候选最坏 8 × 39 × 1.25 ms ≈ 390 ms(不可接受)→ 实际做法:
|
||||
<ul>
|
||||
<li>距离认证:每段一次距离查询覆盖整段,不通过才二分,通常 2–6
|
||||
次查询;</li>
|
||||
<li>先用现有包围球预筛(大多数位形直接判安全,见 2026-10-15 记录
|
||||
collideFree 2.9→1.8 ms);</li>
|
||||
<li>按排序<strong>逐个</strong>检查,第一个通过就停(多数周期只检查 1
|
||||
@@ -1711,7 +1790,7 @@ Worker 与推理流水线并行)。</li>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td><code>traj_v2.onnx</code>(fp16,约 7 MB)+
|
||||
<td><code>traj_v2.onnx</code>(fp16,约 8.3 MB:4.13M 参数 × 2 B)+
|
||||
<code>norm.json</code></td>
|
||||
<td>PRM 路网(<code>collide.json.roadmap</code>)、IK 候选大表</td>
|
||||
</tr>
|
||||
@@ -1770,8 +1849,8 @@ A*)。去掉老师后,全局"想清楚往哪绕"这件事必须由模型自
|
||||
<li><strong>价值头(剩余代价估计)</strong>:模型额外预测"从这个状态到目标还要多少时间"。APG
|
||||
展开时有真实值可监督,不需要老师。部署时用它给 K
|
||||
个模式打分,并作为"有没有进展"的判据。</li>
|
||||
<li><strong>短前瞻选模式</strong>:每周期对 K=4
|
||||
个模式各自再往前推一块(共 2 次批量前向 ≈ 2 × 2–5 ms),用 胶囊碰撞 +
|
||||
<li><strong>短前瞻选模式</strong>:每次推理对候选(WTA 4 条 / 一步头 8
|
||||
条)各自再往前推一块(共 2 次批量前向,延迟待实测),用 胶囊碰撞 +
|
||||
价值头 给 32
|
||||
步后的终态打分,选最好的。比只看第一块的概率更能避开"走两步就撞墙"的分支。</li>
|
||||
<li><strong>卡死检测 + 强制换向</strong>:0.3 s 内价值头没有下降、或连续
|
||||
@@ -1779,8 +1858,8 @@ A*)。去掉老师后,全局"想清楚往哪绕"这件事必须由模型自
|
||||
判定卡死,强制切到另一个绕行方向(另一个子目标/模式)并锁定 1
|
||||
s(防止又切回来)。规则很简单、确定性、可测试。</li>
|
||||
<li><strong>训练侧针对性加强</strong>:贴柱类任务在 APG 采样里占
|
||||
40%;APG 展开长度覆盖整段绕行(约 3 s = 150
|
||||
个周期,分段截断反传);对贴柱任务做拒绝采样自蒸馏(§7.3),模型自己成功的路线成为新标签。</li>
|
||||
40%;APG 展开长度覆盖整段绕行(约 3 s = 150 步 = 50
|
||||
次推理,分段截断反传);对贴柱任务做拒绝采样自蒸馏(§7.3),模型自己成功的路线成为新标签。</li>
|
||||
</ol>
|
||||
<p>验收相应改为(§9.2):near pos / near rt 都必须
|
||||
<strong>30/30</strong>,且到达用时 ≤ 老师路径动画时长 × 1.3。</p>
|
||||
@@ -1893,9 +1972,10 @@ ms</strong>(Normal)</td>
|
||||
<p><strong>对本方案的评估:</strong></p>
|
||||
<ol type="1">
|
||||
<li><strong>策略层 50 Hz(20 ms)合适</strong>:与 π0、ACT 同档,高于
|
||||
ELMP 的 30 Hz 和 MπNets 的 9 Hz;我们模型小(3–4 M)、无点云,单次前向 +
|
||||
安全检查预计 < 10 ms,留有一倍余量。浏览器里
|
||||
<code>requestAnimationFrame</code> 是 60 Hz,50 Hz 也能稳定跑。</li>
|
||||
ELMP 的 30 Hz 和 MπNets 的 9 Hz;我们模型小(3–4
|
||||
M)、无点云,v2.3:推理每 60 ms 一次(执行仍 50 Hz),推理 + 安全 <
|
||||
20 ms 为目标,须实测。浏览器 rAF 为 60 Hz、与 20 ms
|
||||
不整除且后台标签页会节流,执行时钟放 Web Worker、按实际 dt 插值。</li>
|
||||
<li><strong>"提交 3 步(60
|
||||
ms)"合适,且应按刹停距离定</strong>:它的作用是给推理抖动和通信滞后留缓冲。ABB
|
||||
EGM 自身就有 10–20 ms 滞后;60 ms 足以覆盖一次推理超时 +
|
||||
@@ -1967,7 +2047,10 @@ rt)</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 例随机基准(沙箱 bench.cjs)有效 60/60;<strong>仓库
|
||||
<code>tests/route_bench.cjs</code>(40 例)在 <code>3c7c814</code>
|
||||
上重跑:到达 40/40、细验有效 39/40</strong>(1
|
||||
例到达但路径细验不过,2026-10-17 21:28 实测);near 30/30、30/30</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>到达用时</td>
|
||||
@@ -1985,8 +2068,8 @@ rt <strong>30/30</strong>,<strong>另造 ≥1000 例 near_column
|
||||
<td>首次全量 IK 最差约 2 s</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>每周期耗时(推理+安全层)P99</td>
|
||||
<td>< 15 ms</td>
|
||||
<td>每次推理(每 60 ms)耗时(推理+安全层)P99</td>
|
||||
<td>< 20 ms</td>
|
||||
<td>拖拽重规划 P99 约 321 ms</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
@@ -2016,8 +2099,8 @@ rt <strong>30/30</strong>,<strong>另造 ≥1000 例 near_column
|
||||
类数据加权、模式头学左右绕、E2
|
||||
错题少量老师补数据(§7.2)。这是无老师方案最大的风险。</li>
|
||||
<li><strong>碰撞模型/立柱变动 =
|
||||
重训</strong>:指纹不一致即拒绝运行。重训流程:§4(约 5 h)→ §6(约 4
|
||||
h)→ §7(约 2–4 h)。</li>
|
||||
重训</strong>:指纹不一致即拒绝运行。重训流程:§4(约 5 h)→ §6(约
|
||||
1.5–5.6 h,以 2000 步吞吐实测为准)→ §7(约 2–4 h)。</li>
|
||||
<li><strong>安全层耗时</strong>:最坏周期可能超 5 ms,见 §8.3
|
||||
的流水线方案。</li>
|
||||
<li><strong>老师缺陷</strong>:<code>ci27</code>
|
||||
|
||||
Reference in New Issue
Block a user