はじめに
ROS2 で Navigation2(Nav2)を使うプログラムを書いていたのですが,以下のエラーが出てしまいました.
[controller_server]: Original error: Considering footprint in collision checking but no robot footprint provided in the costmap.
今回は,このエラーを解消することを記事に残しておこうと思います.
ちなみに,こちらのサイトを参考にプログラムを書いていました.
エラー文
エラー文を読んでみると,
「 衝突判定ではフットプリントを考慮しているが,コストマップにはロボットのフットプリントが提供されていない.」
と書いてあります.
原因
エラーの原因は,costmap が扱うロボットの形状の設定の問題でした.
costmap が扱うことのできるロボットの形状は,「多角形」と「丸」です.
ちなみに,こちらのエラーは,nav2 の設定ファイルで起きました.
対処法
まず,costmap で扱うロボットの形状を決めましょう.
-
「円」の場合
- Costmap の設定
robot_radius を使う. - Controller_server → CostCritic
consider_footprint に True を代入する.
- Costmap の設定
-
「多角形」の場合
- Costmap の設定
footprint を使う. - Controller_server → CostCritic
consider_footprint に False を代入する.
- Costmap の設定
最後に
このエラーを見つけるのに,1か月くらいかかってしまいました.
ROS2 って便利ですが,難しいですね.
参考サイト

