如何快速上手 NTU VIRAL 数据集:无人机多传感器融合的完整指南 🚁
NTU VIRAL 数据集是一个面向自主无人机的视觉-惯性-测距-激光雷达(Visual-Inertial-Ranging-Lidar)数据集,包含室内外多种场景下的高精度传感器数据,支持SLAM、多传感器融合等算法的开发与评估。
📌 数据集核心优势与传感器配置
NTU VIRAL 数据集的独特之处在于其全方位的传感器组合,模拟了自动驾驶级别的感知能力,同时兼顾无人机特有的空中动态特性。以下是数据集的核心传感器配置:

图1:搭载多传感器的无人机平台,包含激光雷达、相机、IMU和UWB模块
🔍 关键传感器参数
- 双3D激光雷达(Ouster OS1-16):水平/垂直各一台,10Hz点云数据,支持环境三维建模
- 双目相机(uEye 1221 LE):10Hz同步触发,鱼眼镜头(128°视场角),适合快速运动场景
- 高精度IMU(VectorNav VN100):385Hz采样率,提供加速度、角速度和磁场数据
- UWB定位系统(Humatic P440):4个机载节点+3个锚点,68Hz测距频率,支持绝对定位辅助
详细传感器参数与ROS话题定义可参考:sensors_and_usage.md
🚀 数据集获取与环境搭建
1️⃣ 快速下载数据集
所有序列数据托管于NTU数据仓库,包含室内外多种场景(停车场、礼堂、广场等):
| 场景名称 | 数据大小 | 持续时间 | 特点 |
|---|---|---|---|
| eee_01 | 8.7 GB | 398.7 s | 室外停车场,开阔环境 |
| nya_01 | 8.6 GB | 396.3 s | 室内礼堂,弱纹理场景 |
| sbs_01 | 7.8 GB | 354.2 s | 校园广场,动态人群 |
完整下载链接与校验信息见:docs/NTU_VIRAL_Dataset_Submission.pdf
2️⃣ 环境配置步骤
# 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/nt/ntu_viral_dataset
cd ntu_viral_dataset
# 安装依赖
pip install -r requirements.txt
3️⃣ 数据格式说明
- ROS Bag文件:包含所有传感器原始数据与时间戳
- 校准参数:相机内参/外参、传感器间时空同步参数
- 真值数据:Leica MS60全站仪提供的厘米级轨迹(需注意IMU到棱镜的0.4m偏移补偿)
📊 核心功能与使用示例
✨ 多传感器数据融合演示
数据集提供多种传感器的同步数据,支持多模态融合算法开发。以下是三个典型场景的SLAM结果可视化:

图2:三种不同场景下的SLAM轨迹(左:室外停车场,中:校园广场,右:室内礼堂)
🔧 传感器校准指南
精确的传感器校准是算法性能的关键。数据集提供完整的校准流程与工具:
相机校准(MATLAB示例)
- 启动校准工具:
stereoCameraCalibrator - 加载棋盘格图像集(calib_stereo.zip)
- 选择鱼眼模型或针孔模型(推荐鱼眼模型处理大视场角)
图3:MATLAB stereoCameraCalibrator界面,支持自动检测棋盘格角点
校准参数转换工具:utils/restamp.py(处理ROS时间戳同步问题)
📈 算法评估流程
数据集提供标准化的评估脚本,支持绝对轨迹误差(ATE)计算:
-
数据预处理:
% 补偿IMU到棱镜的偏移 trans_B2prism = csvread('trans_B2prism.csv'); P_est = P_est + quatconv(Q_est, trans_B2prism); -
轨迹对齐与误差计算:
[rot_align, trans_align] = traj_align(P_gt, P_est); % 寻找最优变换 ATE = norm(rms(P_gt - (rot_align*P_est' + trans_align)')); % 计算ATE
完整评估代码:ntuviral_evaluate.ipynb(Jupyter Notebook格式)
📚 实用资源与常见问题
🔗 关键工具与代码库
-
开源SLAM算法适配:
- VINS-Fusion改进版:支持UWB与激光雷达融合
- FAST-LIVO:快速激光-视觉-惯性里程计
-
数据集文档:
- 传感器校准手册:sensor_calibration.md
- 硬件使用指南:sensors_and_usage.md
❓ 常见问题解决
-
时间戳同步问题:
使用restamp.py工具修正激光雷达与IMU的时间抖动:python utils/restamp.py --input_bag raw.bag --output_bag synced.bag -
真值偏移补偿:
棱镜到IMU的0.4m偏移需通过姿态估计转换:# 体坐标系到棱镜坐标系转换 prism_pos = imu_pos + quaternion_rotate(imu_quat, [0.293, 0.012, 0.273])
📝 引用与许可证
如果使用本数据集,请引用以下论文:
@article{nguyen2022ntu,
title = {NTU VIRAL: A Visual-Inertial-Ranging-Lidar Dataset, From an Aerial Vehicle Viewpoint},
author = {Nguyen, Thien-Minh and Yuan, Shenghai and Cao, Muqing},
journal = {The International Journal of Robotics Research},
year = {2022}
}
许可证信息:LICENSE(CC BY-NC-SA 4.0,非商业学术使用)
通过本指南,您已掌握NTU VIRAL数据集的核心使用流程。无论是SLAM算法开发、多传感器融合研究,还是无人机导航系统测试,该数据集都能提供高质量的基准数据支持。立即开始探索,解锁无人机自主导航的无限可能! 🚀
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust099- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00