EVO使用方法详解

文章目录

  • evo_ape 计算绝对位姿误差
    • -r表示ape所基于的姿态关系
    • -v表示verbose mode,详细模式
    • -a表示采用SE(3) Umeyama对齐,其余可选项如下表所示。
    • -s表示尺度对其
    • –plot表示画图
    • – save_results表示存储结果,
    • 帮助
  • evo_rpe 计算相对位姿误差
    • -r表示rpe所基于的姿态关系
    • –d/–delta表示相对位姿之间的增量
    • –u/–delta_unit表示增量的单位
    • 其他
    • 帮助
  • evo_config 全局设置和配置文件操作
  • evo_traj 轨迹管理的主要工具
  • evo_res 进行结果比较

evo_ape 计算绝对位姿误差

绝对位姿误差,常被用作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性。

命令语法:命令 格式 参考轨迹 估计轨迹 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。
常用命令示例:

evo_ape euroc MH_data3.csv pose_graphloop.txt -r full -va --plot --plot_mode xyz --save_plot ./VINSplot --save_results ./VINS.zip

命令的含义为:计算考虑平移和旋转部分误差的ape,进行平移和旋转对齐,以详细模式显示,保存画图并保存计算结果。
命令运行后得到结果如下图所示
在这里插入图片描述

-r表示ape所基于的姿态关系

-r/–pose_relation可选参数 含义
full 表示同时考虑旋转和平移误差得到的ape,无单位(unit-less)
trans_part 考虑平移部分得到的ape,单位为m
rot_part 考虑旋转部分得到的ape,无单位(unit-less)
angle_deg 考虑旋转角得到的ape,单位°(deg)
angle_rad 考虑旋转角得到的ape,单位弧度(rad)

不添加-r/–pose_relation和可选项,则默认为trans_part。

-v表示verbose mode,详细模式

-a表示采用SE(3) Umeyama对齐,其余可选项如下表所示。

-s表示尺度对其

不加表示默认尺度对齐参数为1.0,即不进行尺度对齐。
命令 含义
–align/-a 采用SE(3) Umeyama对齐,只处理平移和旋转
–align –correct_scale/-as 采用Sim(3) Umeyama对齐,同时处理平移旋转和尺度
–correct_scale/-s 仅对齐尺度

采用不同对齐命令效果图
在这里插入图片描述

–plot表示画图

–plot_mode选择画图模式,二维图或者三维图,可选参数为[xy, xz, yx, yz, zx, zy, xyz],默认为xyz。保存画图结果可以自己手动在窗体上保存,也可以通过–save_plot实现,–save_plot后接保存路径,如./VINSplot, 表示存储在当前路径下的名称为VINSplot的文件中,保存文件的类型可以通过evo_config设置。常见的可以保存成png,pdf等,详见evo_config部分。

– save_results表示存储结果,

后面跟随存储路径以及压缩文件名称,存储后得到zip压缩文件。
作图时修改图像参数请见evo_config。

帮助

可通过 evo_ape +数据格式 + –help查看更多参数的含义以及如何使用。例如
evo_ape euroc –help

evo_rpe 计算相对位姿误差

相对位姿误差不进行绝对位姿的比较,相对位姿误差比较运动(姿态增量)。相对位姿误差可以给出局部精度,例如slam系统每米的平移或者旋转漂移量。
命令语法:命令 格式 参考轨迹 估计轨迹 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。
常用命令示例:

evo_rpe euroc MH_data3.csv pose_graphloop.txt -r angle_deg --delta 1 --delta_unit m -va --plot --plot_mode xyz --save_plot ./VINSplot --save_results ./VINS.zip

命令的含义为 求每米考虑旋转角的rpe,以详细模式显示并画图。
命令运行后得到结果如下图所示
在这里插入图片描述

-r表示rpe所基于的姿态关系

-r/–pose_relation可选参数 含义
full 表示同时考虑旋转和平移误差得到的ape,无单位(unit-less)
trans_part 考虑平移部分得到的ape,单位为m
rot_part 考虑旋转部分得到的ape,无单位(unit-less)
angle_deg 考虑旋转角得到的ape,单位°(deg)
angle_rad 考虑旋转角得到的ape,单位弧度(rad)

不添加-r/–pose_relation和可选项,则默认为trans_part。

–d/–delta表示相对位姿之间的增量

–u/–delta_unit表示增量的单位

可选参数为[f, d, r, m],分别表示[frames, deg, rad, meters]。–d/–delta -u/–delta_unit合起来表示衡量局部精度的单位,如每米,每弧度,每百米等。其中–delta_unit为f时,–delta的参数必须为整形,其余情况下可以为浮点型。–delta 默认为1,–delta_unit默认为f。

其他

-v –plot –plot_mode xyz –save_results results/VINS.zip –save_plot等同evo_ape中所讲。

当在命令中加上–all_pairs,则计算rpe时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol控制–all_pairs模式下的相对增量的容差(relative delta tolerance)。需要注意–all_pairs下不能使用–plot函数。

帮助

可通过 evo_rpe +数据格式 + –help查看更多参数的含义以及如何使用。例如
evo_rpe euroc –help

evo_config 全局设置和配置文件操作

evo_config show可以查看设置文件中的参数和参数的简要注释。如下图所示。
在这里插入图片描述evo_config set 进行参数设置
下面是几个常用的参数,其含义以及可选项
参数 含义 可选项
plot_export_format 输出图像时图像存储格式 常用png,pdf等
plot_linewidth 作图时线的宽度 matplotlib支持的宽度,默认1.5
plot_reference_color 图像中参考轨迹的颜色 black,red,green等
plot_reference_linestyle 参考轨迹的线型 matplotlib支持的线型,默认–
plot_seaborn_style 图像背景和网格 whitegrid,darkgrid,white,dark
plot_split 是否分开显示/存储图像 false/true
plot_figsize 画图的图像大小 默认宽高均为6,可使用其他值
table_export_format 表格数据输出格式 常用 csv,excel,latex,json

例如命令
evo_config set plot_seaborn_style whitegrid 将画图背景更改成白色网格
evo_config set plot_fontfamily serif plot_fontscale 1.2 将字体改为衬线型并调为1.2倍大小
evo_config set plot_reference_linestyle – 将画图所使用的线型改为 –
evo_config set plot_figsize 10 9 将所画图的图像大小调整为10 9(宽 高)

evo_config reset 将参数还原到默认值

evo_config generate 将命令行参数转换成–out指定的.json文件
例如:evo_config generate –pose_relation angle_deg –delta 1 –delta_unit m –verbose –plot –out rpe_config.json
在这里插入图片描述当需要再次使用这样的参数配置时,可以通过 -c .json文件来实现。例如
evo_rpe euroc MH_data3.csv pose_graphloop.txt -c rpe_config.json

evo_config show –help
evo_config set –help
evo_config generate –help
evo_config reset –help
可查看evo_config中几个工具的部分相关介绍。

evo_traj 轨迹管理的主要工具

evo_traj可以打开任意多个轨迹,查看统计信息。-v表示以详细模式显示,–full_check可以对轨迹进行检查。
evo_traj euroc MH_data1.csv MH_data3.csv
在这里插入图片描述

evo_traj euroc MH_data1.csv MH_data3.csv -v

在这里插入图片描述

evo_traj euroc MH_data1.csv MH_data3.csv -v –full_check在这里插入图片描述

如果使用的是ROS的bagfile,给出你要使用的.bag文件路径以及topics。例如:
evo_traj bag ROS_example.bag groundtruth ORB-SLAM S-PTAM
利用–all_topics可以加载bagfile中的所有轨迹。
如果需要将轨迹对齐(-a/ –align, -s / –correct_scale, –n_to_align),则需要利–ref指定参考轨迹。例如evo_traj bag ROS_example.bag ORB-SLAM S-PTAM –ref groundtruth -s

evo_traj 将轨迹进行对齐以及画图操作,与前面提到的几部分一样。
evo_traj可以将轨迹转换成其他格式。
–save_as_bag –save_as_kitti –save_as_tum
bag yes yes yes
euroc yes yes yes
kitti no(no timestamps) yes no(no timestamps)
tum yes yes yes

因euroc格式只对euroc数据集的groundtruth数据有意义,所以没有–save_as_euroc。
evo_traj euroc data.csv –save_as_tum

可通过 evo_traj +数据格式 + –help查看更多参数的含义以及如何使用。例如
evo_traj euroc –help

evo_res 进行结果比较

evo_ape/evo_rpe中将结果保存为.zip文件后,可以利用evo_res对不同的结果进行比较。
例如:MH3.zip、MH3_2.zip均由evo_ape得到的,运行命令evo_res MH3.zip MH3_2.zip -v
在这里插入图片描述

evo_res –help可查看可选参数含义。

evo其他常用命令
命令 含义
evo pkg –version 查看evo版本
evo pkg –info 查看evo的简要介绍和描述
evo pkg –pyversion 查看python版本
evo pkg –license 查看许可证
evo pkg –location 查看evo安装路径
evo pkg –logfile 查看日志文件路径
evo pkg –open_log 打开日志文件
evo pkg –clear_log 清除日志文件

参考来源:1.https://github.com/MichaelGrupp/evo/wiki

Published by

风君子

独自遨游何稽首 揭天掀地慰生平