コンテンツにスキップ

natto_astar_planner

A*アルゴリズムに基づく経路計画ノードです。 x,y,yawの計画を行います

機能

  • 2Dグリッドマップ上でのA*経路計画
  • 角度を考慮した経路計画
  • 経路のスムージング
  • 凹凸のフットプリントを考慮した計画
  • 経路からの逸脱を検知した自動再計画
  • ゴール到達時の経路クリア

パラメーター

パラメーター名 デフォルト値 説明
theta_resolution_deg int 15 角度の分解能(度)
xy_inflation double 0.5 XY方向のインフレーション距離(m)この範囲は絶対に入れない
xy_offset double 0.1 XY方向のオフセット距離(m)xy_inflationに追加される範囲、できるだけ入りたくない
yaw_offset double 0.1 ヨー方向のオフセット距離(rad)
grad_alpha double 1.0 勾配法のアルファパラメーター。増やすと障害物から離れていく
grad_beta double 8.0 勾配法のベータパラメーター。増やすとなめらかな経路になる
grad_gamma double 0.0 勾配法のガンマパラメーター。増やすともとの経路に従いやすくなる
grad_step_size double 0.1 勾配法のステップサイズ
replan_distance_threshold double 0.2 経路再計画の距離しきい値(m)。ロボットが経路からこの距離以上離れると自動的に再計画を実行

パブリッシャー

トピック名 メッセージ型 説明
path nav_msgs/msg/Path 計画された経路
costmap nav_msgs/msg/OccupancyGrid 使用されたコストマップ

サブスクライバー

トピック名 メッセージ型 説明
occupancy_grid nav_msgs/msg/OccupancyGrid グリッドマップ
goal_pose geometry_msgs/msg/PoseStamped 目標位置
current_pose geometry_msgs/msg/PoseStamped 現在位置
footprint geometry_msgs/msg/PolygonStamped ロボットのフットプリント
goal_reached std_msgs/msg/Bool ゴール到達フラグ(trueを受信すると経路をクリア)

動作詳細

経路再計画機能

10Hzのタイマーで定期的にロボットの現在位置と計画済み経路の最短距離を計算します。この距離がreplan_distance_thresholdパラメーターで設定された値を超えると、自動的に経路を再計画します。

また、同じゴールを再度受信した場合でも、ロボットが経路を追従できている(しきい値以内の距離)場合は、再計画を行わずに現在の経路を維持します。これにより、不要な再計画を防ぎ、スムーズな動作を実現します。

ゴール到達時の処理

goal_reachedトピックにtrueが送信されると、計画済みの経路をクリアします。これにより、ゴール到達後の不要な経路表示を防ぎます。