ros中SLAM的EVO、APE测评——SLAM精度测评(一)

这篇具有很好参考价值的文章主要介绍了ros中SLAM的EVO、APE测评——SLAM精度测评(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用于处理、评估和比较里程计和SLAM算法的轨迹输出。

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

evo工具github地址:Home · MichaelGrupp/evo Wiki · GitHub

0 安装

安装方式极其简单,采用pip安装:

pip install evo --upgrade --no-binary evo

或者通过github下载源码后(https://github.com/MichaelGrupp/evo),使用源码安装:

pip install --editable . --upgrade --no-binary evo

安装时会自动安装相关依赖项。

     入门

① 基础指令
evo绘制轨迹的指令为:evo_traj,后跟必要参数有:数据的格式(tum/kitti/bag/euroc等)+ 轨迹文件。轨迹文件可以有多个,例如:

evo_traj tum traj1.txt traj2.txt

这个指令只是显示轨迹的基本信息,若要绘制轨迹,则增加可选参数 -p 或 --plot

evo_traj tum traj1.txt –p

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

 ② 轨迹对齐

我们时常需要将估计轨迹与真实轨迹同时绘制,可采用指令:

evo_traj tum realTraj.txt estTraj.txt -p

存储时轨迹多为相对位置变化,所以绘制出的轨迹在初始位置上存在一定的位置和角度偏移。

这时我们采用对齐指令将两条轨迹进行对齐。为此我们需要通过--ref参数指定参考轨迹,并增加参数-a(或--align)进行对齐(旋转与平移)

evo_traj tum estTraj.txt --ref realTraj.txt -p -a

③ 轨迹尺度缩放

单目相机会存在尺度的不确定性,evo_traj 支持使用-s(或 --correct_scale)参数进行Sim(3)上的对齐(旋转、平移与尺度缩放)

可以在命令行通过-h参数查看当前evo指令的参数及相关说明。例如:

evo_traj tum –h

 1 精度测评

1.1 ape与rpe

evo_ape  绝对位姿误差(absolute pose error),用于整体评估整条轨迹的全局一致性

evo_rpe  相对位姿误差(relativeposeerror),用于评价轨迹局部的准确性。 

1.2 evo_traj的可选参数

       轨迹对齐-a与尺度缩放-s,若增加可选参数-p,可以绘制误差相关曲线

evo_ape tum realTraj.txt estTraj.txt -a –s -p

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

 注意:在进行评估时,若经过了缩放,在命令行中应将真实轨迹(参考轨迹)放在估计轨迹(计算轨迹)前方,避免在缩放时参考轨迹错误而造成误差被错误缩放。

1.3 格式互相转换

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

 example1 EuRoC→TUM,输出为data.tum

evo_traj euroc data.csv --save_as_tum

 example1 EuRoC→kitti,输出为data.kitti

evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti

2 轨迹绘图工具

evo_traj 用于分析、绘制或导出一个或多个轨迹的工具

evo_res 用于比较来自evo_ape或evo_rpe的一个或多个结果文件的工具

evo_fig (实验性)用于重新打开序列化绘图的工具(与--serialize_plot一起保存)

evo_config 用于全局设置和配置文件操作的工具

使用--help调用命令以查看选项,例如evo_ape --help。Tab命令行参数的完成在类UNIX系统上可用。

3 使用例程

3.1 evo_traj 绘制多条轨迹

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

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

 3.2 evo_ape 在轨迹上运行测评

例如,在这里,我们使用evo_ape(KITTI_00_gt.txt是参考(地面真相))计算ORB-SLAM和S-PTAM的两条轨迹的绝对姿态误差,并绘制并保存单个结果。evo_res的压缩文件:

First trajectory (ORB Stereo):

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

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

Second trajectory (S-PTAM):

evo_ape kitti KITTI_00_gt.txt KITTI_00_SPTAM.txt -va --plot --plot_mode xz --save_results results/SPTAM.zip

 ros中SLAM的EVO、APE测评——SLAM精度测评(一)

3.3 evo_res 从一个度量中处理多个结果

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

        打印信息和统计信息(默认)打印结果并将统计信息保存在表格中。在这里,我们使用上面的结果生成一个图和一个表:

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

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

4 应用

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

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

evo_traj euroc data.csv --save_as_tum

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

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

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

timestamp x y z q_x q_y q_z q_w

ros中SLAM的EVO、APE测评——SLAM精度测评(一)

4.2 "TUM数据转换成kitti格式"

evo_traj tum traj_1.txt  traj_2.txt  traj_3.txt  --save_as_kitti

4.3 "TUM数据转换成bag格式"

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

 4.4. 轨迹对齐

当轨迹使用不同的传感器坐标系,或者轨迹之间有旋转平移等变换时,可以使用 "--align" 参数进行轨迹对齐, 使用 "--correct_scale"进行轨迹放缩。一个例子,如下面的命令所示。

注意:

  • 这里对比的轨迹,应该具有相同数量的位姿(相同数量的行),当然也应该是相同数量的列(位姿的表示方法相同)
  • 同时使用align参数,应该指定reference(即指定"--ref"参数)
  • evo_traj tum KeyFrameTrajectory.txt --ref=KITTI_02_gt.txt -p --plot_mode=xz --correct_scale --align 

参考文献

https://github.com/MichaelGrupp/evo/wiki

GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM文章来源地址https://www.toymoban.com/news/detail-417491.html

到了这里,关于ros中SLAM的EVO、APE测评——SLAM精度测评(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SLAM和里程计评估工具——evo使用方法全解

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

    2024年02月08日
    浏览(48)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹

    ORB-SLAM3算法1 已成功编译安装ORB-SLAM3到本地,本篇目的是用 EuRoc 开源数据来运

    2024年02月08日
    浏览(42)
  • 轨迹评估工具使用:evo安装以及学习

    核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差。支持多种数据集的轨迹格式( TUM、KITTI、EuRoC MAV、ROS的bag ),同时支持这些数据格式之间进行相互转换。在此仅对其基本功能做简要介绍。 evo工具github地址 在终端使用安装命令即可: 注:需要安装一下相关的

    2024年02月06日
    浏览(38)
  • 【ROS知识】比较ROS1和ROS2在处理launch的不同

            在处理launch过程中,ROS1和ROS2还是有些差别的,因为文件结构不同,不能直接搬用。这里将两者建立过程做一个比对,以提升概念的清晰度。         在ROS2中,单独的launch文件是一个python文件,因此脱离ros2环境也能启动,问题是,如果launch文件添加到ros2的包内,如

    2024年02月09日
    浏览(45)
  • SLAM算法评测工具——开源工具EVO(以VINS为例)

    EVO库是一个很方便的开源库(Python package for the evaluation of odometry and SLAM), evo是一个很好的测评工具,它可以根据时间戳将轨迹进行对齐,同时可以将不同尺度的轨迹按照你指定的标准轨迹进行拉伸对齐,并可以算出均方差等评定参数,用于测评slam算法性能。 github链接:

    2023年04月21日
    浏览(42)
  • 一种用于态势评估的安全数据处理系统(JSP+java+springmvc+mysql+MyBatis)

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。   在复杂多变的安全环境中,对各种安全数据进行实时有效的态势评估对于保障国家安全、社会稳定和人民生命财产安全具有重要意义。然而,传统的安全数据处理系统往往存在

    2024年04月14日
    浏览(44)
  • 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日
    浏览(34)
  • 用evo工具分析ORB-SLAM2运行TUM,KITTI,EuRoC数据集轨迹

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

    2024年03月21日
    浏览(49)
  • 商用密码应用与安全性评估要点笔记(密评管理测评要求、测评过程指南)

    4.5 密评管理测评要求 词条 内容 层面 管理制度(包括6个测评单元) 单元-1 具备密码应用安全管理制度(1-4级) 测评指标:具备密码应用安全管理制度,包括人员管理、密钥管理、建设运行、应急处置、密码软硬件及介质管理等制度 测评对象:安全管理制度类文档 测评实施

    2024年02月01日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包