Vins-fusion gps融合 KITTY数据集测试
下载kitti数据集
下载kitti数据集和真值poses的00.txt以及sequences文件00序列的times.txt,(全网找了好久,最后不得已翻墙从官网down下来的)
代码修改,保存输出数据
先指定输出路径:打开vins-fusion/config/kitti_raw/kitti_10_03_config.yaml或者kitti_raw/kitti_09_30_config.yaml(根据数据集选择具体参数文件),第十行
output_path: “/home/tony-ws1/output/”
这里指明自己需要保存到的地址.
第二步接下来是修改代码使其输出轨迹文件,原本的vins_fusion是无轨迹文件输出的.
globalOptNode.cpp中vio_callback函数
std::ofstream foutC("/home/tony-ws1/output/vio_global.csv", ios::app);//这里还是文件输出位置foutC.setf(ios::fixed, ios::floatfield);foutC.precision(0);foutC << pose_msg->header.stamp.toSec() * 1e9 << ",";foutC.precision(5);foutC << global_t.x() << ","<< global_t.y() << ","<< global_t.z() << ","<< global_q.w() << ","<< global_q.x() << ","<< global_q.y() << ","<< global_q.z() << endl;foutC.close();
改成如下:
std::ofstream foutC("/home/tony-ws1/output/vio_global.txt", ios::app);//这里还是文件输出位置,最好和前面位置一样foutC.setf(ios::fixed, ios::floatfield);foutC.precision(0);foutC << pose_msg->header.stamp.toSec() << " ";foutC.precision(5);foutC << global_t.x() << " "<< global_t.y() << " "<< global_t.z() << " "<< global_q.x() << " "<< global_q.y() << " "<< global_q.z() << " "<< global_q.w() << endl;foutC.close();
将输出数据格式改成tum文件格式的
运行global_fusion节点
按照github上面来,三个终端,分别是下面三个指令(可能要加上source ~/(你的目录)/devel/setup.bash).
roslaunch vins vins_rviz.launch
rosrun vins kitti_gps_test ~/catkin_ws/src/VINS-Fusion/config/kitti_raw/kitti_10_03_config.yaml YOUR_DATASET_FOLDER/2011_10_03_drive_0027_sync/
rosrun global_fusion global_fusion_node
可看到如下显示结果:
EVO显示及评测
指定的文件夹下找到vio_global文件.使用evo分析结果,这里是tum数据格式,故使用
evo_traj tum vio_global.txt -p
也可同时显示出来:
接下来是对比真值,(kitti的真值来自与卫星定位,这里视觉融合卫星定位的结果还与之前kitti的真值对比是不是不合适?,这里暂且参照对比吧)
因为真值是12列的kitti轨迹格式,所以要将真值转换成8列格式的tum轨迹格式
evo里给出了可转换的代码
python kitti_poses_and_timestamps_to_trajectory.py ./result/00.txt ./result/times.txt ./result/KITTI_00_gt.txt
通过该指令完成转换,详细见原博文,转换得到tum格式的真值后,我们可以进行评定,将我们得到的vio_global.txt 与这里的真值进行对比
evo_ape tum vio_global.csv KITTI_00_gt.txt -a -p
为了对比,把vio.csv的也与真值做个对比
evo_ape tum vio.csv KITTI_00_gt.txt -a -p
Vins-fusion gps融合 KITTY数据集测试相关推荐
- VINS Fusion GPS融合部分
概述 VINS Fusion在VINS Mono的基础上,添加了GPS等可以获取全局观测信息的传感器,使得VINS可以利用全局信息消除累计误差,进而减小闭环依赖. 局部传感器(如相机,IMU,激光雷达 ...
- VINS - Fusion GPS/VIO 融合 二、数据融合
https://zhuanlan.zhihu.com/p/75492883 一.简介 源代码:VINS - Fusion 数据集:KITTI 数据 程序入口:globalOptNode.cpp 二.程 ...
- vins中imu融合_双目版 VINS 项目发布,小觅双目摄像头作为双目惯导相机被推荐...
继 VINS-Mono 和 VINS-Mobile 之后,香港科技大学沈劭劼老师实验室正式发布了双目版 VINS 开源项目 VINS-Fusion .项目推荐了小觅双目摄像头标准版(MYNT EYE ...
- vins中imu融合_小觅智能 | VINS 学习笔记(持续更新中)
VINS 基本介绍 VINS-Mono 和 VINS-Mobile 是香港科技大学沈劭劼老师开源的单目视觉惯导 SLAM 方案.2017年发表于<IEEE Transactions on Rob ...
- vins-fusion gps融合相关总结
1 . 简介: VINS Fusion在VINS Mono的基础上,添加了GPS等可以获取全局观测信息的传感器,使得VINS可以利用全局信息消除累计误差,进而减小闭环依赖. 相比于局部传感器,全局传感 ...
- 小觅相机D系列跑vins fusion
有幸使用一款D系列小觅相机.今天测试了下它跑vins fusion的表现.其中有一个注意点,官方文档没有说明.这里记录一下. D系列小觅相机添加了IR散斑投射器,用来恢复没有纹理细节时的深度.这与老版 ...
- vins中imu融合_基于非线性优化算法—当视觉SLAM遇到VINS会碰撞出怎样的火花?
今天来给大家分享一个视觉SLAM中比较综合且复杂的系统-VINS.VINS旨在通过融合两个传感器测量数据获得移动机器人的位姿和特征点在空间中的位置,在现代控制理论学科中属于最优估计问题.在移动智能机器 ...
- 3D视觉感知新SOTA BEVFormer复现nuscenes数据集测试demo
0 写在前面 分享最近在BEV感知方面的工作,欢迎自动驾驶同行交流学习,助力自动驾驶早日落地. 1.概述 对于自动驾驶而言,BEV(鸟瞰图)下的目标检测是一项十分重要的任务.尽管这项任务已经吸引了大量 ...
- 图像融合常用数据集整理
图像融合常用数据集整理 先附上整理常用数据集时绘制的思维导图 本篇博客主要整理图像融合常用数据集整理 图像融合系列博客还有: 图像融合论文及代码整理最全大合集参见:图像融合论文及代码整理最全大合集 图 ...
- SLAM之小觅相机跑开源方案(ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map)
传感器: 小觅相机标准版 开源SLAM方案: ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map 测试地点: 室内大厅(光线不均)/ 露天阳台 实现形式: 小觅相机 / ...
最新文章
- 老板扣了我1000,因为我没记住阿里巴巴开发手册的这条规则。
- 英特尔更新人工智能产品线,新品性能达到竞品6倍
- Linux基础命令---删除用户userdel
- Vue009_过渡动画
- 只要200行JavaScript代码,就能把特斯拉汽车带到您身边
- 多系统PE win UBUNTU OSX
- Perceptual:英特尔感知计算挑战赛 正式启动
- centos6.5 mysql5.6.24 单实例二进制包安装
- 无需安装配置,多操作系统支持数据库及性能测试
- 在Visual C#中用ListView显示数据记录
- 远程桌面发生身份验证错误,要求的函数不受支持
- Apache Flink 零基础入门(七):Table API 编程
- Java逻辑思维训练题
- 谁来给电视盒子接班?
- MIDIPLUS STUDIO M S 2 4声卡安装调试教程
- 使用PS让图片制作出渐变效果
- ASCII码对应表chr(9)、chr(10)、chr(13)、chr(34)、chr(39)、chr(46)
- windows无法格式化u盘_U 盘格式化提示 windows 无法完成格式化的解决办法
- 静态链表(C++实现)——基于数据结构(沈俊版)(初学者食用)
- java中判断字符串是否为数字的方法 StringUtil包函数