Go2×Nav2 屋外自律走行デモの学び 2026-07-06
kenjiked.iconによる指示: 実機デモで学んだことを公開ナレッジとしてまとめる
総論: Nav2側の設定問題は実測で全て潰せた。最後に残るのはSLAMフロントエンドの精度 実測で確定した真因と対処
FAST_LIO2のodom zが±数mドリフト(実測-4.19m)し、スキャン点がmin/max_obstacle_heightの範囲外で全点破棄され占有ゼロになっていた 対処=高さフィルタの実質無効化で根治
教訓: 「回避しない」はplannerを疑う前にcostmapへの入力(点が届いているか)を疑う 点群→スキャン変換の下限が床を含んでいた
下限-1.0mだと伏せ姿勢のとき至近の床がlethal障害物の塊になる
対処=-0.2〜0.5mに変更。伏せた後は立ってからマップをリセットする運用ルール化
ポーズの微振動が疎な障害物を大きなblobに膨張させる
注意: ros2 service callのCLIループで代替するとCPU負荷でSLAMが窒息する(load10超の事故を実際に起こした) ブラウザGUIのデッドマン誤発動で機体が脱力落下した
真因: タブ非表示時にブラウザがsetIntervalをthrottleし、keepalive送信が止まる
対処=Web Workerでkeepalive化+タイムアウト延長。ブラウザからロボットを制御する人は全員踏む罠
0.5m/sでFAST_LIO2が崩れるため0.32m/sに制限。速度はSLAM精度とのトレードオフとして扱う ヒューマンエラーの定番
「経路は出るのに動かない」の大半は開始操作の押し忘れ(同日2回発生)。起動チェックリスト化が有効
未解決の本丸
⬜ FAST_LIO2への入力点群がCPU対策の間引きで1/6になっている(静止スライドの第一容疑者)。入力はフル点群・配信側だけ軽量化に分離する 撮影の現実解(実証済み)
SLAMリセット直後の10〜15分はXYドリフトが0.05m程度に収まる。この時間窓に撮影を集中させる