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

前言

        本帖的主要内容是整理evo的使用方法及各种命令,不含安装步骤及过程,还未安装的请移步其他博主。

        evo目前支持的公开数据集格式有:TUM、KITTI、EuRoC以及ROS bagfile。如果使用的数据集格式为这些中的某一种,那么无须额外的数据格式处理,就可以直接使用evo进行精度相关内容评估。

一、evo_traj 轨迹管理

        可以打开任意多个轨迹,查看统计信息,并且可以统计当前文件中所对应的轨迹长度。

evo_traj tum results.txt groundtruth.txt -v -p --full_check

        [-v]:以详细模式显示;[--full_check]:可以对轨迹进行检查。(详见二、evo_ape中的可选项补充)

evo_traj tum results.txt --ref=groundtruth.txt -va -p --save_plot traj_va_results.pdf

        [-a]:位姿对齐;[-s]:尺度对齐;[--plot_mode=xy]:画图模式为xy二维图。(详见二、evo_ape中的可选项补充)

        补充:转换轨迹格式

evo_traj tum data.csv --save_as_kitti
*–save_as_bag–save_as_kitti–save_as_tum
bagyesyesyes
eurocyesyesyes
kittino(no timestamps)yesno(no timestamps)
tumyesyesyes

二、evo_ape 计算绝对轨迹误差

        APE绝对位姿误差,常被称作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局精度和全局一致性。

        1、十四讲中的定义:    

                (1)位姿均方根误差:

                 (2)平移均方根误差:

         说明:假设估计位姿和实际位姿时间戳对齐,总帧数都为n;算法估计位姿 P1 , P2 , … , Pn ∈ SE(3) ;真实位姿 Q1 , Q2 , … , Qn ∈ SE(3)。

        2、实际情况:

        估计位姿和groundtruth通常不在同一坐标系中,因此我们需要先将两者对齐。对于双目SLAMRGB-D SLAM,尺度统一,因此我们需要通过最小二乘法计算一个从估计位姿到真实位姿的转换矩阵S ∈ SE(3);对于单目相机,具有尺度不确定性,我们需要计算一个从估计位姿到真实位姿的相似转换矩阵S ∈ Sim(3)。
        进而,实际上每一帧对应的位姿误差为:

         对应的位姿误差和平移误差变为:

         3、命令:

命令语法:命令 数据集格式 参考轨迹 估计轨迹 [可选项]

数据集格式包括euroc、tum等数据格式;

参考和估计轨迹中填入txt或csv格式文件;

可选项有对齐命令、画图、保存结果等。

        可选项补充:

        (1)-r/–pose_relation可选参数:选择平移还是旋转误差

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

-r/–pose_relation可选参数含义
full表示同时考虑旋转和平移误差得到的ape,无单位(unit-less)
trans_part考虑平移部分得到的ape,单位为m
rot_part考虑旋转部分得到的ape,无单位(unit-less)
angle_deg考虑旋转角得到的ape,单位°(deg)
angle_rad考虑旋转角得到的ape,单位弧度(rad)

        (2)  -v、-a、-s可选项:对齐方式选择(可以任意组合,例如:-va、-vas等)

命令含义
-vverbose mode,以详细模式
-a / –align采用SE(3) Umeyama对齐,只处理平移和旋转
-as / –align --correct_scale采用Sim(3) Umeyama对齐,同时处理平移旋转和尺度
-s / –correct_scale仅对齐尺度

        对齐效果(摘自参考文献):

         (3)绘图、保存文件及帮助可选项:

        示例:使用TUM数据集,计算考虑平移部分误差的ape,进行平移和旋转和尺度对齐,以详细模式显示,保存画图结果为PDF文件并保存计算结果为zip文件。

 evo_ape tum groundtruth.txt results_new.txt -r trans_part -vas --plot --save_plot ape_trans_vas.pdf --save_results ape_trans_vas.zip

 三、evo_rpe计算相对轨迹误差

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

 1、十四讲中的定义:    

                (1)相对轨迹误差:

                (2)只取平移部分(△-固定时间差):

         说明:假设估计位姿和实际位姿时间戳对齐,总帧数都为n;算法估计位姿 P1 , P2 , … , Pn ∈ SE(3) ;真实位姿 Q1 , Q2 , … , Qn ∈ SE(3)。

        2、实际情况:

        每一帧对应的相对位姿误差为:

         相当于直接测量里程计的误差。Δ的选取直接影响RMSE的结果,为了能综合衡量算法表现,可以遍历 Δ 的所有取值如下:

        3、命令:

evo_rpe tum groundtruth.txt results.txt -r trans_part -d 1 -u m -va -p --save_plot rpe_trans_va.pdf --save_results rpe_trans_va.zip

        –d/–delta:表示相对位姿之间的增量;–u/–delta_unit:表示增量的单位,可选参数为[f, d, r, m],分别表示[frames, deg, rad, meters];合起来表示每米、每百米等。–d 默认为1,–u默认为f。

四、evo_res 结果比较

evo_res results1.txt results2.txt -v -p --save_plot comparsion.pdf

五、evo_config 全局设置和配置文件操作

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 将参数还原到默认值
参数含义可选项
plot_export_format输出图像时图像存储格式常用png,pdf等
plot_linewidth作图时线的宽度matplotlib支持的宽度,默认1.5
plot_reference_color图像中参考轨迹的颜色black,red,green等
plot_reference_linestyle参考轨迹的线型matplotlib支持的线型,默认–
plot_seaborn_style图像背景和网格whitegrid,darkgrid,white,dark
plot_split是否分开显示/存储图像false/true
plot_figsize画图的图像大小默认宽高均为6,可使用其他值
table_export_format表格数据输出格式常用 csv,excel,latex,json

        

参考链接:

        1、SLAM精度评定工具EVO使用方法详解_evo slam_wongHome的博客-CSDN博客

        2、一种SLAM精度评定工具——EVO使用方法详解_dcq1609931832的博客-CSDN博客

        3、SLAM和里程计评估工具——evo - 灰信网(软件开发博客聚合)

        4、ORBSLAM数据集、evo评估工具介绍_orbslam evo_Z-way的博客-CSDN博客

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SLAM精度评估中的EVO是指使用EVO工具评估SLAM系统的轨迹误差。EVO是一个开源的工具,用于评估SLAM系统的性能。它提供了一系列命令和功能,可以计算和可视化SLAM系统的轨迹误差。 在EVO中,有几个常用的命令可以用来评估SLAM系统的轨迹误差。其中,evo_traj命令用于评估轨迹误差,可以使用手写的ATE(绝对位姿误差)和RPE(相对位姿误差)来比较SLAM系统的性能。\[1\] 相对位姿误差主要用于比较运动(姿态增量),而不是进行绝对位姿的比较。相对位姿误差可以给出局部精度,例如SLAM系统每米的平移或旋转漂移量。可以使用evo_rpe命令来计算相对位姿误差,并通过设置参数来进行可视化和保存结果。\[2\] 另外,evo_ape命令可以用于计算ATE(绝对位姿误差),并提供了可视化和保存结果的功能。可以使用该命令来评估SLAM系统在KITTI数据集上的性能。\[3\] 总之,EVO是一个用于评估SLAM系统性能的工具,可以通过计算和可视化轨迹误差来评估SLAM系统的精度。可以使用evo_traj、evo_rpe和evo_ape等命令来进行评估和分析。 #### 引用[.reference_title] - *1* *2* [SLAM精度测评——EVO进阶](https://blog.csdn.net/Darlingqiang/article/details/123534388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ros中SLAMEVO、APE测评——SLAM精度测评(一)](https://blog.csdn.net/Yangy_Jiaojiao/article/details/124419966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AndyVictory

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值