Files
go1_pro_sdk/docs/SAFETY.md
2026-06-20 20:02:36 +08:00

67 lines
2.2 KiB
Markdown

# 安全测试清单
## 上机调试前必读
直接控制 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 (狗会软瘫倒地)