3. 路径规划基础

在自动驾驶系统中,“路径规划”常被当作一个笼统的说法,但工程上它至少包含三个层次:路径(Path)、轨迹(Trajectory)和运动规划(Motion Planning)。三者层层递进,分别回答“走哪条路”“以什么速度走”“如何安全地完成这一动作”三个问题。理解它们的边界,是后续调优与验证的前提。

一、核心定义:路径、轨迹与运动规划

路径是空间中的一条几何曲线,只描述车辆经过的位置序列,不含时间信息。例如一条车道中心线、一条绕障曲线,都可以用点序列或多项式表示:

path = [(x0,y0), (x1,y1), ..., (xn,yn)]   # 仅几何,无时间戳

轨迹在路径基础上加入时间维度,即每个位置点都对应一个时间戳或速度、加速度、曲率等状态量。轨迹回答的是“什么时候到达哪里”:

trajectory = [(t0, x0, y0, v0, a0), (t1, x1, y1, v1, a1), ...]

运动规划是更上层的决策与求解过程,它综合考虑车辆运动学约束(如最小转弯半径、最大曲率)、动力学约束(如加速度、方向盘转角速率)、障碍物、交通规则和乘坐舒适性,输出一条可执行的轨迹。路径是运动规划的中间产物,轨迹是运动规划的最终交付物。

一句话区分:路径是“几何线”,轨迹是“带时间的线”,运动规划是“生成这条带时间线的完整决策与优化过程”。

二、全局规划与局部规划:分工与协作

按照规划范围与响应频率,路径规划通常分为全局规划和局部规划。

  • 全局规划(Global Planning):基于高精地图和导航目标,在较大范围(几公里到几十公里)内搜索一条从起点到终点的可行路径。它关注道路拓扑、路口转向、车道选择,输出通常是车道级或路段级的路径序列。全局规划频率低,通常在出发前或路线偏离时重新计算。
  • 局部规划(Local Planning):在全局路径的引导下,结合实时感知到的障碍物、动态车辆、交通参与者,在几十米到几百米范围内生成可执行的局部轨迹。它关注避障、跟车、换道、速度调节,输出带时间信息的轨迹,频率通常为 10~50 Hz。

两者的关系可以概括为:全局规划提供“战略方向”,局部规划完成“战术执行”。全局路径是局部规划的参考线或约束边界,局部规划在全局路径附近进行优化和避障。如果局部规划发现全局路径不可行(如道路封闭),会触发全局重规划。

全局规划与局部规划的分层协作关系 全局规划层(低频,公里级) 高精地图 + 导航目标 道路拓扑搜索 车道级路径序列 全局路径输出 参考线 / 约束边界 局部规划层(高频,百米级) 实时感知障碍物 避障 / 跟车 / 换道 运动学 / 动力学约束 带时间轨迹输出 全局路径不可行时触发重规划 路径 = 几何曲线(无时间) | 轨迹 = 路径 + 时间/速度/加速度 | 运动规划 = 生成可执行轨迹的完整过程

三、方法流程:从全局到局部的典型链路

一个典型的自动驾驶规划链路如下:

  1. 任务输入:导航系统给出起点、终点和途经点。
  2. 全局路径搜索:在路由图上使用 Dijkstra、A* 或 Contraction Hierarchies 搜索最优路径,输出车道级路径。
  3. 参考线生成:将全局路径平滑为局部规划可用的参考线(Reference Line),并附上道路曲率、限速、车道宽度等属性。
  4. 局部轨迹生成:在参考线附近采样或优化,结合障碍物预测结果,生成满足约束的候选轨迹。
  5. 轨迹选择与执行:通过代价函数评估安全性、舒适性、效率,选出最优轨迹下发给控制模块。

其中,全局规划的输出是局部规划的输入,局部规划的输出是控制模块的输入。每一层都有明确的接口和频率要求。

四、对比清单:全局规划 vs 局部规划

对比维度 全局规划 局部规划
规划范围公里级,整个行程百米级,当前局部环境
更新频率低,事件触发高,10~50 Hz
输入高精地图、导航目标全局路径、感知障碍物、预测轨迹
输出车道级路径序列带时间戳的轨迹
核心约束道路拓扑、交通规则运动学、动力学、避障、舒适性
典型算法A*、Dijkstra、CHEM Planner、Lattice、iLQR、MPC
失败后果无法到达目的地碰撞、急刹、乘坐不适

五、案例场景:城市路口右转

假设车辆需要在一个城市路口右转。全局规划给出“沿当前道路行驶至路口,右转进入目标道路”的车道级路径。局部规划在接近路口时,需要处理:

  • 右侧人行横道是否有行人正在通过;
  • 右转后目标车道是否有慢速车辆;
  • 对向左转车辆是否可能冲突;
  • 转弯过程中的曲率与速度是否满足舒适性要求。

此时,全局路径只告诉车辆“右转”,而局部规划要决定“什么时候开始减速、以什么速度转弯、是否需要停车让行、转弯后如何汇入车流”。如果局部规划发现目标车道被完全堵死,它会请求全局规划重新搜索一条绕行路线。

调优提示:全局规划调优关注路径长度、路口通行效率、路线合理性;局部规划调优关注轨迹平滑度、避障安全距离、速度规划舒适性、求解耗时。两者指标不同,验证方法也不同。

六、常见误区与复盘

误区一:把路径当成轨迹。只输出几何路径而不带时间信息,控制模块无法直接执行,会导致速度规划缺失或急加速急减速。

误区二:局部规划脱离全局路径。局部规划如果完全忽略全局路径的引导,可能生成局部最优但全局绕远的轨迹,甚至逆行或违反交通规则。

误区三:全局规划频率过高。全局规划计算量大,若频繁重规划会占用大量算力,影响局部规划的实时性。应通过事件触发(如路线偏离、道路封闭)来重规划。

误区四:忽略运动学约束。局部规划若只做几何避障而不考虑车辆最小转弯半径和加速度限制,生成的轨迹可能无法被车辆执行。

复盘时,建议按“全局路径是否合理 → 参考线是否平滑 → 局部轨迹是否安全舒适 → 控制跟踪误差是否可接受”的顺序逐层排查。每一层都有独立的评价指标和日志,便于定位问题属于规划层还是控制层。

总结来说,路径、轨迹和运动规划是三个不同抽象层次的概念;全局规划与局部规划则是同一系统中不同时间尺度和空间尺度的分工。理解它们的定义、区别与联系,是后续进行规划算法调优和验证的基础。