← reports index
失败机制 · 2026-09-10

右臂不是抓不准,是在原地刷

同一套 state dropout 配方,左臂 15/20、右臂 0/14。把两批共 31 条 trace 逐帧拆开之后,差别不在模型好坏,也不在数据集 —— 在一个从来没有在右臂上变过的推理参数。结论:先别动训练配置。

结论先行。 右臂够得到杯子。17 次试跑的最远前伸中位 20.2 cm,比示范里闭爪的位置(18.0 cm)还远。
它的问题是来回刷。走了 120 cm 的路程只换来 20 cm 净前进,前进有效率中位 10.3%;左臂是 40.7%。
直接原因是推理停顿。右臂 46% 的时间在等推理,左臂 26%。每次停顿后重新规划,轨迹就往回走一段。
而停顿频率由 chunk_k 决定,右臂从来没试过左臂那一档。建议:先跑 5–10 次 chunk 1/1,再决定要不要动训练配置。

一、两批 trace 的同口径对比

右臂 right-sd(09-08)左臂 left-sd(09-09)
trace 条数1714
执行配置chunk auto/k=4chunk 1/1
回路频率 中位4.20 Hz11.87 Hz
推理停顿占时长46%26%
最远前伸 中位20.2 cm~23 cm
指令总路程 中位120 cm34 cm
前进有效率(最远前伸 ÷ 总路程)10.3%40.7%
右臂 right-sd · chunk auto/4(17 次,0 成功) 左臂 left-sd · chunk 1/1(14 条 trace)
停顿越多,越走不到杯子 0 50% 85% 0 20% 40% 60% 推理停顿占试验时长 前进有效率 右臂 chunk auto/4:停顿 56% · 有效率 13.1% 右臂 chunk auto/4:停顿 45% · 有效率 12.0% 右臂 chunk auto/4:停顿 52% · 有效率 10.3% 右臂 chunk auto/4:停顿 45% · 有效率 16.8% 右臂 chunk auto/4:停顿 54% · 有效率 8.0% 右臂 chunk auto/4:停顿 45% · 有效率 13.2% 右臂 chunk auto/4:停顿 53% · 有效率 7.0% 右臂 chunk auto/4:停顿 45% · 有效率 10.9% 右臂 chunk auto/4:停顿 35% · 有效率 24.9% 右臂 chunk auto/4:停顿 52% · 有效率 8.9% 右臂 chunk auto/4:停顿 46% · 有效率 10.2% 右臂 chunk auto/4:停顿 46% · 有效率 7.5% 右臂 chunk auto/4:停顿 46% · 有效率 9.4% 右臂 chunk auto/4:停顿 46% · 有效率 14.0% 右臂 chunk auto/4:停顿 45% · 有效率 3.6% 右臂 chunk auto/4:停顿 46% · 有效率 11.2% 右臂 chunk auto/4:停顿 46% · 有效率 7.4% 左臂 chunk 1/1:停顿 28% · 有效率 22.8% 左臂 chunk 1/1:停顿 15% · 有效率 73.9% 左臂 chunk 1/1:停顿 28% · 有效率 16.0% 左臂 chunk 1/1:停顿 15% · 有效率 77.9% 左臂 chunk 1/1:停顿 29% · 有效率 12.6% 左臂 chunk 1/1:停顿 9% · 有效率 79.6% 左臂 chunk 1/1:停顿 24% · 有效率 62.7% 左臂 chunk 1/1:停顿 19% · 有效率 55.1% 左臂 chunk 1/1:停顿 28% · 有效率 10.9% 左臂 chunk 1/1:停顿 25% · 有效率 59.6% 左臂 chunk 1/1:停顿 25% · 有效率 18.6% 左臂 chunk 1/1:停顿 27% · 有效率 26.3% 左臂 chunk 1/1:停顿 27% · 有效率 17.5% 左臂 chunk 1/1:停顿 27% · 有效率 69.8%
每个点是一次试跑。横轴是「多少时间在等推理」,纵轴是「最远前伸 ÷ 指令总路程」。两团几乎不重叠:右臂全部挤在左上角之外的低效率带,左臂里效率高的那些正是很快就结束(8–15 秒)的成功试跑。左臂跑满 60 秒的那几次,效率掉到 11–26%,和右臂同一个区间。

二、一次完整的失败长什么样

取右臂 trace-20260908-172208-t8(0/8 那批的最后一次),逐 5 秒看前伸距离和夹爪开度:

t= 0s  y= 8.2cm  夹爪  6.4      t=35s  y=11.3cm  夹爪 18.1
t= 5s  y= 9.1cm  夹爪  7.5      t=40s  y=15.8cm  夹爪 42.9
t=10s  y=12.2cm  夹爪 43.3      t=45s  y=11.4cm  夹爪 42.2
t=15s  y=11.4cm  夹爪 38.3      t=50s  y=14.7cm  夹爪 13.5
t=20s  y=10.9cm  夹爪 42.3      t=55s  y=12.1cm  夹爪 43.6
t=25s  y=14.6cm  夹爪 35.0      t=60s  y=11.5cm  夹爪 15.0
t=30s  y=11.6cm  夹爪 18.0

前进帧 138 · 后退帧 95 · 净前进 +3.3cm · 总路程 134.6cm · 有效率 7.4%

它在 11–15 cm 之间来回摆了整整一分钟,夹爪也跟着反复开合。示范里这一段只要 8.18 秒、一次到位。

三、机制:停顿 → 重新规划 → 往回走

SmolVLA 一次规划 n_action_steps=50 步。每个控制周期从队列取 chunk_k 步:

队列多久见底停顿间隔(实测)停顿占时长
chunk_k=4(右臂)50÷4 = 12.5 拍中位 12 拍46%
chunk_k=1(左臂)50÷1 = 50 拍约 4 倍稀疏26%

实测单次推理约 1.4 秒,控制周期中位 0.136 s。所以右臂是「动 1.7 秒 → 冻 1.4 秒」反复循环,而每次解冻后新计划不接着旧计划,而是往回走一段。左右臂都有这个回退,区别只是剂量。

不是安全层削的。同一条 trace 里逐帧比 raw 和 safe:pan / elbow / wrist / gripper 被改的帧是 0.0%,shoulder_lift 只有 0.4%。也不是策略动得慢 —— 它每个控制周期命令 lift+elbow 走 3.00°,而示范在同样时间窗(0.136 s)应该走 2.86°。速度是对的。

四、这一路排除掉的假设

都是量过之后否掉的,写下来省得再走一遍:

假设怎么否的
左臂那个任务更简单、不用看杯子反了。左臂训练集杯位 σ 14.72°(极差 59.1°),右臂只有 10.45°(46.9°)。「永远输出中位 pan」在左臂上误差中位 12.6°,右臂 5.2° —— 左臂更需要看。
右臂标定漂了标定文件停在 2026-08-16,0826 录制之后没人动过。两条臂都一样。
右臂数据集节奏太规律,模型学会数拍子闭爪@集长的标准差:右臂 7.0%、左臂 8.0% —— 基本一样。
左臂训练集光照更多样,所以更鲁棒反了。亮度 σ:右臂 4.3(极差 37.6),左臂 2.8(13.8)。
右臂被安全层削了raw vs safe 逐帧比,被改的帧 0.0%。
确实存在、但还没被证明是主因的数据集差异:右臂示范慢 2.8 倍。从起手到闭爪,左臂 4.37 s / 前伸 17.68 cm / 3.79 cm·s⁻¹;右臂 8.18 s / 11.66 cm / 1.34 cm·s⁻¹。右臂走得更近、路程更绕(关节总路程 297.6° vs 230.9°)、时间更长。这会让一次 50 步的计划只覆盖右臂任务的 20%(左臂 38%),也就是同一次够取要更多次重新规划 —— 和上面的停顿机制叠在一起。但这条没有被单独验证过。

五、所以要不要改训练配置

建议:先不改。理由是最便宜的那个实验还没做 —— 右臂在 chunk 1/1 下历史上只跑过 1 次,而且是 void。现在改训练配置,会把这个唯一干净的变量一起搅掉,跑出来无法归因。
顺序做什么成本能回答什么
1right-sd 跑 5–10 次 chunk 1/1半小时,不用训练停顿是不是主因。有效率若从 10% 升到 40% 一档,就是。
2若仍失败:查「解冻后为什么往回走」离线,用 trace是模型的计划连续性问题,还是喂进去的观测变了
3若确认是模型:才动训练配置4090 一小时—
跑之前两个现场条件要先满足(2026-09-10 实测):桌上要有杯子;当前光照是强方向光加硬阴影(对比度 60.3、暗像素 36%),而两个训练集都是平光(对比度约 48、暗像素 18–20%)。这属于分布外,会污染结论 —— 拉上百叶窗再跑。
还有一个跟本页无关但会白烧时间的坑。用 ~/miniconda3/envs/lerobot/bin/python 起跑测会落到 CPU(该环境的 torch 对不上驱动),每次推理 2.4 秒,动作计划被拉长十倍,抓取根本完不成。要用 ~/miniconda3/envs/train310/bin/python,日志里必须看到 == device: cuda (Orin)。

六、证据等级

结论等级出处
右臂有效率 10.3% / 左臂 40.7%跑测过17 + 14 条 trace 逐帧算,2026-09-10
停顿占比 46% / 26%,间隔 12 拍跑测过trace 的时间戳差分
安全层没削、策略速度正常跑测过raw vs safe 逐帧比
右臂从没在 chunk 1/1 下被有效测过跑测过全部 trials-*.json 逐文件计数:1 次,void
停顿是右臂失败的主因没跑过这就是第 1 步要回答的
示范慢 2.8 倍是否也是主因没跑过与停顿机制耦合,未单独验证
数据:05-training/trials/traces/trace-20260908-*.npz(右臂 17)· trace-20260909-*.npz(左臂 14)
相关:右臂一天 16 次全败 · 右臂 state dropout 手册 · 左臂重训手册 · 0826+sep8 合并数据
本页数字实测于 2026-09-10 本机 Jetson