NAVSIM 核心概念总结

一、核心名词解释

1. NAVSIM (Navigation Simulation)

定义: 用于自动驾驶的伪仿真(Pseudo-Simulation)评估框架 特点: 结合了开环(open-loop)评估的效率和闭环(closed-loop)评估的鲁棒性

2. Agent (智能体)

定义: 执行自动驾驶决策的核心模块 类型:

  • ConstantVelocityAgent: 恒速直行基线
  • EgoStatusMLPAgent: 基于车辆状态的MLP智能体
  • TransfuserAgent: 融合相机和LiDAR的端到端智能体
  • HumanAgent: 人类驾驶行为智能体

3. PDM (Predictive Driver Model)

定义: 预测驾驶员模型,用于生成和评估轨迹 扩展: EPDMS (Extended PDM Score) - 扩展的评分系统

4. Trajectory (轨迹)

定义: 车辆未来的位置序列 格式: [x, y, heading] 在BEV(鸟瞰图)坐标系中

5. Scene (场景)

定义: 包含车辆、道路、交通信号等信息的驾驶环境快照 类型:

  • 初始场景(initial scene)
  • 后续场景(follow-up scene)

6. Sensor Config (传感器配置)

包含:

  • 8个相机(cameras)
  • 合并的点云(merged point cloud from 5 LiDARs)
  • 历史帧(2秒,2Hz频率)

二、核心动词/动作

1. Initialize (初始化)

作用: 加载模型权重、配置参数 时机: 推理前调用一次

2. Compute Trajectory (计算轨迹)

输入: AgentInput(包含传感器数据和车辆状态) 输出: Trajectory(未来4秒,10Hz的轨迹)

3. Forward (前向传播)

作用: 神经网络的前向计算 用于: 基于学习的智能体

4. Score/Evaluate (评分/评估)

方法: 使用EPDMS评分系统 包含: 碰撞、舒适度、车道保持等多个维度

5. Cache (缓存)

作用: 预计算和存储评估指标 优势: 加速评估过程

6. Train (训练)

框架: PyTorch Lightning 支持: 特征构建器、目标构建器、损失计算

三、核心引擎

1. PDM Planner (PDM规划器)

位置: navsim.planning.simulation.planner.pdm_planner 功能:

  • 轨迹生成(Trajectory Generation)
  • 轨迹评分(Trajectory Scoring)
  • 轨迹模拟(Trajectory Simulation)

2. PDM Simulator (PDM仿真器)

功能:

  • 车辆动力学模拟(使用Kinematic Bicycle Model)
  • LQR控制器
  • 轨迹执行

3. PDM Scorer (PDM评分器)

评分维度:

  • NC: 无责任碰撞(No at-fault Collisions)
  • DAC: 可行驶区域合规(Drivable Area Compliance)
  • DDC: 行驶方向合规(Driving Direction Compliance)
  • TLC: 交通灯合规(Traffic Light Compliance)
  • EP: 自车进度(Ego Progress)
  • TTC: 碰撞时间(Time to Collision)
  • LK: 车道保持(Lane Keeping)
  • HC: 历史舒适度(History Comfort)
  • EC: 扩展舒适度(Extended Comfort)

4. Metric Caching Engine (指标缓存引擎)

作用: 预计算场景的静态指标 优势: 避免重复计算,提高效率

5. Traffic Agents Policy (交通参与者策略)

类型:

  • ConstantVelocity: 恒速策略
  • LogReplay: 日志回放
  • IDM (Intelligent Driver Model): 智能驾驶员模型

四、点火钥匙(启动流程)

1. 评估流程启动

run_pdm_score.py → 主入口
  ↓
初始化Agent
  ↓
加载场景数据(SceneLoader)
  ↓
加载缓存指标(MetricCacheLoader)
  ↓
两阶段评估:

  - Stage 1: 初始场景评估
  - Stage 2: 后续场景加权评估
  ↓
生成EPDMS分数

2. 训练流程启动

run_training.py → 训练入口
  ↓
构建特征(FeatureBuilder)
  ↓
构建目标(TargetBuilder)
  ↓
前向传播(Forward)
  ↓
计算损失(Compute Loss)
  ↓
反向传播和优化

3. 提交流程启动

run_create_submission_pickle.py → 生成提交文件
  ↓
加载测试场景
  ↓
运行Agent推理
  ↓
保存轨迹预测
  ↓
打包为pickle文件

五、数据流向

传感器数据 → AgentInput → Agent.compute_trajectory()
     ↓                            ↓
相机图像/LiDAR点云           特征提取
     ↓                            ↓
                             神经网络前向传播
                                  ↓
                              轨迹预测
                                  ↓
                             PDM评分系统
                                  ↓
                              EPDMS分数

六、核心设计理念

1. 伪仿真(Pseudo-Simulation)

  • 结合开环和闭环的优势
  • 通过增强真实数据实现闭环效果
  • 计算效率提升6倍

2. 两阶段评估

  • 第一阶段:评估初始4秒轨迹
  • 第二阶段:评估多个可能的后续场景
  • 高斯加权聚合最终分数

3. 模块化设计

  • Agent抽象接口
  • 可插拔的评分器
  • 灵活的传感器配置
  • 统一的数据加载器