提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、evo的安装
- 1. 直接指令安装
- 2. 换下载源进行安装
- 二、evo的使用
- 1. 常见的数据集格式介绍
- 3. 数据格式转换
- 4. evo工具常用命令介绍
- 5. 指令命令的使用
- 三、常用指令的使用详解
- 1. evo_traj的用法
- 2. evo_ape的用法
- 3. evo_rpe的用法
- 4. evo_res的用法
- 三、修改evo的配置
- 1. 打印evo原始配置
- 2. 恢复默认设置
- 总结
前言
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使用的过程中常用的性能评估指令的用法。如有什么问题,可以评论区留言交流!