EVO使用教程

  • 1 EVO环境安装
    • 1.1 二进制安装
    • 1.2 源码安装
  • 2 使用方法
    • 2.1 TUM数据集上使用
      • 2.1.1 计算轨迹的绝对误差(evo_ape)
      • 2.1.2 绘制多条曲线(evo_traj)
      • 2.1.3 分析多条曲线(evo_res)
    • 2.3 KITTI数据集上使用
      • 2.2.1 计算轨迹的绝对误差
      • 2.2.2 绘制多条曲线
      • 2.2.3 分析多条曲线
    • 2.3 EUROC数据集上使用
      • 2.3.1 计算轨迹的绝对误差
  • 3 修改EVO 绘图配置
  • 参考资料

我使用的环境为ubunut1604+ROS(Kinect)版本,环境是Python2的

1 EVO环境安装

1.1 二进制安装

pip install evo --upgrade --no-binary evo

1.2 源码安装

推荐使用源代码安装方式。,首先安装依赖项:

sudo pip install --upgrade pip
sudo pip install --user --upgradesudo apt-get install libfreetype6-dev gfortran
pip install matplotlib
pip install scipy

安装evo:

git clone -b python2  https://github.com/MichaelGrupp/evo.git
cd evo
pip install --editable . --upgrade --no-binary evo

出现以下情况则表示安装成功了

2 使用方法

EVO提供了绝对误差和相对误差评估命令和图形分析工具(暂且这样称呼它):
evo_ape - absolute pose error (绝对误差)
evo_rpe - relative pose error (相对误差)

Tools:
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

这里需要注意一下 EUROC数据、TUM数据集、KITTI数据集使用的四元数顺序是不一样的,因此在使用命令的时候后续需要加参数予以区分,我们在自己保存算法输出的轨迹文件的时候应当注意这一点。
在evo的源码中 evo/test/data 目录下面有用于测试的数据集

2.1 TUM数据集上使用

TUM数据格式为:timestamp tx ty tz qx qy qz qw (每行有8个元素,结尾没有空格, 时间戳以秒为单位,精确到小数点后9位)

2.1.1 计算轨迹的绝对误差(evo_ape)

评估算法输出的曲线和真实值之间的绝对误差(absolute pose error)

mkdir results
evo_ape tum fr2_desk_groundtruth.txt  fr2_desk_ORB.txt -va --plot --plot_mode xz --save_results results/ORB_fr2_desk.zip

执行命令以后,在终端中打印出RMSE等误差值

若出现错误: [ERROR] evo module evo.main_ape crashed - no logfile written (disabled)
则是由于matplotlib 的问题,需要升级一下 matplotlib

pip install matplotlib --upgrade

2.1.2 绘制多条曲线(evo_traj)

在一张图中绘制两个算法的输出曲线(rgbdslam-v2 和 orb-slam),其中 --ref的参数为指定的真是轨迹值。

evo_traj tum freiburg1_xyz-ORB_kf_mono.txt freiburg1_xyz-rgbdslam.txt  --ref=freiburg1_xyz-groundtruth.txt -va --plot --plot_mode xy

在图片的界面中可以修改曲线的颜色等参数。

注意:多条曲线对齐的时候需要加上参数 -a

2.1.3 分析多条曲线(evo_res)

假设现在我使用2.1.1中命令生成了在fr1_xyz 和 fr2_desk两个序列上的Zip文件(这两个zip文件都在result目录下面)。此时我们使用 evo_res 命令分析算法在这两个序列上的性能

 evo_res results/*.zip -p --save_table results/table.csv

这表示分析 results 目录下面所有的zip文件。

2.3 KITTI数据集上使用

KITTI数据集格式: r11 r12 r13 tx r21 r22 r23 ty r31 r32 r33 tz 存储变换矩阵的前三行 (每行12元素,空格隔开) 无时间戳

2.2.1 计算轨迹的绝对误差

这里会生成一个名为xxx.zi压缩文件,这个在绘制多条曲线会用到。

mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/KITTI_00_ORB.zip

2.2.2 绘制多条曲线

将待绘制的曲线文件放置于同一个文件夹test中,

cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

其中,KITTI_00_ORB.txt 表示第1个算法在序列上运行的文件,KITTI_00_SPTAM.txt* 表示第2个算法在序列上运行的文件,***–ref=KITTI_00_gt.txt*** 表示指定真实的groundtruth轨迹文件,***-p --plot_mode=xz*** 则命令参数,在XOZ平面绘制轨迹。

注意: 多条曲线对齐的时候需要加上参数 -a

2.2.3 分析多条曲线

 evo_res results/*.zip -p --save_table results/table.csv

2.3 EUROC数据集上使用

EUROC数据格式为:timestamp,px,py,pz,qw,qx,qy,qz,vx,vy,vz,bwx,bwy,bwz,bax,bay,baz (每行17个元素,逗号隔开,时间以纳秒为单位,无小数)*

2.3.1 计算轨迹的绝对误差

评估算法输出的曲线和真实值之间的绝对误差(absolute pose error)

evo_ape euroc V102_groundtruth.csv V102.txt -va --plot --plot_mode xy --save_results results/EUROC.zip


其余两个命令与前面的操作一样,只需要将命令中的 eurockitti 替换成 tum 即可。

3 修改EVO 绘图配置

这部分参考博客[4]和官方教程[5],以及一个翻译的中文教程[6]

1调整字体大小

evo_config set plot_fontfamily serif plot_fontscale 1.5

2 调整图像大小

evo_config set plot_figsize 8 6

3 调整默认线宽度

evo_config set plot_linewidth 3

4 调整ref参考轨迹透明程度
默认在绘制groundtruth轨迹的时候会有点淡,这可以调整一下透明度

evo_config set plot_reference_alpha 0.75

5 修改背景的颜色

evo_config set plot_seaborn_style whitegrid

这是修改背景,其中whitegrid可以替换成darkgrid, whitegrid, dark, white, ticks,deep6.这里我还是使用的默认的whitegrid

6.修改线条颜色

evo_config set plot_seaborn_palette bright

这是修改线条,其中bright可以替换成deep, muted, bright, pastel, dark, colorblind

参考资料

[1] 官方教程:https://github.com/MichaelGrupp/evo
[2] https://blog.csdn.net/A_L_A_N/article/details/88708979
[3] https://blog.csdn.net/qq_37568167/article/details/104961523
[4] https://zhuanlan.zhihu.com/p/88223106
[5] http://wiki.ros.org/map_server#Map_format
[6] https://blog.csdn.net/hhaowang/article/details/105226136

如果文章对你有所帮助,请大家帮忙点个赞。O(∩_∩)O

欢迎大家在评论区交流讨论(cenruping@vip.qq.com)

SLAM 轨迹评估工具EVO相关推荐

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

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

  2. SLAM轨迹测评工具evo使用

    evo主要有以下几种命令: evo_ape : 计算绝对位姿误差 evo_rpe : 计算相对位姿误差 evo_traj : 轨迹管理的主要工具(常用来绘制轨迹) evo_config : 全局设置和 ...

  3. evo轨迹评估工具使用

    文章目录 1.资料 2.命令总结 2.1.两个指标命令,四个工具命令 2.2.命令示例 2.2.1.绘制一条轨迹 2.2.2.绘制两条轨迹,一条为真实参考轨迹 2.2.3. 绘制轨迹误差结果图 2.2 ...

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

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

  5. SLAM算法评估篇:EVO

      当我们需要评估一个SLAM/VO算法的表现时,可以从时耗.精度多个角度分析,其中对精度的评价是我们最关注的.精度评估依据主要是绝对轨迹误差和相对位姿误差,最早在TUM数据集benchmark中定义 ...

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

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

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

    evo工具github链接:link evo_ape 计算绝对位姿误差 绝对位姿误差,常被用作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性. 命令语法:命令 ...

  8. SLAM轨迹评估ATE和RPE

    转自:https://zhuanlan.zhihu.com/p/105428199 1. RPE: relative pose error 相对位姿误差 相对位姿误差主要描述的是相隔固定时间差  两帧 ...

  9. SLAM评测工具EVO常用功能介绍【正在刷夜的李哈哈】

    看完这个我觉得你肯定会用evo了 前言 官方网页介绍 实际使用方法 绘制轨迹:evo_traj 比较绝对位姿误差:eva_ape 比较相对位姿误差:evo_rpe 如何对比kitti数据集下的轨迹(k ...

最新文章

  1. bert as service
  2. java list主要实现_java容器-list的常用实现及原理
  3. ie8 js未指明的错误_修复ueditor百度编辑器在IE8下shCore.js报错'undefined'错误的问题...
  4. 【规范】前端编码规范——css 规范
  5. 【杭电多校2020】Fibonacci Sum【斐波拉契通项】【推式子】
  6. 测试用例编写注意事项
  7. TeamViewer 远程设备的画面黑屏怎么办?
  8. android应用热修复与插件化实践之路
  9. 表格用计算机做成横版的WPS,WPS表格怎么将表格横过来图文教程
  10. mt6755完整原理图pdf mt6755lte-a智能手机应用程序处理器技术简介
  11. MAC地址和IP地址说明
  12. 计算机专业编程很厉害是怎样的一种体验?
  13. 华米自有品牌销量过百万,去小米化或进一步加强
  14. 单招计算机Windows7知识点,计算机单招考试试题
  15. Android菜谱应用客户端
  16. 大牛建议——C++学习建议
  17. verilog断言(SVA)语法
  18. Python 抓取猫眼电影TOP100数据
  19. Xcode8.1 真机测试 ,添加iOS10.3的idk到Xcode8.1中
  20. Deep Ordinal Regression Network for Monocular Depth Estimation 单目深度估计,论文阅读,DORN;视频笔记

热门文章

  1. R语言地理空间分析、可视化及模型预测
  2. html5多屏互动游戏,多屏互动 —— 手机端与PC端 网页互动的现有尝试及设想
  3. MATLAB中的A*B(A乘B)与A.*B(A点乘B)的区别(学习笔记)
  4. Java安全通信:HTTPS与SSL
  5. [python爬虫] Selenium切换窗口句柄及调用Chrome浏览器
  6. CAD制图,如何快速统计图块的数量?
  7. Kafka 快速入门(安装)
  8. 关于《道法自然》一书中的“依赖倒置”问题
  9. WPS文字如何将纸张大小由A4调整为A3默认纸张大小是A4
  10. deep compression:compressing deep neural networks with pruning,trained quantization and huffman codi