SLAM 轨迹评估工具——EVO安装、使用介绍

云端舞步 2024-06-16 15:01:03 阅读 79

一、概述

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

二、安装

evo安装方式比较简单,有两种方式:

1.便捷安装

pip3 install evo --upgrade --no-binary evo

2.源码安装

git clone https://github.com/MichaelGrupp/evo.gitpip3 install --editable . --upgrade --no-binary evo

三、evo使用

1.evo设置

evo全局设置操作-evo_config

1.evo_config show

在这里插入图片描述

ps:截取部分显示

2.evo_config set

利用evo_config set可以设置evo中有关参数的值。下面列举一些常用的参数及含义。

1.plot_export_format表示图片的输出格式,常见的格式有pdf,png等。

命令:evo_config set plot_export_format pdf (将输出图像的存储格式设置为pdf格式。)

2.plot_figsize表示图片的尺寸,第一个数字代表横轴方向的尺寸,第二个数字代表纵轴方向的尺寸。

命令:evo_config set plot_figsize 6 6 (将输出图像横轴方向尺寸设置为6,纵轴方向尺寸设置为6。)

3.plot_fontscale表示输出图像中字体的粗细。

命令:evo_config set plot_fontscale 1.8 (将输出图像中的字体粗细设置为1.8。)

4.plot_linewidth代表作图时线的宽度。

命令:evo_config set plot_linewidth 1.8 (将输出图像的线宽设置为1.8。)

5.plot_reference_color表示输出图像中参考轨迹的颜色。

命令:evo_config set plot_reference_color black (将输出图像中参考轨迹的颜色设置为黑色。)

6.plot_reference_linestyle表示输出图像中参考轨迹的线型。

命令:evo_config set plot_reference_linestyle - (将输出图像中参考轨迹的线型设置为 -。)

7.plot_seaborn_style表示输出图像中背景网格颜色

命令:evo_config set plot_seaborn_style darkgrid (将输出图像中背景网格设置为"darkgrid"。)

8.plot_split表示是否分开显示各个生成的图像,因为有的时候一组数据会同时生成多幅图,可以选择在同一个窗口显示也可以选择在不同的窗口显示。

命令:evo_config set plot_split true (将输出图像分不同的窗口显示。)

9.plot_trajectory_linestyle表示输出图像中估计轨迹的线型。

命令:evo_config set plot_trajectory_linestyle - (将输出图像中估计轨迹的线型设置为-。)

10.table_export_format表示表格数据的输出格式,例如csv,excel,latex,json。

命令:evo_config set table_export_format csv (将输出表格数据的格式设置为 csv。)

11.evo_config reset 将参数还原到默认值。

2.evo_traj轨迹绘制

evo_traj指令可以将各个算法估计出的路径和真实路径画在同一幅图中。

例:

evo_traj tum GroundTruth.txt vins-fusion.txt --ref=have_fun_tum.txt -p --plot_mode=xz

tum表明处理的是tum数据集的相关结果,这里也可以替换为kitti和euroc;

GroundTruth.txt vins-fusion.txt 表示的是不同算法所估计出的轨迹,这里可以列举多个文件每个文件名之间用一个空格隔开;

–ref=GroundTruth.txt指明参考轨迹即真实轨迹;

-va包含两部分;1.-v或–verbose指明输出文件数据的相关信息;2.-a或–align指明对轨迹进行配准;

–plot表示画图;

–plot_mode xz表示图像投影在xoz平面上,其余可选参数为:xy,yx,yz,zx,zy,xyz;

画图结果如下:

在这里插入图片描述

3.evo_ape计算轨迹的绝对位姿误差

绝对位姿误差,用于比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,常用于评估测试轨迹的全局一致性。这里还是以tum为例,kitti和euroc格式相同。

evo_ape tum GroundTruth.txt vins-fusion.txt -r full -va --plot --plot_mode xz --save_plot trajape --save_results ape_result/vins-fusion.zip

在这里插入图片描述

tum表明处理的是tum数据集的相关结果,这里也可以替换为kitti和euroc;

GroundTruth.txt代表真实轨迹的数据;

vins-fusion.txt代表估计轨迹的数据;

-r full表示同时考虑旋转和平移误差得到的ape,无单位(unit-less);

另外:

-r trans_part表示考虑平移部分得到的ape,单位为m;

-r rot_part表示考虑旋转部分得到的ape,衡量旋转精度,无单位(unit-less);

-r angle_deg表示考虑旋转角得到的ape,单位°(deg);

-r angle_rad表示考虑旋转角得到的ape,单位弧度(rad);

-va包含两部分;1.-v或–verbose指明输出文件数据的相关信息;2.-a或–align指明对轨迹进行配准;

–plot表示画图;

–plot_mode xz表示图像投影在xoz平面上,其余可选参数为:xy,yx,yz,zx,zy,xyz;

–save_plot trajape 表示保存生成的图片名,这里写自己保存的地址;

–save_results ./vins-fusion.zip表示保存计算结果,ape_result/vins-fusion.zip这里写自己保存的地址;

4.evo_rpe 计算相对位姿误差

相对位姿误差不进行绝对位姿的比较,相对位姿误差比较运动(姿态增量)。相对位姿误差可以给出局部精度,例如SLAM系统每米的平移或者旋转漂移量。这里还是以tum为例,kitti和euroc格式相同。

evo_rpe tum GroundTruth.txt vins-fusion.txt -r full -va --plot --plot_mode xz --save_plot trajrpe --save_results rpe_result/vins-fusion.zip

在这里插入图片描述

tum表明处理的是kitti数据集的相关结果,这里也可以替换为kitti和euroc;

ground_truth.txt代表真实轨迹的数据;

vins-fusion.tx代表估计轨迹的数据;

-r full表示同时考虑旋转和平移误差得到的ape,无单位(unit-less);

另外:

-r trans_part表示考虑平移部分得到的rpe,单位为m;

-r rot_part表示考虑旋转部分得到的rpe,衡量旋转精度,无单位(unit-less);

-r angle_deg表示考虑旋转角得到的rpe,单位°(deg);

-r angle_rad表示考虑旋转角得到的rpe,单位弧度(rad);

-va包含两部分;1.-v或–verbose指明输出文件数据的相关信息;2.-a或–align指明对轨迹进行配准;

–plot表示画图;

–plot_mode xz表示图像投影在xoz平面上,其余可选参数为:xy,yx,yz,zx,zy,xyz;

–save_plot trajrpe 表示保存生成的图片名,trajrpe 这里写自己保存的地址;

–save_results ./vins-fusion.zip表示保存计算结果,rpe_result/vins-fusion.zip这里写自己保存的地址;

5.evo_res进行结果比较

在使用evo_ape或evo_rpe将结果保存为.zip文件后,可以利用evo_res对不同的结果进行比较。

evo_res ape_result/.zip -p --save_table ape_result.csv

evo_res ape_result/.zip -p --save_plot ape_result.pdf

ape_result/*.zip是之前使用ape或rpe生成的压缩包的地址;

-p表示画图;

–save_table ape_result.csv表示将统计指标保存在csv文件中;

–save_plot ape_result.pdf表示将误差分析图保存在pdf文件中;

在这里插入图片描述

6.evo其它命令

evo pkg --version 查看evo版本

evo pkg --info 查看evo的简要介绍和描述

evo pkg --pyversion 查看evo使用的python版本

evo pkg --license 查看许可证

evo pkg --location 查看evo安装路径

evo pkg --logfile 查看日志文件路径

evo pkg --open_log 打开日志文件

evo pkg --clear_log 清除日志文件

参考

https://zhuanlan.zhihu.com/p/448797378



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。