global_planner是ros的一个全局导航插件功能包,实现了astar和Dijkstra寻路算法。我们大部分同学会使用而网上也很少对其的完全解析,今天我们就来解析一下global_planner功能包。
第一章将从其参数讲起:
以下参数在启动时进行配置
-old_navfn_behavior:bool ture使用原来功能包navfn的规划方式
use_quadratic:bool true使用二次近似函数,false使用更简单的计算方式节省硬件资源(否的话会扩展周边4个点,是扩展周边八个)
use_dijkstra:bool true使用Dijkstra,false则使用astar算法
use_grid_path:bool true直接在周围四个栅格找到g值最小的点,false则使用梯度下降算法(周围八个)
allow_unknown:bool true允许规划未知地图(灰色)中的路径,false不允许
planner_window_x/planner_window_y:float 指定可选窗口的x,y大小以限定规划器的工作空间(程序中未用到)
default_tolerance:float 允许目标点的误差范围
publish_scale:float 设定发布可行性点的最大值(astar/Dijkstra搜索算法扩展的栅格点)
以下使用rqt中的动态参数调节:
publish_potential_:bool true发布可行性点话题"potential",false不发布
cost_factor:uint 将代价图中每个代价乘以的因子(范围3.0-5.0)
orientation_mode:枚举 路径反向模式,默认为最简单的Forward
neutral_cost:int 中立代价
lethal_cost:int 致命代价