概念:自车状态(ego status)
自车状态一般由传感器(如 IMU、GPS/GNSS、底盘传感器等)提供,主要包含以下几个维度的信息:
- 位姿信息 (Pose / Position): 车辆在全局坐标系或局部坐标系中的具体位置(X, Y, Z 坐标)以及三维姿态(Roll 翻滚角, Pitch 俯仰角, Yaw 偏航角/航向)。
- 速度 (Velocity): 车辆当前的线速度(向前、向侧向的速度)和角速度。
- 加速度 (Acceleration): 车辆当前的线加速度(如刹车或加速时的变化率)和角加速度。
- 底盘反馈 / 控制状态 (Chassis Status):
- 方向盘转角 (Steering Angle)
- 油门踏板开度 (Throttle)
- 刹车踏板状态 (Brake)
- 当前挡位 (Gear: P, R, N, D)
- 转向灯状态 (Turn Signal)
- 车辆物理属性 (Vehicle Metadata): 有时也包括车辆的轴距、长宽高、当前载重等静态或半静态信息。
Benchmark调研
首先形式化评测样本。对第 i 个样本,记:
z_i=(\\ell_i, v_i, e_i, m_i, y_i)
其中 \\ell_i 是语言输入或导航指令,v_i 是视觉/传感器输入,e_i 是 ego status,m_i 是地图和场景上下文,y_i 是监督标签或评测答案。
自动驾驶 VLA 通常共享一个 VLM/VLA backbone,参数可以表示为:
\\theta=(\\theta_{\\mathrm{bb}},\\theta_{\\mathrm{tok}},\\theta_{\\mathrm{proj}},\\theta_{\\mathrm{act}})
其中 \\theta_{\\mathrm{bb}} 是共享 backbone 参数,\\theta_{\\mathrm{tok}} 是 language / vision / action tokenizer 或 embedding 参数,\\theta_{\\mathrm{proj}} 是模态投影与融合参数,\\theta_{\\mathrm{act}} 是 action head / planning expert 参数。
如果 benchmark 评测语言问答,则从同一个共享表示 h_i 接语言解码头得到 \\hat{y}_i\^{L};如果评测感知,则从 h_i 接感知/grounding head 得到 \\hat{y}_i\^{V};如果评测规划,则从 action head 得到 \\hat{a}_i。形式化地:
h_i=f_{\\theta_{\\mathrm{bb}},\\theta_{\\mathrm{tok}},\\theta_{\\mathrm{proj}}}\^{\\mathrm{VLA}}(\\ell_i,v_i,e_i,m_i),\\qquad \\hat{a}*i=g*{\\theta_{\\mathrm{act}}}(h_i,e_i)
对自动驾驶规划 benchmark,真正被打分的是动作输出。但这里的"动作"通常不是一个单步离散动作,而是模型给出的未来驾驶计划:也就是从当前时刻开始,未来 T 个时间步内自车应该沿着什么位置、朝向、速度和加速度运动。记这条由模型参数 \\theta 生成的预测轨迹为 \\tau_i\^\\theta:
\\tau_i\^\\theta=\\hat{a}*i=\\{q* {i,t}\^\\theta\\}*{t=0}\^{T},\\qquad q*{i,t}\^\\theta=(p_{i,t}\^\\theta,\\psi_{i,t}\^\\theta,v_{i,t}\^\\theta,a_{i,t}\^\\theta)
其中 q_{i,t}\^\\theta 表示第 i 个样本在未来第 t 个时间步的自车状态;p 是位置,\\psi 是航向角,v 是速度,a 是加速度。后续 NAVSIM 的碰撞、可行驶区域、进展、舒适度、交通灯等指标,都是基于这条轨迹和场景中的地图、障碍物、交通规则之间的关系计算出来的。
需要注意,单次规划解码通常不是 L\\rightarrow V\\rightarrow A\\rightarrow L\\rightarrow V\\rightarrow A 这种循环交替生成。更常见的范式是:先把语言指令、视觉/传感器输入、ego status 和地图上下文编码成共享表示 h_i,然后在这个固定上下文上生成动作序列或连续轨迹。闭环驾驶中下一帧会重新感知、重新规划,但那是控制周期之间的 receding-horizon replanning,不是单次解码内部反复生成 language / vision / action。
从动作输出方式看,当前 VLA / driving VLA 大致有三类:
- 并行轨迹回归 / learnable action query。 核心做法是一次性直接预测多个未来 waypoint 或 path/speed 参数,不逐 token 解码。模型通常初始化一组 learnable action queries,让这些 query 与共享 VLM/VLA 表示交互,再由 MLP 或轻量 decoder 并行回归连续轨迹。
- Reasoning-VLA:使用 learnable action queries 与 reasoning-enhanced vision-language features 交互,并行生成连续 action trajectories。
- VLADriver-RAG:使用 Path Queries 和 Speed Queries 从视觉、文本和检索历史先验中聚合信息,分别回归路径与速度。
- CriticVLA / Judge, Then Drive:使用 DETR-style learnable queries 先生成粗轨迹,再通过 critic-guided refinement 得到最终 action。
- 近邻范式:TransFuser、VAD、UniAD 等传统端到端驾驶方法也常见直接回归或结构化预测未来轨迹,但它们不一定是严格意义上的 VLA。
- 动作 token 自回归。 核心做法是先把连续动作或轨迹片段离散化为 action tokens,再在固定上下文 h_i 条件下像语言 token 一样预测 a_{i,1},\\dots,a_{i,R}。形式化地:
p(\\tau_i\^\\theta\\mid z_i)=\\prod_{r=1}\^{R}p(a_{i,r}\\mid a_{i,\ 相关工作: 总之 query regression 是一次性直接出多个 q_t;action-token AR 是在固定 h_i 条件下逐 token 输出多个 A;flow/diffusion 是在固定 h_i 条件下迭代优化整条连续轨迹。 对 VQA benchmark,打分对象是共享 backbone 表示经语言解码头得到的 \\hat{y}*i\^{L}=g*{\\theta_{\\mathrm{lang}}}(h_i); 对感知 benchmark,打分对象是共享表示经感知/grounding head 得到的 \\hat{y}*i\^{V}=g*{\\theta_{\\mathrm{perc}}}(h_i)。 对自动驾驶规划类 benchmark,则取 o_i\^\\theta=\\tau_i\^\\theta=g_{\\theta_{\\mathrm{act}}}(h_i,e_i),并基于轨迹与地图、障碍物和交通规则的交互来定义 s_b。 NAVSIM 是基于 OpenScene 的非反应式自动驾驶仿真与规划评测框架;OpenScene 是 nuPlan 的 2 Hz 紧凑重分发版本,保留规划所需的传感器、标注、地图和自车状态。 NAVSIM v1 使用 Predictive Driver Model Score (PDMS) 。令 B_{i,t}\^\\theta 表示预测轨迹在时刻 t 的 ego vehicle footprint,\\mathcal{O}_{i,t}\^j 表示第 j 个交通参与者或静态物体 footprint,\\mathcal{A}*i\^{\\mathrm{drive}} 表示可行驶区域,c_i 表示 route centerline,\\Pi*{c_i}(p) 表示点 p 在中心线上的弧长投影。 NC: No at-fault Collision,无责任碰撞。 令 C_i\^{\\mathrm{dyn}}(\\theta) 表示是否发生 at-fault dynamic-agent collision,C_i\^{\\mathrm{sta}}(\\theta) 表示是否发生 at-fault static-object collision,则: \\mathrm{NC}_i(\\theta)= \\begin{cases} 0, \& C_i\^{\\mathrm{dyn}}(\\theta)=1,\\\\ \\frac{1}{2}, \& C_i\^{\\mathrm{dyn}}(\\theta)=0\\ \\land\\ C_i\^{\\mathrm{sta}}(\\theta)=1,\\\\ 1, \& C_i\^{\\mathrm{dyn}}(\\theta)=0\\ \\land\\ C_i\^{\\mathrm{sta}}(\\theta)=0. \\end{cases} 其中 collision 由 \\exists t,j: B_{i,t}\^\\theta\\cap\\mathcal{O}_{i,t}\^j\\ne\\varnothing 判定;NAVSIM 会忽略非反应式仿真中不应归责于 ego 的碰撞,例如 ego 静止时被其他物体撞上。撞击静止物体的损害一般比撞击动态物体要小,所以有区分。分数越高越好。 DAC: Drivable Area Compliance,可行驶区域合规性。 \\mathrm{DAC}*i(\\theta)=\\mathbf{1}\\{\\forall t,\\ B*{i,t}\^\\theta\\subseteq\\mathcal{A}_i\^{\\mathrm{drive}}\\} 只要预测轨迹任一时刻有车身角点落到非可行驶区域,DAC 即为 0。 EP: Ego Progress,自车进展。 令预测轨迹沿 route centerline 的原始进展为: \\Delta s_i(\\theta)=\\max\\{0,\\Pi_{c_i}(p_{i,T}\^\\theta)-\\Pi_{c_i}(p_{i,0})\\} 令 U_i\^{\\mathrm{safe}} 是 PDM-Closed planner 给出的一个基于规则搜索到的轨迹计算的最大安全前进距离,则: \\mathrm{EP}_i(\\theta)= \\begin{cases} \\operatorname{clip}\\left(\\frac{\\Delta s_i(\\theta)}{U_i\^{\\mathrm{safe}}},0,1\\right), \& U_i\^{\\mathrm{safe}}\>5\\mathrm{m},\\\\ 1, \& U_i\^{\\mathrm{safe}}\\le 5\\mathrm{m}. \\end{cases} 这避免在本来就不应前进的场景中过度惩罚模型。 TTC: Time-to-Collision within bound,碰撞时间约束。 对每个时刻 t,将 ego 按当前速度和航向做短时常速度投影,定义: \\delta_{i,t,j}\^\*(\\theta)=\\inf\\{\\delta\\in\[0,H_{\\mathrm{TTC}}\]:\\widetilde{B}*{i,t}\^\\theta(\\delta)\\cap\\widetilde{\\mathcal{O}}*{i,t}\^j(\\delta)\\ne\\varnothing\\} 若集合为空则 \\delta_{i,t,j}\^\*=+\\infty。NAVSIM 实现中 H_{\\mathrm{TTC}} 通常取 1 秒前向窗口;若 ego 速度低于停止阈值则不触发 TTC 罚分。形式化地: \\mathrm{TTC}*i(\\theta)=\\mathbf{1}\\{\\min*{t,j}\\delta_{i,t,j}\^\*(\\theta)\\ge \\tau_{\\mathrm{safe}}\\} 其中 \\tau_{\\mathrm{safe}} 是实现中设定的最小安全时间间隔。 C: Comfort,舒适度。 令 r_{i,t}(\\theta) 汇总轨迹动力学量,例如纵向/横向加速度、纵向/横向 jerk、yaw rate 和 yaw acceleration;令 \\eta 为对应阈值向量,则: \\mathrm{C}*i(\\theta)=\\prod_m\\mathbf{1}\\{\\max_t \|r*{i,t,m}(\\theta)\|\\le \\eta_m\\} 也就是说,只要任一动力学量超过舒适阈值,Comfort 子分数即为 0。 PDMS 是逐 scene 计算后再对 scene 求平均,单个 scene 的样本级分数为: s_{\\mathrm{NAVSIMv1}}(\\theta;i)=\\mathrm{NC}_i(\\theta)\\cdot\\mathrm{DAC}_i(\\theta)\\cdot\\frac{5\\mathrm{EP}_i(\\theta)+5\\mathrm{TTC}_i(\\theta)+2\\mathrm{C}_i(\\theta)}{12} NAVSIM v2 使用 Extended Predictive Driver Model Score (EPDMS)。它保留 NAVSIM v1 的 NC、DAC、EP、TTC,并新增 DDC、TLC、LK、HC、EC。官方实现还会做 false-positive filtering:若 human reference 也触发同一违规,则该项不惩罚 agent。可写为: \\widetilde{m}_i(\\theta)= \\begin{cases} 1, \& m_i(\\mathrm{human})\<1,\\\\ m_i(\\theta), \& m_i(\\mathrm{human})=1. \\end{cases} 下列定义先给出 agent 的原始 m_i(\\theta),实际 EPDMS 中可替换为过滤后的 \\widetilde{m}_i(\\theta)。 DDC: Driving Direction Compliance,行驶方向合规性。 令 \\mathcal{A}_i\^{\\mathrm{opp}} 为逆向/不在 route 上的车道区域,并排除 intersection。定义 1 秒窗口内的逆向行驶距离: R_i\^{\\mathrm{opp}}(\\theta)=\\max_t\\sum_{r=t-H_{\\mathrm{DDC}}}\^{t}\\\|p_{i,r}\^\\theta-p_{i,r-1}\^\\theta\\\|*2\\cdot\\mathbf{1}\\{p*{i,r}\^\\theta\\in\\mathcal{A}_i\^{\\mathrm{opp}}\\} NAVSIM 默认 H_{\\mathrm{DDC}}=1\\mathrm{s},合规阈值为 2m,严重违规阈值为 6m: \\mathrm{DDC}_i(\\theta)= \\begin{cases} 1, \& R_i\^{\\mathrm{opp}}(\\theta)\<2\\mathrm{m},\\\\ \\frac{1}{2}, \& 2\\mathrm{m}\\le R_i\^{\\mathrm{opp}}(\\theta)\<6\\mathrm{m},\\\\ 0, \& R_i\^{\\mathrm{opp}}(\\theta)\\ge 6\\mathrm{m}. \\end{cases} TLC: Traffic Light Compliance,交通信号灯合规性。 令 \\mathcal{R}_{i,t}\^{\\mathrm{red}} 为当前红灯控制的停止/冲突区域,则: \\mathrm{TLC}*i(\\theta)=\\mathbf{1}\\{\\forall t,\\ B*{i,t}\^\\theta\\cap\\mathcal{R}_{i,t}\^{\\mathrm{red}}=\\varnothing\\} 预测车身与红灯 polygon 相交时,TLC 为 0。 LK: Lane Keeping,车道保持。 令非路口时刻的横向偏离为: d_{i,t}\^{\\mathrm{lat}}(\\theta)=\\operatorname{dist}(p_{i,t}\^\\theta,c_i) NAVSIM 默认偏离阈值为 0.5m,且要求连续超过 2 秒才算违规。令 N_{2s} 是 2 秒对应的连续步数,则: \\mathrm{LK}*i(\\theta)=\\mathbf{1}\\{\\nexists t:\\ d*{i,r}\^{\\mathrm{lat}}(\\theta)\>0.5\\mathrm{m}\\ \\text{for all}\\ r=t,\\dots,t+N_{2s}-1\\} 路口内由于中心线标注不稳定,LK 通常不启用。 HC: History Comfort,历史舒适度。 令 \\tau_i\^{\\mathrm{hist}} 为 human driver 的短历史轨迹,\\oplus 表示把历史轨迹拼接到模型规划轨迹之前,则: \\mathrm{HC}_i(\\theta)=\\mathrm{Comfort}(\\tau_i\^{\\mathrm{hist}}\\oplus\\tau_i\^\\theta) 其中 \\mathrm{Comfort}(\\cdot) 使用与上文 C 相同的动力学阈值检查。HC 关注模型输出是否能与最近真实运动历史平滑衔接。 EC: Extended Comfort,扩展舒适度。 EC 进一步检查相邻规划帧之间的动态一致性。令 \\Delta r_{i,t,m}(\\theta) 表示相邻规划帧在加速度、jerk、yaw rate、yaw acceleration 等动力学量上的变化,\\xi_m 为对应阈值,则: \\mathrm{EC}*i(\\theta)=\\prod_m\\mathbf{1}\\{\\max_t \|\\Delta r*{i,t,m}(\\theta)\|\\le \\xi_m\\} 它惩罚两帧规划之间突然改变动作风格的轨迹,即使单条轨迹本身看起来没有明显越界。 NAVSIM v2 的单 scene EPDMS 为: s_{\\mathrm{NAVSIMv2}}(\\theta;i)=\\widetilde{\\mathrm{NC}}_i\\cdot\\widetilde{\\mathrm{DAC}}_i\\cdot\\widetilde{\\mathrm{DDC}}_i\\cdot\\widetilde{\\mathrm{TLC}}_i\\cdot\\frac{5\\widetilde{\\mathrm{EP}}_i+5\\widetilde{\\mathrm{TTC}}_i+2\\widetilde{\\mathrm{LK}}_i+2\\widetilde{\\mathrm{HC}}_i+2\\widetilde{\\mathrm{EC}}_i}{16} 最终 benchmark 分数仍为逐 scene 平均: S_{\\mathrm{NAVSIM}}(\\theta)=\\frac{1}{n}\\sum_{i=1}\^{n}s_{\\mathrm{NAVSIM}}(\\theta;i)
PDMS 指标定义,以 NAVSIM v1 为例
navsim.common.dataclasses.Scene / Frame 对象组织。NAVSIM v2: EPDMS 指标定义
其他自动驾驶专用评测集
.pcd.bin / binary,标注和索引在 JSON 中。
通用多模态与视觉问答评测集