# 安全测试清单 ## 上机调试前必读 直接控制 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 ## 跑动中的实时监控 每个控制脚本应当包括: ```python 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` | ## 紧急停机优先级 1. **遥控器 L2+B** — **PRO 模式下杀了 Legged_sport 后不工作**, 不要依赖 2. **Ctrl+C** — 触发 `client.safe_stop()` 发 50 帧 damping 3. **拔电池** — 终极停机, 按住电源键 3 秒 ## 测试完成后 ```bash bash tools/stop_sportmode.sh start ``` 重启 sportMode 系统, 狗恢复正常. ## 不要做 - ❌ 不要在 sportMode 还在跑时同时跑你的控制 (会跟 Legged_sport 抢, 抖动) - ❌ 不要从 PowerProtectViolation 异常中 silent 恢复 (出问题就是出问题, 不要藏) - ❌ 不要使用 `power_factor > 5` 除非你已经成功跑过 factor=1 - ❌ 不要在狗站立或行走时直接 kill Legged_sport (狗会软瘫倒地)