Compare commits
1
Commits
pre-b-abs-target
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70654e45f7 |
@@ -220,3 +220,26 @@ reach **0%** / collision **79.0%** / ratio2s 0.574 / end 408 mm;`sign_flip_rat
|
||||
- 未扰动时 16 步累计目标误差仅 0.46°;状态偏移 3.19° 后目标偏离 4.86°(ρ=1.54)——**当前模型是"从当前状态外推增量",不是"指向参考位置"**。扰动微调让 ρ 更差(1.9–2.0),与开环退化一致。
|
||||
- **结论:方案 B 不能靠改执行层实现,必须改训练标签**——把标签从"16 步增量"改为"16 步绝对目标关节角(参考轨迹位置)",让模型学"目标在哪"而不是"从这怎么走"。执行层每步朝目标走,偏移状态下即天然纠偏。
|
||||
- 实施成本:改 `build_dataset.cjs` 标签口径(Y = 绝对目标),同步 FK/平滑/价值等基于增量的辅助损失、rollout 与 `ik-policy.js` 的增量假设,然后从头训练(约 1 小时)。属结构性改动,未擅自开始。
|
||||
|
||||
### 11. 方案 B 初版实测(分支 `feat/abs-target`,保存点 tag `pre-b-abs-target`)
|
||||
|
||||
**改动**(全部在分支,main 未动):
|
||||
- `build_dataset.cjs`:`ABS_TARGET=1` → Y = 16 步绝对目标关节角(/180 归一化),prefix 仍存增量(度),meta 记录 `abs_target`、签名加 `a1`。
|
||||
- `train.py`:读 `abs_target`;每单位动作=180°;FK 损失用绝对位置;平滑项换算到增量量纲;开环指标用第 16 步绝对位置;ckpt 记录 `abs_target`。
|
||||
- `closed_loop.py`:模型输出绝对目标 → 队列存目标序列、执行 `q=clamp(target)`、前缀由目标差分、安全层中点与 DLS 增量转绝对目标。
|
||||
- `ckpt.py` / `data.py`:abs_target 透传与一致性检查。
|
||||
- **过程 bug(已修)**:前缀噪声增广把 eps 直接加到绝对目标标签上(≈18° 污染,一半样本);改为累计偏移后第 r 步扣回。
|
||||
|
||||
**数据**:84 shard 重打 → 201 万样本、abs_target=1;标签连续(步间差 p50 0.30°、p99 1.8°、无 ±180 跳变)。
|
||||
|
||||
**训练结果**(从零 9950 步;p_neq 预热 5000 步):
|
||||
|
||||
| step | ol_fk_mm | ol_best_mm | 闭环 success | 碰撞 |
|
||||
|---|---|---|---|---|
|
||||
| 4000 | 74.6 | 33.4 | 0 | 100% |
|
||||
| 6000 | 140.4 | 70.3 | 0 | 100% |
|
||||
| 8000 | 139.0 | 68.5 | 0 | 100% |
|
||||
|
||||
- 一步采样动作误差 **31°**(4/8 段采样 2.3°/2.8°)——**绝对目标的一步流匹配映射没学会**;闭环 1 段 0%/100%、4 段 0%/100%(ratio2s 1.045)。
|
||||
- 过预热后 5000 步无下降趋势。可能原因:一步样本仅 `p_edge=10%`、`ada_p=1` 逆误差加权压制难样本、FK/平滑辅助项在绝对位置空间主导。
|
||||
- **结论:此配方不成立**。B 若继续,需改训练配方(p_edge↑、w_fk↓、ada_p=0)或换输出头(确定性回归);当前证据不支持继续投入。分支代码保留可复现。
|
||||
|
||||
Reference in New Issue
Block a user