路口前那辆车可能直行,也可能左转或右转;它还没打方向,你就得定下自己接下来 4 秒怎么走。预测要给出几种可能并带概率,不能交一条平均轨迹;规划在一组候选(candidate)轨迹里按代价挑一条,权重决定“怎样算好”,硬约束决定“什么绝对不行”。

待审核草稿。 这一篇还没有经过站主审阅,事实、取舍和措辞都可能修改;引用前请回到文中链接的一手资料核对。

预测要交出什么

输入是每个交通参与者的历史轨迹(来自跟踪)、地图(车道、红绿灯)和自车状态;输出是每个参与者在未来几秒内的 $K$ 条候选轨迹,各带一个概率。为什么要好几条?同一段历史可能对应完全不同的意图:减速靠近路口的车,可能要左转,也可能只是在等红灯。用平方误差训练一条轨迹,会把左转和右转平均成一条谁都不走的路,这和 Model-based RL 里“把两条路平均成墙”是同一个问题。

算一次:3 条预测的 minADE 和 minFDE

下面是教学数字。前车在路口,真实未来是左转,在 $t=1,2,3$ s 的位置为 $(4,0)$、$(8,2)$、$(10,6)$(单位 m)。模型给了 $K=3$ 条预测:

预测 $t=1$ $t=2$ $t=3$ 各时刻误差 (m) ADE FDE
$k_1$ 直行 (4, 0) (8, 0) (10, 0) 0, 2, 6 2.67 6
$k_2$ 左转 (4, 0) (8, 3) (10, 5) 0, 1, 1 0.67 1
$k_3$ 右转 (4, 0) (8, −2) (10, −6) 0, 4, 12 5.33 12

$\hat p^{(k)}_t$ 是第 $k$ 条预测在时刻 $t$ 的位置,$p_t$ 是真实位置,$T$ 是预测步数:

$$ \text{ADE}_k=\frac1T\sum_{t=1}^{T}\big\|\hat p^{(k)}_t-p_t\big\|,\qquad \text{FDE}_k=\big\|\hat p^{(k)}_T-p_T\big\|,\qquad \text{minADE}_K=\min_k\text{ADE}_k . $$

minFDE 同理取最小。这里 minADE$_3=0.67$ m、minFDE$_3=1$ m,都来自 $k_2$。

只能交一条会怎样?设模型给三条的概率是 $(0.5,0.3,0.2)$。只交最可能的直行:ADE 2.67 m,FDE 6 m。交按概率加权的平均:$t=2$ 时 $y=0.3\times3+0.2\times(-2)=0.5$,误差 1.5;$t=3$ 时 $y=0.3\times5+0.2\times(-6)=0.3$,误差 5.7;ADE $=(0+1.5+5.7)/3=2.4$ m。这条平均轨迹在路口中间微微偏左直行,三种意图里没有一种会这样开。

这个指标奖励什么,漏掉什么

  • 再加一条预测,minADE 只会持平或变小。 加一条掉头的预测 $k_4$,minADE 和 minFDE 仍是 0.67 和 1。所以只能在相同 $K$ 下比较;NVIDIA 给 Alpamayo 2 Super 报的就是 $K=6$、6.4 s 时域、在它自选的困难样本上的 minADE(0.911 m,公司自报,见模型页)。
  • 它不看概率。 把 $k_2$ 的概率改成 0.01,minADE 不变。规划要用概率,所以还要看考虑置信度的指标,比如 mAP 或似然。
  • “最好的一条”怎么选,各 benchmark 不完全一样。 有的直接取 ADE 最小的,有的先按终点误差选一条再算它的 ADE。比较论文数字前先看协议。
  • 每个参与者单独打分。 两辆车的预测合在一起是否自洽,minADE 不管。

联合预测还是边缘预测

两辆车在无保护路口交汇,A 先走或 B 先走。各自单独看(边缘分布),每辆车“先走”的概率都是 0.5。若把两者当独立的再相乘,“两车都先走”的概率是 $0.5\times0.5=0.25$:规划器会以为有四分之一的可能看到一个两车相撞的未来,从这个分布采样出的场景也有四分之一是撞车。真实的联合分布更像 (A 走, B 让) 0.5、(A 让, B 走) 0.5,两车都走几乎为 0。

几种主要的预测模型,下面的描述都据各自摘要:

  • MTR(Motion Transformer)不用稠密的目标点候选,而用一小组可学习的 motion query pair,每一对负责一种运动模式,先粗定意图再细化轨迹。
  • Wayformer 是基于注意力的预测器,比较了早融合、晚融合和分层融合,早融合最好。
  • MotionLM(Waymo,ICCV 2023)把多体预测当作对离散运动 token 的语言建模,一次自回归解码(autoregressive decoding)出所有参与者的联合未来;摘要称在 Waymo Open Motion Dataset 交互榜上排第一。

数据和 benchmark 常用 Waymo Open Motion Dataset。

规划:先产生候选,再挑一条

规划器拿到路线、地图、预测和自车状态,输出未来几秒的自车轨迹。几类方法的差别主要在“候选从哪来、怎么挑”:

方法 怎样产生轨迹 性质 局限 一手资料
A* 在离散图上按“已走代价 + 启发式”扩展节点 启发式不高估时找到最短路径 栅格路径不满足车辆转弯半径 Hart、Nilsson、Raphael 1968
Hybrid A* 离散格子里存连续状态 $(x,y,\theta)$,按车辆运动学扩展 路径可行驶,后面接平滑和优化 不保证最优;常用于停车场等非结构化场景 Dolgov 等 2008
RRT / RRT* 随机采样,向样本方向长树 RRT 概率完备;RRT* 渐近最优 路径抖动,需要后处理;动力学约束要另加 LaValle 1998、Karaman 与 Frazzoli 2011
Frenet / lattice 采样 沿参考线把横向、纵向多项式组合成一批候选,再按代价挑 简单,可并行,容易逐条检查约束 候选集之外的好轨迹找不到 Werling 等 2010
优化(含 MPC) 把轨迹当变量,最小化代价并满足约束 局部最优,约束可以显式写进去 非凸时依赖初值 Rawlings、Mayne、Diehl

结构化道路上,采样加打分很常见,下面就算一次。

算一次:4 条候选轨迹怎么挑

沿用导读里的场景,数字都是教学设定。自车 12 m/s;本车道前车在 30 m 外,匀速 8 m/s;左车道后车在 16 m 后,13 m/s;右边是路缘。规划时域 4 s。

候选 4 s 行驶 最小车距 最大加速度 进度 $c_p$ 舒适 $c_c$ 安全 $c_s$ 硬约束
A 保持车道,保持 12 m/s 48 m 14 m(前车) 0 0 0 2 通过
B 车道内匀减速到 8 m/s 40 m 22 m(前车) 1 m/s² 2 1 0 通过
C 向左变道,保持 12 m/s 48 m 12 m(左车道后车) 1.5 m/s² 0 1.5 2.67 通过
D 向右变道 — — — — — — 驶出可行驶区域,淘汰

车距这样算:A 每秒追近前车 4 m,$30-4\times4=14$;B 的车距是 $30-4t+0.5t^2$,在 $t=4$ 时最小,为 22;C 的后车每秒追近 1 m,$16-4=12$。三项代价的定义(也是教学设定):进度 $c_p=(48-\text{行驶距离})/4$;舒适 $c_c$ 取最大加速度的绝对值;安全 $c_s=\max(0,\,20-\text{最小车距})/3$。总代价:

$$ J=w_p\,c_p+w_c\,c_c+w_s\,c_s , $$

只在通过硬约束的候选里取 $J$ 最小的。

  • 权重 $(1,1,1)$: $J_A=2$,$J_B=2+1=3$,$J_C=1.5+2.67=4.17$,选 A。
  • 安全权重加倍 $(1,1,2)$: $J_A=4$,$J_B=3$,$J_C=1.5+5.33=6.83$,选 B。

当 $w_p=w_c=1$ 时,A 和 B 在 $2w_s=3$,即 $w_s=1.5$ 处打平。“怎样算好”就藏在这几个权重里,它们来自人的取舍,或者从人类驾驶数据里学出来。

从这张表还能读出三件事:

  1. C 被 A 支配。 进度一样,舒适和安全都更差,所以无论权重怎么设(只要非负),C 都不会被选中。
  2. D 是被淘汰的,不是被罚分的。 驶出路面不是“扣 10 分”,而是不允许;有限的罚分总可能被足够大的收益抵掉,见规划与 LQR里关于约束的一节。
  3. 时域截断会骗人。 在 $t=4$ s 时,A 离前车 14 m,仍在以 4 m/s 接近;只看 4 s 的代价,看不到 A 在第 5、6 秒会把车距压到多近。把时域加长,或者加一项碰撞时间(time-to-collision),A 的代价就会上升。第 3 篇里 NAVSIM 的分数正好包含碰撞时间这一项。
动画 权重挑轨迹,硬约束先淘汰

这张图需要启用 JavaScript。

规则规划器为什么仍是强基线

PDM(Dauner 等,CoRL 2023)把上面这套做得很彻底。PDM-Closed 先在路线图上搜出要走的车道中心线,再用 IDM(一种跟车模型)沿中心线生成纵向速度:取限速的 20%、40%、60%、80%、100% 五个目标速度,各配 −1 m、0、+1 m 三个横向偏移,共 15 条候选,每条 4 s、10 Hz。其他车按匀速外推。每条候选都用 nuPlan 自己的 LQR 控制器和运动学自行车模型模拟一遍,按接近 nuPlan 评测的规则打分(守规、进度、舒适),取最高分;如果最好的那条预计 2 s 内相撞,就改成紧急制动。

论文在 Val14 上的结果(表 2)。CLS 是闭环分数,R 表示其他车会反应、NR 表示不反应;OLS 是开环分数:

方法 CLS-R CLS-NR OLS
IDM 77 76 38
PDM-Open(学习的 MLP,只看中心线和自车历史) 54 50 86
PDM-Closed 92 93 42
Log Replay(直接回放人类轨迹) 80 94 100

学习的 PDM-Open 开环分数最高、闭环最差;规则的 PDM-Closed 正好反过来。直接回放人类轨迹也拿不到满分闭环,论文的解释之一是 nuPlan 的 LQR 控制器有时会偏离给定轨迹,所以 PDM-Closed 按“控制器实际会走成什么样”来评估候选。作者在引言里把这一点列为第一条发现:“Open- and closed-loop evaluation are misaligned”,即开环评测和闭环评测并不一致(§1)。摘要里那句更强的话说的是另一回事:短期的精确规划和长时程的自车轨迹预测(ego-forecasting)这两个任务根本上不一致,应该分开处理。PDM-Hybrid 的早期版本在 2023 年 nuPlan 挑战赛中排第一(共 25 支队伍)。

学习从哪里进来

  • 学代价。 Lift-Splat-Shoot 学一张 BEV 代价图,再给 1,000 条模板轨迹打分,见第 1 篇。
  • 学候选,再搜索。 Tesla 在 2021-08-19 的 AI Day 上说,神经网络给蒙特卡洛树搜索提出状态和动作的分布,再用碰撞、舒适、时间等显式代价和接管数据打分;2022-09-30 的 AI Day 讲了并行树搜索的“interaction search”,说每 50 ms 做一次决策(公司自报)。两者都是演讲(AI Day 2021、AI Day 2022),据自动字幕转述,描述的是 Tesla 转向端到端之前的栈;2021 年的版本当时被称为仍在开发中。
  • 学打分器。 Hydra-MDP 按摘要从人类示范和规则教师蒸馏(distillation)出一个学生网络,每个评测指标配一个解码头,在 CVPR 2024 挑战赛的 NAVSIM 端到端赛道排第一。
  • 整个规划器用大模型学。 Waymo 2025-06-13 的博客报告,在约 50 万小时内部驾驶数据上训练的模型,运动预测质量随训练算力呈幂律改善,闭环规划指标也随规模变好(公司自报)。同期的技术报告(arXiv 2025-06-09,自回归 encoder-decoder Transformer)还报告,计算最优时模型规模要比数据量增长快约 1.5 倍,并指出这关系到开环指标是否适合用来指导模型开发。

轨迹交给控制

规划器每隔几十到一百毫秒重新规划一次,控制器以更高频率跟踪当前轨迹:这就是 model-based 一篇里“规划一串、只执行第一步”的 MPC 节奏。跟踪本身常用 LQR 或 MPC,推导见规划与 LQR。nuPlan、NAVSIM 和 PDM 都用 LQR 加运动学自行车模型来执行轨迹,所以“规划出来的轨迹”和“车实际走出来的轨迹”会有差别,评测时要分清楚说的是哪一个。

复现时检查什么

先试什么 应该观察什么 不能据此推出什么
固定 $K$ 比较 minADE,同时报告 $K=1$ 多模态带来多少差距 $K$ 大时 minADE 低就说明预测好
打乱各条预测的概率 minADE / minFDE 不变,mAP 或似然变差 概率校准(calibration)不重要
按直行、转弯、交互分段统计 转弯和交互段的误差是否明显更大 平均误差能代表难场景
把代价权重逐个放大 2 倍 选择在哪些场景翻转 存在一组对所有场景都对的权重
把规划时域从 4 s 拉到 8 s 像 A 这样“时域外才出问题”的候选是否被识别 时域越长越好(预测误差也随时域变大)
同时报告开环和闭环分数 两者排序是否一致(PDM 论文里不一致) 开环分数高的规划器闭环也好

参考:PDM · MTR · MotionLM · LaValle 的免费教材 Planning Algorithms · Rawlings、Mayne、Diehl 的 Model Predictive Control。上一篇:从环视相机到鸟瞰图与占用;下一篇:端到端驾驶与闭环评测。

本页术语 5
候选 candidate
召回阶段捞出来、等待精排挑选的内容
自回归解码 autoregressive decoding
把刚生成的 token 作为下一步输入并逐步继续生成
回放 replay
用固定输入重新执行一段数据或模型链路,检查结果是否一致
蒸馏 distillation
用一个模型的输出训练另一个通常更小的模型
校准 calibration
模型给出的置信度是否等于真实正确率