EVO——SLAM轨迹精度评估软件
EVO简介
evo是一款用于视觉里程计VIO和slam轨迹评估 Python 包(Linux / macOS / Windows / ROS)。能够绘制轨迹,评估轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、EuRoC的Mav、ROSbag),同时支持这些数据格式之间进行相互转换。
Github网址:https://github.com/MichaelGrupp/evo
EVO支持的文件格式:
TUM 的轨迹文件
KITTI 的pose文件
EuRoC 的MAV(.csv groundtruth 和 TUM 轨迹文件)
ROSbag 包文件
集中常用的公开数据集的文件格式后面再写,大家个参考其他的博客!
安装
我用的是Ubuntu16.04系统,系统默认的是python2.7
EVO支持 Python 3.6+。最后一个支持 Python 2.7 的 EVO版本是 1.12.0。如果你想使用 ROS bagfile 接口,首先检查你的 ROS 安装使用的是哪个 Python 版本并进行相应的安装。版本不兼容会导致很大的问题!
EVO主要由两种安装方式
1.pip安装
参考其他博客
1.源码安装
参考其他博客
使用
evo工具主要有如下六个常用命令:
**
evo_ape
** - 用于评估绝对位姿误差;
**
evo_rpe
** - 用于评估相对位姿误差;
**
evo_traj
** - 这个主要是用来画轨迹、输出轨迹文件、转换数据格式等功能;
**
evo_res
** - 比较来自evo_ape或evo_rpe生成的一个或多个结果文件的工具;
**
evo_fig
** - (实验)工具,用于重新打开序列化图(使用–serialize_plot保存);
**
evo_config
** - 这个主要用于evo工具全局设置和配置文件操作。
**
-p
** 表示绘图;
**
--plot_mode=xyz
** - 表示绘图模式为xyz三维;
**
--save_results
** - 表示保存结果,后面为文件保存路径及文件名。
TUM数据的评估方法
Euroc Bag文件的评估方法
1.评估绝对轨迹误差APE
evo_ape euroc data.csv b.csv
euroc
是数据类型标识,标识后面的两个文件都是euroc格式的数据;
第一个文件
data.csv
表示地面轨迹真值groundtrue数据;
第二个文件
b.csv
表示某个SLAM代码计算的结果;
**
不同数据源的绘图方法相同,命令略有差异
**
KITTI数据的评估方法
0.绘制轨迹
evo_traj tum abc.txt -p
abc.txt
是计算出来的结果;
1.评估绝对轨迹误差APE
evo_ape kitti a.txt b.txt
kitti
是数据类型标识,标识后面的两个文件都是kitti格式的数据;
第一个文件
a.txt
表示地面轨迹真值groundtrue数据;
第二个文件
b.txt
表示某个SLAM代码计算的结果;
2.相对轨迹误差RPE
evo_rpe tum vio_GPS_global.txt kitti_10_gt.txt -p --plot_mode=xyz -a -s -v --save_results /home/lee/output/rpe.zip
tum
是数据类型标识,标识后面的两个文件都是kitti格式的数据;
第一个文件
vio_GPS_global.txt
表示SLAM软件计算的结果(此处为VINS);
第二个文件
kitti_10_gt.txt
表示kitti数据集
10
的地面真实轨迹数据;
###VINS计算结果转为tum格式
由于VINS输出结果并不能直接使用EVO读取,还需要进行格式转换!可参考博文:
待续!!!
版权归原作者 dragonatwall 所有, 如有侵权,请联系我们删除。