admin管理员组文章数量:1660164
更详细的evo学习可见:https://github/MichaelGrupp/evo/wiki
目录
- 安装
- 测试
- 使用
- 1. evo_traj
- 2. evo_ape
- 3. evo_rpe
- 4. evo_config
- 5. evo_res
安装
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:标准差。
- 其他可选项参数:
-r
表示ape所基于的姿态关系,不添加-r/–pose_relation
和可选项,则默认为trans_part
。
-v
表示详细模式。- 对齐命令可见
evo_traj
命令中的解析。 --plot
表示画图,--plot_mode
选择画图模式,二维图或者三维图,可选参数为[xy, xz, yx, yz, zx, zy, xyz],默认为xyz
--plot_mode=xyz
- 保存画图结果可以自己手动在窗体上保存,也可以通过
--save_plot
实现,–save_plot后接保存路径,如./VINSplot, 表示存储在当前路径下的名称为VINSplot的文件中,保存文件的类型可以通过evo_config设置。常见的可以保存成png,pdf等,详见evo_config部分。 --save_results
表示存储结果,后面跟随存储路径以及压缩文件名称,存储后得到zip压缩文件。- 可通过 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
实验结果:
- 其他可选项参数:
- -r表示ape所基于的姿态关系,同上。
–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。--save_results 、 --save_plot
同上。- 当在命令中加上
–all_pairs
,则计算rpe时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol
控制–all_pairs
模式下的相对增量的容差(relative delta tolerance)。需要注意–all_pairs下不能使用–plot函数。 - 可通过 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下载地址
版权声明:本文标题:[VIO|实践]evo测评工具的安装与使用 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729850601a1215355.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论