ROS2 自作 Turtlebot3 による 草刈りロボット開発。#6 Nav2 Planner を替えてみる。
---- Ros2 Navigation2 Planner を、NavfnPlanner から、ThetaStarPlanner に替えてみた。 ----
nav2.org / tuning を見ていたら、
Planner Plugin Selection
NavFn will typically make broad, sweeping curves; Theta* prefers straight lines and supports them at any angle;
and Smac 2D is essentially a classical A* algorithm with cost-aware penalties.
と記述があったので、
Theta を使えば、少しは、ロボットを直線的に走らせられるのではないか?
と思ったので、早速試してみた。
具体的には、xxx.yaml の中の、
planner_server:
で指定するので、ここを変更すれば良い。
記述の仕方は、
navigation2/nav2_theta_star_planner
をそのまま真似れば、OK でした。
従来の記述の方法では、NG でした。
実際のサンプルは、こちら。
rpp_nav2_params.yaml
感想。
早速、turtlebbot3_amcl_scan.launch.py で、Auto Mower を動かしてみました。
少しは、直線的に走行するみたいぞね!!
ただし、やはり、障害物が無い、直線は、cmd_vel で、走行させたほうがよいと思う!!
writing-new-nav2planner-plugin
があるので、将来的には、自分で、planner をつくたほうが、よいのだろう。!!
おんちゃんとしては、障害物の直前まで、直線で走行して、障害物の付近は、障害物に沿って、走行して、
障害物を過ぎたら、再度、start - end を結ぶ、線上に戻るような、planner が欲しい。
自作 Turtlebot3(foxbot_core3 ) で、
rtabmap_ros_my/launch/rtabmap_oak-d_rgb_depth_gps.launch.py を起動して、
$ ros2 launch turtlebot3_navi_my multi_goals4_nav2.launch.py use_sim_time:=False
で、2[M] の直線を走らせてみたが、結構、真っ直ぐ進むみたいぞね。
NavfnPlanner だと、なぜかカーブして走っていたのが、嘘のようじゃ。
ThetaStarPlanner は、素晴らしい!!
これは、草刈りロボット向きぞね!!