SLAM 轨迹评估工具——EVO安装、使用介绍

2023-11-02

一、概述

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

二、安装

evo安装方式比较简单,有两种方式:

1.便捷安装
.pip3 install evo --upgrade --no-binary evo
2.源码安装
git clone https://github.com/MichaelGrupp/evo.git
pip3 install --editable . --upgrade --no-binary evo

三、evo使用

1.evo设置

evo全局设置操作-evo_config
1.evo_config show
在这里插入图片描述

ps:截取部分显示

2.evo_config set
利用evo_config set可以设置evo中有关参数的值。下面列举一些常用的参数及含义。

1.plot_export_format表示图片的输出格式,常见的格式有pdf,png等。

命令:evo_config set plot_export_format pdf (将输出图像的存储格式设置为pdf格式。)

2.plot_figsize表示图片的尺寸,第一个数字代表横轴方向的尺寸,第二个数字代表纵轴方向的尺寸。

命令:evo_config set plot_figsize 6 6 (将输出图像横轴方向尺寸设置为6,纵轴方向尺寸设置为6。)

3.plot_fontscale表示输出图像中字体的粗细。

命令:evo_config set plot_fontscale 1.8 (将输出图像中的字体粗细设置为1.8。)

4.plot_linewidth代表作图时线的宽度。

命令:evo_config set plot_linewidth 1.8 (将输出图像的线宽设置为1.8。)

5.plot_reference_color表示输出图像中参考轨迹的颜色。

命令:evo_config set plot_reference_color black (将输出图像中参考轨迹的颜色设置为黑色。)
6.plot_reference_linestyle表示输出图像中参考轨迹的线型。

命令:evo_config set plot_reference_linestyle - (将输出图像中参考轨迹的线型设置为 -。)

7.plot_seaborn_style表示输出图像中背景网格颜色

命令:evo_config set plot_seaborn_style darkgrid (将输出图像中背景网格设置为"darkgrid"。)

8.plot_split表示是否分开显示各个生成的图像,因为有的时候一组数据会同时生成多幅图,可以选择在同一个窗口显示也可以选择在不同的窗口显示。

命令:evo_config set plot_split true (将输出图像分不同的窗口显示。)

9.plot_trajectory_linestyle表示输出图像中估计轨迹的线型。

命令:evo_config set plot_trajectory_linestyle - (将输出图像中估计轨迹的线型设置为-。)

10.table_export_format表示表格数据的输出格式,例如csv,excel,latex,json。

命令:evo_config set table_export_format csv (将输出表格数据的格式设置为 csv。)

11.evo_config reset 将参数还原到默认值。

2.evo_traj轨迹绘制

evo_traj指令可以将各个算法估计出的路径和真实路径画在同一幅图中。

例:

evo_traj tum GroundTruth.txt vins-fusion.txt --ref=have_fun_tum.txt -p --plot_mode=xz

tum表明处理的是tum数据集的相关结果,这里也可以替换为kitti和euroc;

GroundTruth.txt vins-fusion.txt 表示的是不同算法所估计出的轨迹,这里可以列举多个文件每个文件名之间用一个空格隔开;

–ref=GroundTruth.txt指明参考轨迹即真实轨迹;

-va包含两部分;1.-v或–verbose指明输出文件数据的相关信息;2.-a或–align指明对轨迹进行配准;

–plot表示画图;

–plot_mode xz表示图像投影在xoz平面上,其余可选参数为:xy,yx,yz,zx,zy,xyz;

画图结果如下:
在这里插入图片描述

3.evo_ape计算轨迹的绝对位姿误差

绝对位姿误差,用于比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,常用于评估测试轨迹的全局一致性。这里还是以tum为例,kitti和euroc格式相同。

evo_ape tum GroundTruth.txt vins-fusion.txt -r full -va --plot --plot_mode xz --save_plot trajape --save_results ape_result/vins-fusion.zip
在这里插入图片描述

tum表明处理的是tum数据集的相关结果,这里也可以替换为kitti和euroc;

GroundTruth.txt代表真实轨迹的数据;

vins-fusion.txt代表估计轨迹的数据;

-r full表示同时考虑旋转和平移误差得到的ape,无单位(unit-less);

另外:

-r trans_part表示考虑平移部分得到的ape,单位为m;

-r rot_part表示考虑旋转部分得到的ape,衡量旋转精度,无单位(unit-less);

-r angle_deg表示考虑旋转角得到的ape,单位°(deg);

-r angle_rad表示考虑旋转角得到的ape,单位弧度(rad);

-va包含两部分;1.-v或–verbose指明输出文件数据的相关信息;2.-a或–align指明对轨迹进行配准;

–plot表示画图;

–plot_mode xz表示图像投影在xoz平面上,其余可选参数为:xy,yx,yz,zx,zy,xyz;

–save_plot trajape 表示保存生成的图片名,这里写自己保存的地址;

–save_results ./vins-fusion.zip表示保存计算结果,ape_result/vins-fusion.zip这里写自己保存的地址;

4.evo_rpe 计算相对位姿误差

相对位姿误差不进行绝对位姿的比较,相对位姿误差比较运动(姿态增量)。相对位姿误差可以给出局部精度,例如SLAM系统每米的平移或者旋转漂移量。这里还是以tum为例,kitti和euroc格式相同。

evo_rpe tum GroundTruth.txt vins-fusion.txt -r full -va --plot --plot_mode xz --save_plot trajrpe --save_results rpe_result/vins-fusion.zip
在这里插入图片描述

tum表明处理的是kitti数据集的相关结果,这里也可以替换为kitti和euroc;

ground_truth.txt代表真实轨迹的数据;

vins-fusion.tx代表估计轨迹的数据;

-r full表示同时考虑旋转和平移误差得到的ape,无单位(unit-less);

另外:

-r trans_part表示考虑平移部分得到的rpe,单位为m;

-r rot_part表示考虑旋转部分得到的rpe,衡量旋转精度,无单位(unit-less);

-r angle_deg表示考虑旋转角得到的rpe,单位°(deg);

-r angle_rad表示考虑旋转角得到的rpe,单位弧度(rad);

-va包含两部分;1.-v或–verbose指明输出文件数据的相关信息;2.-a或–align指明对轨迹进行配准;

–plot表示画图;

–plot_mode xz表示图像投影在xoz平面上,其余可选参数为:xy,yx,yz,zx,zy,xyz;

–save_plot trajrpe 表示保存生成的图片名,trajrpe 这里写自己保存的地址;

–save_results ./vins-fusion.zip表示保存计算结果,rpe_result/vins-fusion.zip这里写自己保存的地址;

5.evo_res进行结果比较

在使用evo_ape或evo_rpe将结果保存为.zip文件后,可以利用evo_res对不同的结果进行比较。

evo_res ape_result/.zip -p --save_table ape_result.csv
evo_res ape_result/
.zip -p --save_plot ape_result.pdf

ape_result/*.zip是之前使用ape或rpe生成的压缩包的地址;

-p表示画图;

–save_table ape_result.csv表示将统计指标保存在csv文件中;
–save_plot ape_result.pdf表示将误差分析图保存在pdf文件中;
在这里插入图片描述

6.evo其它命令

evo pkg --version 查看evo版本

evo pkg --info 查看evo的简要介绍和描述

evo pkg --pyversion 查看evo使用的python版本

evo pkg --license 查看许可证

evo pkg --location 查看evo安装路径

evo pkg --logfile 查看日志文件路径

evo pkg --open_log 打开日志文件

evo pkg --clear_log 清除日志文件

参考

https://zhuanlan.zhihu.com/p/448797378

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SLAM 轨迹评估工具——EVO安装、使用介绍 的相关文章

随机推荐

  • 刷脸支付已经逐渐出现在我们的生活中

    随着科技AI智能的快速发展 刷脸时代已经到来 刷脸支付意味着在手机没电 信号不好 因为卡顿打不开支付宝额微信 甚至出门忘记带手机也能完成各种付款 随着人像3D处理技术的成熟 刷脸技术方方面面的覆盖交通 零食 休闲 餐饮 住宿等各个方面 将来
  • keepalived + Nginx 实现双机主备、双主热备(centOS 7.x 系统)

    1 Nginx安装教程可参考 Nginx安装教程 centOS 7 x 系统 2 keepalived 的安装教程可参考 keepalived 安装教程 centOS 7 x 3 双机主备 主节点配置 修改配置文件 keepalived c
  • springboot+mysql日期分组查询

    springboot mysql 日期分组查询 1 按照天分组查询 Query value select DATE FORMAT exam time Y m d as time count as count from exam where
  • 聊天软件压力测试,关于昨晚聊天压力测试,后来出现卡顿的原因及解决方案

    昨天晚上的压力测试 在300人以前是毫无压力的 后来为何就卡顿了呢 主要是因为大家发送的内容太大了 有的竟然达到了近百K一条的信息 也就是说单条信息长度达到了十万字 这并不是说不能发送超长文本 而是因为受带宽限制 我们的带宽只有3M 但本质
  • 使用Mybatis完成CRUD操作,并从源码分析执行过程

    目录 一 方式1 使用代理DAO 插入操作 获取插入数据的id 更新操作 删除操作 查询单个 模糊查询 聚合查询 二 查询条件封装 三 查询结果封装 四 主配置文件中的两个技巧 propertie标签的使用及细节 typeAliases 类
  • Mysql进阶(上) -- 存储引擎,索引

    Seasons in the Sun Westlife 单曲 网易云音乐 索引下部分 gt Mysql进阶 中 索引 千帐灯无此声的博客 CSDN博客 目录 查看左栏 目录 存储引擎 Mysql体系结构 简介 InnoDB介绍 MyISAM
  • linux多线程编程详解教程,Linux多线程编程快速入门

    本文主要对Linux下的多线程进行一个入门的介绍 虽然是入门 但是十分详细 希望大家通过本文所述 对Linux多线程编程的概念有一定的了解 具体如下 1 线程基本知识 进程是资源管理的基本单元 而线程是系统调度的基本单元 线程是操作系统能够
  • openGauss学习笔记-01 什么是openGauss

    文章目录 openGauss学习笔记 01 什么是openGauss 1 1 openGauss是一个数据库管理系统 1 2 openGauss数据库是关系型的 1 3 openGauss软件是开源的 1 4 openGauss数据库具有高
  • 一个牛人提供的GIS源码(很好)

    注 下面文字非本人所写 他提供的东西太好了 所以放在这里备忘 浪人 努力 唐丰 Rover Tang2006 08 05 最后的礼物 校园多媒体系统和校园WEBGIS系统 为什么说是最后的礼物 大概是因为我突然想这个blog不更新了 为什么
  • Java应用程序远程调试Remote Debug

    文章目录 Java应用程序远程调试Remote Debug 本地开发工具IDEA的设置 远程服务器的Java应用程序调整JVM启动参数 启动本地IDEA的应用程序 本地IDEA设置断点及调试 Java应用程序远程调试Remote Debug
  • 解决TypeError: object of type 'numpy.float64' has no len()

    使用jupyter notebook过程中遇到这个问题 其实把所有代码从上到下重新执行一遍错误就消失了 也不知道为什么前面执行结果会丢失 更郁闷是这种文不对题的错误信息很是头疼
  • 双系统启动无系统选择界面,直接进入Ubuntu

    安装了Ubuntu和kali双系统后 发现电脑启动的时候直接进入Ubuntu 没有系统选择界面 首先打开终端 Ctrl Alt t 输入 sudo update grub 回车 输入密码即可
  • edge浏览器如何设置始终在新标签页中打开?

    方法1 在IE浏览器里设置 方法2 用鼠标滚轮点击打开 但是这种方法 只能在旁边的新窗口打开 你还需要自己手动切换页面 因为页面不会自动显示新窗口的内容 所以建议使用第一种方法
  • Qt中使用三角函数

    哈哈 今天发现 Qt可以很方便的使用三角函数 只需要 include math h 然后就可以 double a 0 0 double b 0 0 b sin a So easy 决心用Qt进行图像处理了 QImage类很好很强大 转载于
  • Xshell 5 注册码

    留着用 Xftp 5 注册码 101210 450789 147200 Xshell 5 注册码 690313 111999 999313 Xmanager 5 注册码 101210 450789 147200 Xshell4 0
  • linux find 输出文件目录名称到txt文件(yolo图片名称)

    利用find命令得到文件夹内文件名称 find 文件夹路径 name jpg gt txt文件名 输出结果
  • python入门基础

    作者介绍 作者 小刘在C站 每天分享课堂笔记 一起努力 共赴美好人生 夕阳下 在最美的绽放 目录 一 python是什么 二 为什么使用python 1 软件质量 2 提高开发者的效率 3 程序的可移植性 4 标准库的支持 5 组件集成 6
  • Anaconda3如何安装keras

    当下机器学习很火 机器学习编程最流行的就是python语言 yangqiang200608打算自学机器学习 于是与python有了缘 对于初学者来说 配置环境是最让人头痛的事情 一周前参照网上的资料折腾一番 终于安装上了python3 为了
  • 1696:逆波兰表达式——递归(atof)

    描述 逆波兰表达式是一种把运算符前置的算术表达式 例如普通的表达式2 3的逆波兰表示法为 2 3 逆波兰表达式的优点是运算符之间不必有优先级关系 也不必用括号改变运算次序 例如 2 3 4的逆波兰表示法为 2 3 4 本题求解逆波兰表达式的
  • SLAM 轨迹评估工具——EVO安装、使用介绍

    一 概述 evo是一款用于视觉里程计和SLAM问题的轨迹评估工具 核心功能是能够绘制相机的轨迹 或评估轨迹与真值之间的误差 支持多种数据集的轨迹格式 TUM KITTI EuRoC MAV ROS的bag 同时支持这些数据格式之间的相互转换