ROS2 自作 Turtlebot3 による 草刈りロボット開発。#6 Nav2 Planner を替えてみる。

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 は、素晴らしい!!
これは、草刈りロボット向きぞね!!

このブログ記事について

このページは、おんちゃんが2024年9月18日 17:54に書いたブログ記事です。

ひとつ前のブログ記事は「ROS2 自作 Turtlebot3 による 草刈りロボット開発。#5 C++ cmd_vel 走行で障害物をよける方法。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ