一、 方法详细介绍

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 的总估计代价。

算法流程

  1. 将起点加入开放集。
  2. 从开放集中取出 f(n) 值最小的节点 n 作为当前节点。
  3. 如果 n 是目标点,则回溯构建路径,算法结束。
  4. 否则,将节点 n 移入关闭集,并遍历其所有邻居节点。
  5. 对于每个邻居节点 m
    • 如果 m 在关闭集中,则跳过。
    • 计算从起点经过 nm 的临时 gg_temp
    • 如果 m 不在开放集中,或者 g_temp 小于其原有的 g(m),则更新 g(m)f(m),并将 m 的父节点设置为 n。如果 m 不在开放集中,则将其加入。
  6. 重复步骤2-5,直到找到目标或开放集为空(表示无路径)。

1.3 关键特性

  • 完备性:在搜索空间有限且存在路径的情况下,A*总能找到一条路径。
  • 最优性:当启发式函数 h(n)可采纳一致 时,A*算法保证找到最短路径。
    • 可采纳h(n) 从不高于从 n 到目标点的实际代价(即永不高估)。
    • 一致:对于任意节点 n 及其后继 m,有 h(n) ≤ c(n, m) + h(m),其中 c(n, m) 是从 nm 的代价。这保证了 f(n) 沿路径是非递减的。
2. RRT (快速探索随机树星)*

2.1 核心思想
RRT* 是 RRT 算法的渐进最优版本。它通过随机采样来高效探索高维状态空间,特别适用于机器人臂、无人机等具有复杂动力学和约束的系统。RRT* 在RRT的基础上增加了父节点重连代价重布线两个步骤,从而使得树结构能够不断优化,最终收敛到最优路径。

2.2 算法原理

  1. 初始化:树 T 仅包含根节点(起点)。
  2. 采样:在状态空间中随机采样一个点 x_rand
  3. 最近邻搜索:在树 T 中找到距离 x_rand 最近的节点 x_nearest
  4. 扩展:从 x_nearestx_rand 方向扩展一个步长 ε,得到一个新节点 x_new。如果从 x_nearestx_new 的路径无碰撞,则将 x_new 加入树 T
  5. 父节点重连:在 x_new 附近的一个邻域内寻找所有节点 x_near。检查是否存在一条从某个 x_nearx_new 的路径,其总代价(起点到 x_near 的代价 + x_nearx_new 的代价)小于从 x_nearestx_new 的代价。如果存在,则将 x_new 的父节点重新连接到这个代价更低的 x_near 上。
  6. 代价重布线:对于邻域内的其他节点 x_near,检查如果将其父节点改为 x_new,是否能降低其自身的代价。如果能,则进行重连。这一步使得树结构在整个空间内不断优化。

2.3 关键特性

  • 概率完备性:当时间趋于无穷时,找到一条路径(如果存在)的概率趋于1。
  • 渐进最优性:随着采样点数量的增加,找到的路径代价几乎必然收敛到全局最优。
  • 高维空间高效性:不依赖于环境的离散化,能有效处理高维状态空间和动力学约束。
3. Hybrid A*

3.1 核心思想
Hybrid A* 是专门为车辆、机器人等非完整系统 设计的路径规划算法。传统A在网格中搜索,忽略了车辆的动力学约束(如最小转弯半径),导致规划出的路径无法被跟踪。Hybrid A 通过在连续状态空间中进行搜索,并显式地考虑运动学模型,生成一条平滑、可执行的路径。

3.2 算法原理

  1. 状态表示:状态不仅包括 (x, y) 坐标,还包括朝向 θ,即 (x, y, θ)。这更准确地描述了车辆的位姿。
  2. 运动原语:不同于A的8邻域移动,Hybrid A 使用一组离散的、符合车辆运动学模型的控制指令(如:前进/后退、左转/右转特定角度)来生成后继节点。这使得每个扩展步骤都对应一个真实的车辆运动轨迹(如圆弧)。
  3. 启发式函数:通常采用非可采纳的两阶段启发式
    • 第一阶段:使用不考虑障碍物和动力学的、标准的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)),以在效率和准确性之间取得平衡。
  4. 路径平滑:原始搜索出的路径可能仍带有锯齿。Hybrid A* 的后处理通常包含一个共轭梯度下降之类的非线性优化步骤,对路径进行平滑,同时避开障碍物。

3.3 关键特性

  • 考虑运动学约束:生成的路径对于车辆是可执行的。
  • 非网格化搜索:在连续状态空间中搜索,精度更高。
  • 实用性:是自动驾驶等领域中局部或全局路径规划的核心算法之一。
4. 韦恩图分割

4.1 核心思想
韦恩图分割并非一个独立的路径规划算法,而是一种环境表示预处理方法。它将自由空间建模为一系列广义圆锥(或称为“韦恩区域”),这些区域由环境中的障碍物顶点定义。路径规划在该图表示上进行。

4.2 算法原理

  1. 构建韦恩图
    • 对于环境中的每个障碍物,将其顶点视为生成点。
    • 韦恩图将空间分割成多个区域,每个区域内的点到其对应障碍物顶点的距离比到其他任何顶点都近。
    • 韦恩图的边(即分割线)是到两个最近障碍物顶点距离相等的点的集合。
  2. 构建路径图
    • 韦恩图的边构成了一个连通图,称为可见性图 的一种变体。在这个图中,节点是韦恩图的顶点(障碍物顶点之间的中垂线交点),边是韦恩图的边。
  3. 路径搜索
    • 将起点和目标点临时加入到韦恩图中,连接到其所在的韦恩区域对应的边上。
    • 在生成的路径图上,使用图搜索算法(如A*或Dijkstra)寻找从起点到目标点的最短路径。
    • 这条路径将沿着障碍物之间的“中轴线”行走,最大化地与障碍物保持距离。

4.3 关键特性

  • 最大 clearance:生成的路径天生与障碍物保持最大可能距离,安全性高。
  • 中等维度的最优路径:在二维平面中,通过韦恩图找到的路径是最短的、同时具有最大安全距离的路径。
  • 计算复杂:构建高维空间的韦恩图计算复杂度很高,通常仅限于2D或简单的3D环境。

二、 分析比较与打分排名

为了进行客观比较,我们设立以下几个评价维度:

  1. 最优性:算法能否保证找到全局最优路径?
  2. 完备性:在存在路径的情况下,算法是否一定能找到?
  3. 计算效率:算法的时间与空间复杂度如何?是否适合实时应用?
  4. 路径质量:路径是否平滑、长度是否最优、是否考虑动力学约束?
  5. 适用场景:适用于低维/高维空间?结构化/非结构化环境?是否考虑动力学?
  6. 实现难度:算法的实现和理解难度如何?
比较分析表
特性/方法 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* 在处理复杂性和高维问题方面无可匹敌,但其收敛速度和路径质量的初始不确定性使其略逊于前两者,位居第三。
  • 韦恩图分割 是一种优雅的几何方法,提供了最高的安全性,但其高昂的计算成本有限的适用维度严重限制了其广泛应用,因此排名最后。它通常作为特定问题的理论解决方案或预处理步骤。

最终,方法的选择完全取决于具体应用的需求。没有“唯一最佳”的算法,只有在特定上下文下的“最合适”的算法。

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐