- EVO功能介绍
- 一、安装与文件介绍
- 1. 安装
- 2. EVO介绍
- 二、evo使用
- 1. 使用`evo_traj`进行分析,绘制轨迹图
- 2. 使用`evo_ape`进行误差分析
- 3. 使用 `evo_res` 进行多结果比较
方法一:安装使用命令行
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
│ ...
├─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 or evo_rpe生成的一个或多重结果
- evo_fig - (测试中) tool for re-opening serialized plots (saved with --serialize_plot)
- evo_config - 用于全局设置和配置文件操作的工具
-
在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轴)
-
-
在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):平移误差,单位m
- rmse:均方根误差(Root Mean Square Error)
- median:中位数
- mean:均值
- std:个人理解是误差带(误差数据的波动范围)
**map:**映射到轨迹上的误差
主要功能
-
打印信息和统计数据(默认模式)
-
绘制结果
-
在表格中保存统计结果
使用范例
-
使用在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:小提琴图
-
文件分析
文件中内容分别为均方根误差、均值、中位数、标准差、最小值、最大值、误差平方和。


![[slam评估]evo使用 [slam评估]evo使用](http://www.mshxw.com/aiimages/31/858995.png)
