ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

自动驾驶决策规划十年:从规则到端到端的技术演进

自动驾驶决策规划十年:从规则到端到端的技术演进

2015年前后聊自动驾驶,大家开口闭口都是传感器、感知、深度学习识别。决策规划在多数项目里是“后期再说”的事,甚至不少团队直接写成一大坨if-else。十年过去,2025年的技术讨论完全换了一批词:端到端、占用网络、世界模型、VLA……这些概念全部压到决策规划这条主线上。决策规划从“附加题”变成了“决胜题”,这是我看这十年最明显的变化。

这篇文章不打算写成编年体史书,我更想用做工程的视角,把2015到2025年决策规划的三轮技术浪潮、每个浪潮里的关键设计、实车落地时真正头疼的问题,以及那些不写进论文里的调参经验讲清楚。无论你是刚进这个领域的学生,还是正在做规控模块的工程师,甚至只是好奇自动驾驶为什么“有时候聪明有时候蠢”的旁观者,读完应该能对决策规划有一个完整、立体的认识。

1. 一个决策规划工程师眼中,这十年的主线是什么

1.1 决策规划到底管哪些事

先把位置摆清楚。一套典型的自动驾驶系统可以简化成四段:感知、预测、决策规划、控制。感知负责回答“现在周围有什么”,预测负责猜“这些东西接下来会怎么动”,决策规划回答两个问题——“我现在应该做什么”和“我具体怎么开过去”,控制再把规划出来的轨迹变成方向盘和油门刹车的动作。

决策规划内部又分两层意思。决策层通常指行为选择:跟车、变道、超车、让行、靠边停车、通过路口,这些是“做什么”。规划层则是几何层面的轨迹生成:给出未来几秒内车辆位置、速度、加速度随时间变化的序列,是“怎么做”。很多做控制的同行会觉得规划输出一条曲线就行,但真实的难点恰恰在“什么时候做什么选择”上,一个判断失误,后面轨迹算得再平滑也没有意义。

这十年的时间线,本质上就是“决策层怎么从人工规则走向学习型方法”和“规划层怎么从几何搜索走向数据驱动”这两条线交叠推进的过程。整体来看,会出现三个清晰的技术代际:规则主导、学习型方法渗透、端到端与大模型重塑。

1.2 三张面孔:规则、学习与端到端

用一张表可以看清楚这十年的技术切换逻辑:

时间区间决策方式规划方式核心瓶颈
2015–2018有限状态机为主,行为由规则显式枚举采样搜索+优化平滑(DP+QP)规则爆炸、交互不足
2018–2022规则底座+学习型预测/决策增强优化+数据驱动预测耦合训练数据质量、安全验证
2022–2025端到端模型/大模型主导行为生成直接输出轨迹或联合优化可解释性、评测体系、长尾

三张面孔并不是严格替代关系。实际量产系统里,一直到今天仍有大量规则逻辑在跑,端到端模型商用化也在快速推进。做工程的人必须接受“技术栈是分层混搭”这个现实,而不是整天争论谁取代谁。

2. 2015–2018:状态机、Frenet坐标系和“写规则”的黄金年代

2.1 状态机决策:把驾驶拆成有限个“状态”

2015年之前,无人车决策的主流做法是有限状态机(FSM)。驾驶行为被拆成一组离散状态:车道保持、前车跟随、变道准备、变道执行、路口直行、路口左转、紧急停车……每个状态有明确的进入条件和退出条件。比如从前车跟随进入变道准备,可能要同时满足“当前车道前方车速低于阈值”“目标车道后方车辆距离大于阈值”“变道后预期收益为正”这几条。

这种做法最大的优点是逻辑透明,出了问题可以一行一行查条件,安全评审容易讲故事。说实话,直到今天我依然觉得在功能安全层面,规则逻辑的“可审计性”是学习型方法很难替代的。

但它的问题也非常明显。真实的交通场景是连续、博弈、多变的,状态机需要把所有情况枚举清楚。有一次实车测试,一个路口有行人、电动车、逆行三轮车同时出现,状态迁移条件瞬间排列组合,代码里嵌套了十几层判断,肉眼已经没法验证逻辑是否完备。这还只是单一场景,全城道路跑下来,规则的数量会指数膨胀。圈内当时有个说法叫“规则爆炸”,就是描述这种状态:每解决一个corner case,就要添一批新规则,而新规则又可能与旧规则冲突。

2.2 路径与速度的分离:DP+QP成了事实标准

规划侧,那个年代的行业共识是把问题拆成“路径规划”和“速度规划”两个子问题,分别求解。坐标选择上几乎都用Frenet坐标系:沿道路中心线的方向叫纵向s,偏离中心线的距离叫横向l。好处是道路的几何约束变得非常简单——横向偏移不能太大、纵向可以随意加减速,这对后续优化特别友好。

算法实现上,业界最流行的组合是“DP(动态规划)粗选+QP(二次规划)平滑”。DP的作用不是找到最优轨迹,而是把轨迹空间离散采样,快速排除掉碰撞和明显不合理的分支,得到一个可行解作为初值。QP则在这个初值附近做平滑优化,让轨迹满足曲率约束、横向加速度约束、冲击度约束。我在不少资料里见过一句话:DP负责“像不像话”,QP负责“顺不顺滑”,这个说法很贴切。

举个简化的代价函数例子,DP每一步会计算一组代价:

# 伪代码:路径采样的代价评估 cost = w_ref * lateral_offset + w_collision * collision_risk + w_curvature * curvature_penalty + w_jerk * jerk_penalty

这里的权重系数就是工程师的“命根子”。权重调得偏安全,车会变得非常保守,频繁让行;调得偏效率,又会出现贴着旁车强行变道的情况。当年我们做参数标定时,经常为一个弯道的变道时机调两周数据,因为w_collision和w_ref这两项在不同的道路宽度下表现完全不同。

2.3 那个年代实车最怕什么

规则时代实车最经典的三类问题,现在很多老工程师聊起来还会苦笑。

第一类是“状态反复横跳”。车在跟车和变道准备两个状态之间来回切换,表现出来就是转向灯打了又灭、灭了又打,方向轻微左右晃。根因是某个状态条件的边界值刚好落在感知噪声范围内,前车速度在阈值附近抖动,决策就跟着抖。

第二类是“交互博弈能力为零”。如果旁车道后方车辆加速冲上来,规则策略不会识别这种“不让”的信号,依然按固定安全间距去变道,结果就是吓到对方或被迫取消变道。真实驾驶里那种“眼神交流”“油门博弈”的隐性交互,规则根本写不出来。

第三类是“预测缺失”。当时的决策基本把前车当匀速运动,甚至在弯道处也按当前速度外推。遇到前车突然减速避让障碍物,自车无法预判,只能等距离逼近后触发急刹。这其实是决策规划第一次意识到:不做预测,规划就没有远见。

3. 2018–2022:数据开始说话,决策层不再纯粹

3.1 模仿学习和强化学习:从论文到实车的距离

2018年前后,深度学习向整个自动驾驶领域渗透,决策规划自然也被盯上了。最有代表性的两条技术路线是模仿学习(IL)和强化学习(RL)。

模仿学习的想法很直接:把人类驾驶数据当作老师,让模型学习“给定当前状态,人会怎么开”。这里的行为克隆(Behavior Cloning)实现简单,但有个根深蒂固的问题——分布偏移。训练数据里没有的样本,模型只要稍稍遇到就会给出完全离谱的输出。好比学生只做过真题里的有限题目,遇到题型组合一变就彻底懵了。研究人员后来用DAgger等交互式算法去补充专家数据来缓解,但大规模实车数据的高成本让这种思路量产落地一直磕磕绊绊。

强化学习则走了另一条路:在仿真环境里不断试错,通过奖励函数引导出好的行为策略。理论上是“不需要标注数据”,但实际做起来更头疼——奖励函数的设置本身就是一门玄学。你希望车安全,给碰撞加负奖励,模型会学到用急刹保平安;你希望车效率高,给速度加正奖励,模型又可能学会贴前车屁股超车。奖励里每个分量的权重,比规则时代的参数更敏感、更难调。还有一个绕不开的问题是仿真与真实的gap,仿真里练得再好的策略,到实车上遇到传感器延迟、定位误差、地面摩擦差异,表现会打折得厉害。我记得有个团队做过测试,仿真中碰撞率已经降到极低,实车跑同一场景,因为轮胎模型误差导致的轨迹偏差,碰撞风险一下回升了几倍。

3.2 预测模块上位:决策规划开始“看未来”

这个阶段真正在量产体系中大规模落地、产生实际价值的变化,其实是预测模块的崛起。

2018年之前的预测多数是“匀速外推”,做得好一点的是“车道模型+意图识别”。2018年之后,循环神经网络、注意力机制被大量用于轨迹预测,模型可以输出目标车辆未来3到5秒的多条候选轨迹及其概率。预测结果从此成为决策规划的标准输入。

这里有个关键设计变化:决策从“基于当前状态”变成“基于未来概率分布”。举个例子,前车右侧有一大片空地,预测模块给出两个分支:前车22%概率直行、78%概率向右靠边停。决策层如果能接收这种带不确定性的预测,就可以提前降低车速、留出横向空间,而不是站在原地等前车真动起来再反应。后来很多团队把决策问题建模成“部分可观察马尔可夫决策过程(POMDP)”,用概率方法统一处理感知、预测和决策的不确定性,就是顺着这条思路走的。

但预测也给决策规划带来了新的麻烦:预测分支多了,决策可能“想太多”。

如果自车把每条预测分支都当作必须避让的障碍,行为会变得极其保守,典型表现是“在路上显得很犹豫”。我们的经验做法是给不同分支加概率阈值,只有超过一定置信度的分支才会参与决策,剩下的只做被动监控。这个阈值就是安全与效率的火线,调到什么程度需要结合城市路况跑很多趟数据才能下结论。

3.3 混合架构:规则底座+学习增强的工程折中

站在量产落地的视角,2018到2022这四年,真正的赢家并不是“纯端到端学习”,而是“混合架构”:底层规则兜底,上层用学习模型增强的经典范式。

以变道决策为例,最终量产方案里通常会保留一个规则驱动的安全条件判断模块:目标车道后方到达时间、自车与目标车道前车的空间余量、变道后的行驶收益,这些必须全部满足,才算“可以变道”。至于“什么时候主动发起变道”这种带有策略性的决策,则借助从人类驾驶数据中学到的变道意图模型来触发,再用规则过滤兜底。

这种做法的好处是明显的:学习模型负责提供“更接近人类”的行为触发点,规则模块负责把不安全行为拦住。坏处也真实存在:如果你给学习模型的自由度太小,它和纯规则几乎没有区别;自由度给太大,规则兜底就形同虚设。这里面的平衡,控制权始终在工程师手里。

我个人的观点是,这个阶段最大的工程价值不在于某一种算法有多惊艳,而在于让整个行业形成了一套“学习型方法如何安全地嵌入安全关键系统”的方法论:离线训练、场景库验证、影子模式、实车小流量测试、逐步放量。这套流程后来被端到端时代完整继承下来。

4. 2022–2025:端到端、BEV与大模型重塑决策范式

4.1 BEV和Occupancy改变了决策规划的“输入面”

2022年前后,BEV(鸟瞰图)+Transformer的感知架构开始在量产系统中全面铺开。这个变化对决策规划的影响被很多人低估了。

以前决策规划的输入是“感知模块输出的障碍物列表”:每个障碍物一条记录,有类型、位置、速度、朝向、尺寸。对于标准车辆、行人,这个表达还可以;但遇到洒水车、载满货物的三轮车、施工铁板、碎石堆,障碍物列表的表达能力就捉襟见肘了。很多误判和漏判,本质上是“感知信息在抽象过程中丢失了细节”。

占用网络(Occupancy Network)解决的就是这个问题。它把车辆周围空间划分成密集的栅格,直接输出每个格子是否被占用的概率,不再依赖物体检测。决策规划可以直接在矢量化的占用图上做可通行空间判断,一些从未见过的异形障碍物也能避开。

更关键的变化是,2022年之后,决策规划的输入从“结构化目标列表”变成了“稠密栅格+目标列表的混合表征”。决策算法本身并没有立刻革命,但“看到的信息变多了、变全了”,这为后续端到端模型直接吃传感器特征做规划铺平了路。

4.2 端到端是理想还是噱头:设计与争议

端到端自动驾驶在这段时间被推上风口浪尖,核心思想不再区分感知、预测、规划、控制这些独立模块,而是一个大的神经网络模型,输入多路传感器数据,直接输出车辆控制指令或轨迹。

从决策规划的角度看,端到端最大的吸引力在于打破了“信息瓶颈”。模块化系统里,感知模块按照人定义的语义做抽象,很多对驾驶有用的细节(比如前车轮胎的微小偏转、路面上的异常反射)在抽象过程中被丢弃了。端到端模型直接利用原始数据,理论上可以保留更多信息,并且全链路一起优化。

但这里必须泼几盆冷水。

第一,端到端模型输出的轨迹是不可直接解释的。传统规划可以明确说“因为前车速度低,所以自车选择变道”,端到端模型做不到这点。安全评审时,监管方要一个“为什么”,黑盒模型很难回答。

第二,训练端到端模型需要海量的高质量数据和强大的算力,只有少数公司有资源真正推进。小团队跟风端到端,大多只是用开源模型跑个Demo,离量产有很大距离。

第三,端到端的边界案例处理并不天然更强。模型见过的场景再多,也不等于能应对所有长尾情况。行业里目前比较普遍的做法是,用端到端模型做面向舒适性和拟人化程度的“主大脑”,同时保留一套独立构建的规则安全层做“安全兜底”。本质上还是混合架构,只是把“学习增强”的权重从30%提到了80%甚至更高。

4.3 VLA与世界模型:决策规划的新边界

2023年下半年开始,大语言模型的技术范式涌入自动驾驶,出现了VLA(视觉-语言-动作)这一新方向。VLA的思路是用预训练的多模态大模型作为底座,让模型同时理解图像、语言和动作。它不仅能开车,还能“听懂人话”——比如乘客说“前方路口右转后尽量靠边停”,模型可以直接把这个指令转化为行为约束。

结合决策规划的实际体验来看,VLA带来的想象力更多在“常识推理”上。传统规则系统是“定义所有规则”,VLA则可以通过大模型的语义理解能力,泛化出一些没有显式定义过的合理行为。比如遇到前方临时交通管制,规则系统可能完全懵住,VLA却可以根据“管制”“施工”“改道”这些词与其视觉特征,结合通用世界的知识,给出“绕行”的合理判断。

世界模型则是另一条全新的技术路线。它不只是做感知或者预测,而是试图学习整个环境演化的动力学规律——相当于在模型内部建立一个“交通世界模拟器”。规划时,模型可以推演多种行为选择的未来结果,然后选择“最可能安全高效”的一条。世界模型未来最让人期待的价值,是在仿真阶段以极低的成本生成海量接近真实世界的结果,补齐自动驾驶最缺的“经验广度”。

说实话,这两条技术路线目前都还没有形成稳定的量产方案,但它们已经在强烈地改变着行业对决策规划上限的理解。接下来的路线,大概率是端到端行为模型、VLA常识推理、世界模型模拟验证、规则安全兜底这几层以某种方式叠起来。

4.4 无图化与开城:决策规划承受的工程压力

2023年之后,行业掀起无高精地图化浪潮,“开城”成了量产能力的关键指标。无图对感知和定位提出了更高要求,对决策规划则是另一重考验。

高精地图时代,决策规划可以提前几百米知道车道数、路口形态、限速变化、导流线位置。无图以后,很多前端信息只能靠感知实时识别。路口的车道线可在几十米内确认,决策的“预判时间”被大幅压缩。这意味着规划算法必须在更短的时域内做出合理决策,对实时性、鲁棒性的要求都上了一个台阶。

我当时调研几个开城项目的路测数据,印象最深的问题集中在两类:一类是复杂路口的行驶路径选择,尤其是没有清晰车道线的非结构化路口,决策规划很容易把车“绕晕”;另一类是城市施工场景,地面标线被反复覆盖,决策规划在这种情况下必须及时放弃对车道线的依赖,转为基于可通行空间做自由行驶。自由行驶的轨迹规划,本质上又回到了搜索、采样、优化这些老工具,但这次要处理的约束比十年前多了很多。

5. 十年不变的核心指标与实车调参实录

5.1 安全、舒适、效率的“不可能三角”

不管技术怎么演进,决策规划最终都要拿三个指标的平衡说话:安全、舒适、效率。这也是我理解所有决策规划行为的“元框架”。

安全方面,行业里常用TTC(碰撞时间)、THW(车头时距)等指标做量化。比如前车急刹时,自车的TTC低于某阈值就要触发AEB或紧急避让,这是底线。舒适方面最典型的是加速度和冲击度(Jerk)。主流经验值里,acceleration限制在±2~3m/s²,jerk限制在2~3 m/s³以内,乘客感受会比较“不晕车”。效率方面则看平均车速、通行时间、绕行率。

关键问题在于这三者天然拉扯。跟车间距拉到最安全,效率立刻下降;加速度压得太柔和,紧急情况下反应又不够快。我在实车调参时常说的一句话是:不要试图做到某个单项最优,而是要找这个路况下“人能接受”的组合。比如城市早晚高峰拥堵路况,如果完全按安全优先设定,车距拉得太大,会被连续加塞,结果反而更危险、更慢、体验更差。这种情况下,聪明的策略是保持相对近的跟车距离、柔和但果断的起步,用“不让出空间”的方式参与博弈,整体效率和安全反而都更好。

5.2 横纵向规划配合:最容易被忽略的坑

决策规划实车上最容易翻车的点,不是单项指标没过关,而是横向规划和纵向规划“各管各”之后失去了配合。

一个经典的例子是弯道限速。有些系统在做速度规划时只考虑前方障碍物,不考虑路径规划的曲率,结果车辆进入大曲率弯道时才开始减速,乘客被甩得东倒西歪。这也是“曲率-速度耦合”问题的来源。工程上比较稳妥的做法,是在速度规划阶段就把路径曲率作为硬约束,提前减速到安全过弯速度,而不是等到了弯里再救。

另一个例子是变道过程中的纵向波动。路径规划给出了一条平滑的变道曲线,但速度规划在变道过程中因为前车距离变化而频繁加减速,车就会“点头”。这表明决策规划在行为切换时,没有给纵向速度设置平滑过渡带。后来我们的经验是,每次行为切换(变道、让行、汇入)都强制生成一段固定时间的速度过渡曲线,避免速度跳变。

调参阶段我用过一个很土但有效的办法:把路径和速度曲线叠加画在同一个时间轴上,肉眼检查曲率突变点和速度突变点是否重合。实际上很多舒适性问题,用这个“土办法”就能提前发现。

5.3 仿真闭环与长尾场景的挖掘方法

2020年之后,决策规划的研发重心明显向“仿真闭环+场景库”倾斜。原因很简单,实车路测的成本太高,靠实车跑出足够多的长尾场景,账根本算不过来。

行业内比较成熟的做法是两层仿真。第一层是“虚拟仿真”:在完全合成的环境里构建各种极端场景,比如前车紧急切出、行人鬼探头、夜间逆光、雨雾天气,用来做策略压力测试。第二层是“数据回放”:把真实路采数据导入仿真系统,把自车替换成待测算法,让自车与场景里的其他目标重新交互。效果最好的当属“交互式回放”,即背景车辆不完全按历史轨迹运动,而是对自车行为做出合理反应,这样才能真正测出决策策略的水平。

长尾场景挖掘通常靠聚类。把路测中所有触发安全功能或明显不适的事件收集起来,通过嵌入向量做聚类,找出高频高危的场景模式,再把这些模式变成仿真场景,回归测试。这三步的循环——路测、聚类、仿真回归——是最近几年决策规划质量提升最有效的方法论。我从实际经验中的体会是,这个循环比单纯堆模型参数重要得多。

另外提供一个常见问题速查表,这些是我在多个项目里反复见到的坑:

现象常见原因排查方向
决策反复横跳状态条件边界与感知噪声重叠给状态迁移加迟滞区间
变道时机偏晚预测分支置信度阈值过高检查预测输出的确定性校准
急刹频繁速度规划未预读前车预测轨迹把预测输出提前进入速度优化
弯道舒适性差曲率与速度耦合缺失速度规划加入曲率预瞄约束
仿真测试稳定但实车抖动控制延迟与规划周期不匹配加入延迟补偿或降低规划频率敏感度

6. 争议、纠偏与下一个十年

6.1 端到端的可解释性:不是非黑即白

端到端模型可解释性问题在业内吵了很多年,但现在大家慢慢达成一种务实共识:不需要模型把所有行为都解释清楚,而是需要一套能覆盖关键安全行为的可解释机制。

做法上各显神通。有的团队在端到端模型里加一个“辅助监督头”,输出可解释的中间语义(车道线、红绿灯、障碍物),虽然这些中间结果不参与主决策梯度,但能让工程师在诊断时知道模型“看到了什么”。有的团队对模型输出的轨迹做敏感度分析,看哪部分输入变化导致轨迹突变,以此追踪模型“关注什么”。这类“半解释性”方案,在实际研发和运维中已经够用了。

我的判断是,完全黑盒的端到端很难在安全关键领域单独扛大旗,完全规则的可解释系统又跟不上新场景的泛化需求。最可能的终局是端到端模型负责生成大部分行为,规则或经过安全认证的独立模型对关键行为做约束与裁剪,两边各有纵深,形成“可解释的安全边界+不可解释的智能体验”的双层结构。

6.2 评测与认证体系:决策规划需要“考试”

决策规划技术演进得很快,评测认证体系却严重滞后。传统汽车有碰撞测试、耐久测试这些标准,但智能驾驶的“考试”还远没有定型。没有权威评测,就很难客观比较不同技术路线之间的安全性,也更难界定责任归属。

这几年行业在推动几类测评方法:基于场景的准入测试(把最有代表性的高危交通场景做成标准考卷)、大规模路测统计(跑多少公里、触发多少次接管)、以及“负面事件”的归因分析(出问题到底在感知、预测还是决策)。这些方向都是对的,但距离形成统一的行业标准还需要时间。对从业者来说,平时就应当养成“所有决策和规划行为都可回溯、可重放、可评估”的开发习惯,否则将来面对第三方评测时会非常被动。

6.3 给同行和入行者的几点建议

看了十年决策规划的技术变迁,如果要给后来的同行一些实在话,我会说四件事。

第一,打好几何、优化和状态估计的底子。即便端到端模型盛行,规划输出仍然要满足几何可行性和动力学约束,这些底层能力不会消失,只会换形式出现。

第二,重视数据意识。十年前调参数靠经验,现在调模型靠数据,但很多人对数据的理解还停留在“越多越好”。真正有价值的是“数据分布能覆盖哪些场景、不能覆盖哪些场景”这个认知。了解数据集的上限,比了解模型的精度更重要。

第三,别被技术热点左右自己的工程判断。每过两年就有新概念火爆,但自动驾驶的本质问题始终是“在不确定的世界里做安全高效的决策”。世界模型也好、VLA也好,最终要回答的还是这个问题。能回到本质看技术的人,不容易被忽悠。

第四,花时间坐实车。再好的仿真体系也不能替代实车体验。工程师如果只盯日志和曲线,很容易把车调得“指标完美、坐着难受”。坐到副驾去感受每一次起步、刹车、变道,很多调参灵感都是在实车试乘时冒出来的。

我个人在实际操作中最大的体会是:决策规划这十年,算法工具换了一茬又一茬,但最难的从来不是某个算法本身,而是如何在不完美的感知、不准确的预测、不确定的交通参与者之间,持续输出“安全且有礼貌”的行为。“有礼貌”这件事,2015年我们用规则写得磕磕绊绊,2025年我们用大模型做得越来越像人,但背后的工程方法论——测试、回归、兜底、放量——一直没有变。想清楚这一点,再看任何新技术都不会慌张,因为你始终知道自己在解决什么问题。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进