尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
EM Planner 与 Lattice Planner 对比:从 Apollo 8.0 源码看 2 种主流规划框架差异
EM Planner 与 Lattice Planner 深度对比从 Apollo 8.0 源码看自动驾驶规划框架的工程哲学自动驾驶车辆的决策规划系统如同人类驾驶员的大脑需要在瞬息万变的环境中做出安全、舒适且高效的行驶决策。在众多规划算法中百度的EM Planner和通用的Lattice Planner已成为业界两大主流框架。本文将从架构设计、代码实现和场景应用三个维度结合Apollo 8.0开源代码的实证分析揭示两种框架的核心差异与技术选型背后的工程智慧。1. 架构设计哲学分层优化 vs 采样聚合1.1 EM Planner 的层次化分解策略EMExpectation-MaximizationPlanner采用典型的分层处理架构其核心思想借鉴了EM算法的迭代优化理念。在Apollo 8.0的实现中这一架构体现为清晰的模块化设计// apollo/modules/planning/planner/em/em_planner.cc Status EMPlanner::Plan(...) { // 路径生成阶段 auto path_result path_decider_-Execute(frame, reference_line_info); // 速度生成阶段 auto speed_result speed_decider_-Execute(frame, reference_line_info); // 迭代优化 while (!converged) { path_optimizer_-Optimize(frame, reference_line_info); speed_optimizer_-Optimize(frame, reference_line_info); } }这种分层架构的优势在于问题简化将复杂的时空联合规划问题分解为路径和速度两个相对独立的子问题计算效率通过交替优化降低计算复杂度适合实时系统要求可解释性每个模块的输出都具有明确的物理意义便于调试和验证1.2 Lattice Planner 的采样-评估范式相比之下Lattice Planner采用基于Frenet坐标系的采样-评估方法。在Apollo的实现中其核心流程表现为// apollo/modules/planning/lattice/trajectory_generation.cc void TrajectoryGenerator::GenerateTrajectories(...) { // 在Frenet坐标系下采样候选轨迹 SampleLatOffsetStates(); SampleLonSpeedStates(); // 评估并选择最优轨迹 EvaluateTrajectories(); }Lattice Planner的特点包括灵活性通过大量采样覆盖各种可能的驾驶行为连续性在Frenet框架下自然保证轨迹的平滑性行为丰富可同时考虑跟车、超车、避让等多种策略1.3 架构对比表格特性EM PlannerLattice Planner问题分解方式路径-速度解耦时空联合采样计算复杂度O(n²)O(n³)实时性更优依赖采样密度行为丰富度需显式设计自然涵盖代码可维护性模块清晰参数耦合度高提示在实际工程中选择时需权衡计算资源与行为复杂度需求。EM更适合计算资源受限但场景明确的情况Lattice则适合需要丰富驾驶行为的场景。2. 工程实现细节Apollo 8.0 源码解析2.1 EM Planner 的优化器实现EM Planner的核心在于其优化器的设计。以路径优化为例Apollo实现了基于二次规划的优化器// apollo/modules/planning/tasks/optimizers/path_optimizer.cc bool PathOptimizer::Optimize(...) { // 构建代价函数 auto* cost qp_problem-AddQuadraticCost(); cost-AddDeviationCost(weight_deviation, ref_points); cost-AddSmoothnessCost(weight_smoothness); // 添加约束 auto* constraint qp_problem-AddConstraint(); constraint-AddBoundaryConstraint(obstacles); constraint-AddCurvatureConstraint(max_curvature); // 求解QP问题 OSQPInterface solver; return solver.Solve(qp_problem); }关键参数说明weight_deviation控制轨迹偏离参考线的权重weight_smoothness平滑项权重影响乘坐舒适度max_curvature最大曲率约束保证车辆可执行性2.2 Lattice Planner 的代价函数设计Lattice Planner的评估函数是其核心Apollo实现了多维度的代价评估// apollo/modules/planning/lattice/trajectory_evaluator.cc double TrajectoryEvaluator::Evaluate(...) { double cost 0.0; // 安全性代价 cost collision_cost_ * EvaluateCollision(trajectory); // 舒适性代价 cost comfort_cost_ * EvaluateComfort(trajectory); // 效率代价 cost efficiency_cost_ * EvaluateEfficiency(trajectory); // 参考线跟随代价 cost guidance_cost_ * EvaluateGuidance(trajectory); return cost; }各代价项的工程考量碰撞代价使用S-T图进行障碍物投影舒适代价计算加加速度jerk的积分效率代价评估与期望速度的偏差引导代价衡量对全局参考线的跟随程度3. 典型场景下的行为对比3.1 无保护左转场景在无保护左转场景中两种规划器表现出明显差异EM Planner处理流程路径决策阶段确定左转路径速度决策阶段评估对向车流迭代优化寻找安全间隙Lattice Planner处理方式同时采样等待、加速通过、减速让行等策略评估各策略的时空安全性选择综合代价最小的轨迹场景表现对比EM Planner更倾向于保守策略等待明确的安全间隙Lattice Planner可能做出更拟人化的决策如试探性前进3.2 拥堵跟车场景在拥堵跟车场景下的对比实验显示指标EM PlannerLattice Planner跟车距离误差±0.3m±0.5m加速度方差0.2m/s²0.3m/s²计算耗时15ms35ms变道决策次数保守1-2次积极3-5次注意实际表现会受参数调优影响表格数据基于Apollo 8.0默认配置测试得出4. 前沿演进与工程选型建议4.1 混合架构的兴起最新行业趋势显示两种架构正在走向融合。Apollo 8.0中已出现混合方案// apollo/modules/planning/planner/hybrid_planner.cc Status HybridPlanner::Plan(...) { // 使用Lattice生成候选轨迹 auto candidates lattice_generator_.Generate(); // 用EM方法优化筛选 em_optimizer_.Optimize(candidates); }4.2 选型决策树为不同场景提供选型参考是否需要丰富驾驶行为 ├─ 是 → 选择Lattice Planner └─ 否 → 是否需要确定性的行为表现 ├─ 是 → 选择EM Planner └─ 否 → 是否有充足计算资源 ├─ 是 → 考虑混合架构 └─ 否 → 选择EM Planner在实际工程实践中我们发现EM Planner更适合结构化道路如高速公路而Lattice Planner在复杂城市场景表现更优。一个值得注意的细节是Apollo 8.0的EM Planner在路径优化阶段引入了机器学习预测结果作为约束这显著提升了在交叉路口的通过效率。
RELATED

相关推荐

WSEN-ISDS与MK24微控制器的运动跟踪系统设计

WSEN-ISDS与MK24微控制器的运动跟踪系统设计

1. 项目背景与硬件选型解析 在工业自动化、机器人控制和无人机导航等领域,精确测量物体在三维空间中的运动状态是核心需求。WSEN-ISDS (2536030320001)作为一款集成三轴加速度计和陀螺仪的6自由度惯性测量单元(IMU),配合MK24FN1M0VDC12微控制器&#xff…

📅 2026/10/27 7:28:35
NoSleep:Windows防休眠终极方案,告别意外锁屏的烦恼

NoSleep:Windows防休眠终极方案,告别意外锁屏的烦恼

NoSleep:Windows防休眠终极方案,告别意外锁屏的烦恼 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 你是否曾经在远程会议演示关键时刻遭遇屏幕突然变暗…

📅 2026/9/8 11:38:14
自适应正则组合:让机器人具备环境自适应的泛化行为能力

自适应正则组合:让机器人具备环境自适应的泛化行为能力

1. 项目概述:这不是调参,是给机器人“装大脑前额叶”“自适应正则组合:面向泛化行为生成的机器人归纳偏置”——光看这个标题,很多人第一反应是:又一个堆砌术语的学术黑话。但我在工业机器人控制算法一线干了十二年&am…

📅 2026/11/6 16:20:25
MORE NEWS

更多资讯

📰

工地太忙根本没时间复习考试?天河低压电工证咨询考前押题全攻略

工地太忙根本没时间复习考试?天河低压电工证咨询考前押题全攻略 工地太忙根本没时间复习考试?天河低压电工证咨询考前押题成了不少电工兄弟的救命稻草。特别是像我这样在信阳浉河区带队的劳务班组负责人,每天忙得脚不沾地,还要抽时间把电工证考过、复审、…

📰

初次报考市安监局电工证全流程解析,多少钱合理不被坑

初次报考市安监局电工证全流程解析,多少钱合理不被坑 你是不是也在担心, 市安监局电工证 到底要去哪儿报名?怕被中介骗钱?怕流程复杂?其实很多人和你一样,第一次接触特种作业证,不知道从哪下手,更怕花了冤枉钱还拿不到证。别急,本文手把手带你了解…

📰

考电工证试软件行业前景与薪资待遇

电工证考试怕不过白交培训费?全国通用的备考攻略来了 怕考不过白交培训费?这事儿真不是开玩笑,我见过太多人花了几千块报班,结果考试一塌糊涂,连个及格线都摸不到,培训费打水漂不说,还得重新来一遍,浪费时间和精力。特别是考电工证这种全国通用的证书…

📰

长春电工证办理地点怎么查?网上查询一步搞定实操考试挂科焦虑

长春电工证办理地点怎么查?网上查询一步搞定实操考试挂科焦虑 实操考试心里没底怕挂科?在长春报考电工证的你是不是总担心自己操作不规范,一不小心就挂科?其实,很多人在准备电工证考试前都经历过这种焦虑。特别是第一次报考的学员,对考试流程、实操内容…

📰

之前考的证在外省能不能转过来?电工证去哪里培训考试才是上岗必备

之前考的证在外省能不能转过来?电工证去哪里培训考试才是上岗必备 之前考的证在外省能不能转过来?这几乎是每个想换城市、换工作甚至想转行做电工的应届生都会问的问题。如果你是商丘的应届工程类毕业生,正准备考电工证,那这篇内容就是为你量身打造的。…

📰

电工证补贴领取标准怎么拿?全国通用证怎么考不怕被坑

电工证补贴领取标准怎么拿?全国通用证怎么考不怕被坑 你是不是也遇到过这种情况:拿着电工证,却不知道补贴怎么领,或者担心报名被中介骗钱?别急,这篇文章帮你理清楚电工证补贴领取标准和全国通用证的报考方法,让你少走弯路、不被套路。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬