• 1.install

GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM

注意:安装好依赖!

sudo apt install python-pip
pip install evo --upgrade --no-binary evo
or
pip install evo --upgrade --no-binary evo --user
pip install numpy --upgrade --user
  • 2.数据格式(data formal):TUM/EuRoC/Kitti数据集

  • 格式转换
  • 3数据格式转换

  • 3.1"把EuRoc的数据格式转化成TUM数据格式"

evo_traj euroc data.csv --save_as_tum

将生成的 KeyFrameNavStateTrajectory.txt 文件,格式如下。总共17位  (timestamp;position3;q4;v3;bw3;ba3)

转化成符合TUM 形式的轨迹文件格式:8位

timestamp x y z q_x q_y q_z q_w

  • 3.2"TUM数据转换成kitti格式"

evo_traj tum traj_1.txt  traj_2.txt  traj_3.txt  --save_as_kitti
  • 3.3"TUM数据转换成kitti格式"

  • " 把一些文件的数据格式转化成rosbag"
  • evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag
  • 4.evo使用

 evo_traj euroc v203_truth.csv --plot

  • 2.Plot multiple trajectories

  • Here, we plot two KITTI pose files and the ground truth using evo_traj:
cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz
  • 3.Run a metric on trajectories

  • 3.1 evo_ape

绝对位姿误差,常被用作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性。
命令语法:命令 格式 参考轨迹 估计轨迹 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。

For example, here we calculate the absolute pose error for two trajectories from ORB-SLAM and S-PTAM using evo_ape (KITTI_00_gt.txt is the reference (ground truth)) and plot and save the individual results to .zip files for evo_res:

mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -r full
-va --plot --plot_mode xz --save_results results/ORB.zip

命令的含义为:计算考虑平移和旋转部分误差的ape,进行平移和旋转对齐,以详细模式显示,保存画图并保存计算结果。
命令运行后得到结果如下图所示

其中-r表示ape所基于的姿态关系

不添加-r/–pose_relation和可选项,则默认为trans_part。

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

详情:

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

  • 3.2 evo_rpe

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

命令语法:命令 格式 参考轨迹 估计轨迹 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。
常用命令示例:

evo_rpe euroc data.csv V102.txt -r angle_deg --delta 1 --delta_unit m
-va --plot --plot_mode xyz --save_plot ./VIO --save_results ./VIO.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。
-v --plot --plot_mode xyz --save_results results/VINS.zip --save_plot等同evo_ape中所讲。
当在命令中加上–all_pairs,则计算rpe时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol控制–all_pairs模式下的相对增量的容差(relative delta tolerance)。需要注意–all_pairs下不能使用–plot函数。
可通过 evo_rpe +数据格式 + --help查看更多参数的含义以及如何使用。例如
evo_rpe euroc --help

  • 4.Process multiple results from a metric

evo_res can be used to compare multiple result files from the metrics, i.e

  • print infos and statistics (default)
  • plot the results
  • save the statistics in a table

Here, we use the results from above to generate a plot and a table:

evo_ape/evo_rpe中将结果保存为.zip文件后,可以利用evo_res对不同的结果进行比较。

evo_res results/*.zip -p --save_table results/table.csv

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

evo其他常用命令

结果如下所示:

参考evo: GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM

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

  1. SLAM精度测评——EVO进阶

    1. 基本概念 1.1 Umeyama算法 ATE: evo_ape tum state_groundtruth_estimate0/data.tum orb2/CameraTrajectory.tx ...

  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精度评估常见问题——GPS时间戳与bag包时间戳如何对齐

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

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

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

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

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

最新文章

  1. R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行center中心化、scale标准化(每个数据列减去平均值、除以标准差)、设置参数为center和scale
  2. 卷积神经网络(cnn) 手写数字识别
  3. 2021年春季学期-信号与系统-第十三次作业参考答案-第六小题
  4. ASP.NET PipeLine #Reprinted#
  5. PHP基础知识--函数
  6. Spring For All 顶级Spring综合社区服务平台
  7. qt中socket通信流程图_Qt学习 之 Socket通信
  8. Abaqus 两套常用单位
  9. 比较好的论坛(个人认为)
  10. mysql 没有 myd_MySQL中找不到.myd文件的问题
  11. 图扑 Web 可视化引擎在仿真分析领域的应用
  12. java支付宝网页授权_轻松实现支付宝服务窗网页授权从配置到获取授权获取用户信息...
  13. 极客时间限时免费开放全部课程!别纠结了选这几门!
  14. 合服 两个服务器都有什么作用,阴阳师合服是什么意思?合服合区问题汇总详解[多图]...
  15. 自动化测试 - 12306火车票网站自动登录工具
  16. jquery实现二级导航下拉菜单效果实例
  17. 「时序数据库」时间序列数据与MongoDB:第一部分-简介
  18. 保护终端信息安全的意义何在?
  19. 无人机动力系统测试的必要性
  20. sdk无法打开的原因,值得新手参考

热门文章

  1. 搭建java_搭建java开发环境
  2. java 类的存储结构设计_Doris存储层设计介绍1——存储结构设计解析
  3. 多表连接去重复 mysql_连接多个表时避免重复条目(MySQL)
  4. iis6如何升级iis7_IIS修复IIS出现错误后如何完全卸载重装
  5. 使用Python,OpenCV进行平滑和模糊
  6. 机器学习中的一些概念
  7. 相机标定 matlab opencv ROS三种方法标定步骤(3)
  8. 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法
  9. 【SLAM建图和导航仿真实例】(一)- 模型构建
  10. Udacity机器人软件工程师课程笔记(一)-样本搜索和找回-基于漫游者号模拟器