EVO——视觉里程计/SLAM轨迹评估工具
EVO——SLAM轨迹精度评估软件
EVO简介
evo是一款用于视觉里程计VIO和slam轨迹评估 Python 包(Linux / macOS / Windows / ROS)。能够绘制轨迹,评估轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、EuRoC的Mav、ROSbag),同时支持这些数据格式之间进行相互转换。
Github网址:https://github.com/MichaelGrupp/evo
EVO支持的文件格式:
TUM 的轨迹文件
KITTI 的pose文件
EuRoC 的MAV(.csv groundtruth 和 TUM 轨迹文件)
ROSbag 包文件
集中常用的公开数据集的文件格式后面再写,大家个参考其他的博客!
安装
我用的是Ubuntu16.04系统,系统默认的是python2.7
EVO支持 Python 3.6+。最后一个支持 Python 2.7 的 EVO版本是 1.12.0。如果你想使用 ROS bagfile 接口,首先检查你的 ROS 安装使用的是哪个 Python 版本并进行相应的安装。版本不兼容会导致很大的问题!
EVO主要由两种安装方式
1.pip安装
参考其他博客
1.源码安装
参考其他博客
使用
evo工具主要有如下六个常用命令:
evo_ape - 用于评估绝对位姿误差;
evo_rpe - 用于评估相对位姿误差;
evo_traj - 这个主要是用来画轨迹、输出轨迹文件、转换数据格式等功能;
evo_res - 比较来自evo_ape或evo_rpe生成的一个或多个结果文件的工具;
evo_fig - (实验)工具,用于重新打开序列化图(使用–serialize_plot保存);
evo_config - 这个主要用于evo工具全局设置和配置文件操作。
-p 表示绘图;
--plot_mode=xyz - 表示绘图模式为xyz三维;
--save_results - 表示保存结果,后面为文件保存路径及文件名。
TUM数据的评估方法
Euroc Bag文件的评估方法
1.评估绝对轨迹误差APE
evo_ape euroc data.csv b.csv
euroc 是数据类型标识,标识后面的两个文件都是euroc格式的数据;
第一个文件 data.csv 表示地面轨迹真值groundtrue数据;
第二个文件 b.csv 表示某个SLAM代码计算的结果;
不同数据源的绘图方法相同,命令略有差异
KITTI数据的评估方法
0.绘制轨迹
evo_traj tum abc.txt -p
abc.txt 是计算出来的结果;

1.评估绝对轨迹误差APE
evo_ape kitti a.txt b.txt
kitti 是数据类型标识,标识后面的两个文件都是kitti格式的数据;
第一个文件 a.txt 表示地面轨迹真值groundtrue数据;
第二个文件 b.txt 表示某个SLAM代码计算的结果;
2.相对轨迹误差RPE
evo_rpe tum vio_GPS_global.txt kitti_10_gt.txt -p --plot_mode=xyz -a -s -v --save_results /home/lee/output/rpe.zip
tum 是数据类型标识,标识后面的两个文件都是kitti格式的数据;
第一个文件 vio_GPS_global.txt 表示SLAM软件计算的结果(此处为VINS);
第二个文件 kitti_10_gt.txt 表示kitti数据集10 的地面真实轨迹数据;


###VINS计算结果转为tum格式
由于VINS输出结果并不能直接使用EVO读取,还需要进行格式转换!可参考博文:
待续!!!
相关文章:
EVO——视觉里程计/SLAM轨迹评估工具
EVO——SLAM轨迹精度评估软件 EVO简介 evo是一款用于视觉里程计VIO和slam轨迹评估 Python 包(Linux / macOS / Windows / ROS)。能够绘制轨迹,评估轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、EuRoC的Mav、ROSbag&…...
TCP为什么要三次握手,而不是两次或四次?
文章目录TCP为什么要三次握手,而不是两次或四次?三次握手才可以阻止重复历史连接的初始化(主要原因)同步双方初始序列号避免资源浪费小结TCP为什么要三次握手,而不是两次或四次? TCP连接时用于保证可靠性和…...
git 命令:工作日常使用
git start 存储分支 git start list 查看所有存储 拉取最新master 合并到自己分支: git remote add [远程名称] [远程仓库链接] //关联(添加)远程仓库; 第一步:查看分支在哪里,是自己的吗,添加暂存区,添加到仓…...
Http和Https
http和https的区别 开销:HTTPS 协议需要到 CA 申请证书,一般免费证书很少,需要交费;资源消耗:HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 ssl 加密传输协议,需要…...
【计算机网络复习】第三章 传输层 2
UDP: 用户数据报协议 u 简单高效的传输层协议 u 提供“尽力而为(best effort)”服务 UDP数据报可能丢失 接收的顺序可能与发送顺序不一致 u 无连接协议 在发送数据之前,发送端和接收端没有握手(handshaking ) 每个UDP数据报都是独立的,…...
你真的会自动化测试?自动化测试技术选型抉择
自动化测试框架 在学习自动化测试或者实践自动化测试时,我们一定会对一个名词不陌生,那就是“自动化测试框架”,而有些人也将Selenium、Appium这样的工具也称之为“自动化测试框架”,那么到底自动化测试框架如何理解呢࿱…...
【id:31】【20分】A. Point(类与构造)
题目描述 下面是一个平面上的点的类定义,请在类外实现它的所有方法,并生成点测试它。 输入 测试数据的组数 t 第一组测试数据点p1的x坐标 第一组测试数据点p1的y坐标 第一组测试数据点p2的x坐标 第一组测试数据点p2的y坐标 .......... 输出 输出…...
ASM字节码处理工具原理及实践(二)
0. 相关分享 ASM字节码处理工具原理及实践(一) 上一篇讲了ASM的简介、导入,以及字节码文件结构,并给出了ASM通过ClassVisitor对class进行访问的基础实战。本篇将进入MethodVisitor,尝试对方法进行访问、生成、转换。…...
Golang每日一练(leetDay0030)
目录 88. 合并两个有序数组 Merge Sorted Array 🌟 89. 格雷编码 Gray Code 🌟🌟 90. 子集 II Subsets II 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/…...
QT5.15.2 在线安装下载速度慢的解决办法
系列文章目录 文章目录系列文章目录前言一、解决前言 QT对5.15以及以上版本已经停止提供离线安装包,在线安装网速慢如蜗牛,而且一旦断了又得从头下载,不支持断点续传 由于Qt5.15及以上版本不提供离线安装包,则需要使用在线安装进…...
Cadence Allegro 导出Waived Design Rules Check Report报告详解
⏪《上一篇》 🏡《上级目录》 ⏩《下一篇》 目录 1,概述2,Waived Design Rules Check Report作用3,Waived Design Rules Check Report示例4,Waived Design Rules Check Report导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频...
Java阶段一Day19
Java阶段一Day19 文章目录Java阶段一Day19对象流字符流WriterReader转换流缓冲字符流BufferedWriter与PrintWriterBufferedReader异常Throwable、Error、Exception异常处理机制throwthrowstry-catchfinally面试题教师总结新单词JAVA IO对象流对象输入流构造器方法例transient关…...
radmin远程控制软件怎么样,有没有替代品
Radmin 是流行的、屡获殊荣的安全远程控制软件,它使您能够在远程计算机上实时工作,就像使用它自己的键盘和鼠标一样。 您可以从多个地方远程访问同一台计算机,是网络和管理类别中流行的远程桌面工具。 Radmin 是外国软件,在国内使…...
Java反射面试总结(一)
什么是反射? Java的反射是指在程序运行时,对于任意一个类,都可以获取到这个类的所有属性和方法,并能够对其进行操作。通过反射机制,可以在程序运行时动态地创建对象、调用方法、获取属性值等。反射可以帮助我们更轻松…...
【论文阅读】3D-LaneNet
【论文阅读】3D-LaneNet 主要要做的事情就是 lane detection。这里提一下 BEV(Bird‘s Eye View) 感知算法,为了将 2D 图像映射到 3D 空间中,能够更准确的检测物体位置,需要 BEV 感知的结果。后续还会继续了解这方面内…...
Kafka的概念|架构|搭建|查看命令
Kafka的概念|架构|搭建|查看命令一 Kafka 概述二 使用消息队列的好处三Kafka 定义3.1Kafka 简介3.2Kafka 的特性3.3 Kafka 系统架构3.4 Partation 数据路由规则四 kafka的架构五 搭建kafka5.1环境准备5.2安装kafka5.3 修改配置文件5.4 编辑其他二台虚拟机的配置文件5.5 编辑三台…...
大数据项目实战之数据仓库:电商数据仓库系统——第5章 数据仓库设计
第5章 数据仓库设计 5.1 数据仓库分层规划 优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够使数据体系更加清晰,使复杂问题得以简化。以下是该项目的分层规划。 5.2 数据仓库构建流程 以下是构建数据仓库的完整流程。 5.2.1 …...
OpenHarmony社区运营报告(2023年3月)
目录 本月快讯 一、代码贡献 二、生态进展 三、社区治理 五、社区活动 六、社区及官网运营 本月快讯 • 《OpenHarmony 2022年度运营报告》于3月正式发布,2022年OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源项目潜心务实、深耕发展&am…...
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
一、前言 2023-03-23我发布了基于加权概率模型(杰林码的理论模型)的图像颜色增强和轮廓预测的应用方法。效果还不太明显,于是我又花了2周的时间进行了技术优化。下面仅提供了x86下的BMP和JPG对应的lib和dll,本文中的算法属于我国…...
在three.js中废置对象
基于three.js子如何废置对象(How to dispose of objects) 前言: 为了提高性能,并避免应用程序中的内存泄露,一个重要的方面是废置未使用的类库实体。 每当创建一个three.js中的实例时,都会分配一定数量的内存。然而,three.js会创建在渲染中所必需的特定对象, 例如几何…...
解锁光猫配置自由:中兴ONT解密工具完全指南
解锁光猫配置自由:中兴ONT解密工具完全指南 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否曾经因为无法修改光猫设置而感到束手无策?当运营…...
高通平台USB充电背后的秘密:从SBL1阶段到Kernel的电池ID识别全解析
高通平台USB充电与电池ID识别的深度技术解析 在Android设备开发中,电源管理系统的稳定性直接影响用户体验。作为底层驱动工程师,理解高通平台从硬件到软件的完整充电流程至关重要。本文将深入剖析从XBL阶段到Kernel层的电池识别机制,揭示BATT…...
ANPC逆变器下垂控制的“阻抗相消术
ANPC-下垂功率均分-两台ANPC三电平逆变器在不同阻感性线路阻抗下实现有功均分与无功均分,采用积分改进法(阻抗相消法),电压电流双闭环控制,中点电位平衡控制,SPWM调制。 1.下垂,电压电流双闭环控…...
Qwen3-14B-Int4-AWQ助力运维智能化:日志分析与故障排查实战
Qwen3-14B-Int4-AWQ助力运维智能化:日志分析与故障排查实战 1. 运维工程师的日常痛点 凌晨三点,你的手机突然响起。系统告警显示某核心服务出现异常,你需要立即登录服务器查看日志。面对几十GB的日志文件,你不得不用grep、awk等…...
告别WoMic:用VB-Audio Virtual Cable和TCP Socket自建无线麦克风(含参数配置避坑指南)
无线音频传输方案重构:VB-Audio与TCP Socket的工程实践 在音频处理领域,虚拟麦克风技术一直是个既实用又有趣的话题。许多开发者最初接触这一领域是通过WoMic这样的解决方案,但随着项目复杂度提升,人们往往需要更灵活、更可控的自…...
zotero-style:提升文献管理效率的3个核心方案
zotero-style:提升文献管理效率的3个核心方案 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。 项目地址: https:/…...
Kettle错误处理实战:如何用表输出步骤捕获并存储ETL过程中的异常数据
Kettle错误处理实战:如何用表输出步骤捕获并存储ETL过程中的异常数据 在数据仓库和ETL(Extract, Transform, Load)流程中,错误处理是确保数据质量的关键环节。Kettle(现称Pentaho Data Integration)作为一款…...
雷电模拟器装Magisk后,自带的文件管理器为啥打不开/data?用MT管理器一招搞定
雷电模拟器Magisk环境下文件管理器的权限困局与实战解决方案 当你在雷电模拟器中成功安装Magisk后,可能会遇到一个令人困惑的现象:原本可以自由访问系统目录的自带文件管理器,突然对/data和/system等关键路径"视而不见"。这并非模拟…...
开源解决方案:企业零代码条码生成的降本实践指南
开源解决方案:企业零代码条码生成的降本实践指南 【免费下载链接】librebarcode Libre Barcode: barcode fonts for various barcode standards. 项目地址: https://gitcode.com/gh_mirrors/li/librebarcode 一、条码管理的隐性成本陷阱:中小企业…...
Outfit字体全攻略:5大核心优势与零基础实战指南
Outfit字体全攻略:5大核心优势与零基础实战指南 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体作为一款专业的开源无衬线字体,凭借其完整的9种字重体系和现代设…...
