[slam评估]evo使用

EVO功能介绍

文章目录

  • EVO功能介绍
    • 一、安装与文件介绍
      • 1. 安装
      • 2. EVO介绍
    • 二、evo使用
      • 1. 使用`evo_traj`进行分析,绘制轨迹图
      • 2. 使用`evo_ape`进行误差分析
      • 3. 使用 `evo_res` 进行多结果比较

一、安装与文件介绍

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 or evo_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):平移误差,单位m
    • rmse:均方根误差(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小提琴图

文件分析

文件中内容分别为均方根误差均值中位数标准差最小值最大值误差平方和

你可能感兴趣的:(软件使用,slam评估,经验分享,自动驾驶)