轨迹评估工具使用:evo安装以及学习

这篇具有很好参考价值的文章主要介绍了轨迹评估工具使用:evo安装以及学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

evo是一款用于视觉里程计和slam问题的轨迹评估工具。

核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag),同时支持这些数据格式之间进行相互转换。在此仅对其基本功能做简要介绍。

evo工具github地址

一、安装

在终端使用安装命令即可:
注:需要安装一下相关的依赖

    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

二、相关命令的使用——格式转换

格式转换的三种后缀指令:
evo轨迹评估,学习,计算机视觉
不同数据的格式:
evo轨迹评估,学习,计算机视觉
进行不同文件之间格式转换的命令:

  1. EuRoc的数据格式转换成TUM数据格式
    evo轨迹评估,学习,计算机视觉
    命令行:
	evo_traj euroc data.csv --save_as_tum

然后会将17位数据的文件如图:
evo轨迹评估,学习,计算机视觉转化成符合TUM 形式的轨迹文件格式,8位格式文件,分别是“ timestamp x y z q_x q_y q_z q_w ”如下图:
evo轨迹评估,学习,计算机视觉

  1. TUM的数据格式转换成KITTI数据格式

跟上面的转换命令方式相似:

evo_traj tum traj_1.txt --save_as_kitti
  1. TUM的数据格式转换成Bag数据格式
evo_traj tum traj_1.txt  --save_as_bag

三、相关命令的使用——画图

3.1 画单个轨迹

例如以下的命令和所获得的图片:

 evo_traj euroc v203_truth.csv --plot

evo轨迹评估,学习,计算机视觉

3.2 画多个轨迹

例如evo自带的示例。

evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

多轨迹输出需要注意将轨迹对齐,单目相机还可以进行尺度矫正。

四、Run a metric on trajectories(在轨迹上运行指标)相关命令

4.1 evo_ape

绝对位姿误差,常被用作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性。
命令语法:命令 格式 参考轨迹 估计轨迹 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。
例如:使用evo_ape计算ORB-SLAM的结果轨迹和S-PTAM的轨迹之间的绝对姿态误差,其中KITTI_00_gt.txt是参考地面实况,并将单个结果绘制并保存到.zip文件中以供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,进行平移和旋转对齐,以详细模式显示,保存画图并保存计算结果。
命令运行后得到结果如下图所示
evo轨迹评估,学习,计算机视觉
其中 -plot 或者 -p 的意思为绘图
其中 -r 表示ape所基于的姿态关系,上面的命令里面所选择的参数为 “ full ”,如果不添加-r/–pose_relation和可选项,则默认为trans_part。
evo轨迹评估,学习,计算机视觉
其中 -v 表示verbose mode,即详细模式,-a表示采用SE(3) Umeyama对齐,其余可选项如下表所示。不加-s表示默认尺度对齐参数为1.0,即不进行尺度对齐。
(轨迹对齐-a与尺度缩放-s,这两个参数在 evo_traj、evo_ape、evo_rpe 里面都为可选参数)
evo轨迹评估,学习,计算机视觉
也可以用 evo_ape 评估两个文件的绝对位姿误差,例如:

evo_ape euroc  a.csv b.csv 或者 evo_ape kitti a.txt b.txt //evo支持 kitti、tum、euroc 这三个公开数据集格式

注:两个待比较的数据文件必须格式一致,都为kitti、tum或者euroc。
可以得到如下的结果:
evo轨迹评估,学习,计算机视觉
其中参数:

  • max:表示最大误差;
  • mean:平均误差;
  • median:误差中位数;
  • min:最小误差;
  • rmse:均方根误差;
  • sse:和方差、误差平方和;
  • std:标准差。

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

evo_ape tum --help

4.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,以详细模式显示并画图。结果如图所示
evo轨迹评估,学习,计算机视觉
其中-r表示ape所基于的姿态关系。参数表示效果与 evo_ape 的意义相同。不添加也默认为 trans_part。
除了 -r 以外还有:
–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
-va --plot --plot_mode xyz --save_plot ./VIO --save_results ./VIO.zip等同evo_ape中所讲。
当在命令中加上–all_pairs,则计算 rpe 时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol 控制 -all_pairs 模式下的相对增量的容差(relative delta tolerance)。需要注意 -all_pairs 下不能使用 -plot 函数。
注:可通过 evo_rpe +数据格式 + --help查看更多参数的含义以及如何使用。例如:

evo_rpe euroc --help

五、Process multiple results from a metric(处理指标中的多个结果)

evo_res 可用于比较指标中的多个结果文件:

  • print infos and statistics (default)(打印信息和统计信息(默认))
  • plot the results(绘制结果)
  • save the statistics in a table(将统计信息保存在表中)

例如我们使用上面的 evo_ape/evo_rpe 的结果保存为.zip 文件后,可以利用evo_res对不同的结果进行比较,并生成图和表格保存。命令如下:

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

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

六、evo其他常用命令

  • evo_fig:重新打开序列化图的工具
  • evo_config:用于全局设置和配置文件操作的工具

evo轨迹评估,学习,计算机视觉

七、使用evo遇到的问题

报错指令

[ERROR] Can’t align or sync without a reference
原因:没有引用导致无法对齐或同步,即无法使用 -a 或者 -s 。
解决方法:在evo的命令里面添加 --ref ,后面跟随需要进行平移和旋转的参考文件,同时保证数据格式ok即可。

报错指令:

[ERROR] TUM trajectory files must have 8 entries per row and no trailing delimiter at the end of the rows (space)
原因:生成的原始文件中偶尔存在空格等不是完全规范的tum结果文件。
解决方法:运行如下命令可以清除多余的空格。

cat results.txt | tr -s [:space:] > results_new.txt
报错指令:

[ERROR] TUM trajectory files must have 8 entries per row and no trailing delimiter at the end of the rows (space)
原因:对应的 tum 文件的数据的列数不是规定的八列(八列=时间戳+三维坐标+四元数)。
解决方法:编写代码将得到的数据结果变为八列。
注:为了使用evo进行绘图,需要格式准确,每一行数据需要顶格,数据间不能空格,需要删除多余空格,建议转换成逗号更保险。

报错指令:

[ERROR] found no matching timestamps between reference and test.txt with max. time diff 0.01 (s) and time offset 0.0 (s)
原因:两份需要做图的数据文件的时间戳对应不上。
解决方法:需要时间戳对应,或者把 txt 文件的时间戳改为 0、1、2、3…个数一样且对齐即可。
改列数和改时间戳代码可以参考此博文。文章来源地址https://www.toymoban.com/news/detail-741725.html

优秀参考博文

  1. SLAM精度测评——EVO;
  2. SLAM评估工具-EVO从安装到使用;
  3. EVO使用;
  4. 轨迹评估工具使用总结(一) evo从安装到入门;
  5. evo安装、evo使用方法详细介绍使用教程,SLAM轨迹精度评估工具,如何用来评估ORB-SLAM2生成的轨迹精度;

到了这里,关于轨迹评估工具使用:evo安装以及学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI]

    Reference: 高翔,张涛 《视觉SLAM十四讲》 视觉SLAM基础:算法精度评价指标(ATE、RPE) 在实际工程中,我们经常需要评估一个算法的估计轨迹与真实轨迹的差异来评价算法的精度。真实轨迹往往通过某些更高精度的系统获得,而估计轨迹则是由待评价的算法计算得到的。考虑一

    2023年04月08日
    浏览(31)
  • SLAM和里程计评估工具——evo使用方法全解

            本帖的主要内容是整理evo的使用方法及各种命令,不含安装步骤及过程,还未安装的请移步其他博主。         evo目前支持的公开数据集格式有: TUM、KITTI、EuRoC 以及 ROS bagfile 。如果使用的数据集格式为这些中的某一种,那么无须额外的数据格式处理,就可以

    2024年02月08日
    浏览(31)
  • 用evo工具分析ORB-SLAM2运行TUM,KITTI,EuRoC数据集轨迹

    在ORB-SLAM2的学习过程中,不可避免的会用到这些数据集来运行程序,并且还会将运行轨迹与相机真实轨迹作对比,下面就介绍使用evo工具分析SLAM常用TUM,KITTI,EuRoC数据集。SLAM数据集TUM,KITTI,EuRoC数据集的下载地址与真实轨迹文件的查找总结的博客链接。 可以使用evo工具将

    2024年03月21日
    浏览(36)
  • 标定工具Kalibr安装、使用及标定结果评估方法

    安装和配置 如果使用april tag标定板,设置aprilgrid.yaml配置文件  标定数据bag采集 采集单目标定数据时,注意:1.标定板的位姿尽量丰富一些,让tag尽量均匀分布在图像里 2.将相机视野划为9宫格,在每个宫格里进行【正视、上翻、下翻、左翻、右翻】五种图像帧(内参标定中没

    2024年02月16日
    浏览(25)
  • rosbag命令 | EVO工具 的使用

    目录  一 rosbag录制及查看 1 rosbag话题录制 2 rosbag信息查看 3 rosbag转换格式(bag2txt) 4 rosbag截取录制时间 二 EVO工具使用命令 1 evo_traj 命令 2 evo_ape命令 3 evo_rpe命令 3 evo_config命令 4 evo_res命令 5 evo_fig命令 1 rosbag话题录制 2 rosbag信息查看 3 rosbag转换格式(bag2txt) 4 rosbag截取录制时

    2024年01月21日
    浏览(32)
  • SLAM精度评定工具——EVO使用方法详解

    系统版本:Ubuntu20.04 ROS版本:Noetic EVO是用于处理、评估和比较里程计和SLAM算法的轨迹输出的工具。 注意:本文的评测是在kitti数据集下进行评测,其他的数据集也支持评测。 安装EVO,可以执行下面这条命令。 evo工具主要有6个常用命令     evo_ape:用于评估绝对位姿误差  

    2024年01月19日
    浏览(25)
  • msckf-vio 跑Euroc数据集,并用evo进行评估

    Euroc数据集主页:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets evo评估工具代码:https://github.com/MichaelGrupp/evo 向msckf-vio中添加保存位姿的代码,可参考 https://blog.csdn.net/xiaoxiaoyikesu/article/details/106308311 不过需要特别注意, 这里的lp[4]~[7]所对应的q的顺序应为x,y,z,w,

    2024年01月22日
    浏览(26)
  • EVO工具的使用,在写论文时常用到的基础命令、参数修改

    11.pip ,直接安装最新的稳定发行版; pip install evo --upgrade --no-binary evo 1.2.源码安装 从github上下载evo工具 git clone https://github.com/MichaelGrupp/evo.git 在evo路径下执行以下命令 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple evo --upgrade --no-binary evo 1) 数据集转换格式 保存/导出为其他格式:

    2024年02月07日
    浏览(40)
  • 深度学习入门--认识深度学习以及安装工具

    感谢李沐老师的教学视频以及《动手学深度学习》,视频总时长47h https://zh-v2.d2l.ai/chapter_preface/index.html https://www.bilibili.com/video/BV1if4y147hS/?spm_id_from=333.999.0.0vd_source=0cafd28c011c5492e6d7e39f1fd256d9 介绍深度学习经典和最新模型LeNet,ResNet,LSTM,BERT,.. 机器学习基础 损失函数、目标函数、

    2024年02月07日
    浏览(33)
  • 【RTB机器人工具箱学习记录】轨迹规划实例

    给定位置: 位姿插值: trinterp() trinterp(T0, T1, M) ​ T0:初始变换矩阵 ​ T1:结束变换矩阵 ​ M: 线性插值轨迹动画:(轨迹如上图左所示) 五次多项式插值轨迹动画:(轨迹如上图右所示,和上面用mtraj遍历方式的轨迹相同) 笛卡尔轨迹 ctraj() : TC = ctraj(T0, T1, N) ​ T0:初始变

    2023年04月22日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包