Navigation2をrviz2からWaypointを指定して実行する


はじめに

この記事は以下の記事の続きです。
ROS2 Foxy環境にTurtleBot3のGazeboシミュレーションをインストールしてNavigation2を動かすまで

Navigation2では新たにWaypoint Followerという機能が追加され、Waypointを指定してNavigationを実行できるようになりました。

今回この機能をTurtleBot3のGazeboシミュレーション環境を使ってrviz2からWaypointを指定して動かします。

実行

TurtleBot3 シミュレーションを起動

$ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

Navigation2の実行

$ ros2 launch turtlebot3_navigation2 navigation2.launch.py

rviz2が起動したら、上の2D Pose Estimateで初期位置を指定して以下の画面

  1. 左下UI画面のWaypoint modeをクリック

  2. 上のNavigation2 Goalで経由したいWaypointを順番に指定

  3. 右下UI画面のStart Navigationをクリックして実行

次は中継地点で止まるようにパラメータを変更
turtlebot3/turtlebot3_navigation2/param以下にある設定ファイルを編集
burgerを使っている場合burger.yamlに以下を追記

burger.yaml
waypoint_follower:
  ros__parameters:
    loop_rate: 20
    stop_on_failure: false
    waypoint_task_executor_plugin: "wait_at_waypoint"
      wait_at_waypoint:
        plugin: "nav2_waypoint_follower::WaitAtWaypoint"
        enabled: True
        waypoint_pause_duration: 1000

waypoint_pause_durationでロボットが停止できる時間を指定(単位はミリ秒)

こちらの動画でもWayPoint modeで動かす手順が紹介されています。

Navigation2 Waypoint Follower Tutorial (ROS World 2020)

参考