[slam评估]evo使用

EVO是一个用于里程计和SLAM算法评估的Python包,提供轨迹绘制、误差分析和结果比较功能。通过evo_traj绘制轨迹图,evo_ape计算绝对位姿误差,evo_res进行多结果比较。支持KITT数据集,提供详细统计信息和多种可视化方式,便于理解和优化算法性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 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:

    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小提琴图

文件分析

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值