一、概述

nuPlan 是由 Motional(原 nuTonomy 团队)于 2023 年发布的大规模自动驾驶规划数据集与闭环仿真评测框架。与 nuScenes 主要聚焦感知任务不同,nuPlan 的设计初衷是填补规划领域三个核心空白:缺乏大规模人类驾驶规划数据、缺乏标准化闭环评测指标、以及缺乏可复现的仿真评估协议。

nuPlan 的核心规模数据:1500 小时的人类驾驶数据,覆盖全球四个城市——波士顿(Boston)、匹兹堡(Pittsburgh)、拉斯维加斯(Las Vegas)和新加坡(Singapore)。这些城市的驾驶环境具有显著差异:波士顿的老城区窄路与不规则交叉口、匹兹堡的丘陵道路与桥梁、拉斯维加斯的宽阔多车道网格化道路、新加坡的右舵驾驶与密集高架路网。

nuPlan 最革命性的贡献在于:它不仅是一个数据集,更是一个完整的闭环仿真平台。研究者可以在 nuPlan 仿真环境中部署自己的规划模型,与不同类型的交通参与者(log-replay 或 reactive agent)交互,并从安全性、合规性和通行效率等多个维度自动评估模型表现。这种"数据+仿真+评估"三位一体的设计,使 nuPlan 成为目前自动驾驶规划领域最全面的基准平台。

二、数据采集与统计

2.1 数据规模对比

维度nuScenesnuPlan
总驾驶时长约 5.5 小时约 1500 小时
场景/Log 数1000 个 scene约 1282 个 log
标注关键帧约 40,000约 150 万
标注 3D 框总数约 140 万约 5900 万
覆盖城市2(波士顿、新加坡)4(波士顿、匹兹堡、拉斯维加斯、新加坡)
传感器配置6 Cam + 5 Radar + 1 LiDAR同 nuScenes(部分 Log 不同)
高精度地图完整 HD Map(车道拓扑、交通标志)
仿真环境内置闭环仿真器

2.2 四城市特点

波士顿:美国东北部老城,街道较窄且不规则,存在大量无保护左转、两阶段左转和环形交叉口。历史街区的道路拓扑复杂,行人活动频繁。冬季还可能遇到积雪和湿滑路面。波士顿的数据量约占全部数据的 30%。

匹兹堡:以丘陵地形著称,纵向坡度变化显著(部分道路坡度超过 15%),桥梁结构繁多。复杂的立体交通和频繁的上下坡对规划模型的速度控制和视野管理提出额外要求。匹兹堡数据占比约 20%。

拉斯维加斯:城市道路规划整齐,以宽阔的多车道主干道和网格化路网为特征。典型场景包括高速并入并出、大型信号灯交叉路口和复杂的变道操作。拉斯维加斯的夜间交通流量仍较大,对视觉方案的鲁棒性要求高。数据占比约 30%。

新加坡:右舵驾驶(靠左行驶),城市紧凑但路网密度高。存在大量高架桥、地下通道和立体交叉结构。交通规则与北美三城差异大,是测试模型跨域泛化能力的关键数据源。数据占比约 20%。

2.3 高精度地图

nuPlan 提供了完整的高精度矢量地图,这是与 nuScenes 的关键差异之一。地图包含:

  • 车道几何:每条车道的中心线(以三维路径点列表示)、左右边界线、车道宽度和长度。车道中心线采样间距 0.5-1.0 米。
  • 车道拓扑:前后继关系(predecessor/successor)、左右相邻关系(left neighbor/right neighbor)、变道可行标记。这一拓扑结构使路线规划和导航成为可能。
  • 道路元素:停车线位置、人行横道区域、自行车道、限速标志、停止线、让行线等。每个元素都有精确的全局坐标和关联车道。
  • 十字路口信息:包含交叉区域的几何多边形、入口车道和出口车道的对应关系、信号灯相位信息(如箭头灯的启用时段)。

地图数据使用 Lanelet2 格式组织,每个地图文件对应一个 log 的采集区域。地图坐标系与传感器数据的全局坐标系一致,均采用 UTM 投影。地图的更新频率与 log 采集同步,确保地图数据的时效性。

三、标注体系

3.1 连续轨迹标注

nuScenes 仅标注了关键帧(2Hz),而 nuPlan 提供以 20Hz 频率记录的完整连续轨迹。每条轨迹包含:

  • 位置信息:全局坐标系(UTM)下的 x、y、z 坐标,z 坐标在平坦道路上通常为常数
  • 朝向信息:车辆航向角(heading),以弧度表示,范围为 [-π, π]
  • 运动状态信息:瞬时速度(m/s)及速度向量的方向、纵向和横向加速度(m/s²)、角速度(rad/s)
  • 控制信号信息:方向盘转角(度)、油门踏板位置(0-100%)、刹车踏板位置(0-100%)

其中控制信号信息是规划研究中极具价值的"因果标签"——人类驾驶员在什么情况下踩了多大的刹车、打了多大的方向盘。这些标签可用于行为克隆训练中的多模态控制输出或驾驶风格分析。

3.2 物体标注

nuPlan 的物体标注同样采用 3D 边界框形式,但其密度远超 nuScenes(150 万关键帧 vs 4 万关键帧)。标注内容包括:

  • 类别(category):car、truck、bus、motorcycle、bicycle、pedestrian、animal、static_object、generic_object 等
  • 实例 ID(instance_id):全局唯一,跨帧持续跟踪
  • 3D 边界框:translation [x, y, z]、rotation [w, x, y, z]、size [w, l, h]
  • 运动状态:速度矢量、加速度矢量、运动状态标签(静止/低速/正常/高速)
  • 遮挡状态:被其他物体遮挡的比例估计

值得一提的是,nuPlan 引入了 generic_object 类别——用于标注无法明确分类但确实存在的移动物体。这一设计使标注更加完整,避免因分类困难而漏标重要物体。

3.3 交通信号标注

交通信号标注是规划评估中不可或缺的信息。nuPlan 的标注覆盖:

  • 信号灯状态:红、黄、绿三色,以及箭头方向指示(左转箭头、直行箭头、右转箭头)
  • 信号灯关联:每个信号灯与对应的受控车道或路口关联
  • 倒计时信息:部分信号灯标注了从绿灯切换为黄灯/红灯的剩余时间
  • 停止标志和让行标志:精确标注位置和朝向

交通信号标注的关键挑战在于时序对齐——信号灯状态随真实交通控制系统变化,必须与 log 的录制时间精确对齐。nuPlan 通过将信号采集设备与主控系统时间同步来解决这一问题。

四、仿真环境

4.1 仿真架构详解

nuPlan 仿真器的核心架构分为六个模块:

  1. Scenario Extraction(场景提取):从数据集中选取指定时长的 log 片段。支持场景类型筛选(如"车辆在十字路口左转"),也支持随机采样。输出包括起始帧、终止帧、EGO 初始位姿和导航路线。

  2. Map Server(地图服务):加载场景所在区域的高精度地图,为其他模块提供车道查询、可达性分析和碰撞检测等空间计算服务。地图服务的核心功能包括沿车道投影(将任意点投影到最近车道中心线上)、车道序列规划(根据起点和终点生成车道级导航路线)和可行驶区域计算(生成地图的多边形表示)。

  3. Agent Manager(参与者管理器):管理仿真中所有非 EGO 车辆和行人的行为和状态。支持两种参与者模式:

    • Log-replay 模式:严格遵循 log 中的原始轨迹。每帧读取 log 中记录的位姿并直接设置 agent 的状态。
    • IDM 模式(Intelligent Driver Model):根据前车距离和期望速度计算加速度,支持基本的车道保持和跟车行为。参数可调节(如期望跟车距离、最大加速度等)。
  4. Simulation Engine(仿真引擎):以固定步长(通常 0.1 秒)驱动仿真循环。每个时间步:从 EGO 模型获取控制指令,执行车辆动力学模型更新 EGO 状态,更新所有非 EGO 参与者的状态,检测碰撞和违规。

  5. Vehicle Dynamics(车辆动力学模型):将控制指令输出(转向、油门、刹车)转换为实际的位姿变化。nuPlan 内置了基于运动自行车模型(Kinematic Bicycle Model)的动力学仿真器,支持前轮驱动和四轮驱动配置,可模拟不同的车辆轴距和最大转向角。

  6. Metric Computation(指标计算):仿真结束后,根据记录的 EGO 轨迹和其他参与者轨迹计算各项评估指标。

4.2 参与者类型深度分析

非反应式(Non-reactive)Agent

  • 优点:评估结果完全确定、可复现;不引入额外超参数;场景挑战性可控
  • 缺点:无法模拟真实交通中的博弈行为;可能存在"不可避免碰撞"

反应式(Reactive)Agent

  • nuPlan 内置的 IDM 模型可以进行基础的避让和跟车行为
  • 当 EGO 发出变道意图时,目标车道上的反应式 agent 可能会减速让行
  • 优点:更真实的交通交互
  • 缺点:引入额外随机性和不确定性;同一模型在同场景上的多次评估结果可能不同

4.3 控制接口

底层控制接口:模型直接输出方向盘角度(-1 到 1,归一化)和加速/减速值(-1 到 1,负值表示刹车)。仿真器使用动力学模型将这些控制量转化为车辆运动。这种接口适合强化学习方法的端到端训练。

高层控制接口:模型输出未来 N 个时空路径点(通常为 10-20 个点,覆盖 2-4 秒),仿真器内置的 PID 控制器将路径点转化为方向盘和加减速指令。PID 参数可调节(转向 KP、KI、KD 和速度 KP、KI、KD),影响控制器的跟踪精度和平滑度。这种接口更适合基于轨迹规划的方法。

五、评估指标

5.1 碰撞分数(Collision Score)

碰撞分数是安全性评估的基石。nuPlan 将碰撞按严重程度分类:

  • EGO 静止时被追尾:权重 0.1
  • 低速碰撞(相对速度 < 10 km/h):权重 0.2
  • 中速碰撞(10-30 km/h):权重 0.5
  • 高速碰撞(> 30 km/h):权重 1.0
  • 与行人碰撞:权重 1.0(无论速度高低)

计算方式为:

Collision_Score=1-(Σw_i×collision_duration_i)/total_duration

5.2 可行驶区域合规(Drivable Area Compliance)

衡量 EGO 是否始终在道路可行驶区域内:

DA_Compliance=time_in_drivable_area/total_time

可行驶区域由地图的车道边界定义,允许 0.3m 的压线容忍度。

5.3 驾驶分数(Driving Score)

综合指标:

Driving_Score=Collision_Score×DA_Compliance×Progress

其中 Progress = actual_distance / planned_distance。

5.4 辅助指标

包括舒适度指标(纵向/横向加速度、方向盘变化率、冲击度 jerk)、限速合规(超速时间比例)、通行效率(平均速度、行程时间)和变道行为统计。

5.5 NR 与 R 模式

nuPlan 挑战赛的两种模式:

  • NR(Non-Reactive Closed-Loop):所有非 EGO 车辆使用 log-replay。结果完全确定,适合直接对比。
  • R(Reactive Closed-Loop):使用反应式 IDM 模型。更真实但结果存在方差,建议报告多次评估的均值和标准差。

六、NAVSIM 与 nuPlan 的关系

6.1 NAVSIM 的简化策略

NAVSIM 由同一团队在 nuPlan 基础上开发,进行了以下简化:

  1. 场景长度标准化:固定为 8-10 秒的短片段,降低计算开销
  2. 传感器模拟简化:直接从 log 读取观测数据,无需渲染
  3. 评估流程加速:使用 PDA 机制避免完整仿真中的"不可避免碰撞"问题
  4. API 轻量化:更少的依赖和更简洁的接口

6.2 互补使用策略

推荐的研发流程:在 NAVSIM 上快速实验(分钟级)→ 在 nuPlan 上验证最终结果(小时级)。两者不是替代关系,而是不同阶段的工具。

七、使用建议与局限性

7.1 开发套件

nuplan-devkit 提供完整的数据加载、仿真和评估 API。关键接口:

  • NuPlanDatabase:数据库查询接口。支持按 log 名称、场景类型、城市、时间段等多个维度进行数据筛选和索引。查询结果以 pandas DataFrame 形式返回,便于后续处理。该接口内置了缓存机制,对常用查询结果进行内存缓存,避免重复读取磁盘。

  • ScenarioExtractor:场景提取器。支持从完整 log 中自动检测和提取特定类型的场景片段。检测算法基于规则——例如通过分析 EGO 车辆的转向角变化和道路拓扑来判断当前是否处于"左转"场景。提取的场景片段包含起始帧、终止帧、EGO 初始位姿和导航路线。

  • SimulationEngine:仿真引擎。管理仿真主循环,以 0.1 秒为步长驱动仿真推进。引擎内部维护了仿真状态机,包含初始化状态、运行状态、暂停状态和终止状态。支持在仿真过程中动态切换参与者的行为模式(从 log-replay 切换到 reaction)。

  • MetricsEngine:指标计算引擎。接受仿真记录作为输入,输出标准化的评估报告。指标计算支持批处理模式——同时对多个场景的仿真结果进行计算。开发者还可以通过继承基类的方式实现自定义指标。

7.2 安装与环境配置

nuPlan 的安装相对复杂,建议按照以下步骤操作:

  1. 创建 conda 环境(Python 3.9 以上版本),安装 PyTorch 和对应 CUDA 依赖
  2. 通过 pip 安装 nuplan-devkit:pip install nuplan-devkit,该包包含数据加载、仿真引擎和评估工具
  3. 下载数据集文件(约 1.5 TB,包括传感器数据和地图文件),建议使用官方提供的下载脚本
  4. 设置环境变量 NUPLAN_DATA_ROOT 指向数据文件路径,设置 NUPLAN_MAPS_ROOT 指向地图文件路径
  5. 运行官方提供的数据完整性验证脚本,确保所有文件下载完整且无损坏

注意:nuPlan 的完整安装需要约 2 TB 的磁盘空间和至少 32 GB 的内存。建议使用 GPU 加速仿真中的碰撞检测和地图查询。另外,首次运行时 nuplan-devkit 会建立数据索引缓存,这一过程可能需要数小时,请预留充足时间。

7.3 场景类型

nuPlan 预定义了 20+ 种场景类型,常见的有:跟随前车(following_lane_with_lead)、变道(change_lane)、左转(turn_left)、右转(turn_right)、无保护转弯(high_magnitude_jerk)、通过十字路口(traversing_intersection)等。

7.3 局限性

  1. 地图强依赖:无法适用于无高精度地图的场景
  2. 参与者行为有限:log-replay 缺乏交互性,IDM 模型也远不如人类驾驶灵活
  3. 数据区域集中:四座城市虽覆盖不同类型,但每个城市内的采集路线有限
  4. 仿真真实性限制:动力学模型的简化使得高速极限操控场景的仿真不够准确

7.5 数据预处理建议

在使用 nuPlan 数据进行模型训练前,建议:使用 Savitzky-Golay 滤波器平滑 EGO 轨迹噪声;过滤掉 EGO 长期静止、传感器数据缺失或标注质量低下的片段;对 EGO 初始位姿添加随机偏移(±1m、±5°)和对 agent 轨迹添加速度扰动(±10%)以增强泛化能力;将场景地图数据预加载到内存以避免磁盘 I/O 瓶颈。

7.6 与 nuScenes 的对比总结

维度nuScenesnuPlan
主要用途感知(检测、跟踪、分割)规划(轨迹预测、决策控制)
评估模式开环闭环(NR + R)
仿真环境内置闭环仿真器
高精地图完整车道级 HD Map
数据规模5.5 小时1500 小时
核心指标NDS、mAP、AMOTADriving Score、Collision Score
闭环相关性低(需转换)高(原生闭环设计)

研究者应根据研究目标选择合适的平台进行验证:感知方法的性能评估主要在 nuScenes 上进行(因其提供了标准化的检测、跟踪和分割任务定义),而规划方法的闭环性能则必须在 nuPlan 上进行完整验证(因其内置了功能完备的仿真器和多维评估指标)。理想情况下,完整的自动驾驶系统应同时在两个平台上进行评估——在 nuScenes 上验证感知模块的检测精度,在 nuPlan 上验证规划模块的安全性和通行效率。

八、总结

nuPlan 以 1500 小时四城驾驶数据、完整 HD Map、高密度物体和轨迹标注以及功能完备的闭环仿真环境,为自动驾驶规划研究建立了标准化评估框架。驾驶分数中碰撞分数、可行驶区域合规和通行进度的乘积组合设计,确保模型必须在安全性、合规性和通行效率三维度同时表现良好才能获高分。

作为规划与 RL 方法的标准基准平台,nuPlan 与 NAVSIM 构成从快速实验(分钟级)到完整验证(小时级)的研发流程。研究者应理解其乘积组合的评估设计哲学——通过多维指标防止模型在单一维度上"作弊"——并将这一理念贯穿研究实践。