feat+test: 换向率 reverse_rate 进闭环指标(按轴方向翻转/活动步,站住不重置),带正对照单测

This commit is contained in:
cbb
2026-10-20 22:26:34 +08:00
parent 078f7cd451
commit 3e015b7485
4 changed files with 20 additions and 1 deletions
+3
View File
@@ -49,6 +49,9 @@ def run(model, kin, tasks, device, bs=256, **kw):
out.update({'speed_ratio_p50': median(v), 'speed_ratio_p95': v.quantile(0.95).item(),
'speed_ratio_max': v.max().item(), 'over_vmax_rate': (v > 1.001).float().mean().item(),
'accel_ratio_p95': acc.quantile(0.95).item(), 'accel_ratio_max': acc.max().item()})
if 'reverse_rate' in flat: # 换向步占比:行程超出主要是同一轴来回抖(轮次 39 分解),所以每个臂都要直接报它
rr = flat['reverse_rate']
out.update({'reverse_p50': median(rr), 'reverse_mean': rr.mean().item()})
if 'backoff' in flat and flat['backoff'].any(): # backoff=缩步顶上的次数;brakes 现在只记连最小档都不安全的
out['backoff_mean'] = flat['backoff'].mean().item() # ⇒ 原来的"全拒"事件数 = 两者之和
out['reject_all_mean'] = (flat['backoff'] + flat['brakes']).mean().item()