【性能评估工具】—— SLAM性能评估工具evo的安装与常用指令的详细介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

evo是一款用于评估SLAM(Simultaneous Localization and Mapping)算法性能的工具。它提供了一系列评估指标和可视化工具,帮助开发者分析SLAM系统在不同场景下的性能表现。evo支持多种数据格式,包括ROS数据格式,使其可以与ROS中的SLAM算法无缝集成。通过evo,用户可以比较不同SLAM算法的定位精度、地图质量以及鲁棒性等方面的性能,并可视化结果以便更直观地理解和比较不同算法的表现。下面详细介绍evo性能评估工具的安装

一、evo的安装

1. 直接指令安装

终端运行:

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

注意:如果一直提示下载失败,或者出现下载速度过慢等问题,那是因为pip工具默认的下载地址为国外的服务器,你需要将源地址改为国内,具体操作如下:

2. 换下载源进行安装

常见的国内下载源
清华:

https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:

http://mirrors.aliyun.com/pypi/simple/

中国科技大学:

 https://pypi.mirrors.ustc.edu.cn/simple/

使用方法
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 要安装的包名称
例如

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple evo --upgrade --no-binary evo

输入上述的指令进行安装evo,没有报错,则evo就算安装成功了,此时再打开另一个终端输入evo,然后按Tab键就可以出现如下页面:

在这里插入图片描述

注意:如果还是没有没有出现,重启电脑就行

二、evo的使用

1. 常见的数据集格式介绍

(1) EuRoC数据集

timestamp,px,py,pz,qw,qx,qy,qz,vx,vy,vz,bwx,bwy,bwz,bax,bay,baz

如下图所示:(每行17个元素,逗号隔开,时间以纳秒为单位)
在这里插入图片描述
(2) TUM数据集格式

timestamp tx ty tz qx qy qz qw  

如下图所示:(每行有8个元素,结尾没有空格, 时间以秒为单位)
tx、ty、tz为平移矩阵;qx、qy、qz、qw为四元数记录的旋转矩阵。
在这里插入图片描述(3) KiTTI数据集

r11 r12 r13 tx r21 r22 r23 ty r31 r32 r33 tz

如下图所示:存储变换矩阵的前三行(每行12元素,空格隔开,没有时间戳)
在这里插入图片描述

3. 数据格式转换

(1) euroc数据转换成tum格式

evo_traj euroc data.txt/data.csv --save_as_tum

(2) TUM数据转换成kitti格式

evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti

(3) 把一些文件的数据格式转化成rosbag

evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag

(4) 官网的格式转换表
在这里插入图片描述

4. evo工具常用命令介绍

evo_ape :用于评估绝对位姿误差
evo_rpe :用于评估相对位姿误差
evo_traj : 这个主要是用来画轨迹、输出轨迹文件、转换数据格式等功能
evo_res : 比较来自evo_ape或evo_rpe生成的一个或多个结果文件的工具
evo_fig :(实验)工具,用于重新打开序列化图(使用–serialize_plot保存)
evo_config : 这个主要用于evo工具全局设置和配置文件操作。
evo_ape+数据格式+ --help :表示查询更多参数的含义
如:evo_ape euroc --help evo_rpe euroc --help

5. 指令命令的使用

1. 指令使用的格式

evo的指令 + 轨迹文件的数据格式 + 轨迹文件 + 操作的参数

例如:画出单个轨迹

evo_traj tum a.txt -p

注意:所用到轨迹文件内容的格式(是指文件内容的数据格式,而不是指.txt等这种文件的格式)
如:tum,euroc,kitti等,均要换成自己的数据集的类型。

三、常用指令的使用详解

1. evo_traj的用法

使用evo_traj指令进行绘制轨迹图,后面添加相应添参数-p或者--plot即可看到轨迹的图形
(1) 画出单个轨迹

evo_traj tum a.txt -p

(2) 画两个或者两个以上的轨迹

evo_traj tum MH01_GT.tum CameraTrajectory.txt -p

(3) 两个轨迹匹配到同一个原点

evo_traj tum MH01_GT.tum CameraTrajectory.txt--ref=MH01_GT.tum -p --align_origin    

(4) 进行坐标变换和对齐

evo_traj tum MH01_GT.tum CameraTrajectory.txt --ref=MH01_GT.tum -a -p -s   

(5) 将轨迹投影到二维坐标中

evo_traj tum MH01_GT.tum CameraTrajectory.txt--ref=MH01_GT.tum -a -p -s --plot_mode=xz

(6) 将轨迹在三维坐标中显示

evo_traj tum MH01_GT.tum CameraTrajectory.txt --ref=MH01_GT.tum -a -p -s --plot_mode=xyz

解释:–plot_mode=xz表示轨迹投影到xz轴显示,“xz”根据自己需求也可换成“xy”“yz”
注意:tum为自己的轨迹文件数据格式,通过–ref参数指定参考轨迹,并增加参数-a(或–align)进行对齐(旋转与平移)。此外,单目相机会存在尺度的不确定性,使用-s(或 --correct_scale)参数进行Sim(3)上的对齐(旋转、平移与尺度缩放)

2. evo_ape的用法

作用
评估绝对轨迹误差(ATE):可以反应算法精度和轨迹全局一致性
(1) 查看tum数据集evo_ape命令各种参数

evo_ape tum -h

(2) 评估两条轨迹的绝对位姿误差:

evo_ape tum MH01_GT.tum CameraTrajectory.txt -a -p -s

解释:参数-a、-s、-p即为选择的参数,分别表示进行轨迹的匹配和尺度修正,以及-p表示画图误差的图和两个轨迹的图

3. evo_rpe的用法

作用
评估相对轨迹误差(RPE):用于评估系统的漂移程度。
(1) 查看tum数据集evo_ape命令各种参数的用法

evo_rpe tum -h  

(2) 估两条轨迹的绝对位姿误差

evo_rpe tum MH01_GT.tum CameraTrajectory.txt -a -p -s

解释:tum为自己数据的格式,参数-a、-s、-p即为选择的参数,分别表示进行轨迹的匹配和尺度修正,以及-p表示画图误差的图和两个轨迹的图
注意:在进行评估时,若经过了缩放,在命令行中应将真实轨迹(参考轨迹)放在估计轨迹(计算轨迹)前方,避免在缩放时参考轨迹错误而造成误差被错误缩放.

4. evo_res的用法

evo_res指令作用
用于对比多个ATE,RPE结果,同时绘制多条ATE或RPE曲线
具体操作流程
1 先将单个的ATE或RPE结果保存为zip文件:
保存ape的结果为zip文件:

evo_ape tum data_GT.tum kf_ORB_SLAM2_mono_MH01.txt -a -p -s --save_results filenames.zip

保存ape的结果为zip文件:

evo_rpe tum data_GT.tum kf_ORB_SLAM2_mono_MH01.txt -a -p -s --save_results filenames.zip

其中,tum为自己数据的格式,filenames是要保存的文件名,可任取
2 同时绘制多个ATE或RPE曲线:

evo_res f_ORB_SLAM3_双目.zip f_ORB_SLAM2_双目.zip -p

3 对比并保存结果:
只保存数值:

evo_res f_ORB_SLAM3_双目.zip f_ORB_SLAM2_双目.zip -p --save_table table1.csv

结果以图的形式保存为pdf:

evo_res f_ORB_SLAM3_双目.zip f_ORB_SLAM2_双目.zip -p --save_plot plot1.pdf

其中tum为自己数据的格式table1、plot1为要保存的文件名,可任取

三、修改evo的配置

1. 打印evo原始配置

evo_config show --brief

2. 恢复默认设置

evo_config reset

参考:

总结

以上就是SLAM性能评估工具evo的安装与常用指令的详细介绍,本文先详细介绍了evo的下载安装及遇到的问题,并提供相应的解决方法,最后介绍了evo使用的过程中常用的性能评估指令的用法。如有什么问题,可以评论区留言交流!

  • 30
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SLAM精度评估中的EVO是指使用EVO工具评估SLAM系统的轨迹误差。EVO是一个开源的工具,用于评估SLAM系统的性能。它提供了一系列命令和功能,可以计算和可视化SLAM系统的轨迹误差。 在EVO中,有几个常用的命令可以用来评估SLAM系统的轨迹误差。其中,evo_traj命令用于评估轨迹误差,可以使用手写的ATE(绝对位姿误差)和RPE(相对位姿误差)来比较SLAM系统的性能。\[1\] 相对位姿误差主要用于比较运动(姿态增量),而不是进行绝对位姿的比较。相对位姿误差可以给出局部精度,例如SLAM系统每米的平移或旋转漂移量。可以使用evo_rpe命令来计算相对位姿误差,并通过设置参数来进行可视化和保存结果。\[2\] 另外,evo_ape命令可以用于计算ATE(绝对位姿误差),并提供了可视化和保存结果的功能。可以使用该命令来评估SLAM系统在KITTI数据集上的性能。\[3\] 总之,EVO是一个用于评估SLAM系统性能工具,可以通过计算和可视化轨迹误差来评估SLAM系统的精度。可以使用evo_traj、evo_rpe和evo_ape等命令来进行评估和分析。 #### 引用[.reference_title] - *1* *2* [SLAM精度测评——EVO进阶](https://blog.csdn.net/Darlingqiang/article/details/123534388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ros中SLAMEVO、APE测评——SLAM精度测评(一)](https://blog.csdn.net/Yangy_Jiaojiao/article/details/124419966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啥也不会的研究僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值