2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ROS2のNavigation2でパラメータの設定をしたい

Last updated at Posted at 2022-05-24

はじめに

Navigation2を使って開発をしていくうえでパラメータ(コストマップやロボットの大きさ、速度・加速度の最大値・最小値などなど)を設定する方法について紹介する小ネタ記事です。

前提として。

自前のパラメタファイルを設定せずにブリングアップする基本的な部分のおさらいをします。

ターミナルを3つ立ち上げてそれぞれに以下のコマンドを打ちます。
まずは、Gazeboのブリングアップ。

ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

続いて、Nav2のブリングアップ。

ros2 launch nav2_bringup bringup_launch.py use_sim_time:=True map:=/opt/ros/foxy/share/nav2_bringup/maps/turtlebot3_world.yaml

最後に、Rvizを立ち上げましょう。

ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/rviz/nav2_default_view.rviz

すると以下のような描画になります。

Screenshot from 2022-05-23 15-05-52.png

ちなみに、今回指定しなかったパラメタファイルはデフォルトで、Navigation2のBringupのパッケージのディレクトリにこっそり提供されています。私の場合、以下のような階層です。
/opt/ros/foxy/share/nav2_bringup/params/nav2_params.yaml

公式。。。?

公式ドキュメント曰く、「ブリングアップのコマンドのオプションとしてparam_file:=(your directory)/~.yamlみたいに指定すれば自前のデフォルトじゃないパラメタファイルを呼び出せるよ」とのこと。

素直に、デフォルトで提供されているyamlファイルの中身をコピーして、local_castmapのinflation_radiusとcost_scaling_factorをいじります(これをいじれば分かりやすくRvizでCostmapの色が変化するので)。

cost_scaling_factor: 10.0 #default=3.0
inflation_radius: 0.15     #default=0.55

そしてコマンドを打ちました(RvizとGazeboのブリングアップは省略)

 ros2 launch nav2_bringup bringup_launch.py use_sim_time:=True map:=/opt/ros/foxy/share/nav2_bringup/maps/turtlebot3_world.yaml param_file:=$HOME/my_param/test01_param.yaml

param_file:=で指定したパスに置いてあるパラメタファイルを呼び出しているのですが、
Screenshot from 2022-05-23 14-46-38.png
ご覧の通り、inflation_radius、つまり、障害物から膨張する分のコストマップをかなり小さくしたにも関わらず、変化がないです。。。公式の言うとおりにしたのに。。。?

ローンチのソースコードを見に行くと。。。

Screenshot from 2022-05-23 14-51-38.png
よく目を凝らしていくと、なんとparam_fileと思っていたものは、params_fileでした。。。

改めてコマンドを打ちまして(なお、こちらもRvizとGazeboは省略)、

ros2 launch nav2_bringup bringup_launch.py use_sim_time:=True map:=/opt/ros/foxy/share/nav2_bringup/maps/turtlebot3_world.yaml params_file:=$HOME/my_param/test01_param.yaml

以下のように、障害物の判定によるコストマップの膨張の描画が先ほどより小さくなっているのがわかると思います。
Screenshot from 2022-05-23 14-56-12.png

ローンチする際の細かな変数の意味に関しては公式のサイトで確認できます。

AMCLに関するパラメタ以外も公式に載っているのでぜひ確認してみてください。

結論

パラメタファイルを使いたければ、sを忘れないようにすること!です。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?