https://github.com/MichaelGrupp/evo/wiki
安装
pip install evo --upgrade --no-binary evo
支持的数据集格式
TUM,KITTI,euroc(四元数顺序不一样,所以待比较的数据文件之间的格式要一致)
evo_traj euroc data.csv --save_as_tum #转换格式
evo_ape kitti/euroc/tum a.txt b.txt # 比较kitti、euroc、tum数据集格式的a.txt、b.txt的绝对误差精度输出的结果:
max
:表示最大误差;mean
:平均误差;median
:误差中位数;min
:最小误差;rmse
:均方根误差;sse
:和方差、误差平方和;std
:标准差
3种误差评估方式、4种工具
evo_ape:绝对位姿误差(比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性)
evo_rpe:相对位姿误差(相对位姿误差比较运动(姿态增量),不比较绝对位姿;可以给出局部精度)
evo_rpe
-for-each -sub-sequence-wise averaged pose errorevo_traj:画轨迹图、表格、输出轨迹文件、转换数据格式
evo_res:比较来自evo_ape或evo_rpe生成的一个或多个结果文件
evo_fig:用于重新打开序列化图(使用–serialize_plot保存)
evo_config:evo工具的全局设置和配置文件操作
evo_traj tum groundtruth.txt a.txt --ref=a.txt -va -p
–ref:指定参考轨迹
evo_res angle_ape1.zip angle_ape2.zip -p --save_table table.csv
evo_ape tum groundtruth.txt a.txt -va --plot
指定参考轨迹 groundtruth.txt
参数
evo_rpe euroc MH_data3.csv pose_graphloop.txt -r full --delta 1 --delta_unit m -va --plot --plot_mode=xyz --save_plot ./VINSplot --save_results ./VINS.zip
-r/–pose_relation可选参数(默认trans_part) | 含义 |
---|---|
full | 同时考虑旋转和平移误差得到的误差,无单位(unit-less) |
trans_part | 考虑平移部分得到的误差,单位为m |
rot_part | 考虑旋转部分得到的误差,无单位(unit-less) |
angle_deg | 考虑旋转角得到的误差,单位°(deg) |
angle_rad | 考虑旋转角得到的误差,单位弧度(rad) |
-p、–plot:绘制轨迹
-v:verbose mode,详细模式
命令 | 含义 |
---|---|
–align/-a | 采用SE(3) Umeyama对齐,只处理平移、旋转 |
–align --correct_scale/-as | 采用Sim(3) Umeyama对齐,同时处理平移、旋转、尺度 |
–correct_scale/-s | 仅对齐尺度(默认尺度对齐参数为1.0,即不进行尺度对齐) |
不同对齐命令效果:
–plot_mode:选择画图模式,二维图或者三维图,可选项:xy, xz, yx, yz, zx, zy, xyz,默认为xyz
–save_plot:保存画图结果,后接保存路径;也可以自己手动在窗体上保存,保存文件的类型可以通过evo_config设置
–save_results:存储为 *.zip 压缩文件结果,后面跟随存储路径以及压缩文件名称(evo_res会用到)
–d/–delta:相对位姿之间的增量(默认为1)
–u/–delta_unit:增量的单位,可选参数为[f, d, r, m],分别表示[frames, deg, rad, meters] (默认为f)
–d/–delta -u/–delta_unit合起来:衡量局部精度的单位,如每米,每弧度,每百米等。–delta_unit为f时,–delta的参数必须为整形,其余情况下可以为浮点型
当在命令中加上–all_pairs,计算rpe时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol控制–all_pairs模式下的相对增量的容差(relative delta tolerance)。–all_pairs下不能使用–plot函数。
evo_ape tum data.tum CameraTrajectory.txt -a -s -p # -a:轨迹的匹配; -s:尺度修正
单目SLAM轨迹没有尺度,所以多个轨迹不会一样大,需要对轨迹进行sim(3)相似变换,那么evo就会自动的对轨迹的位移、旋转、尺度进行对齐
生成的文件的后缀改成tum
evo_ape +数据格式 + --help查看更多参数的含义以及如何使用
evo_traj euroc MH_data1.csv MH_data3.csv -v --full_check
–full_check:对轨迹进行检查
画两个或者两个以上的轨迹:evo_traj tum a.txt b.txt c.txt -p --align_origin
–align_origin:把两个轨迹匹配到同一个原点
转换数据格式
如,vins生成的结果与euroc ground truth的格式不一样
因euroc格式只对euroc数据集的groundtruth数据有意义,所以没有–save_as_euroc
–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 |
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 | 清除日志文件 |
evo_config
evo全局设置和配置文件操作
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 |
1.将画图背景更改成白色网格
evo_config set plot_seaborn_style whitegrid
2.将字体改为衬线型并调为1.2倍大小
evo_config set plot_fontfamily serif plot_fontscale 1.2
3.将画图所使用的线型改为 -
evo_config set plot_reference_linestyle -
4.将所画图的图像大小调整为10 9(宽 高)
evo_config set plot_figsize 10 9
5.当你想要将配置还原为默认时,只需要使用命令:
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