EVO功能介绍
文章目录
一、安装与文件介绍
1. 安装
方法一:安装使用命令行
pip install evo --upgrade --no-binary evo
方法二:从GitHub下载程序包后解压安装(本文使用方法)
EVO在GitHub上主页:MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM (github.com)
2. EVO介绍
evo文件架构:
evo-master
│
├─contrib
│ └─kitti_poses_and_timestamps_to_trajectory.py /*可将KITTI数据集真值文件加入时间戳生成tum格式*/
│ ...
├─doc
│ └─
├─evo
│ └─
├─notebooks
│ └─
└─test
│
├─cfg
│ ├─ape_rpe
│ ├─res
│ ├─tf
│ └─traj
│ └─
├─data /*这个文件夹中是运行范例,其中文件为范例真值文件和不同算法跑出的轨迹文件*/
│ └─res_files
├─demos
└─tum_benchmark_tools
二、evo使用
在evo使用时主要用到以下工具:
度量:
evo_ape
- 绝对位姿误差evo_rpe
- 相对位姿误差
工具:
evo_traj
- 分析工具,绘制或导出一个或多个轨迹evo_res
- 比较工具,比较evo_ape
orevo_rpe
生成的一个或多重结果evo_fig
- (测试中) tool for re-opening serialized plots (saved with--serialize_plot
)evo_config
- 用于全局设置和配置文件操作的工具
1. 使用evo_traj
进行分析,绘制轨迹图
-
在evo中提供了使用
evo_traj
分析使用KITTI数据集轨迹图的范例操作cd test/data evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz
其中,
-
evo_traj
:运行程序名称; -
kitti
:使用数据格式; -
KITTI_00_ORB.txt
KITTI_00_SPTAM.txt
:两个算法使用KITTI00数据集生成的轨迹文件; -
--ref=KITTI_00_gt.txt
:以KITTI_00_gt.txt为真值文件; -
-p
:进行绘图,显示plot窗口; -
--plot_mode=xz
:绘制xz平面,不加时默认为三维立体轨迹。
-
-
plot页面分析
-
trajectories
:轨迹图 -
xyz_view
:xyz轴视图,其中三个图分别代表在xyz三个方向的位置变化。 -
rpy_view
:欧拉角视图,其中三个图分别代表在RPY三个方向的转动变化。补充:Roll(滚转角),Pitch(俯仰角),Yaw(偏航角),分别对应绕XYZ轴旋转
旋转的正方向是,从XYZ轴的箭头方向看过去,顺时针为正,逆时针为负。(详见欧拉角RPY对应XYZ轴)
-
2. 使用evo_ape
进行误差分析
-
在Readme中给出范例,使用计算ORB-SLAM的轨迹绝对误差,并绘制各个结果并将evo_res所需的结果保存到.zip文件中。相应命令如下:
mkdir results evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/ORB.zip
其中,
evo_ape
:运行程序名称kitti
:使用数据格式KITTI_00_gt.txt
:KITTI00的真值文件KITTI_00_ORB.txt
:ORB算法使用KITTI00数据集生成的轨迹文件-va
:显示详细信息--plot
:进行绘图--plot_mode xz
:绘制xz平面,不加时默认为三维立体轨迹--save_results results/ORB.zip
:–save_results保存结果,results/ORB.zip保存的路径及文件名-r trans_part
:默认模式(省略时为该模式)。平移误差,单位为m
保存压缩包内文件:
alignment_transformation_sim3.npy error_array.npy info.json stats.json
-
页面及文件分析
raw:
APE
:绝对位姿误差w.r.t.
:with respect to 的缩写。是 关于;谈及,谈到的意思。(自论文中的 w.r.t. 和 i.e. 是什么意思_颜的博客-CSDN博客_w.r.t.什么意思)translation part (m)
:平移误差,单位mrmse
:均方根误差(Root Mean Square Error)median
:中位数mean
:均值std
:个人理解是误差带(误差数据的波动范围)
map: 映射到轨迹上的误差
3. 使用 evo_res
进行多结果比较
主要功能
-
打印信息和统计数据(默认模式)
-
绘制结果
-
在表格中保存统计结果
使用范例
-
使用在evo_ape功能中生成的压缩文件,进行分析,绘图并保存统计结果:
evo_res results/*.zip -p --save_table results/table.csv
其中,
evo_res
:运行程序名称results/*.zip
:需要分析的文件路径(由evo_ape生成),.zip代表所有文件类型为zip*的文件-p
:进行绘图--save_table results/table.csv
:保存统计结果至表格文件,保存位置为results/table.csv中
(保存至表格内容与终端显示一致)
-
页面及文件分析
页面介绍
-
raw
:分析的初试数据,将数据直接绘制到图中 -
stats
:统计,柱状图,内容为所有相比较的数据(与终端显示数据一致) -
histogram
:直方图,关于误差在不同等级的比重 -
box_plot
:箱型图 -
violin_histogram
:小提琴图
-
文件分析
文件中内容分别为均方根误差、均值、中位数、标准差、最小值、最大值、误差平方和。