global_planner是一个路径规划器node。
1 概述
这个package为导航提供了一种快速,内插值的全局规划器, 继承了nav_core包中nav_core::BaseGlobalPlanner接口,该实现相比navfn使用更加灵活。
2 不同参数化实例
2.1 标准行为示例
所有参数使用缺省值:
2.1 珊格路径示例
use_grid_path=True
Path follows the grid boundaries.
2.3 Simple Potential Calculation
use_quadratic=False
Slightly different calculation for the potential. Note that the original potential calculation fromnavfn is a quadratic approximation. Of what, the maintainer of this package has no idea.
2.4 A* Path
use_dijkstra=False 
Note that a lot less of the potential has been calculated (indicated by the colored areas). This is indeed faster than using Dijkstra's, but has the effect of not necessarily producing the same paths. Another thing to note is that in this implementation of A*, the potentials are computed using 4-connected grid squares, while the path found by tracing the potential gradient from the goal back to the start uses the same grid in an 8-connected fashion. Thus, the actual path found may not be fully optimal in an 8-connected sense. (Also, no visited-state set is tracked while computing potentials, as in a more typical A* implementation, because such is unnecessary for 4-connected grids). To see the differences between the behavior of Dijkstra's and the behavior of A*, consider the following example.
2.4.1 Dijkstra's
==== A* ===== 
2.5 旧式Navfn行为示例
old_navfn_behavior=TrueFor reproducing paths just like NavFn did. 
Note:
- The start of the path does not match the actual start location.
- The very end of the path moves along grid lines.
- All of the coordinates are slightly shifted by half a grid cell
===
3 ROS API
3.1 Published Topics
~<name>/plan ( nav_msgs/Path)- 这里指的是上一次计算,发布的规划,每次规划器会计算一条新路径。 主要用于可视化的目的。
3.2 Parameters
~<name>/allow_unknown ( bool, default: true)- 指定是否允许规划器在unknown空间创建规划。 NOTE: if you are using a layered costmap_2d costmap witha voxel or obstacle layer, you must also set the track_unknown_space param for that layer to be true, or it will convert all your unknown space to free space (which planner will then happily go right through).
- 规划器目标点公差范围。 The planner will attempt to create a plan that is as close to the specified goal as possible but no further thandefault_tolerance away.
- 指定是否可视化PointCloud2计算的潜在区域
- If true, use dijkstra's algorithm. Otherwise, A*.
- If true, use the quadratic approximation of the potential. Otherwise, use a simpler calculation.
- If true, create a path that follows the grid boundaries. Otherwise, use a gradient descent method.
本文介绍了一个灵活的全局路径规划器global_planner,它为导航提供了快速且高效的解决方案。该规划器继承自nav_core::BaseGlobalPlanner接口,并通过不同的参数化实例展示了其多样化的应用场景,包括标准行为、珊格路径、简单势能计算、A*路径及旧式Navfn行为等。
2058

被折叠的 条评论
为什么被折叠?



