Smac Hybrid-A*规划器 [待校准@3216]

由Smac Hybrid-A*产生的路径     `[待校准@3217] <http://dev.nav2.fishros.com/calibpage/#/home?msgid=3217>`_

参数 <name> 是为此类型选择的对应的planner插件账号。 [待校准@2730]

参数

<name>.downsample_costmap [待校准@3189]

类型

默认值

bool

False

描述

是否向下采样costmap到另一个分辨率进行搜索。 [待校准@3190]

<name>.downsampling_factor [待校准@3191]

类型

默认值

int

1

描述

乘数因子向下采样成本图 (例如,如果5厘米成本图在2 downsample_factor ,10厘米输出)。 [待校准@3192]

<name>.allow_unknown

类型

默认值

bool

True

描述

是否允许在未知空间中遍历/搜索。 [待校准@3193]

<name>.max_iterations [待校准@3194]

类型

默认值

int

1000000 [待校准@3195]

描述

未能限制计算时间之前的最大搜索迭代次数,由-1禁用。 [待校准@3196]

<name>.max_planning_time [待校准@3200]

类型

默认值

double

5.0 [待校准@2659]

描述

最大计划时间 (秒)。 [待校准@3201]

<name>.analytic_expansion_ratio [待校准@3218]

类型

默认值

double

3.5 [待校准@3219]

描述

规划器将尝试以与该值和最小启发式成比例的频率完成分析扩展。 [待校准@3220]

<name>.analytic_expansion_max_length [待校准@3221]

类型

默认值

double

3.0 [待校准@2948]

描述

如果长度太远,则拒绝此扩展。这防止了不安全的捷径进入远离目标本身的高成本区域,让搜索在分析扩展将其带回家之前接近的工作。这绝不应该小于使用的最小转弯半径的4-5倍,否则计划时间将开始增加。 [待校准@3222]

<name>.motion_model_for_search [待校准@3202]

类型

默认值

string

"DUBIN"

描述

要搜索的运动模型枚举string。对于混合-A*节点,默认值为 "DUBIN" 。SE2的选项是DUBIN或REEDS_SHEPP。 [待校准@3224]

<name>.angle_quantization_bins [待校准@3225]

类型

默认值

int

72 [待校准@3226]

描述

用于SE2搜索的角仓数量。这可以是任何偶数,但是一个好的基线是64或72 (5度增量)。 [待校准@3227]

<name>.minimum_turning_radius [待校准@3228]

类型

默认值

double

0.4 [待校准@2779]

描述

车辆的最小转弯半径 (米)。也用于平滑器计算最大曲率。 [待校准@3229]

<name>.reverse_penalty [待校准@3230]

类型

默认值

double

2.0

描述

如果反向搜索,将启发式惩罚应用于SE2节点。仅用于 REEDS_SHEPP 运动模型。 [待校准@3231]

<name>.change_penalty [待校准@3232]

类型

默认值

double

0.0

描述

如果在搜索中改变方向 (例如从左到右),将对SE2节点施加启发式惩罚。更改后默认禁用,以保证混合-A*planner的可接受性。 [待校准@3233]

<name>.non_straight_penalty [待校准@3234]

类型

默认值

double

1.20 [待校准@3235]

描述

如果在非直线方向搜索,则适用于SE2节点的启发式惩罚。 [待校准@3236]

<name>.cost_penalty [待校准@3237]

类型

默认值

double

2.0

描述

将启发式惩罚应用于SE2节点的姿态成本。允许混合-A*了解成本。 [待校准@3238]

<name>.retrospective_penalty

类型

默认值

double

0.015

描述

Heuristic penalty to apply to SE2 node penalty. Causes Hybrid-A* to prefer later maneuvers before earlier ones along the path. Saves search time since earlier (shorter) branches are not expanded until it is necessary. Must be >= 0.0 and <= 1.0. Must be 0.0 to be fully admissible.

<name>.lookup_table_size [待校准@3239]

类型

默认值

double

20.0 [待校准@2576]

描述

杜宾/芦苇的大小-绵羊到缓存的距离窗口,以米为单位。 [待校准@3240]

<name>.cache_obstacle_heuristic [待校准@3241]

类型

默认值

bool

false

描述

缓存障碍图动态编程距离扩展启发式算法在相同目标位置的辅助补充之间。如果costmap在很大程度上是静态的,则极大地加快了重新规划性能 (40倍)。 [待校准@3242]

<name>.smooth_path [待校准@3243]

类型

默认值

bool

true [校准@小鱼]

描述

如果为true,则对从搜索到路径的后处理进行简单快速的平滑处理 [待校准@3244]

参数 <name> .平滑器.最大 _ 迭代 [待校准@3207]

类型

默认值

int

1000 [待校准@3198]

描述

平滑器必须平滑路径的最大迭代次数,以绑定潜在计算。 [待校准@3208]

<name>.smoother.w_smooth

类型

默认值

double

0.3

描述

适用于平滑数据点的平滑器重量 [待校准@3210]

<name>.smoother.w_data

类型

默认值

double

0.2

描述

适用于保留原始数据信息的平滑器的重量 [待校准@3212]

参数 <name> 。平滑。公差 [待校准@3213]

类型

默认值

double

1e-10 [待校准@3214]

描述

终止平滑会话的参数公差更改量 [待校准@3215]

参数 <name> .平滑器.do_refinement [待校准@3245]

类型

默认值

bool

true [校准@小鱼]

描述

执行额外的细化平滑运行。本质上,这使用上一个平滑周期的输出递归调用平滑器,以进一步平滑宏趋势的路径。这通常提高了质量,尤其是在杂交-A*planner中,由于原始长度非常小,它可以具有额外的 "wobbling" ,但可能导致路径稍微接近一些障碍。 [待校准@3246]

Example

planner_server:
  ros__parameters:
    planner_plugins: ["GridBased"]
    use_sim_time: True

    GridBased:
      plugin: "nav2_smac_planner/SmacPlannerHybrid"
      downsample_costmap: false           # whether or not to downsample the map
      downsampling_factor: 1              # multiplier for the resolution of the costmap layer (e.g. 2 on a 5cm costmap would be 10cm)
      allow_unknown: true                 # allow traveling in unknown space
      max_iterations: 1000000             # maximum total iterations to search for before failing (in case unreachable), set to -1 to disable
      max_planning_time: 5.0              # max time in s for planner to plan, smooth
      motion_model_for_search: "DUBIN"    # Hybrid-A* Dubin, Redds-Shepp
      angle_quantization_bins: 72         # Number of angle bins for search
      analytic_expansion_ratio: 3.5       # The ratio to attempt analytic expansions during search for final approach.
      analytic_expansion_max_length: 3.0  # For Hybrid/Lattice nodes: The maximum length of the analytic expansion to be considered valid to prevent unsafe shortcutting
      minimum_turning_radius: 0.40        # minimum turning radius in m of path / vehicle
      reverse_penalty: 2.0                # Penalty to apply if motion is reversing, must be => 1
      change_penalty: 0.0                 # Penalty to apply if motion is changing directions (L to R), must be >= 0
      non_straight_penalty: 1.2           # Penalty to apply if motion is non-straight, must be => 1
      cost_penalty: 2.0                   # Penalty to apply to higher cost areas when adding into the obstacle map dynamic programming distance expansion heuristic. This drives the robot more towards the center of passages. A value between 1.3 - 3.5 is reasonable.
      retrospective_penalty: 0.015
      lookup_table_size: 20.0             # Size of the dubin/reeds-sheep distance window to cache, in meters.
      cache_obstacle_heuristic: false     # Cache the obstacle map dynamic programming distance expansion heuristic between subsiquent replannings of the same goal location. Dramatically speeds up replanning performance (40x) if costmap is largely static.
      smooth_path: True                   # If true, does a simple and quick smoothing post-processing to the path

      smoother:
        max_iterations: 1000
        w_smooth: 0.3
        w_data: 0.2
        tolerance: 1e-10
        do_refinement: true