Nav2 Keepout Zones
Nav2 Keepout Zonesについてどんなものか説明していきます。
この機能は、Nav2でナビゲーションを行う際に、ここは入ったらだめだよと進入禁止エリアを設定しておくと、そこに入らないようにすることができる機能です。
最近のお掃除ロボットとかにもありますよね。
引用: ROOMBAの進入禁止エリア設定 https://service.irobot-jp.com/1/keep_out_zone
使い方は、ざっくりと進入禁止エリアにしたいところをマークした地図を作成して、それを指定して動かします。
動かした様子が以下のようになります。障害物はおいてないですが、進入禁止エリアとしてマークしているので、そこをよけて経路計画されていますね。
実際に動かしてみたい!という方は、以下の記事を参考にしてもらえればと思います。
Nav2 SpeedFilter
Nav2 SpeedFilterは速度制限エリアを設定することができる機能です。
例えば、ここは人通りが多いからちょっと遅くしたいとかそういうことができるようになります。
Keepout Zonesと同じように、地図に制限させたい部分をマークして、それを指定して速度制限させます。
以下のようにRViz2上に制限速度エリアが反映されて、Nav2 Goalで指示すると、制限速度エリアで減速することがわかります。
実際に動かしてみたい!という方は、以下の記事を参考にしてもらえればと思います。
Nav2 Collision Monitor
Nav2 Collision Monitorは、LiDARなどのセンサ情報を使用して、近くに障害物があれば減速したり、停止したりすることができる機能です。
slowdown boxと、stop boxという領域を指定することができ、slowdown box内に2DLiDARの点群が入ったら減速、stop box内に2DLiDARの点群が入ったら停止、といったことができるようになります。
引用:https://navigation.ros.org/tutorials/docs/using_collision_monitor.html#collision-monitor-tutorial
指定可能なセンサーは、以下になります。
- Laser scanners (
sensor_msgs::msg::LaserScan
messages) - PointClouds (
sensor_msgs::msg::PointCloud2
messages) - IR/Sonars (
sensor_msgs::msg::Range
messages)
以下は動作の様子です。少し見づらいですが、RViz2上の青い枠がslowdown box, 赤い枠がstop boxとなっています。動画では途中でGazebo上のオブジェクトを移動させて、slowdown box内に点群が検知されたら、減速し、stop box内に点群が検知されたら止まっているのがわかるかと思います。このように、人が途中で割り込んできたら減速することや停止するなどすることができるようになります。
また、ROS 2 Ironでは、Collision Monitorでstate_topicを発行するようになり、このトピックを使うことで、現在SlowDownBoxがアクティブなのか、StopBoxがアクティブなのかというのがわかるようになります。この情報を用いて、SlowDownBoxに入ったら、LEDを点灯するなどができるようになります。
Collision Detector NodeもIronで追加されており、CollisionMonitorと似ていますが、停止や減速などを行うのではなく、検出した場合の、障害物が検出された場合、トピックを通じて通知を受け取れます。
実際に動かしてみたい!という方は、以下の記事を参考にしてもらえればと思います。
Nav2 Waypoint Follower
Nav2 Waypoint Followerは、ナビゲーション時に途中途中向かうポイントを指定することができる機能です。
また、Nav2 Waypoint Followerはウェイポイント到達時にpluginを呼び出すことができる機能があります。
用意されているプラグインは、以下の3つがあります。
- WaitAtWaypoint:Waypoint到達時に、指定した時間一時停止します。
- PhotoAtWaypoint:ウェイポイント到達時に写真をとります。
- InputAtWaypoint:ウェイポイントでタイムアウト付きで外部入力を待機できるようにします。
Pluginになっているため、nav2_core::WaypointTaskExecutorを継承して自作のプラグインを作るといったことも可能になります。
写真を撮るプラグインを使用して、Waypoint Followerを動作させたときの様子を以下に載せます。
RViz2のNavigation Panelを使用して、ウェイポイントを指定して動作させることができ、ウェイポイント到達時に画像ファイルが保存されているのがわかるかと思います。
実際に動かしてみたい!という方は、以下の記事を参考にしてもらえればと思います。
コメント