evo评测VINS-MONO---TUM数据集

2023-05-16

为了想测试室外场景下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.683007
      mean	12.773848
    median	8.709058
       min	7.277328
      rmse	15.745825
       sse	303467.550378
       std	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 --plot

APE w.r.t. translation part (m)
(with SE(3) Umeyama alignment)

       max	0.124530
      mean	0.045489
    median	0.037617
       min	0.009132
      rmse	0.053137
       sse	2.961871
       std	0.027464

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

evo评测VINS-MONO---TUM数据集 的相关文章

随机推荐

  • 【控制理论】线性二次型最优控制解析

    https blog csdn net heyijia0327 article details 39270597 这篇文章把线性二次型的最优控制问题讲的很透彻了 xff01 有几个问题在这里提一下 xff1a 1 如何确定Q矩阵 R矩阵 x
  • Ubuntu系统中添加中文字体和修改默认中文字体

    在Ubuntu系统中 中文字体默认是繁体的 而且比较难看 xff0c 但是Ubuntu系统的英文字体却很好看 xff0c 就想只修改中文字体 xff0c 保留默认的英文字体 首先检查是否安装了中文字体 xff0c 在终端上输入下面指令查看已
  • window7 触屏操作相关

    一 体系概述 1 Windows Touch Input 和 Gestures消息 Windows Touch消息特性 通过在执行期间的监听和解释来使能 下面的示例展示了Windows7 上消息是怎么从硬件产生并发给应用程序的 在最左边的那
  • 【控制理论】滑模控制最强解析

    更新 xff0c 在知乎创建了一个专栏 xff0c 主要包括一些控制理论和机器人控制方面的知识 https zhuanlan zhihu com p 78549442 滑模控制是一种相当简单而且控制性能优越的控制方法 xff0c 但是绝大多
  • 【stm32】 OS 支持特性之 PendSV 异常和 SVC异常

    1 SVC和PENDSV 基本概念 SVC xff08 系统服务调用 xff0c 亦简称系统调用 xff09 和 PendSV xff08 可悬起系统调用 xff09 xff0c 它们多用于在操作系统之上的软件开发中 SVC 用于产生系统函
  • 数据结构视频教程-绝对是史上最全的,共30个!!

    史上最全的数据结构视频教程打包下载地址 本文出自出自我是码农 xff0c 转载请注明出处 xff0c 谢谢 xff01 以下数据结构视频教程是我多年收集的 xff0c 因为在百度网盘上分享整个教程很快就会被delete xff0c 所以我只
  • 数据结构视频教程哪个好

    来源 xff1a 我是码农 xff0c 转载请保留出处和链接 xff01 本文链接 xff1a http www 54manong com id 61 1207 目前 xff0c 具我粗略不完全统计 xff0c 网络上流传的数据结构视频教程
  • X11相关(一)

    在盒子上折腾qtmediahub的时候 xff0c uxlaunch怎么都无法正常启动 xff0c 查了一下x11的log xff0c 发现错误如下 xff1a XSERVTransSocketUNIXCreateListener Sock
  • java获取首字母字符串首字母

    import net sourceforge pinyin4j PinyinHelper import java util regex Pattern String hostName 61 34 集团 2012 版知识库管理系统 34 St
  • 嵌入式到底该怎么学

    想学习单片机的同学可以关注 私信我或者在评论区回复我要入门 很多人都不知道嵌入式怎么学 xff0c 这一期我就简单说一下我的理解 嵌入式这个概念太广了 xff0c 可能很多人认为嵌入式就是嵌入式Linux 但是其实并不仅仅只有Linux x
  • 嵌入式有哪些发展方向?

    想学习单片机的同学可以关注 私信我或者在评论区回复我要入门 最近几年经过移动互联网 物联网的高速发展 xff0c 嵌入式技术在我们生活中随处可见 xff0c 在通讯 网络 工控 医疗 电子等领域发挥着越来越重要的角色 xff1b 随着对嵌入
  • 公式截取神器:将文献中的公式快速粘贴进word:

    一共需要两个软件 mathpix snipping tool 负责对公式截屏 然后自动转化为LaTex公式语法 AxMath 负责将LaTex语法转化为word里可显示的公式 作用与MathType一样 但个人感觉这个软件更好用 而且还是国
  • ubuntu安装HDF5 1.10.4 以及对应的python hdf5包

    1 安装HDF5 1 10以及对应的python hdf5的包 xff08 HDF5 1 10 4安装具体可参考其他博客 xff09 2 使用命令行环境变量安装对应的python hdf5包 xff0c HDF5 DIR 61 usr lo
  • Redis相关知识点整理

    文章目录 前言一 Redis基本数据类型StringHashListSetSort Set xff08 zset xff09 二 键值 xff08 key xff09 的常用操作三 Redis持久化方式3 1 持久化方式之RDB3 2 持久
  • html5基础入门知识(干货)

    一 什么是html 用来描述网页的语言 超文本标记语言 不是编程 xff0c 而是一种标记语言 使用标记标签来描述网页等等 我们只需记住html就是用标记标签来描述网页 xff0c xff08 网页是前端哦 xff0c 平时你们听过的c c
  • Matlab使用过程中内存不足问题的总结

    做图像处理的 xff0c 对matlab这工具软件一定不会陌生 xff0c 他的高集成度为图像处理提供了很大的方便 xff0c 但我们在使用时难免会出现内存不足的问题 xff0c 2 3G的内存还不够处理一次简单图像 xff0c 这确实很恐
  • VIO系统介绍

    VIO xff08 visual inertial odometry xff09 即视觉惯性里程计 xff0c 有时也叫视觉惯性系统 xff08 VINS xff0c visual inertial system xff09 xff0c 是
  • VINS-MONO概述

    VINS Mono是HKUST的Shen Shaojie团队开源的一套Visual Inertial融合定位算法 xff0c https github com HKUST Aerial Robotics VINS Mono xff0c 是用
  • 主流VIO框架分析及VINS部分解析

    本文为搜集的资料整理 xff1a C0包含位姿和运动信息 xff1b 对于T0来说 xff0c 不仅受rv10 rv11的视觉影响 xff0c 也受rb01的IMU的影响 上述方式繁琐 xff0c 故引入因子图 xff0c 便于思路梳理和理
  • evo评测VINS-MONO---TUM数据集

    为了想测试室外场景下VINS MONO定位情况 xff0c 室外环境的KITTY数据集因无时间戳 xff0c EVO测评较困难 故选择TUM数据集 xff0c outdoors1 8 户外 xff1a 在校园内的室外场景拍摄 xff0c 但