1. 基本概念

1.1 Umeyama算法

ATE:

evo_ape tum state_groundtruth_estimate0/data.tum orb2/CameraTrajectory.txt -r trans_part -va --plot --plot_mode xy --save_results /home/sun/evo/v1_01_easy/orb2/ate.zip

RPE:

evo_rpe tum state_groundtruth_estimate0/data.tum orb2/CameraTrajectory.txt -r full --delta 1 --delta_unit m -va --plot --plot_mode xy --save_results /home/sun/evo/v1_01_easy/orb2/rpe.zip

1.2 SE(3)与Sim(3)

双目SLAM和RGB-D SLAM,尺度统一,因此我们需要通过最小二乘法计算一个从估计位姿到真实位姿的转换矩阵 [公式] 对于单目相机,具有尺度不确定性,我们需要计算一个从估计位姿 [公式] 到真实位姿 [公式] 的相似变换矩阵 [公式] 。在evo代码中,给予 --correct_scale命令就会估计Sim,否则默认为SE(3)。

2. 测试标准机器含义

1. evo_ape 计算绝对位姿误差

evo_ape tum data.tum pos_and_quate.txt -r full -va --plot --plot_mode xyz --save_results /home/sun/evo/mh_01_easy/ours.zip

-r full/rot_part/…

计算考虑平移和旋转部分误差的ape,进行平移和旋转对齐,其中-r表示ape所基于的姿态关系不添加-r/–pose_relation和可选项,则默认为trans_part。

1.1 metrics解析

上文提到pose error包含平移和旋转两部分误差,在evo中的option为-r,–pose_relation,并有如下模式:

其中trans_part很容易理解,但是无单位的full和rot_part的误差指标比较特殊,使用了矩阵的二范数:
error_full=∥δT_i − E∥, \̲d̲e̲l̲t̲a̲T̲_i表示groundtruth和estimate位姿之间的变换矩阵,E 为单位阵,矩阵的范数也可以表示某种抽象的空间距离

同理rot_part的误差:
ERROR_rot = ∥ δR_i − E ∥
相比较而言,用平移误差单位为m,旋转误差单位可以是度或弧度,更容易理解。从旋转矩阵R 到旋转角的转换使用了罗德里格斯公式(旋转向量的二范数为旋转角的大小)。

-v表示verbose mode,详细模式,-a表示采用SE(3) Umeyama对齐,其余可选项如下表所示。不加-s表示默认尺度对齐参数为1.0,即不进行尺度对齐。

2. evo_rpe 计算相对位姿误差

相对位姿误差不进行绝对位姿的比较,相对位姿误差比较运动(姿态增量)。相对位姿误差可以给出局部精度,例如slam系统每米的平移或者旋转漂移量。

evo_rpe tum data.tum pos_and_quate.txt  -r angle_deg --delta 1 --delta_unit m -va --plot --plot_mode xz --save_plot ./VIO --save_results /home/sun/evo/mh_01_easy/ours_rpe.zip

命令的含义为 求每米考虑旋转角的rpe,以详细模式显示并画图。
其中-r表示ape所基于的姿态关系

不添加-r/–pose_relation和可选项,则默认为trans_part。
–d/–delta表示相对位姿之间的增量,–u/–delta_unit表示增量的单位,可选参数为[f, d, r, m],分别表示[frames, deg, rad, meters]。–d/–delta -u/–delta_unit合起来表示衡量局部精度的单位,如每米,每弧度,每百米等。其中–delta_unit为f时,–delta的参数必须为整形,其余情况下可以为浮点型。–delta 默认为1,–delta_unit默认为f。

当在命令中加上–all_pairs,则计算rpe时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol控制–all_pairs模式下的相对增量的容差(relative delta tolerance)。需要注意–all_pairs下不能使用–plot函数。

3. evo_config 全局设置和配置文件操作

evo_config set 进行参数设置
下面是几个常用的参数,其含义以及可选项

例如命令
evo_config set plot_seaborn_style whitegrid 将画图背景更改成白色网格
evo_config set plot_fontfamily serif plot_fontscale 1.2 将字体改为衬线型并调为1.2倍大小
evo_config set plot_reference_linestyle - 将画图所使用的线型改为 -
evo_config set plot_figsize 10 9 将所画图的图像大小调整为10 9(宽 高)

evo_config reset 将参数还原到默认值

evo_config generate 将命令行参数转换成–out指定的.json文件
例如:evo_config generate --pose_relation angle_deg --delta 1 --delta_unit m --verbose --plot --out rpe_config.json

4. evo_traj 轨迹管理的主要工具

evo_traj可以打开任意多个轨迹,查看统计信息。-v表示以详细模式显示,–full_check可以对轨迹进行检查。=

evo_traj euroc MH_data1.csv MH_data3.csv -v --full_check

如果需要将轨迹对齐(-a/ --align, -s / --correct_scale, --n_to_align),则需要利–ref指定参考轨迹。例如evo_traj bag ROS_example.bag ORB-SLAM S-PTAM --ref groundtruth -s

因euroc格式只对euroc数据集的groundtruth数据有意义,所以没有–save_as_euroc。
evo_traj euroc data.csv --save_as_tum

可通过 evo_traj +数据格式 + --help查看更多参数的含义以及如何使用。例如
evo_traj euroc --help

5. evo_res 进行结果比较

evo_res --help可查看可选参数含义。

evo其他常用命令

3. ref

  1. https://github.com/MichaelGrupp/evo/wiki/evo_traj
  2. https://github.com/MichaelGrupp/evo/wiki
  3. https://github.com/MichaelGrupp/evo
  4. 【SLAM】评估轨迹误差,手写ATE、RPE对比EVO

SLAM精度测评——EVO进阶相关推荐

  1. SLAM精度测评——EVO

    1.install GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM 注意:安装好依赖 ...

  2. ORB_SLAM2及其他SLAM精度测评

    ORB_SLAM2及其他SLAM精度测评 测试工具:https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark ...

  3. SLAM精度测评——rpg_trajectory_evaluatio

    1.  install https://github.com/ccxslam/rpg_trajectory_evaluation#install 下载catkin_simple:https://git ...

  4. SLAM轨迹测评工具evo使用

    evo主要有以下几种命令: evo_ape : 计算绝对位姿误差 evo_rpe : 计算相对位姿误差 evo_traj : 轨迹管理的主要工具(常用来绘制轨迹) evo_config : 全局设置和 ...

  5. SLAM评测工具EVO常用功能介绍【正在刷夜的李哈哈】

    看完这个我觉得你肯定会用evo了 前言 官方网页介绍 实际使用方法 绘制轨迹:evo_traj 比较绝对位姿误差:eva_ape 比较相对位姿误差:evo_rpe 如何对比kitti数据集下的轨迹(k ...

  6. 一种SLAM精度评定工具——EVO使用方法详解

    evo工具github链接:link evo_ape 计算绝对位姿误差 绝对位姿误差,常被用作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性. 命令语法:命令 ...

  7. SLAM精度评估—从二维到三维

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨lovely_yoshino 来源丨古月居 简介 最近在群里划水时,看到很多初学的SLAMer面 ...

  8. SLAM精度评估常见问题——GPS时间戳与bag包时间戳如何对齐

    在使用evo进行精度评估时,由于evo是通过时间戳来进行配准和比较的,为了使结果更准确,需要将GPS与bag包的时间戳进行转换对齐 在这里更方便的方法是转换GPS时间戳到bag包 首先查看GPS文件 ...

  9. ubuntu18.04安装SLAM评价工具evo

    参考:1. https://blog.csdn.net/haner27/article/details/116709470 2. https://blog.csdn.net/haner27/artic ...

最新文章

  1. PaaS模式创新:实现应用可移植性
  2. 015_Vue生命周期
  3. springboot+IntelliJ IDEA实现热部署
  4. 24年前华为招聘广告是什么样的?
  5. 苹果MAC系统的安装
  6. 【AtCoder - 4244 】AtCoder Express 2 (区间dp 或 暴力枚举,思维)
  7. 如何在Eclipse配置Tomcat
  8. 无监督学习与有监督学习的本质区别是什么_深度学习使用无监督学习检测模式...
  9. centos 7 升级python2.7 到3.5
  10. 宗地图绘制要求和规范_地籍图、宗地图、房产图的制图规范
  11. CoreOS裸机安装步骤(亲测)
  12. python中for语法
  13. word封面下划线对齐
  14. C++ TCP Socket的使用(阻塞)
  15. 电脑常用的快捷键大全分享。
  16. raw的服务器镜像是什么系统,如何将Ceph Raw格式镜像转换成Qcow2格式并上传云平台创建云主机...
  17. 基于IDEA Plugin插件开发,撸一个DDD脚手架
  18. HOOK SSDT 实现内核级的进程保护
  19. 【今日学长】来自柚子帮学长--留学生自用英语写作润色工具分享
  20. java实现购物券消费方案

热门文章

  1. 西北师范计算机考研调剂,西北师范大学研究生调剂
  2. react 组件连动效果_react-redux应用之独立组件联动实例
  3. matlab 如何代码自已标注_MATLAB概述
  4. python简单装饰器_简单介绍Python装饰器(一)
  5. 语言小型心形图案代码_c语言心形告白代码实现
  6. java调用npoi_NPOI导出数据到Excel
  7. python生成试卷制卷系统_Python 读写文件 小应用:生成随机的测验试卷文件
  8. linux系统怎样连手机,Linux下手机与蓝牙的连接配置
  9. 机器学习(实战)facebook地址预测
  10. Windows下PCL1.9.1配置(编译源码)