ROS Navigation-----global_planner简介

    global_planner是一个路径规划器node。

1 概述

   这个package为导航提供了一种快速,内插值的全局规划器, 继承了nav_core包中nav_core::BaseGlobalPlanner接口,该实现相比navfn使用更加灵活。

2 不同参数化实例

2.1 标准行为示例

所有参数使用缺省值:ROS Navigation-----global_planner简介_第1张图片

2.1 珊格路径示例

use_grid_path=True ROS Navigation-----global_planner简介_第2张图片Path follows the grid boundaries.

2.3 Simple Potential Calculation

use_quadratic=FalseROS Navigation-----global_planner简介_第3张图片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 ROS Navigation-----global_planner简介_第4张图片


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

ROS Navigation-----global_planner简介_第5张图片==== A* ===== ROS Navigation-----global_planner简介_第6张图片

2.5 旧式Navfn行为示例

old_navfn_behavior=TrueFor reproducing paths just like NavFn did. ROS Navigation-----global_planner简介_第7张图片

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

~/plan ( nav_msgs/Path)
  • 这里指的是上一次计算,发布的规划,每次规划器会计算一条新路径。 主要用于可视化的目的。

3.2 Parameters

~/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).
~/default_tolerance ( double, default: 0.0)
  • 规划器目标点公差范围。 The planner will attempt to create a plan that is as close to the specified goal as possible but no further thandefault_tolerance away.
~/visualize_potential ( bool, default: false)
  • 指定是否可视化PointCloud2计算的潜在区域
~/use_dijkstra ( bool, default: true)
  • If true, use dijkstra's algorithm. Otherwise, A*.
~/use_quadratic ( bool, default: true)
  • If true, use the quadratic approximation of the potential. Otherwise, use a simpler calculation.
~/use_grid_path ( bool, default: false)
  • If true, create a path that follows the grid boundaries. Otherwise, use a gradient descent method.
~/old_navfn_behavior ( bool, default: false) If for some reason, you want global_planner to exactly mirror the behavior of navfn, set this to true (and use the defaults for the other boolean parameters)

你可能感兴趣的:(ROS Navigation-----global_planner简介)