[VIO|实践]evo测评工具的安装与使用

更详细的evo学习可见:https://github.com/MichaelGrupp/evo/wiki

安装

sudo apt install python-pip
pip install evo --upgrade --no-binary evo --user

测试

在数据集目录下打开终端(~/dataset/mav0/state_groundtruth_estimate0)

evo_traj euroc data.csv --plot

出现错误:

ImportError: No module named tkinter

具体解决办法可见------解决办法,亲测有效。

输出结果:

在这里插入图片描述
轨迹图:

略。

使用

支持EUROC、KITTI、TUM这三个公开数据集格式。
需要注意一下:EUROC数据、TUM数据集、KITTI数据集使用的四元数顺序是不一样的,因此在使用命令的时候后续需要加参数予以区分,在自己保存算法输出的轨迹文件的时候应当注意这一点。

1. evo_traj

主要是用来画轨迹、输出轨迹文件、转换数据格式等功能;

简单用法 :evo_traj +数据格式 +文件名 :

evo_traj tum a.txt
  • 该命令如果不添加任何参数项,那么就输出轨迹的相关信息。
  • -p--plot 画图,输出轨迹,默认输出xyz形式的,也可以在结尾加 --plot_mode=xyz 或者 --plot_mode=xz
evo_traj tum a.txt -p
evo_traj tum a.txt --plot_mode=xyz
  • -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
  • 如果需要将轨迹对齐(-a/ --align, -s / --correct_scale, --n_to_align),则需要利用–ref指定参考轨迹
    在这里插入图片描述不加-s表示默认尺度对齐参数为1.0,即不进行尺度对齐。
    在这里插入图片描述
evo_traj tum vins_result_loop.txt  --ref=data.tum -p --plot_mode=xyz --align --correct_scale
  • evo_traj可以将轨迹转换成其他格式--save_as_tum、--save_as_bag、--save_as_kitti
    eg.将euroc格式的文件转成tum格式:
evo_traj euroc data.csv --save_as_tum

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

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

如果使用的是ROS的bag文件,给出你要使用的.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 tum VINS_MAP_PATH/vins_result_loop.txt ORB_SLAM2_PATH/ORB_SLAM2-master/CameraTrajectory.txt --ref=data.tum -p --plot_mode=xyz --align --correct_scale

关于VINS_MONO的相关测评可以看我的这篇博客--------UBUNTU16.04跑VINS_MONO

2. evo_ape

用于评估绝对位姿误差

  • 评估两条轨迹的绝对位姿误差,最简单的使用格式为:evo_ape 数据格式 参考轨迹文件1 估计轨迹文件2 [可选项]
    – 可选项有对齐命令、画图、保存结果等…
evo_ape kitti a.txt b.txt
  • eg.评估VINS_MONO在MH_04数据集上的绝对位姿误差:
evo_ape euroc data.csv /home/ouc/output/vins_mono/EUROC/vins_result_loop_euroc4.txt

输出结果:
在这里插入图片描述
其中:

max:表示最大误差;
mean:平均误差;
median:误差中位数;
min:最小误差;
rmse:均方根误差;
sse:和方差、误差平方和;
std:标准差。
  • 其他可选项参数:
  1. -r表示ape所基于的姿态关系,不添加-r/–pose_relation和可选项,则默认为trans_part
    在这里插入图片描述
  2. -v表示详细模式。
  3. 对齐命令可见evo_traj命令中的解析。
  4. --plot表示画图,--plot_mode选择画图模式,二维图或者三维图,可选参数为[xy, xz, yx, yz, zx, zy, xyz],默认为xyz
--plot_mode=xyz
  1. 保存画图结果可以自己手动在窗体上保存,也可以通过--save_plot实现,–save_plot后接保存路径,如./VINSplot, 表示存储在当前路径下的名称为VINSplot的文件中,保存文件的类型可以通过evo_config设置。常见的可以保存成png,pdf等,详见evo_config部分。
  2. --save_results表示存储结果,后面跟随存储路径以及压缩文件名称,存储后得到zip压缩文件。
  3. 可通过 evo_ape +数据格式 + --help查看更多参数的含义以及如何使用。
evo_ape euroc --help
  • 举例:
  • ~/dataset/EUROC/4_mav0/state_groundtruth_estimate0路径下:
    评估VINS_MONO在EUROC数据集MH_04上的绝对位姿误差:
evo_ape euroc data.csv /home/ouc/output/vins_mono/EUROC/vins_result_loop_euroc4.txt -r full -va --plot --plot_mode=xyz --save_plot ./VINSplot --save_results ./VINS.zip
evo_ape euroc data.csv /home/ouc/output/vins_mono/EUROC/vins_result_loop_euroc4.txt -r full -va --plot --plot_mode=xyz --save_plot /home/ouc/output/vins_mono/ape_MH_04/VINSplot --save_results /home/ouc/output/vins_mono/ape_MH_04/VINS.zip

实验结果:
在这里插入图片描述
在这里插入图片描述

3. evo_rpe

该命令用于比较两个轨迹之间的相对轨迹误差,也就是两个时间戳相同时刻的轨迹误差,更具体来说,两组轨迹持续时间相同,但是采样频率不同,那么之间就会有一些少量的相同时间戳,那么这些相同的时间戳就可以进行一对一比较误差。同样的这些误差也会有平均误差、最大、最小误差等等结果。

命令语法:evo_rpe 数据格式 参考轨迹文件1 估计轨迹文件2 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。
计算VINS_MONO在数据集MH_04上的相对轨迹误差,简单使用:

evo_rpe euroc data.csv /home/ouc/output/vins_mono/EUROC/vins_result_loop_euroc4.txt

实验结果:
在这里插入图片描述

  • 其他可选项参数:
  1. -r表示ape所基于的姿态关系,同上。
  2. –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。
  3. --save_results 、 --save_plot同上。
  4. 当在命令中加上–all_pairs,则计算rpe时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol控制–all_pairs模式下的相对增量的容差(relative delta tolerance)。需要注意–all_pairs下不能使用–plot函数
  5. 可通过 evo_rpe +数据格式 + --help查看更多参数的含义以及如何使用。
evo_rpe euroc --help
  • 评估VINS_MONO在EUROC数据集MH_04上的相对轨迹误差:
evo_rpe euroc data.csv /home/ouc/output/vins_mono/EUROC/vins_result_loop_euroc4.txt -r angle_deg --delta 1 --delta_unit m -va --plot --plot_mode xyz --save_plot /home/ouc/output/vins_mono/rpe_MH_04/VINSplot --save_results /home/ouc/output/vins_mono/rpe_MH_04/VINS.zip
evo_rpe euroc data.csv /home/ouc/output/vins_mono/EUROC/vins_result_loop_euroc4.txt -r angle_deg --delta 1 --delta_unit m -va --plot --plot_mode xyz --save_plot ./VINSplot --save_results ./VINS.zip

实验结果:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4. evo_config

主要进行全局设置和配置文件操作。不太常用。

  • evo_config show:查看设置文件中的参数和参数的简要注释
  • 通过以下命令:

evo_config show --help
evo_config set --help
evo_config generate --help
evo_config reset --help

可查看evo_config中几个工具的部分相关介绍。不一一列举了。

5. evo_res

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

  • 运行命令:
evo_res /home/ouc/output/vins_mono/rpe_MH_04/VINS.zip /home/ouc/output/vins_mono/rpe_MH_05/VINS.zip -v

实验结果:
在这里插入图片描述

  • evo_res --help可查看可选参数含义。
  • evo其他常用命令:
    在这里插入图片描述

参考资料1
参考资料2
参考资料3
参考资料4
参考资料5
evo下载地址

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值