SLAM和里程计评估工具——evo

evo(https://michaelgrupp.github.io/evo/)是一个用于SLAM和里程计结果评估的python工具包,其提供了十分丰富的位姿分析和数据可视化功能。工具包的安装可参见github主页,基本如下可实现简单的一键安装,这里不再赘述。

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

evo数据格式

evo目前支持以下多种常见的轨迹格式:

  • TUM数据集:一行8个数据,依次为time、 p x p_x px p y p_y py p z p_z pz q x q_x qx q y q_y qy q z q_z qz q w q_w qw,数据之间以空格分割,最常用的数据格式;
  • KITTI数据集:一行12个数据,是将位姿变换矩阵 T \bm{T} T按行连接构建成行向量得到的,由于该数据不带时戳,一般不建议用来进行数据分析;
  • EuRoc数据集:一行17个数据,除了和TUM一样包时间和位姿以外,还有IMU的零偏数据,在使用该数据集时经常会出现格式错误,因此一般也会转为TUM格式后再进行评估;
  • ROS bagfile:包含geometry_msgs/PoseStampedgeometry_msgs/TransformStampedgeometry_msgs/PoseWithCovarianceStampednav_msgs/Odometry任意一种topic的bag文件。

evo命令行工具

evo包括两个带尺度的评估工具和四个简单的工具:

Metrics工具

  • evo_ape:绝对位姿评估工具;
  • evo_rpe:相对位姿评估工具;

简单工具

  • evo_traj:轨迹可视化工具
  • evo_res:结果评估工具
  • evo_fig:绘图查看工具
  • evo_config:evo配置工具

在上述工具中,我们最常用的为evo_apeevo_trajevo_res这三个。另外evo_rpe本质上和evo_ape并没有区别,因此下面我们以evo_ape为例,实际应用中根据需求替换即可。

使用evo进行轨迹可视化(evo_traj

轨迹可视化工具的调用格式如下:

# evo_traj [数据格式] [traj_1] [traj_2] .. --ref=[ground_truth] -p -va
# example:
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p -vas --plot_mode=xz

在所有参数中,必要的参数只有数据集格式和需要可视化的轨迹文件,evo_traj可以同时可视化多个文件,并没有数量限制。

各可选参数作用如下:

  • --ref=[ground_truth]:该选项明确了轨迹可视化中所需使用的标称轨迹文件,使用该选项后,evo会以灰色虚线绘制标称轨迹;
  • -vas:该选项表示将所有轨迹和标称轨迹在 S E ( 3 ) SE(3) SE(3)上进行位姿对齐和尺度对齐(其中-a选项是位姿对齐,-s选项是尺度对其,两者可以单独开启,-v未发现有何作用);
  • -p: 该选项表示开启绘图,否则我们只能在控制台看见结果,而不会得到有效的可视化结果。evo绘图默认是3D轨迹图,我们也可以向例子中一样进一步使用--plot_mode=xz命令其只绘制 x z xz xz平面的二维图。

evo_traj会如下所示分别绘制各估计轨迹和标称轨迹的三维轨迹对比、三轴位置对比以及三轴姿态角对比。
在这里插入图片描述在这里插入图片描述在这里插入图片描述此外, evo_traj还可以进行不同位姿数据格式之间的转换,只需使用命令行参数--save_as_bag--save_as_kitti--save_as_tum即可转换为对应的数据格式(没有EuRoc是因为EuRoc位姿数据的格式和TUM一样,不同的是真值文件)。需要注意的是,KITTI数据格式由于没有时戳,不能转换为其他格式。

使用evo可视化误差(evo_ape

该工具调用方式如下:

# evo_ape [format] [ground_truth] [traj_1] [traj_2] ... [options]
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/ORB.zip

options中大多数参数同evo_traj一样,这里不再赘述,唯一不同的命令航参数是--save_results,该参数允许我们将evo_ape的结果存储在一个zip文件中,后后续的evo_res评估使用。

该工具会显示如下所示的轨迹误差曲线和误差热力图。
在这里插入图片描述在这里插入图片描述

使用evo进行详细评估(evo_res

该工具调用方式如下,最后的--save_table命令会将分析结果存储为一个csv文件:

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

该工具的分析结果较多,这里就不一一贴图了。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
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 ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值