2.2 KiB
2.2 KiB
安全测试清单
上机调试前必读
直接控制 12 个电机是危险操作。第一次上机必须严格按以下清单。
物理准备
- 狗悬挂 (脚架/吊带), 脚不接地
- 周围 1 米无障碍物
- 准备 拔电池, 因为 Legged_sport 被杀后, 遥控器 L2+B 不会工作
软件准备
bash tools/stop_sportmode.sh stop杀掉 keep_sport_alive + Legged_sport + appTransit- 验证
pgrep -fl Legged_sport没输出 - 用
examples/monitor_state.py确认能正常解码 LowState - 第一次跑必须用
apply_safety(cmd, state, power_factor=1)(10% 力矩) - sin 振幅 ≤ 0.3 rad, 频率 ≤ 0.5 Hz
跑动中的实时监控
每个控制脚本应当包括:
try:
apply_safety(cmd, state,
power_factor=1, # 1=最严
position_limit_on=True, # 关节硬限位
position_protect_limit=0.5, # 目标偏离实际>0.5rad 关 Kp/Kd
raise_on_critical=True) # 严重超载 raise
except PowerProtectViolation as e:
print(f"⚠️ 立即停机: {e}")
client.safe_stop()
break
异常处理
| 现象 | 立刻做什么 |
|---|---|
| 脚本输出 ⚠️ PowerProtectViolation | 脚本会自动 safe_stop, 你拔电池保险 |
| 关节抖动 / 嗡嗡声 | Ctrl+C, 脚本自动发 damping |
| 狗腿快速摆动失控 | 立即拔电池 (按住电源 3 秒) |
| MCU 不响应 | 检查 Pi 抢占源是否清干净: ssh pi@192.168.123.161 pgrep -fl Legged_sport |
紧急停机优先级
- 遥控器 L2+B — PRO 模式下杀了 Legged_sport 后不工作, 不要依赖
- Ctrl+C — 触发
client.safe_stop()发 50 帧 damping - 拔电池 — 终极停机, 按住电源键 3 秒
测试完成后
bash tools/stop_sportmode.sh start
重启 sportMode 系统, 狗恢复正常.
不要做
- ❌ 不要在 sportMode 还在跑时同时跑你的控制 (会跟 Legged_sport 抢, 抖动)
- ❌ 不要从 PowerProtectViolation 异常中 silent 恢复 (出问题就是出问题, 不要藏)
- ❌ 不要使用
power_factor > 5除非你已经成功跑过 factor=1 - ❌ 不要在狗站立或行走时直接 kill Legged_sport (狗会软瘫倒地)