文章目录

  • 1.资料
  • 2.命令总结
    • 2.1.两个指标命令,四个工具命令
    • 2.2.命令示例
      • 2.2.1.绘制一条轨迹
      • 2.2.2.绘制两条轨迹,一条为真实参考轨迹
      • 2.2.3. 绘制轨迹误差结果图
      • 2.2.4.转换euroc轨迹格式为tum格式
  • 3.使用evo评价VINS-Mono精度

1.资料

视觉里程计的轨迹评估的工具:evo

一种SLAM精度评定工具——EVO使用方法详解

EVO使用方法详解:写的很好!

视觉SLAM/视觉里程计论文绘图工具/评测工具之evo

安装和使用evo工具遇到的坑

evo_github_wiki

evo_github

2.命令总结

2.1.两个指标命令,四个工具命令

指标命令

  • evo_ape - absolute pose error 绝对位姿误差
  • evo_rpe - relative pose error 相对位姿误差

工具命令

  • evo_traj - tool for analyzing, plotting or exporting one or more trajectories,最常用,绘制轨迹图,分析轨迹结果
  • evo_res - tool for comparing one or multiple result files from evo_ape or evo_rpe,较常用,对结果进一步分析
  • evo_fig - (experimental) tool for re-opening serialized plots (saved with --serialize_plot)
  • evo_config - tool for global settings and config file manipulation

2.2.命令示例

2.2.1.绘制一条轨迹

  • 1evo_traj命令绘制轨迹;
  • 2个参数euroc表示绘制的轨迹是EuRoc数据集的格式;
  • 3个参数是绘制的轨迹文件。但是如果只到这里的话,这个指令只是显示轨迹的基本信息
  • 若要绘制轨迹变成图像,则增加第4个参数 -p--plot
  • 5个参数--plot_mode是对绘图的显示模式的设置,这里设置视角为xyz视角。
evo_traj euroc GT_MH_01_data.csv -p --plot_mode xyz

2.2.2.绘制两条轨迹,一条为真实参考轨迹

  • 1evo_traj命令绘制轨迹;
  • 2个参数tum表示绘制的轨迹是TUM数据集的格式;
  • 3个参数是绘制的轨迹文件;
  • 4个参数用--ref=选项作为前缀表示真实参考轨迹;
  • 5个参数中的-a选项表示对齐两条轨迹,第5个参数中的-v选项表示输出轨迹对齐的详细信息(即对齐的平移、旋转);
  • 6个参数用-p选项表示绘制图像,用--plot_mode选项表示对绘图显示模式的设置。
evo_traj tum vins_result_loop.tum --ref=GT_MH_01_data.tum -va -p --plot_mode xyz

2.2.3. 绘制轨迹误差结果图

  • 1evo_ape命令计算绝对位姿误差;
  • 2个参数tum表示绘制的轨迹是TUM数据集的格式;
  • 3个参数是真实参考轨迹;
  • 4个参数是绘制的轨迹文件;
  • 5个参数中的-a选项表示对齐两条轨迹,第5个参数中的-v选项表示输出轨迹对齐的详细信息(即对齐的平移、旋转);
  • 6个参数用-p选项表示绘制图像,用--plot_mode选项表示对绘图显示模式的设置。
evo_ape tum GT_MH_01_data.tum vins_result_loop.tum -va -p --plot_mode xyz


2.2.4.转换euroc轨迹格式为tum格式

evo_traj euroc GT_V1_02_medium.csv --save_as_tum

3.使用evo评价VINS-Mono精度

参考:完美实现使用evo评估VINS-Mono

VINS-Mono中使用的是EuRoc数据集,这里选择把它的输出转成TUM格式的轨迹文件。

  • 首先修改vins源码. 打开 visulization.cpp, 找到 写文件部分代码,并修改为:
// write result with tum format, for evo tools
ofstream foutC(VINS_RESULT_PATH, ios::app);
foutC.setf(ios::fixed, ios::floatfield);
foutC.precision(10);
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;   //; 注意,这一行最后一个数据没有空格
foutC.close();

此时跑完一次数据集之后,会在对应的config.yaml文件配置的路径中输出轨迹文件,其结尾仍然是.csv,但是已经是TUM的格式了。

  • 使用evo评价轨迹精度
    命令中的data.csv是下载EuROC数据集得到的轨迹真值,在state_groundtruth_estimate0/data.csv路径下。
    命令中最后--save_results选项就是把精度分析的结果图片保存起来,保存到后面的a.zip文件夹中。
evo_ape euroc data.csv vins_result_no_loop.csv -va -p --plot_mode xyz --save_results a.zip

evo轨迹评估工具使用相关推荐

  1. EVO轨迹评估工具显示界面设置

    设置选项查看命令: evo_config show 设置轨迹背景: evo_config set plot_seaborn_style white

  2. 一文详解视觉里程计轨迹评估工具-evo的用法

    evo是一款用于视觉里程计和slam问题的轨迹评估工具.核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差.支持多种数据集的轨迹格式(TUM.KITTI.EuRoC MAV.ROS的bag),同 ...

  3. 轨迹评估工具使用总结(二) evo 绘图 ROS map

    evo是一款用于视觉里程计和slam问题的轨迹评估工具.核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差.支持多种数据集的轨迹格式(TUM.KITTI.EuRoC MAV.ROS的bag),同 ...

  4. SLAM 轨迹评估工具EVO

    EVO使用教程 1 EVO环境安装 1.1 二进制安装 1.2 源码安装 2 使用方法 2.1 TUM数据集上使用 2.1.1 计算轨迹的绝对误差(evo_ape) 2.1.2 绘制多条曲线(evo_ ...

  5. EVO 轨迹误差分析

    SLAM 轨迹评估工具EVO - 古月居 GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SL ...

  6. 视觉里程计的轨迹评估的工具:evo

    作者:Tom Hardy Date:2020-02-11 来源:视觉里程计的轨迹评估的工具:evo

  7. SLAM中evo评估工具(用自己的数据集评估vinsFusion)

    目录: 配置标题文件修改 源码修改 第一处 第二处 第三处 重新编译工程 安装evo 1.安装命令 2.常用指令 运行vinsFusion生成位姿估计文件 使用evo评估轨迹 配置标题文件修改 主要根 ...

  8. 自动驾驶辅助系统性能评估工具MXeval4.1版本更新快讯

    车辆动力学.自动驾驶辅助系统性能评估工具MXeval在新的4.1版本中又更新了一些独特功能. 在此之前,不熟悉的小伙伴们可以浅浅了解下MXeval的整体介绍~ 汽车研发挑战 | 让汽车更懂你的心:车辆 ...

  9. 人工智能产业发展联盟公布首轮AI芯片基准评测结果,评估工具已开源

    来源:量子位 3月6日,由国际电信联盟.中国信息通信研究院联合主办,人工智能产业发展联盟(AIIA)和中兴通讯承办的国际论坛"AI in 5G--引领新时代论坛"在深圳召开. 来自 ...

最新文章

  1. linux user32.lib,USER32!__ClientLoadLibrary定位
  2. 电商618背后的那些技术事儿
  3. python opencv 窗口循环显示时,如果用鼠标拖动窗口会导致程序暂停(卡住)(不知道为啥。。。)
  4. 在往sql server 插入数据时 报此错误“ 消息 8152,级别 16,状态 14,第 1 行 将截断字符串或二进制数据。”...
  5. springcloud服务注册中心eureka搭建
  6. 在局域网访问_Jupyter notebook设置局域网访问方法
  7. Linux内核Makefile编译生成内核目标文件的过程
  8. 计算机学的是苹果系统,苹果电脑装windows7教程 苹果电脑装windows7方法
  9. docker安装教程
  10. 学习双拼必看(最全教程):双拼输入法的心得以及快速入门办法
  11. LTE学习笔记二:扁平化的组网架构
  12. 分享| 电脑设置双屏或多屏显示2种简单方法,你能学会几种?
  13. php独孤九剑,(独孤九剑)--PHP 视频学习 -- 文件系统
  14. 进程间同步---system v ipc 对象信号灯集
  15. mysql 在当前时间上加几小时
  16. 通信算法之139: 软件无线电位同步1
  17. MySQL数据库高可用之mmm
  18. 数据湖与数据仓库的新未来:阿里提出湖仓一体架构
  19. (五)深入理解蓝牙BLE之“Beacon包格式详解”
  20. 毕业设计-基于微信小程序的移动端轻量 GIS 系统

热门文章

  1. linux性能监控命令—tsar命令
  2. Androdi平台camera的相关知识总结
  3. 【NIPS 2018】完整论文下载链接-续
  4. 2023北京养老展会,康复辅具展,养老福祉展,老年医疗展
  5. 为什么上传文件的表单里要加个属性enctype
  6. 5线DBCD股票趋势
  7. Winform自定义控件 —— 水印文本框
  8. Python csv 跳过第一行
  9. 《图解密码技术》——读书笔记
  10. Fire Net 放碉堡 —— DFS