规划算法基础:坐标系转换、车辆运动学模型、路径与轨迹的区别、规划问题数学建模

自动驾驶规划算法处理的是“车在哪里、要去哪里、怎么去”的核心问题。在工程落地时,我们面对的第一个挑战并非算法本身的复杂度,而是如何将物理世界中的车辆状态、传感器观测和道路信息,统一到一个可计算、可推理的数学框架中。本章将围绕四个基础但极易出错的关键模块展开:坐标系转换、车辆运动学模型、路径与轨迹的本质区别,以及规划问题的数学建模方法。这些内容构成了后续所有规划算法(包括采样、优化、图搜索)的公共底座,任何一处理解偏差都可能在实车测试中放大为严重的安全事故。

规划算法基础模块关系与工程链路图 坐标系转换 • 世界系 / 车身系 / 传感器系 • 欧拉角 / 旋转矩阵 / 四元数 • 平移 + 旋转 = 齐次变换 • 工程误差源:时间戳对齐 • 标定参数漂移 车辆运动学模型 • 自行车模型(Bicycle Model) • 状态量:x, y, θ, v, δ • 控制量:加速度 a, 前轮转角 δ • 低速场景适用(< 10 m/s) • 忽略侧偏角与轮胎力 路径 vs 轨迹 • 路径:几何曲线(无时间) • 轨迹:路径 + 时间戳 + 速度 • 轨迹 = 路径 + 速度分配 • 规划输出必须是轨迹 • 控制模块需要时间维度 规划问题数学建模 目标函数:J = w₁·安全 + w₂·效率 + w₃·舒适 + w₄·能耗 约束条件:动力学边界 / 道路边界 / 障碍物距离 / 加速度限制 输出:可执行的轨迹序列

2.1 坐标系转换:统一空间基准的工程关键

核心原理

自动驾驶车辆同时涉及多个坐标系:全局世界坐标系(通常为UTM或自定义东北天坐标系)、车辆车身坐标系(原点在后轴中心,X轴朝前,Y轴朝左)、传感器坐标系(相机、激光雷达、毫米波雷达各自独立)。规划算法接收的障碍物信息来自传感器坐标系,而全局路径规划需要世界坐标系,控制模块则需要车身坐标系下的目标点。坐标系转换的数学本质是刚体变换,包括三维平移和旋转。工程中常用齐次变换矩阵 T 将点从一个坐标系映射到另一个坐标系:

P_world = T_world_vehicle * T_vehicle_sensor * P_sensor

其中 T 为 4x4 矩阵,包含旋转矩阵 R(3x3)和平移向量 t(3x1)。旋转矩阵可用欧拉角(roll, pitch, yaw)、旋转向量或四元数表示。在规划算法中,我们最关心的是车辆横摆角 yaw(绕Z轴旋转),因为它在水平面内决定车辆朝向。

判断方法与操作流程

工程中判断坐标系转换是否正确,最直接的方法是“闭环验证”:将世界坐标系下的一个已知点(如车道线端点)转换到车身坐标系,再转换回世界坐标系,检查误差是否在毫米级。具体操作流程如下:

  1. 确认源坐标系与目标坐标系定义:明确各坐标系原点位置、轴向方向、单位(米/毫米)。
  2. 获取外参标定结果:传感器到车身的旋转平移矩阵,通常由标定间完成。
  3. 编写转换函数:使用齐次矩阵乘法,注意旋转矩阵的转置等于其逆矩阵(正交性)。
  4. 时间同步:确保参与转换的传感器数据时间戳一致,否则车辆运动会导致转换误差。
  5. 单元测试与可视化验证:在仿真环境中将激光雷达点云投影到图像上,或在地图上绘制车身坐标系原点轨迹。
坐标系原点位置X轴Y轴Z轴典型用途
世界坐标系地图原点东北天全局路径规划
车身坐标系后轴中心车辆前进方向车辆左侧车辆上方运动学计算、控制
传感器坐标系传感器光心/中心传感器朝向传感器左侧传感器上方障碍物感知
常见误区:许多工程师在转换时忽略了车辆运动补偿。当激光雷达扫描周期为100ms,车辆以72km/h行驶时,车辆移动了2米。如果不进行运动补偿,直接使用扫描起始时刻的位姿转换所有点云,会导致障碍物位置偏差超过1米,足以造成碰撞风险。

案例拆解:传感器外参标定后的坐标验证

某项目使用前视摄像头检测车道线,需要将车道线从像素坐标转换到车身坐标系。初始现象:在实车测试中,车道线投影到车身坐标系后,与高精地图车道线存在约0.5米的横向偏差。分析过程:首先检查外参标定文件,发现旋转矩阵的Yaw角标定值为0.02弧度(约1.15度),但实际安装时摄像头支架存在微小倾斜。通过将车辆停在标定间,使用已知距离的靶标进行验证,发现转换后的靶标位置与实测位置偏差随距离增大而增大。操作步骤:重新进行外参标定,使用多位置靶标采集数据,优化后Yaw角修正为0.018弧度。结果对比:修正后横向偏差降至0.05米以内。复盘经验:坐标系转换的误差往往不是单一来源,需要结合静态标定和动态验证共同排查。

2.2 车辆运动学模型:从几何关系到状态方程

核心原理

运动学模型描述车辆位置、速度、朝向角随时间变化的几何关系,不考虑产生运动的力和力矩。最常用的是自行车模型(Bicycle Model),它将车辆简化为前后两个轮子,假设车辆低速行驶时轮胎无侧偏,后轮方向与车身朝向一致。状态量通常为 [x, y, θ, v, δ],其中 x, y 为后轴中心坐标,θ 为航向角,v 为纵向速度,δ 为前轮转角。运动学微分方程为:

dx/dt = v * cos(θ)
dy/dt = v * sin(θ)
dθ/dt = v * tan(δ) / L
dv/dt = a

其中 L 为轴距,a 为纵向加速度。该模型在低速泊车、园区接驳等场景下精度足够,且计算简单,适合实时规划。

判断方法与操作流程

选择运动学模型还是动力学模型,取决于车速和工况。判断标准如下:

  • 车速 < 10 m/s(36 km/h):运动学模型足够,忽略轮胎侧偏。
  • 车速 10-20 m/s:需考虑轮胎侧偏角,使用线性动力学模型。
  • 车速 > 20 m/s:必须使用非线性动力学模型,考虑轮胎力饱和。

操作流程:首先确定车辆参数(轴距、轮距、最大转角),然后根据场景选择模型,最后在仿真中对比模型输出与实车数据(如GPS/IMU融合轨迹)的误差。

工程经验:在规划算法中,运动学模型不仅用于预测车辆未来状态,还用于生成满足车辆运动约束的候选轨迹。例如,在采样规划中,我们使用恒定转角与恒定速度的假设,生成一组圆弧轨迹,再通过碰撞检测筛选。

案例拆解:自动泊车轨迹规划中的模型选择

某自动泊车项目,车辆需要以不超过5 km/h的速度在狭窄车位内完成入库。初始目标:生成一条从起始点到目标位姿的平滑轨迹。关键输入:车位尺寸(长5.3m,宽2.4m),车辆轴距2.8m,最大前轮转角35度。分析过程:由于车速极低,轮胎侧偏角可忽略,选择自行车运动学模型。但发现直接使用连续曲率路径规划(如RS曲线)生成的轨迹包含尖点,车辆无法原地转向。操作步骤:改用混合A*算法,在状态空间 (x, y, θ) 中搜索,使用运动学模型进行节点扩展,并添加Reeds-Shepp曲线作为启发式。结果对比:生成轨迹的最大曲率为0.18 1/m,满足车辆最小转弯半径5.6m的要求,泊车成功率从78%提升至95%。复盘经验:低速场景下运动学模型是规划的核心,但必须结合车辆最小转弯半径约束,否则生成的轨迹不可执行。

2.3 路径与轨迹的区别:时间维度的缺失与补全

核心原理

路径(Path)是空间中的一条几何曲线,只包含位置信息(x, y, 可能包含朝向角),不包含时间信息。轨迹(Trajectory)则是在路径的基础上附加了时间戳、速度、加速度等时间维度信息。规划算法的最终输出必须是轨迹,因为控制模块需要知道每个时刻的目标位置和速度。路径规划只解决“走哪条路”的问题,而轨迹规划解决“以什么速度、什么时候到达”的问题。

维度路径(Path)轨迹(Trajectory)
数学表达P(s) = [x(s), y(s), θ(s)]T(t) = [x(t), y(t), θ(t), v(t), a(t)]
参数弧长 s时间 t
包含信息几何形状几何 + 运动状态
控制输入无法直接使用可直接用于跟踪控制
典型算法A*, RRT, 样条曲线时间弹性带(TEB)、模型预测控制(MPC)

判断方法与操作流程

在工程中,判断一个规划模块输出的是路径还是轨迹,只需检查数据结构中是否包含时间戳或速度字段。操作流程:

  1. 路径生成:使用图搜索或采样算法生成候选路径。
  2. 速度规划:在路径上分配速度曲线,考虑障碍物距离、限速、舒适性约束。
  3. 时间分配:将速度曲线积分得到时间戳,形成轨迹。
  4. 可行性检查:验证轨迹的加速度是否超过车辆极限。
常见误区:部分工程师在开发初期只输出路径,将速度规划交给控制模块自行处理。这会导致控制模块在弯道处因速度过高而无法跟踪,或因为缺乏前瞻速度信息而频繁急刹车。正确做法是规划模块必须输出完整的轨迹,包括每个时间点的目标速度和加速度。

案例拆解:城市道路跟车场景的轨迹生成

某城市NOA系统,车辆以60 km/h巡航,前方100米处检测到静止障碍物。初始目标:生成一条安全且舒适的减速轨迹。关键输入:当前速度16.7 m/s,障碍物距离100m,最大减速度3 m/s²,舒适减速度1.5 m/s²。分析过程:如果只生成路径(保持车道中心线),不规划速度,控制模块会以恒定速度行驶直到接近障碍物才紧急制动,导致乘客严重不适。操作步骤:在路径上应用梯形速度规划,先以1.5 m/s²减速至0,计算所需距离为 v²/(2a) = 16.7²/(2*1.5) ≈ 93m,剩余7m作为安全余量。结果对比:生成轨迹的最大减速度为1.5 m/s²,乘客体感良好,且停车位置距障碍物5m。复盘经验:速度规划必须考虑舒适性约束,不能只追求最短时间。

2.4 规划问题数学建模:目标函数与约束的统一框架

核心原理

规划问题本质上是一个带约束的优化问题。数学建模需要定义状态变量、控制变量、目标函数和约束条件。状态变量通常为车辆位姿和速度,控制变量为加速度和前轮转角。目标函数需要权衡多个指标:安全性(与障碍物的距离)、效率(到达时间或平均速度)、舒适性(加速度变化率,即加加速度jerk)、能耗(加速度的平方积分)。约束条件包括:车辆运动学/动力学约束、道路边界约束、障碍物碰撞约束、速度限制、加速度限制。

min J = w₁ * Σ(1/d_obs) + w₂ * T_total + w₃ * Σ(jerk²) + w₄ * Σ(a²)
s.t.  x(k+1) = f(x(k), u(k))  // 运动学模型
      x(k) ∈ X_free           // 状态可行域
      u(k) ∈ U                // 控制可行域
      d(x(k), obs) > d_min    // 安全距离

判断方法与操作流程

建模时需根据场景选择合适的优化框架:

  • 离散优化:将时间离散化,使用数值优化方法(如SQP、IPOPT)求解。
  • 图搜索:将状态空间离散化为网格,使用A*或Dijkstra搜索。
  • 采样方法:随机生成候选轨迹,通过代价函数评估选择最优。

操作流程:首先明确优化变量和约束,然后选择求解器,最后在仿真中调整权重系数。权重调整通常采用层次法:先保证安全权重最大,再优化效率,最后微调舒适性。

工程经验:权重系数的标定是规划算法落地中最耗时的环节之一。建议使用仿真环境批量测试不同权重组合,记录碰撞率、平均速度、加速度均方根等指标,绘制帕累托前沿,选择折中方案。

案例拆解:交叉路口左转场景的轨迹优化

某无保护左转场景,车辆需要在对向车流中寻找间隙完成左转。初始目标:在保证安全的前提下,最小化通过时间。关键输入:对向车辆速度12 m/s,距离交叉口30m,车辆最大加速度2 m/s²,最大减速度4 m/s²。分析过程:将问题建模为最优控制问题,状态量为 (x, y, θ, v),控制量为 (a, δ)。约束包括:车辆必须保持在车道边界内,与对向车辆距离大于1.5m。操作步骤:使用MPC框架,预测时域2秒,控制周期100ms。目标函数中安全权重设为10,效率权重设为1,舒适权重设为0.5。求解后得到轨迹:先加速至8 m/s,在距对向车辆5m时开始左转,同时减速至5 m/s完成转弯。结果对比:与保守策略(等待对向车完全通过)相比,通过时间从8秒缩短至4.5秒,且未发生碰撞风险。复盘经验:数学建模的关键在于约束的准确表达,特别是动态障碍物的时空占用,需要将障碍物预测位置作为时变约束加入优化问题。

总结复盘

本章四个模块环环相扣:坐标系转换提供统一的空间基准,运动学模型描述车辆运动规律,路径与轨迹的区分明确了规划输出的完整性,数学建模则将规划问题转化为可求解的优化形式。工程落地中,建议按以下顺序进行自检:

  1. 确认所有输入数据(障碍物、地图、定位)处于同一坐标系且时间同步。
  2. 验证运动学模型在目标车速范围内的精度。
  3. 检查规划输出是否包含完整的时间-速度信息。
  4. 在仿真中调整优化权重,确保安全约束始终满足。

只有将这四个基础打牢,后续的采样规划、优化规划、学习规划等方法才能在实际车辆上稳定运行。