Theta Star Planner

Theta Star Planner 实现了 Theta* 路径规划器,旨在使用 A* 规划任意角度的线段聚焦路径。

对于以下示例,规划器花费约 46 毫秒(平均值)来计算 87.5 米的路径 -

Path generated by the Theta* planner

“<name>” 是为此类型选择的相应规划器插件 ID。

参数

规划器的参数包括:

<name>.how_many_corners:

Type

Default

int

8

Description

要在 4 连通(上、下、左、右)和 8 连通(所有相邻单元格)图形扩展之间进行选择,可接受的值为 4 和 8

<name> .w_euc_cost:

Type

Default

double

1.0

Description

对路径长度施加权重。

<name>.w_traversal_cost:

Type

Default

double

2.0

Description

它调整了对高成本节点的惩罚力度。从上面的 g(neigh) 方程中,你可以看到成本函数的成本感知部分形成了一个抛物线,因此,这个参数在增加其值时会使该曲线更陡峭,从而允许不同成本的节点之间有更大的差异(因为当图变得陡峭时,成本增量会增加)。

<name>.use_final_approach_orientation:

Type

Default

bool

false

Description

如果为真,则规划器生成的路径的最后一个姿势将其方向设置为接近方向,即连接路径最后两点的矢量的方向

<name>.allow_unknown:

Type

Default

bool

True

Description

是否允许在未知空间进行规划。

<name>.terminal_checking_interval:

Type

Default

int

5000

Description

检查目标是否已取消或规划器超时的迭代次数

请仔细阅读此 repo 链接上提供的 README 文件,以更好地了解如何调整此规划器。 此规划器还要求您调整 costmap 的“cost_scaling_factor”参数,以获得良好的结果。

Example

planner_server:
  ros__parameters:
    expected_planner_frequency: 20.0
    use_sim_time: True
    planner_plugins: ["GridBased"]
    GridBased:
      plugin: "nav2_theta_star_planner::ThetaStarPlanner" # In Iron and older versions, "/" was used instead of "::"
      how_many_corners: 8
      w_euc_cost: 1.0
      w_traversal_cost: 2.0
      w_heuristic_cost: 1.0