apollo使用的局部规划算法
·
百度 Apollo 的局部轨迹规划,核心是两套主规划器 + 分层解耦架构,并随版本迭代形成清晰技术路线,下面按主干算法、版本演进、工程细节、与华为/行业对比,给出可直接落地的结论。
一、核心结论(一句话)
Apollo 局部规划的主算法是 EM Planner(Public Road Planner)+ Lattice Planner 双主干,以Frenet 坐标系 + 路径-速度解耦(Path-Velocity Decoupling) 为底层范式,全程用 DP 粗搜 + QP 精修 做轨迹优化,完全不用 TEB/DWA/Ego-Planner 作主规划。
二、Apollo 局部规划两大核心算法
1. EM Planner(Public Road Planner)——结构化道路绝对主力
EM Planner 是 Apollo 3.5 后量产主局部规划器,后更名为 Public Road Planner,面向城市道路、高速等结构化场景,是行业工程化标杆。
核心思想:EM 迭代 + 路径-速度解耦
- 把轨迹规划拆为路径(SL)+ 速度(ST) 两个子问题,交替迭代优化(E 步→M 步→收敛)
- 全程在 Frenet 坐标系 下完成,大幅降低维度与计算量
完整流程(工程落地版)
-
参考线生成与平滑
- 全局 Routing → 车道中心线 → 样条平滑,得到曲率连续的 Frenet 参考线
- 静态障碍物投影到 SL 图,动态障碍物投影到 ST 图
-
路径规划(SL 空间):DP 粗搜 + QP 精修
- DP 粗搜(Dynamic Programming)
- 沿参考线 s 方向分段,横向 l 方向均匀采样(如每 15–20m 一组,每组 5–7 点)
- 计算每段采样点代价(偏离参考线、碰撞、曲率、车道边界)
- 反向回溯得到粗最优路径,解决“走哪边绕障”的决策问题
- QP 精修(Quadratic Programming)
- 以 DP 粗路径为初值,用二次规划做平滑优化
- 约束:曲率连续、转向角速率、横向偏移、静态避障
- 输出光滑、可执行的横向轨迹 l(s)
- DP 粗搜(Dynamic Programming)
-
速度规划(ST 空间):DP 粗搜 + QP 精修
- 以优化后的路径为输入,在 ST 图做速度曲线规划
- DP 粗搜:沿 s 分段,t 方向采样速度/加速度,代价含跟车、停车、加加速度(jerk)
- QP 精修:优化速度曲线,满足动力学、舒适性、动态避障
- 输出纵向轨迹 s(t),与 l(s) 合成时空轨迹
-
EM 迭代收敛
- E 步:固定速度分布,优化路径
- M 步:固定路径形状,优化速度
- 迭代 2–3 轮收敛,保证路径-速度协同最优
关键特性
- 强适配结构化道路,支持车道保持、换道、借道、路口通行
- 硬实时,单帧计算 < 50ms,满足量产车规
- 静态障碍由 SL 处理,动态障碍由 ST 处理,解耦后稳定性大幅提升
2. Lattice Planner——机动/换道/复杂避障主力
Lattice Planner 是 Apollo 2.5 引入的采样型局部规划器,与 EM Planner 并行,侧重大机动、快速避障、多候选轨迹场景。
核心思想:Frenet 双维度多项式采样
- 在 Frenet 坐标系下,横向(l)+ 纵向(s) 独立采样终末状态
- 用五次多项式(横向)+ 四次/五次多项式(纵向) 生成轨迹簇
- 代价函数筛选最优,兼顾安全、舒适、效率
流程
- 状态采样:横向(l, l’, l’’)、纵向(s, s’, s’’)离散采样
- 轨迹生成:多项式拟合起点→终末状态,生成百级候选轨迹
- 代价评估:碰撞、偏离、曲率、jerk、效率、规则约束
- 最优输出:选代价最低且无碰撞轨迹,支持多候选兜底
适用场景
- 紧急避障、大曲率绕行、临时借道、换道超车
- 无车道线/弱结构化道路(矿区、园区)
- 与 EM Planner 互补:EM 稳,Lattice 灵
三、Apollo 局部规划版本演进(关键节点)
| 版本 | 核心规划器 | 技术变化 | 定位 |
|---|---|---|---|
| Apollo 1.5 | EM Planner(初代) | SL-ST 迭代,EM 交替优化 | 初代主规划,解耦探索 |
| Apollo 2.5 | EM + Lattice 双主干 | 引入 Lattice,支持大机动 | 双规划并行,场景覆盖提升 |
| Apollo 3.5 | Public Road Planner(EM 改名) | 取消 SL-ST 迭代,SL 管静态、ST 管动态,加入 Scenario | 量产主规划,稳定性拉满 |
| Apollo 5.0+ | Public Road Planner 优化 | 取消 SL 层 DP,简化路径粗搜,强化 QP 精修 | 工程极致优化,车规量产 |
关键结论:Apollo 3.5 后 Public Road Planner(EM 升级版)是绝对主力,Lattice 作为机动/避障补充,二者共享 Frenet+DP+QP 底层范式。
四、Apollo 局部规划 vs 华为 ADS vs 行业开源
1. 与华为 ADS 对比
| 维度 | Apollo | 华为 ADS | 核心差异 |
|---|---|---|---|
| 主局部规划 | EM Planner(DP+QP)+ Lattice | ADS 3.0:Lattice+QP+MPC;ADS 4.0:WA-MoE+PDP+传统保底 | Apollo 纯规则优化;华为 3.0 偏采样,4.0 大模型重构 |
| 坐标系 | Frenet 绝对主导 | Frenet + 无图拓扑推理(RCR) | Apollo 强依赖高精地图;华为支持无图/弱图 |
| 动力学 | 标准车辆模型,适配乘用车 | 重载、坡道、横摆、XMC 底盘深度集成 | 华为原生适配矿卡/商用车;Apollo 需大量改造 |
| 安全冗余 | 单规划器+ fallback | 三重网络+ fallback | 华为冗余更强,矿卡更友好 |
| 速度区间 | 0–120 km/h(乘用车) | 0–120+ km/h,重载适配 | 华为覆盖商用车/矿卡全工况 |
2. 与 TEB/DWA/Ego-Planner 对比
- TEB/DWA:Apollo 完全不用作主规划,仅在极低速泊车/对位做辅助,不适合高速/重载
- Ego-Planner:Apollo 未采用,其轻量避障思路被吸收到 Lattice 采样逻辑,但非主干
- 核心优势:Apollo 的 DP+QP+Frenet 解耦,在实时性、平滑性、车规稳定性上全面优于开源轻量算法
五、矿区矿卡视角:Apollo 局部规划的可借鉴点
对矿区无人驾驶矿卡,Apollo 有极强参考价值,同时需针对性改造:
- 主干必选 EM Planner(Public Road)+ Lattice 双架构
- EM 负责常规行驶、跟车、装卸对位
- Lattice 负责会车、绕障、临时改道、大机动
- 必须改造动力学模型
- 替换乘用车模型,加入重载、坡道、轮胎滑移、横摆约束
- 强化 ST 图的坡道速度限制、制动距离补偿
- 无图/弱图适配
- 参考 Apollo 参考线生成逻辑,在采场/排土场实时生成临时 Frenet 参考线
- 取消高精地图依赖,用激光/视觉建图替代
- 安全兜底强化
- 照搬 Apollo 的 DP+QP 双层优化,增加硬实时碰撞检测
- 多候选轨迹并行,异常时毫秒级切换安全轨迹
- 速度规划定制
- 矿卡 0–45 km/h 工况,优化 ST 图采样与代价函数
- 强化重载制动、坡道起步、装卸低速控制
六、总结
Apollo 局部轨迹规划是规则优化派的工业标杆,核心是:
- 双主干:EM Planner(Public Road)主稳定,Lattice 主机动
- 底层范式:Frenet 坐标系 + 路径-速度解耦 + DP 粗搜 + QP 精修
- 版本定位:3.5+ Public Road Planner 是量产绝对主力,Lattice 做机动补充
- 行业地位:乘用车/商用车量产首选,矿区矿卡可直接复用架构,仅需动力学与场景定制
- Apollo EM Planner 适配矿卡的改造参数与约束清单
- Apollo 局部规划在矿区的场景化配置文件(proto)
- 矿卡局部规划从 0 到 1 的 Apollo 方案复刻步骤
更多推荐
所有评论(0)