2. 全局规划器算法

Autonomy planning 内置三种 GlobalPlanner 插件,均在全局 Costmap2D 快照上运行。本文是 §3–§5 专题的索引与对比;形式化见 §0.3,架构见 §1,谱系与选型见 §6 综述


2.1 插件一览

插件 ID

文档

策略

路径几何

状态

navfn_planner

§3 NavFn

导航势场 \(\phi\);可选 A*

网格 + 梯度

dijkstra_planner

§4 Dijkstra

同上,\(h\equiv 0\)

网格 + 梯度

theta_star_planner

§5 Theta*

A* + LOS

任意角折线

继承关系

GlobalPlanner
├── NavfnPlanner          ← use_astar 可选
│   └── DijkstraPlanner   ← 强制 Dijkstra
└── ThetaStarPlanner

NavFn 系与代码 API 的势场约定(setGoal/setStart 对调)见 §1.3.1


2.2 对比矩阵

维度

NavFn

Dijkstra

Theta*

核心

Eikonal 势场 + 桶队列

NavFn 强制 Dijkstra 模式

栅格 A* + 视线

启发式

可选 A*(use_astar

无(确定性)

\(h=|n-q_g|_2\)

路径长度

中(锯齿)

同 NavFn

短(近欧氏)

计算

中(LOS 开销)

窄通道

较好

较好

8-连通易切角 → 改 4-连通

典型场景

默认室内

回归 / 基线

开阔 / office

量级参考见 §6.6.2


2.3 选型速查

场景

推荐

关键配置

通用室内

navfn_planner

默认

确定性测试

dijkstra_planner

大地图

navfn + use_astar=true

提前终止

短路径 / 开阔

theta_star_planner

how_many_corners=8

窄走廊

navfn 或 Theta* 4-连通

how_many_corners=4

完整矩阵与决策树见 §6.6


2.4 公共流水线

\[ (q_s, q_g, C) \xrightarrow{\mathrm{copy}} \xrightarrow{\mathrm{search}} \xrightarrow{\mathrm{extract}} \xrightarrow{\mathrm{smooth}} \mathrm{Path} \]

阶段

NavFn / Dijkstra

Theta*

搜索

势场传播 + 梯度跟踪

优先队列 + LOS

后处理

PathSimplifier / SimpleSmoother(可选)

同左

配置见 §0.5;单次 GetPlan 时序见 §1.3


2.5 扩展阅读

§

文档

内容

3

NavFn

势场模型、传播、梯度提取

4

Dijkstra

SSSP、Dial 桶队列、与 A* 关系

5

Theta*

LOS、任意角、邻域配置

6

综述

历史、分类、鱼骨图、业界生态