随笔——全局路径规划常用方法
本文对比分析了四种经典路径规划算法:A*、RRT*、Hybrid A和韦恩图分割。A在离散空间具有最优性和完备性,但路径存在锯齿;RRT适合高维空间,能渐进优化路径;Hybrid A专为车辆等非完整系统设计,结合连续状态空间搜索和运动学约束;韦恩图分割构建最大安全距离路径但计算复杂。综合评估显示,Hybrid A在实用性上表现最佳(9分),其次是A(8.5分)、RRT*(8分)和韦恩图分割(6.5
一、 方法详细介绍
1. A 算法*
1.1 核心思想
A*算法是一种经典的启发式搜索算法,它在Dijkstra算法的基础上引入了启发式函数,旨在以更高的效率在图形或网格中找到从起点到目标点的最短路径。它通过评估每个可能节点的代价来决定搜索方向。
1.2 算法原理
A*算法维护两个集合:开放集 和关闭集。它为每个节点 n 计算一个评估函数:f(n) = g(n) + h(n)
- g(n):从起点到节点
n的实际代价。 - h(n):从节点
n到目标点的启发式估计代价。 - f(n):节点
n的总估计代价。
算法流程:
- 将起点加入开放集。
- 从开放集中取出
f(n)值最小的节点n作为当前节点。 - 如果
n是目标点,则回溯构建路径,算法结束。 - 否则,将节点
n移入关闭集,并遍历其所有邻居节点。 - 对于每个邻居节点
m:- 如果
m在关闭集中,则跳过。 - 计算从起点经过
n到m的临时g值g_temp。 - 如果
m不在开放集中,或者g_temp小于其原有的g(m),则更新g(m)和f(m),并将m的父节点设置为n。如果m不在开放集中,则将其加入。
- 如果
- 重复步骤2-5,直到找到目标或开放集为空(表示无路径)。
1.3 关键特性
- 完备性:在搜索空间有限且存在路径的情况下,A*总能找到一条路径。
- 最优性:当启发式函数
h(n)是可采纳 且一致 时,A*算法保证找到最短路径。- 可采纳:
h(n)从不高于从n到目标点的实际代价(即永不高估)。 - 一致:对于任意节点
n及其后继m,有h(n) ≤ c(n, m) + h(m),其中c(n, m)是从n到m的代价。这保证了f(n)沿路径是非递减的。
- 可采纳:
2. RRT (快速探索随机树星)*
2.1 核心思想
RRT* 是 RRT 算法的渐进最优版本。它通过随机采样来高效探索高维状态空间,特别适用于机器人臂、无人机等具有复杂动力学和约束的系统。RRT* 在RRT的基础上增加了父节点重连和代价重布线两个步骤,从而使得树结构能够不断优化,最终收敛到最优路径。
2.2 算法原理
- 初始化:树
T仅包含根节点(起点)。 - 采样:在状态空间中随机采样一个点
x_rand。 - 最近邻搜索:在树
T中找到距离x_rand最近的节点x_nearest。 - 扩展:从
x_nearest向x_rand方向扩展一个步长ε,得到一个新节点x_new。如果从x_nearest到x_new的路径无碰撞,则将x_new加入树T。 - 父节点重连:在
x_new附近的一个邻域内寻找所有节点x_near。检查是否存在一条从某个x_near到x_new的路径,其总代价(起点到x_near的代价 +x_near到x_new的代价)小于从x_nearest到x_new的代价。如果存在,则将x_new的父节点重新连接到这个代价更低的x_near上。 - 代价重布线:对于邻域内的其他节点
x_near,检查如果将其父节点改为x_new,是否能降低其自身的代价。如果能,则进行重连。这一步使得树结构在整个空间内不断优化。
2.3 关键特性
- 概率完备性:当时间趋于无穷时,找到一条路径(如果存在)的概率趋于1。
- 渐进最优性:随着采样点数量的增加,找到的路径代价几乎必然收敛到全局最优。
- 高维空间高效性:不依赖于环境的离散化,能有效处理高维状态空间和动力学约束。
3. Hybrid A*
3.1 核心思想
Hybrid A* 是专门为车辆、机器人等非完整系统 设计的路径规划算法。传统A在网格中搜索,忽略了车辆的动力学约束(如最小转弯半径),导致规划出的路径无法被跟踪。Hybrid A 通过在连续状态空间中进行搜索,并显式地考虑运动学模型,生成一条平滑、可执行的路径。
3.2 算法原理
- 状态表示:状态不仅包括
(x, y)坐标,还包括朝向θ,即(x, y, θ)。这更准确地描述了车辆的位姿。 - 运动原语:不同于A的8邻域移动,Hybrid A 使用一组离散的、符合车辆运动学模型的控制指令(如:前进/后退、左转/右转特定角度)来生成后继节点。这使得每个扩展步骤都对应一个真实的车辆运动轨迹(如圆弧)。
- 启发式函数:通常采用非可采纳的两阶段启发式:
- 第一阶段:使用不考虑障碍物和动力学的、标准的A*算法计算从当前状态到目标的网格距离
h_dubins(n)。这个启发式是可采纳的,但可能过于乐观。 - 第二阶段:使用考虑车辆最小转弯半径的Reeds-Shepp曲线或Dubins曲线 来计算从当前状态
(x, y, θ)到目标状态(x_g, y_g, θ_g)的最短路径长度h_rs(n)。这个启发式更接近实际代价,能极大引导搜索,但计算量较大。 - 最终启发式取两者最大值:
h(n) = max(h_dubins(n), h_rs(n)),以在效率和准确性之间取得平衡。
- 第一阶段:使用不考虑障碍物和动力学的、标准的A*算法计算从当前状态到目标的网格距离
- 路径平滑:原始搜索出的路径可能仍带有锯齿。Hybrid A* 的后处理通常包含一个共轭梯度下降之类的非线性优化步骤,对路径进行平滑,同时避开障碍物。
3.3 关键特性
- 考虑运动学约束:生成的路径对于车辆是可执行的。
- 非网格化搜索:在连续状态空间中搜索,精度更高。
- 实用性:是自动驾驶等领域中局部或全局路径规划的核心算法之一。
4. 韦恩图分割
4.1 核心思想
韦恩图分割并非一个独立的路径规划算法,而是一种环境表示或预处理方法。它将自由空间建模为一系列广义圆锥(或称为“韦恩区域”),这些区域由环境中的障碍物顶点定义。路径规划在该图表示上进行。
4.2 算法原理
- 构建韦恩图:
- 对于环境中的每个障碍物,将其顶点视为生成点。
- 韦恩图将空间分割成多个区域,每个区域内的点到其对应障碍物顶点的距离比到其他任何顶点都近。
- 韦恩图的边(即分割线)是到两个最近障碍物顶点距离相等的点的集合。
- 构建路径图:
- 韦恩图的边构成了一个连通图,称为可见性图 的一种变体。在这个图中,节点是韦恩图的顶点(障碍物顶点之间的中垂线交点),边是韦恩图的边。
- 路径搜索:
- 将起点和目标点临时加入到韦恩图中,连接到其所在的韦恩区域对应的边上。
- 在生成的路径图上,使用图搜索算法(如A*或Dijkstra)寻找从起点到目标点的最短路径。
- 这条路径将沿着障碍物之间的“中轴线”行走,最大化地与障碍物保持距离。
4.3 关键特性
- 最大 clearance:生成的路径天生与障碍物保持最大可能距离,安全性高。
- 中等维度的最优路径:在二维平面中,通过韦恩图找到的路径是最短的、同时具有最大安全距离的路径。
- 计算复杂:构建高维空间的韦恩图计算复杂度很高,通常仅限于2D或简单的3D环境。
二、 分析比较与打分排名
为了进行客观比较,我们设立以下几个评价维度:
- 最优性:算法能否保证找到全局最优路径?
- 完备性:在存在路径的情况下,算法是否一定能找到?
- 计算效率:算法的时间与空间复杂度如何?是否适合实时应用?
- 路径质量:路径是否平滑、长度是否最优、是否考虑动力学约束?
- 适用场景:适用于低维/高维空间?结构化/非结构化环境?是否考虑动力学?
- 实现难度:算法的实现和理解难度如何?
比较分析表
| 特性/方法 | A* | RRT* | Hybrid A* | 韦恩图分割 |
|---|---|---|---|---|
| 最优性 | 全局最优 (启发式可采纳且一致) | 渐进最优 | 非最优,但实用 | 最大Clearance下的最短路径 |
| 完备性 | 完备 (在离散空间) | 概率完备 | 完备 (在离散化后的连续空间) | 完备 (在构建的图上) |
| 计算效率 | 中等 (依赖于网格大小) | 较低 (需要大量采样以收敛) | 较低 (状态空间大,启发式计算复杂) | 低 (构建韦恩图计算复杂) |
| 路径质量 | 网格最优,锯齿状,不可执行 | 逐渐平滑,但仍可能不理想 | 平滑,可执行,考虑动力学 | 平滑,安全性最高 |
| 适用场景 | 2D/3D网格地图,游戏AI,低维规划 | 高维状态空间,复杂动力学,机械臂 | 车辆、机器人非完整运动规划 | 2D环境,要求高安全性的路径 |
| 实现难度 | 简单 | 中等 | 复杂 (运动原语、启发式设计) | 复杂 (几何计算) |
综合评价与打分排名
我们采用10分制进行评分,评分基于其在机器人路径规划领域的综合实用性、性能和通用性。
| 排名 | 方法 | 综合得分 | 优点 | 缺点 |
|---|---|---|---|---|
| 1 | Hybrid A* | 9.0 | 在最优性、效率和实用性上取得了最佳平衡。 专为现实世界的机器人设计,生成的路径平滑可执行,是自动驾驶等领域的黄金标准。 | 实现复杂,计算量相对较大,启发式函数设计是关键。 |
| 2 | A* | 8.5 | 经典、高效、最优。 是无数应用的基础,在离散化环境中表现卓越。实现简单,易于理解。 | 受限于网格表示,“锯齿路径”问题,未考虑动力学约束,高维时计算爆炸。 |
| 3 | RRT* | 8.0 | 高维空间的王者。 无需环境离散化,能处理复杂的约束和动力学,概率完备且渐进最优。 | 收敛到最优解慢,路径初始质量差,随机性导致结果不稳定。 |
| 4 | 韦恩图分割 | 6.5 | 安全性的典范。 生成的路径具有最大的安全边际,在安全性至上的应用中无可替代。 | 计算复杂度极高,难以扩展到高维空间,实际应用中较少。 |
结论:
- Hybrid A* 因其在实用性上的卓越表现而排名第一。它将A*的搜索思想与连续状态空间和车辆动力学相结合,解决了从“规划”到“执行”的关键问题。
- A* 作为基石算法,因其简洁性、高效性和在离散空间中的强大保证而排名第二。它仍然是大多数低维、结构化环境规划问题的首选。
- RRT* 在处理复杂性和高维问题方面无可匹敌,但其收敛速度和路径质量的初始不确定性使其略逊于前两者,位居第三。
- 韦恩图分割 是一种优雅的几何方法,提供了最高的安全性,但其高昂的计算成本和有限的适用维度严重限制了其广泛应用,因此排名最后。它通常作为特定问题的理论解决方案或预处理步骤。
最终,方法的选择完全取决于具体应用的需求。没有“唯一最佳”的算法,只有在特定上下文下的“最合适”的算法。
更多推荐

所有评论(0)