09 故障排查
串口命令通过串口助手/监视器发送:在发送框输入后回车(UartAssist 勾选"发送新行"); 串口工具/串口助手(含 Windows UartAssist 下载)见 03 页 3.3。
9.1 常见现象
| 现象 | 可能原因 | 处理 |
|---|---|---|
串口显示 waiting for IMU startup 5000 ms... 后 IMU not ready | IMU 上电慢、接线不良、地址不对 | 等待 5–10 s;检查 3V3 供电、SDA=GPIO6 / SCL=GPIO7、地址 0x23 |
IMU lost -> bus reset + re-init 反复出现 | I²C 线过长、接触不良 | 缩短 I²C 线、检查焊接/杜邦头 |
烧录报 could not open port / Access is denied | 串口被监控或监视器占用 | 先关闭 hw_monitor.py / 串口监视器再烧录 |
| 放倒后长时间不动 | 身体未静止或手仍扶着 | 松手并保持静止 ≥0.5 s;观察 getup start 事件 |
| 放倒后立即乱摆、方向错误 | 跌倒门在滚动中触发、姿态分类错误 | 确认摆放后静止;必要时重新放倒 |
执行到一半停住,14 s 后 executor timeout | 该姿态参考未完成 | 属正常兜底;1.5 s 后自动重试;连续失败请记录日志 |
偶尔出现 executor re-plan 切换 | roll_neg 按压失败后的正常兜底重试 | 观察最终是否 done |
| 舵机发出持续吱声/发热 | 堵转、目标顶死 | 立即 x 卸力或断电;检查关节限位与机械干涉 |
| 扶正时手臂扫到机身 | 肩部大幅动作 | 检查 Q_SHOULDER_MAX 与机械间隙;保持底座结构高度(约 68 mm) |
| 放倒后 up 读数与实际姿态不符(躺姿长期偏斜 5° 以上) | 加速度计零点未标定 | 站立在水平桌面发 c(见 06 调试页 6.2) |
| 收臂后手臂不在正中竖直 | 零点漂移(换齿/拆装后未重定零) | 按 05 零点工具 重新定零并固化 |
| 扶正后舵机高频颤抖 | 模拟舵机大幅运动/堵转后的瞬态自激(固件输出恒定) | 会自行衰减;可垫橡胶减振或换数字舵机;捏住手臂应立即安静 |
| 状态页/配网打不开 | 浏览器代理未放行,或热点未开启 | 把 192.168.4.1 加入代理例外;串口发 w 开启 WiFi |
9.2 安全命令
| 情况 | 命令 |
|---|---|
| 需要立即停止动作 | s(保持当前目标)或 x(释放 PWM,舵机卸力) |
| 舵机卸力后恢复 | r 重新初始化 PWM 并回中位 |
| 动作方向反了 | v(肩)/ b(肘)翻转符号 |
9.3 记录失败现场
出现异常时保留 logs/hw_monitor.log 对应时间段,重点字段:
text
<时间> getup start pose=... up=(x,y,z)
<时间> executor pose=... ph=... tick=... tgt=... up=... q=... sw=...
<时间> executor re-plan A -> B up=(x,y,z)
<时间> standing -> executor done | executor timeout
