Smac国家格规划器 [待校准@3247]

由Smac状态晶格生成的路径     `[待校准@3248] <http://dev.nav2.fishros.com/calibpage/#/home?msgid=3248>`_

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

注意: 由于最小控制集与生成时的地图分辨率相关联,状态晶格没有costmap下采样器。最小转弯半径也不是状态晶格中的参数,因为这是在最小控制集预计算阶段指定的。请参阅Smac规划器包,为您的车辆生成自定义控制集,或使用我们预先生成的示例之一。 [待校准@3249]

上图你可以看到反向扩展已启用,这样机器人就可以回到靠近障碍物的紧张要求的位置。 [待校准@3250]

参数

<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]

描述

SE2节点将尝试用与该值成比例的频率和最小启发式方法来完成解析扩展。 [待校准@3251]

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

类型

默认值

double

3.0 [待校准@2948]

描述

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

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

类型

默认值

double

2.0

描述

如果反向搜索,将启发式惩罚应用于SE2节点。仅用于 allow_reverse_expansion = true[待校准@3252]

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

类型

默认值

double

0.05

描述

如果在搜索中改变方向 (例如从左到右),将对SE2节点施加启发式惩罚。 [待校准@3253]

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

类型

默认值

double

1.05 [待校准@3254]

描述

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

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

类型

默认值

double

2.0

描述

将启发式惩罚应用于SE2节点的姿态成本。允许状态格知道成本。 [待校准@3255]

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

类型

默认值

double

5.0 [待校准@2659]

描述

Penalty to apply for rotations in place, if minimum control set contains in-place rotations. This should always be set sufficiently high to weight against in-place rotations unless strictly necessary for obstacle avoidance or there may be frequent discontinuities in the plan where the plan requests the robot to rotate in place to short-cut an otherwise smooth forward-moving path for marginal path distance savings. [待校准@3257]

<name>.retrospective_penalty

类型

默认值

double

0.015

描述

Heuristic penalty to apply to SE2 node penalty. Causes State Lattice 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>.lattice_filepath [待校准@3258]

类型

默认值

string

“” [待校准@2379]

描述

文件路径到状态晶格最小控制集图形,这将默认为位于 test/ 的16箱,0.4米转弯半径控制集,用于基本测试和评估。 [待校准@3259]

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

类型

默认值

double

20.0 [待校准@2576]

描述

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

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

类型

默认值

bool

false

描述

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

<name>.allow_reverse_expansion [待校准@3260]

类型

默认值

bool

false

描述

如果为true,则允许机器人使用原语在镜像方向上扩展当前机器人方向的相反方向 (反向)。 [待校准@3261]

<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中,但有助于国家晶格planner减少由有限数量的标题引起的国家晶格中的 "blocky" 运动。 [待校准@3262]

Example

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

    GridBased:
      plugin: "nav2_smac_planner/SmacPlannerLattice"
      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
      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
      reverse_penalty: 2.0                # Penalty to apply if motion is reversing, must be => 1
      change_penalty: 0.05                # Penalty to apply if motion is changing directions (L to R), must be >= 0
      non_straight_penalty: 1.05          # 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.
      rotation_penalty: 5.0               # Penalty to apply to in-place rotations, if minimum control set contains them
      retrospective_penalty: 0.015
      lattice_filepath: ""                # The filepath to the state lattice graph
      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.
      allow_reverse_expansion: false      # If true, allows the robot to use the primitives to expand in the mirrored opposite direction of the current robot's orientation (to reverse).
      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