SLAM轨迹精度评估工具evo使用方法

(evo详细解释参考这里

一、evo_traj: 主要是用来画轨迹、输出轨迹文件、转换数据格式等功能

1. evo_traj 命令

当我们想要比较两个 topic 数据之间的不同时刻之间的偏差是,可以考虑用 evo_traj 命令来绘制轨迹。
evo共支持kitti、tum、euroc这三个公开数据集格式,同时也支持bag文件里的topic。

1.1 针对 bag 文件 使用 evo_traj 命令

evo_traj 的具体语法格式:

evo_traj  bag文件  话题名1 话题名2 ....  话题名n  [参数]

参数选项:参数-p 或 --plot 即可绘制出轨迹的图形两个 topic 对应的坐标曲线。

1.2 针对 kitti、tum、euroc 格式 使用 evo_traj 命令

为了能够得到更加清晰地轨迹曲线,这里输出曲线保存到 pdf 中。pdf 文件中的轨迹清晰度较高。
这里以 tum 格式为例。

evo_traj tum --ref=gt.txt 1.txt 2.txt 3.txt  -a  -p  --save_plot  ./output.pdf

执行上述指令后,运行的 evo_traj 命令结束后,就会在当前目录下生成轨迹文档 output.pdf

2.运行命令并查看效果

笔者主要想利用evo来评估amcl输出位姿的精度,这里以 /odom、/amcl_pose 做演示(仅仅作为演示,实际对位姿的评估一般不是这样来做的),来比较 /odom与 /amcl_pose 之间不同时刻位姿的偏差。

evo_traj bag data_pose_2020-07-25-17-19-16.bag /odom  /amcl_pose  -p

运行效果:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、evo_ape: 计算绝对位姿误差

1.evo_ape 命令 (evo详细解释参考这里

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

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

evo_ape kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyz

命令的含义为:计算考虑平移和旋转部分误差的ape,进行平移和旋转对齐,以详细模式显示,以 xyz 模式画图。
–delta 100表示的是每隔100米统计一次误差

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

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

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

命令运行后得到结果如下图所示:
在这里插入图片描述
在这里插入图片描述

三、evo_rpe: 用于评估相对位姿误差

1.evo_rpe 命令 (evo详细解释参考这里

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

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

evo_rpe kitti ground_truth.txt laser_odom.txt -r full --delta 100 --plot --plot_mode xyz

命令的含义为:计算考虑平移和旋转部分误差的rpe,进行平移和旋转对齐,以详细模式显示,以 xyz 模式画图。
–delta 100表示的是每隔100米统计一次误差

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

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

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

命令运行后得到结果如下图所示
在这里插入图片描述
在这里插入图片描述

参考链接:
[1] evo官方教程 https://github.com/MichaelGrupp/evo/wiki
[2] SLAM轨迹精度评估工具evo安装以及使用方法详细介绍,如何用来评估ORB-SLAM2生成的轨迹精度,评估激光雷达SLAM与视觉SLAM的轨迹精度,量化SLAM的误差 https://blog.csdn.net/u011341856/article/details/104594392#commentBox
[3] SLAM 轨迹评估工具EVO https://blog.csdn.net/crp997576280/article/details/105385240#21_TUM_37
[4 一种SLAM精度评定工具——EVO使用方法详解 https://blog.csdn.net/dcq1609931832/article/details/102465071]

<think>嗯,用户想了解如何使用EVO工具对TUM数据集进行评估,特别是在SLAM或里程计的上下文中。首先,我需要回忆一下EVO的基本用法和它支持的格式。EVO支持多种数据集格式,比如TUM、KITTI、EuRoC等。根据用户提到的TUM数据集,我需要确定EVO处理TUM格式的具体步骤。 接下来,用户的问题可能涉及到安装EVO、数据准备、运行评估命令以及结果的可视化。我需要分步骤解释这些过程。首先,安装EVO应该比较简单,可以通过pip安装,但要注意可能需要先安装一些依赖库,比如numpy和matplotlib。不过用户可能已经安装了这些,所以可能只需要给出基本的安装命令。 然后是数据准备部分。TUM数据集通常包含ground truth轨迹和估计轨迹,两种文件都需要符合TUM的格式。用户需要确保他们的估计轨迹文件是正确格式的,每行有时间戳、位置和四元数。可能需要提醒用户检查时间戳对齐的问题,或者是否需要同步时间戳,但EVO也有时间对齐的参数,比如--align或者--align_origin。 接下来是评估命令。用户可能需要知道如何运行绝对位姿误差(APE)或相对位姿误差(RPE)的计算。这里需要给出具体的命令示例,比如使用evo_ape或evo_rpe,指定轨迹格式和需要评估的维度(平移部分还是旋转部分)。同时,用户可能还需要可视化结果,比如绘制轨迹对比图,这时候可以用evo_traj命令,并加上--plot参数。 另外,用户可能关心如何解读结果,比如APE的RMSE值,中位数等指标。需要说明这些指标的含义,以及如何判断算法的性能好坏。比如,RMSE越小表示轨迹估计越准确。 还要注意引用相关的参考文献,比如用户提供的引用[1]、[2]、[3]、[4]中提到的TUM数据集的特点,比如包含准确的ground truth和时间同步,这可能影响评估的准确性。需要指出这些点,并适当引用。 可能用户的问题中还隐藏着更深层的需求,比如如何解决评估过程中遇到的常见问题,比如轨迹长度不一致,时间戳不匹配等。这时候可能需要给出一些处理建议,比如使用EVO的--align参数进行时间对齐,或者截断轨迹到相同长度。 最后,生成的相关问题需要围绕EVO工具的其他功能、处理其他数据集的方法,以及如何结合其他工具进行更深入的分析。比如,用户可能想知道如何将评估结果与其他算法比较,或者如何自动化评估流程。 总结一下,回答的结构应该是:安装EVO、数据准备、运行评估命令、可视化结果、结果解读,并引用相关文献。同时,生成的三个相关问题需要覆盖EVO的其他应用、数据预处理,以及与其他工具的结合。</think>### 如何使用EVO工具对TUM数据集进行评估? #### 1. **安装EVO工具** EVO是一个用于评估SLAM/里程计轨迹精度的开源工具,支持TUM、KITTI、EuRoC等数据集格式。 ```bash pip install evo --upgrade --no-binary evo ``` #### 2. **数据准备** - **TUM数据集要求**:轨迹文件需符合TUM格式(时间戳 + 平移和四元数姿态),例如: ``` 时间戳 x y z qx qy qz qw ``` - **需准备两个文件**: - **Ground Truth轨迹**(如`groundtruth.txt`)[^3] - **估计轨迹**(如`estimated_traj.txt`) #### 3. **运行评估** ##### 3.1 **绝对位姿误差(APE)** 计算估计轨迹与真值的全局误差: ```bash evo_ape tum groundtruth.txt estimated_traj.txt -va --plot ``` - `-va`:按所有维度(平移和旋转)分析 - `-p` 或 `--plot`:生成误差曲线图 ##### 3.2 **相对位姿误差(RPE)** 评估轨迹局部运动的累积误差: ```bash evo_rpe tum groundtruth.txt estimated_traj.txt -va --plot ``` ##### 3.3 **可视化轨迹对比** ```bash evo_traj tum estimated_traj.txt --ref=groundtruth.txt -p --plot_mode=xy ``` - `--plot_mode=xy`:显示二维轨迹投影 #### 4. **结果解读** - **APE指标**:重点关注`RMSE`(均方根误差)和`median`(中位数),数值越小精度越高。 - **RPE指标**:分析平移和旋转分量的误差分布,适用于动态环境下的鲁棒性评估。 #### 5. **注意事项** - **时间对齐**:若轨迹时间戳未同步,添加`--align`或`--align_origin`参数[^2]。 - **数据格式转换**:若估计轨迹为其他格式(如ROS bag),需先转换为TUM格式。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值