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

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

紧急停机优先级

  1. 遥控器 L2+BPRO 模式下杀了 Legged_sport 后不工作, 不要依赖
  2. Ctrl+C — 触发 client.safe_stop() 发 50 帧 damping
  3. 拔电池 — 终极停机, 按住电源键 3 秒

测试完成后

bash tools/stop_sportmode.sh start

重启 sportMode 系统, 狗恢复正常.

不要做

  • 不要在 sportMode 还在跑时同时跑你的控制 (会跟 Legged_sport 抢, 抖动)
  • 不要从 PowerProtectViolation 异常中 silent 恢复 (出问题就是出问题, 不要藏)
  • 不要使用 power_factor > 5 除非你已经成功跑过 factor=1
  • 不要在狗站立或行走时直接 kill Legged_sport (狗会软瘫倒地)