ROS Navigation-----global_planner简介

    global_planner是一个路径规划器node。

1 概述

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

2 不同参数化实例

2.1 标准行为示例

所有参数使用缺省值:GlobalPlanner.png

2.1 珊格路径示例

use_grid_path=True GridPath.pngPath follows the grid boundaries.

2.3 Simple Potential Calculation

use_quadratic=FalseNonquad.pngSlightly 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 AStar.png


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

Dijkstra.png==== A* ===== AStar2.png

2.5 旧式Navfn行为示例

old_navfn_behavior=TrueFor reproducing paths just like NavFn did. OldNavFn.png

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).
~<name>/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.
~<name>/visualize_potential ( bool, default: false)
  • 指定是否可视化PointCloud2计算的潜在区域
~<name>/use_dijkstra ( bool, default: true)
  • If true, use dijkstra's algorithm. Otherwise, A*.
~<name>/use_quadratic ( bool, default: true)
  • If true, use the quadratic approximation of the potential. Otherwise, use a simpler calculation.
~<name>/use_grid_path ( bool, default: false)
  • If true, create a path that follows the grid boundaries. Otherwise, use a gradient descent method.
~<name>/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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值