09 トラブルシューティング
シリアルコマンドはシリアルアシスタント/モニタ経由で送ります。送信ボックスに入力して Enter を押してください(UartAssist では「改行送信」を有効にします)。シリアルツール / Windows 用 UartAssist のダウンロードは 03 ページ 3.3 節にあります。
9.1 よくある症状
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
waiting for IMU startup 5000 ms... の後 IMU not ready | IMU の起動が遅い、配線不良、アドレス違い | 5〜10 秒待つ;3V3、SDA=GPIO6 / SCL=GPIO7、アドレス 0x23 を確認 |
IMU lost -> bus reset + re-init が繰り返される | I²C 配線が長い、または緩い | 配線を短くする、接続部を差し直す |
書き込みが could not open port / Access is denied で失敗する | シリアルポートをモニタ/シリアルモニタが占有している | 先に hw_monitor.py またはシリアルモニタを閉じる |
| 置いてもロボットが起動しない | 機体が静止していない、手が触れている | 手を離して 0.5 秒以上静止させる;getup start を確認 |
| いきなり暴れる / 方向が違う | 転がり中にフォールゲートがトリガーされた、誤分類 | きちんと置いて手を離す;リトライする |
実行が 14 秒後に停止し executor timeout を表示 | リファレンスが完了しなかった | 正常なフォールバック;1.5 秒後に自動リトライ;ログを保存 |
ときどき 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 をデタッチしトルクを解除) |
x からの復帰 | r で PWM を再初期化してセンタリング |
| 関節が逆方向に動く | v(肩)/ b(肘)で符号反転 |
9.3 障害の記録
logs/hw_monitor.log の該当部分を保存してください。重要な行は次のとおりです。
text
<time> getup start pose=... up=(x,y,z)
<time> executor pose=... ph=... tick=... tgt=... up=... q=... sw=...
<time> executor re-plan A -> B up=(x,y,z)
<time> standing -> executor done | executor timeout
