从零入门激光SLAM(十二)——evo工具箱

本文介绍了SLAM领域的在读博士关于如何通过整理笔记帮助他人快速学习激光SLAM,重点讲解了EVO工具包,包括其功能、安装、使用方法以及评估工具如evo_ape和evo_rpe在轨迹对比和精度评估中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看完会有一定的收获。如有不对的地方欢迎指出,欢迎各位大佬交流讨论,一起进步。博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。

SLAM和里程计评估工具——evo - 灰信网(软件开发博客聚合) 
evo详细参考见上述链接

一、简介

EVO代表"Evaluating Visual Odometry and SLAM systems",是一组用于比较和评估视觉里程计(Visual Odometry,VO)和SLAM(Simultaneous Localization and Mapping)系统的工具和方法。EVO工具箱提供了一种用于评估VO和SLAM算法输出轨迹与真实轨迹之间差异的方式。它可以从ROS数据包、KITTI数据集或者Euroc数据集等输入中读取数据,然后计算和显示VO和SLAM轨迹的误差、相对运动信息、以及其他性能指标。

二、安装使用

  • 安装 

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

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

Metrics工具

  1. evo_ape:绝对位姿评估工具;
  2. evo_rpe:相对位姿评估工具;

简单工具

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

主要用途是显示轨迹
显示一个轨迹

evo_traj tum a.txt -p

显示多个轨迹

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

--ref=[ground_truth]:该选项明确了轨迹可视化中所需使用的标称轨迹文件,使用该选项后,evo会以灰色虚线绘制标称轨迹;

-p 画图像

--plot_mode=xz 画二维图像,也可以xy、yz自己选择

--align_origin 匹配到统一起点

–align/-a采用SE(3) Umeyama对齐,只处理平移和旋转
–align --correct_scale/-as采用Sim(3) Umeyama对齐,同时处理平移旋转和尺度
–correct_scale/-s仅对齐尺度

--save_plot ./output.pdf  保存图片为PDF

-- full_check可以对轨迹进行检查

轨迹对比

三轴位置对比

三轴姿态角对比 

  • evo_ape/rpe

evo_ape kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt  -r full -p -vas --plot_mode=xz --save_results --delta 100
evo_rpe kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt  -r full -p -vas --plot_mode=xz --save_results --delta 100

ape是绝对误差,rpe是相对误差,默认第一个文件是ground truth

该工具会显示如下所示的轨迹误差曲线和误差热力图。

--save_results,该参数允许我们将evo_ape的结果存储在一个zip文件中,后后续的evo_res评估使用。

-r 表示ape/rpe所基于的姿态关系

--delta 100 表示100m统计一次

  •  evo_res

对比多个方法与真值的精度

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

  • evo_config

evo_config用于保存配置文件,可以把自己的参数保存下来,这样就可以避免每次都输入相同的参数。 

1、生成配置文件

evo_config generate --pose_relation angle_deg --delta 1 --delta_unit m --verbose --plot --out rpe_config.json

生成json配置文件如下所示

{
    "delta": 1.0,
    "delta_unit": "m",
    "plot": true,
    "pose_relation": "angle_deg",
    "verbose": true
}

2、调用生成的配置文件 

evo_rpe groundtruth.txt estimate2.txt -c rpe_config.json

 

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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

桦树无泪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值