evo评测VINS-MONO---TUM数据集
为了想测试室外场景下VINS-MONO定位情况,室外环境的KITTY数据集因无时间戳,EVO测评较困难。
故选择TUM数据集,outdoors1~8(户外):在校园内的室外场景拍摄,但是数据包里只在开始和结束有真实值,没办法与真值全程评测。(outdoors4)
所以再选择个室内 room1~6(室内):对应有5个图像序列,整个过程都带有运动捕捉系统提高的真实值进行测试。(room4)
修改VINS-mono轨迹保存代码
直接输出的结果格式并不能用EVO工具进行评估,需要修改代码,将其输出格式改为tum格式:
首先修改VINS-Mono-master\vins_estimator\src\utility\中的visualization.cpp,从156行开始修改为以下形式:
ofstream foutC(VINS_RESULT_PATH, ios::app);foutC.setf(ios::fixed, ios::floatfield);foutC.precision(0);foutC << header.stamp.toSec() << " ";foutC.precision(5);foutC << estimator.Ps[WINDOW_SIZE].x() << " "<< estimator.Ps[WINDOW_SIZE].y() << " "<< estimator.Ps[WINDOW_SIZE].z() << " "<< tmp_Q.x() << " "<< tmp_Q.y() << " "<< tmp_Q.z() << " "<< tmp_Q.w() << endl;
然后修改VINS-Mono-master\pose_graph\src中的pose_graph.cpp中的addKeyFrame函数,在153行,修改为以下形式:
ofstream loop_path_file(VINS_RESULT_PATH, ios::app);loop_path_file.setf(ios::fixed, ios::floatfield);loop_path_file.precision(0);loop_path_file << cur_kf->time_stamp << " ";loop_path_file.precision(5);loop_path_file << P.x() << " "<< P.y() << " "<< P.z() << " "<< Q.x() << " "<< Q.y() << " "<< Q.z() << " "<< Q.w() << endl;
在VINS-Mono-master\pose_graph\src中的pose_graph.cpp中,updatePath函数中的内容也要修改,在630行。
ofstream loop_path_file(VINS_RESULT_PATH, ios::app);loop_path_file.setf(ios::fixed, ios::floatfield);loop_path_file.precision(0);loop_path_file << (*it)->time_stamp << " ";loop_path_file.precision(5);loop_path_file << P.x() << " "<< P.y() << " "<< P.z() << " "<< Q.x() << " "<< Q.y() << " "<< Q.z() << " "<< Q.w() << endl;
最后修改VINS-Mono-master\pose_graph\src中的pose_graph_node.cpp中的main函数,506行,将csv格式改为txt格式:
VINS_RESULT_PATH = VINS_RESULT_PATH + "/vins_result_loop.txt";
到此,VINS输出结果的格式更改完成,接下去修改真实值的格式。
修改config文件
想要得到带有回环检测的结果需要修改tum_config.yaml文件,首先修改输出路径,有两个地方可以改成同一个路径,第6行的output_path修改为自己指定的路径,然后第70行pose_graph_save_path修改为指定路径,然后开启回环检测,第67行loop_closure改为1,这样才会输出带回环检测的结果。
真实值修改为tum格式
真实值为对应的.tar文件中的gt_imu.csv文件,由于EVO并不支持这种格式,需要先进行格式转换,转换成.tum文件再和VINS运行的结果进行比较。
转换的命令为:
evo_traj euroc gt_imu.csv --save_as_tum
得到的gt_imu.tum就是可以使用EVO和VINS结果进行比较的格式。
终端运行
roscore
roslaunch vins_estimator tum.launch
roslaunch vins_estimator vins_rviz.launch
rosbag play dataset-outdoors4_512_16.bag
EVO评测
evo_traj tum vins_result_loop_tumout.txt -p --plot_mode=xyz
--------------------------------------------------------------------------------
name: vins_result_loop_tumout
infos: 6092 poses, 992.077m path length, 696.322s duration
evo_ape tum gt_imu.tum vins_result_loop_tumout.txt -va --plot
--------------------------------------------------------------------------------
APE w.r.t. translation part (m)
(with SE(3) Umeyama alignment)max 86.683007mean 12.773848median 8.709058min 7.277328rmse 15.745825sse 303467.550378std 9.206509
因outdoors1~8(户外):在校园内的室外场景拍摄,只在开始和结束有真实值,不是全程有真值,所以无法进行APE绝对位姿误差的评断。
因room1~6(室内):对应有5个图像序列,整个过程都带有运动捕捉系统提高的真实值。故找段室内场景进行测试。
roscore
roslaunch vins_estimator tum.launch
roslaunch vins_estimator vins_rviz.launch
rosbag play dataset-room4_512_16.bag
evo_ape tum gt_imu.tum vins_result_loop_tumroom.txt -va --plotAPE w.r.t. translation part (m)
(with SE(3) Umeyama alignment)max 0.124530mean 0.045489median 0.037617min 0.009132rmse 0.053137sse 2.961871std 0.027464
evo评测VINS-MONO---TUM数据集相关推荐
- m2dgr数据集在vins mono运行
m2dgr数据集在vins mono运行 1.代码的修改 1.1 yaml文件的修改 1.2修改VINS-mono轨迹保存代码 1.3修改launch文件 2 EVO显示轨迹 2.1运行比较结果 参考 ...
- 使用evo工具评估ORB_SLAM2在TUM数据集上的运行轨迹
目录 一.安装evo工具 二.运行RGB-D基准数据集 1.下载TUM数据集 2.关联rgb图像和depth图像 3.运行rgb-d数据集 三.使用evo评估 1.常用指令 2.绝对轨迹误差 3.相对 ...
- evo评测VINS-MONO---代码修改、数据格式转换、数据测试
数据格式(data formal):TUM/EuRoC/Kitti数据集 格式转换 修改VINS-mono轨迹保存代码 由于VINS-Mono保存的轨迹格式与EVO所使用的格式不同,VISNmono输 ...
- ORB-SLAM3轨迹保存与evo评测
ORB-SLAM3轨迹保存与evo评测 为了利用evo对ORB-SLAM3进行评测,花了一点时间走了一些弯路,简单记录一下同时也为需要的人提供一点参考. 我主要用的是ROS接口,用单目+imu跑的Eu ...
- TUM数据集官方说明相应的评估文件evaluate_rpe.py和evaluate_ate.py的使用
一.TUM数据集使用方法 TUM数据集的格式解读地址:https://vision.in.tum.de/data/datasets/rgbd-dataset/file_formats TUM的RGBD ...
- 利用Realsense D435和Mocap制作TUM数据集
利用Realsense D435和Mocap制作TUM数据集 开门见山 步骤 开门见山 步骤 如果有Mocap,根据mocap系统指示获取Groundtruth,我实验室的mocap为optitrac ...
- 将TUM数据集制作成BundleFusion数据集
在上一篇文章中,我写到了如何将TUM数据生成BundleFusion所需要的数据集,生成的数据集如下图中所示.并且是将每一组数据的groundtruth.txt中的位姿数据写如到这里的pose文件中, ...
- TUM数据集制作BundleFusion数据集
BundleFusion的数据集中,在生成.sens文件之前,包括彩色图,深度图和一个位姿文件,并且这个pose文件中的位姿态是有变化的,所以我怀疑,推测,在这个pose文件中可以写入groundtr ...
- ROS下获取kinectv2相机的仿照TUM数据集格式的彩色图和深度图
准备工作: 1. ubuntu16.04上安装iai-kinect2, 2. 运行roslaunch kinect2_bridge kinect2_bridge.launch, 3. 运行 rosru ...
最新文章
- LeetCode-35. Search Insert Position
- 第12章:Linux服务管理
- 【C#】获取网页内容及HTML解析器HtmlAgilityPack的使用
- Git 常用操作 | 重写 commit 历史
- 【洛谷P5114】八月脸【边分治】【闵可夫斯基和】
- pyspark.sql写入mysql_将pyspark dataframe写入MySQL数据库时出错
- 易语言c调用,易语言调用C++编写的DLL
- 用友仓库档案boot直接访问html,图文解析用友仓库软件怎样设置档案?
- 扬州大学c语言上机作业答案,扬州大学C语言上机作业1-9整理
- fedora html 编辑器,分享|在 Fedora 上使用 Pitivi 编辑视频
- 前端项目开发总结:电商后台管理系统
- videojs重播_videojs 视频播放器从入门到精通
- 【成功的忙人】在北京30套房的小哥:人一闲,就废了!
- 本地打印后台处理程序服务没有运行
- 天道(遥远的救世主)金句,自悟自性
- 制作一个简单七夕情人节表白网页(HTML+CSS)
- ArrayList的三种遍历方法
- 内存溢出问题核查与定位
- 【经济学】【综合篇】经济机器是怎样运行的
- 如何优雅地实现C++编译期多态?
热门文章
- 性能测试Loaderrunner
- python 柱形图实现不了渐变_如何使用渐变色为分布图的条形图着色?
- 首都经济贸易大学本科毕业论文答辩PPT模板
- mysql查询成绩并排名_Mysql 查询实现成绩排名
- pyscript的简单应用
- 重新定义公司,一点体会
- pd读取文件显示不全问题解决,如何显示全部的列
- 重装系统十大排行:一键重装系统对比
- sql解析json格式字段、sql关联json格式字段,mysql解析json、sql解析json字符串
- ubuntu 20.04 kylin gpg: 从公钥服务器接收失败:Server indicated a failure 解决方法