如何快速上手NAVSIM:7个步骤掌握数据驱动的自动驾驶模拟神器
在自动驾驶技术飞速发展的今天,评估和优化自动驾驶算法至关重要。NAVSIM 正是这样一款基于数据的非反应式自动驾驶车辆模拟器,它采用先进的技术和独特的方法,为业界提供了一种高效、透明的评估工具。无论是算法开发、性能评估还是挑战赛准备,NAVSIM都能满足您的需求,让自动驾驶模拟变得简单而强大!
🚗 什么是NAVSIM?核心功能大揭秘
NAVSIM(Data-Driven Non-Reactive Autonomous Vehicle Simulation)是一个轻量级但功能强大的自动驾驶模拟平台,源自nuPlan项目的思想和数据,并借鉴了nuScenes的易用性。它的核心优势在于通过简化的鸟瞰视图(BEV)抽象场景,对短期驾驶策略进行无回路模拟测试,计算如进步度和碰撞时间等关键指标。
图1:NAVSIM项目logo,展示了其专注于自动驾驶模拟的核心功能。
✨ NAVSIM的独特优势
- 效率与准确性:无回路仿真计算,快速获取接近真实环境的评估结果
- 标准化评价:公开排行榜,统一指标定义,消除评估混淆
- 易用性:简单的数据格式、小巧的下载包以及类似nuScenes的友好接口
- 持续更新:定期维护和更新的开发工具包(devkit),确保最佳用户体验
📊 PDM得分:全面评估驾驶性能的黄金标准
NAVSIM引入了PDM得分(Predictive Driver Model Score),这是一种综合了五个子指标的评估体系,提供对驾驶性能不同方面的全面分析。所有指标均在4秒非反应式仿真后计算,背景车辆遵循记录的未来轨迹, ego车辆基于LQR控制器移动。
PDM得分构成详情
| 指标 | 权重 | 范围 | 描述 |
|---|---|---|---|
| 无责任碰撞(NC) | 乘数 | {0, 1/2, 1} | 评估是否发生责任在ego车辆的碰撞 |
| 可驾驶区域合规性(DAC) | 乘数 | {0, 1} | 评估车辆是否保持在可驾驶区域内 |
| 碰撞时间(TTC) | 5 | {0, 1} | 评估碰撞时间是否在安全范围内 |
| Ego进度(EP) | 5 | [0, 1] | 评估车辆沿路线的前进效率 |
| 舒适性(C) | 2 | {0, 1} | 评估驾驶的平滑度和舒适性 |
PDMS计算公式:PDMS = NC * DAC * (5*TTC + 5*EP + 2*C) / 12
💡 小提示:要评估代理的PDM得分,可运行脚本:
cd scripts/ && ./run_cv_pdm_score_evaluation.sh,默认将为简单的恒速规划基线生成评估CSV。
🚀 快速开始:7步安装与配置NAVSIM
1️⃣ 克隆代码仓库
git clone https://gitcode.com/gh_mirrors/na/navsim
cd navsim
2️⃣ 下载数据集
NAVSIM提供了方便的脚本下载所需地图和数据集分割:
cd download
# 下载地图
./download_maps
# 下载迷你数据集(用于快速测试)
./download_mini
# 根据需要下载其他数据集
# ./download_trainval
# ./download_test
# ./download_private_test_e2e
3️⃣ 推荐的目录结构
下载完成后,建议组织如下目录结构:
~/navsim_workspace
├── navsim (包含devkit)
├── exp (实验结果)
└── dataset
├── maps (地图数据)
├── navsim_logs (日志数据)
│ ├── test, trainval, private_test_e2e, mini
└── sensor_blobs (传感器数据)
├── test, trainval, private_test_e2e, mini
4️⃣ 设置环境变量
将以下内容添加到您的~/.bashrc文件中:
export NUPLAN_MAP_VERSION="nuplan-maps-v1.0"
export NUPLAN_MAPS_ROOT="$HOME/navsim_workspace/dataset/maps"
export NAVSIM_EXP_ROOT="$HOME/navsim_workspace/exp"
export NAVSIM_DEVKIT_ROOT="$HOME/navsim_workspace/navsim"
export OPENSCENE_DATA_ROOT="$HOME/navsim_workspace/dataset"
应用更改:source ~/.bashrc
5️⃣ 创建并激活conda环境
conda env create --name navsim -f environment.yml
conda activate navsim
6️⃣ 安装开发工具包
pip install -e .
7️⃣ 验证安装
安装完成后,您可以运行示例脚本验证是否安装成功:
# 运行恒速代理PDM得分评估
cd scripts/evaluation/
./run_cv_pdm_score_evaluation.sh
🤖 创建自定义代理:从基础到高级
定义代理的第一步是创建一个继承自navsim.agents.abstract_agent.AbstractAgent的新类。该类必须实现以下核心方法:
__init__(): 代理的构造函数name(): 返回代理名称(用于定义评估CSV的文件名)initialize(): 在首次推断前调用,可用于加载状态字典等get_sensor_config(): 返回SensorConfig,定义每个帧应加载的传感器模态compute_trajectory(): 主函数,接收AgentInput并返回Trajectory对象
图2:NAVSIM支持的摄像头配置动画展示,帮助理解传感器布局。
🧠 基于学习的代理
对于涉及学习组件的代理,还需要实现额外功能。NAVSIM提供了轻量级且易于使用的训练接口。您可以参考navsim.agents.ego_status_mlp_agent.EgoStatusMLPAgent作为示例,实现以下方法:
get_feature_builders(): 返回特征构建器列表get_target_builders(): 返回目标构建器列表forward(): 模型的前向传播compute_loss(): 计算训练损失get_optimizers(): 定义训练使用的优化器get_training_callbacks(): 返回训练过程的回调列表
📊 可用的基线代理
NAVSIM提供了几个基线代理,作为新端到端驾驶模型的比较或起点:
- ConstantVelocityAgent:简单基线,保持恒定速度和航向角,输出直线轨迹
- EgoStatusMLPAgent:盲基线,仅使用ego状态信息(速度、加速度和驾驶命令)
- TransfuserAgent:利用摄像头和LiDAR输入的传感器代理,基于Transfuser架构
📚 官方文档与资源
要深入了解NAVSIM的更多细节,包括安装指南、代理创建、数据格式和排行榜提交方法,请查阅项目内的文档:
图3:NAVSIM排行榜界面展示,激励开发者不断优化算法性能。
🏁 总结
NAVSIM作为数据驱动的非反应式自动驾驶车辆模拟器,为自动驾驶算法的评估和优化提供了高效、透明的平台。通过本文介绍的7步安装指南,您可以快速开始使用NAVSIM,并利用其提供的PDM得分系统全面评估驾驶性能。无论您是自动驾驶领域的新手还是专业开发者,NAVSIM都能满足您的需求,帮助您构建更安全、更高效的自动驾驶系统。
立即加入NAVSIM,开启您的自动驾驶模拟之旅!
(返回顶部)
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00