slam测评工具——evo的安装及使用

  • evo简介
    • evo安装
    • 常见问题
    • evo使用
      • **几个常用的evo工具为:**
        • evo_traj:直接画出轨迹
      • evo_ape:绝对位姿误差的计算
      • evo_rpe:相对位姿误差的计算
      • 其他参数

evo简介

evo是一个很好的测评工具,它可以根据时间戳将轨迹进行对齐,同时可以将不同尺度的轨迹按照你指定的标准轨迹进行拉伸对齐,并可以算出均方差等评定参数,用于测评slam算法性能

evo安装

evo共有两种安装方式

  1. 快捷安装 ,直接安装最新的稳定发行版;
pip install evo --upgrade --no-binary evo
  1. 源码安装 ,下载源码进行安装;
    首先在任意文件夹下下载evo,也可以在home中直接下载
git clone https://github.com/MichaelGrupp/evo.git
  然后进入evo文件夹
pip install --editable . --upgrade --no-binary evo

常见问题

1.安装的时候可能需要安装一些python的package,(有的用户可能已经安装过了就会很快跳过这一步),这些是需要通过pip安装的,注意是python2.7下的,可能会出现下载时间巨长的情况,这时候需要更改python的pip源,

在pip 语句后面增加指定源路径,如下
pip install --editable . --upgrade --no-binary evo -i https://pypi.tuna.tsinghua.edu.cn/simple

这里增加了清华源,下载速度飞升,当然这只是一种简易方法,如果想长期提升pip下载速度,可以看

2.直接使用pip下载会出现无权限等问题,如下

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python2.7/dist-packages/dateutil/relativedelta.pyc'
Consider using the `--user` option or check the permissions

在pip语句后面增加 --user

pip install --editable . --upgrade --no-binary evo --user

3.安装后虽然成功,但是报错numpy版本低,最低要求为1.12.0,而当前的为1.11.0,如下

raise VersionConflict(dist, req).with_context(dependent_req)
ContextualVersionConflict: (numpy 1.11.0 (/usr/lib/python2.7/dist-packages), Requirement.parse('numpy>=1.12.0'), set(['pandas']))[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)

这时只需将numpy的版本手动升级即可

pip install numpy --upgrade --user

有的小伙伴可能会遇到下载更新后不通过的问题,要求python版本大于3.5,如下(不要用pip3,不然安完也无法使用,解决方法看下面)

Looking in indexes: http://pypi.douban.com/simple
Collecting numpyDownloading http://pypi.doubanio.com/packages/ff/59/d3f6d46aa1fd220d020bdd61e76ca51f6548c6ad6d24ddb614f4037cf49d/numpy-1.17.4.zip (6.4MB)|████████████████████████████████| 6.4MB 2.3MB/s ERROR: Command errored out with exit status 1:command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ir0cOk/numpy/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ir0cOk/numpy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-ir0cOk/numpy/pip-egg-infocwd: /tmp/pip-install-ir0cOk/numpy/Complete output (5 lines):Traceback (most recent call last):File "<string>", line 1, in <module>File "/tmp/pip-install-ir0cOk/numpy/setup.py", line 31, in <module>raise RuntimeError("Python version >= 3.5 required.")RuntimeError: Python version >= 3.5 required.----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

这是由于你所在的源中numpy版本过高,适用于python3,所以更改你的源或者直接下载稍低版本的numpy
我这里使用的清华源下载的1.16.5版本的numpy,亲测可用

4.使用涉及到画图的功能时,报错,如下

  File "/home/wyt/evo/evo/tools/plot.py", line 150, in tabbed_tk_windowfrom matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
ImportError: cannot import name NavigationToolbar2Tk[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)

这是由于缺少TK工具导致的,我没有去下载这个python工具,而是直接更改evo的setting

cd ~/.evo
sudo gedit settings.json

然后将"plot_backend"后面的值改为"QT5Agg",

"plot_backend": "QT5Agg",

然后就可以正常使用了。

evo使用

evo支持一下几种数据格式:

TUM 轨迹文件
KITTI 位姿
EUROC .csv和.txt文件
ROS bag文件

在使用evo的时候都要在工具后面先给出想要处理的数据格式如

evo_traj tum -h(查看帮助)

几个常用的evo工具为:

evo_traj:直接画出轨迹

如:

evo_traj tum myslam.txt -p

也可以将多个轨迹画到一起

evo_traj tum data.txt vins_data.txt --ref data.txt -va -p

图如下:

其中ref是参考轨迹,-va是对齐后的详细信息,-p是画出图像,也可以使用
–plot_mode {xy,xz,yx,yz,zx,zy,xyz}
来选择单独绘制某个平面的信息

evo_ape:绝对位姿误差的计算

如:

evo_ape tum data.txt vins_data.txt  -va -p

结果如下

使用ape的时候无需给出–ref 的文件,tum 后第一个文件即为标准文件,
这里标准文件为data.txt

evo_rpe:相对位姿误差的计算

其使用方法与ape基本一致

其他参数

将文件保存为其他类型的文件,可以使用如下句柄

--save_as_tum         save trajectories in TUM format (as *.tum)
--save_as_kitti          save poses in KITTI format (as *.kitti)
--save_as_bag         save trajectories in ROS bag as <date>.bag

保存图片

--save_plot “保存的路径”

合并轨迹

--merge

给出数据的最大时间戳差异

--t_max_diff “具体差异”

具体其他参数请参考不同工具后的-h(–help)

测评工具evo安装与使用相关推荐

  1. 测评工具evo的使用

    轨迹评估工具使用总结(一) 基操evo evo是一款用于视觉里程计和slam问题的轨迹评估工具.核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差.支持多种数据集的轨迹格式(TUM.KITTI. ...

  2. SLAM轨迹测评工具evo使用

    evo主要有以下几种命令: evo_ape : 计算绝对位姿误差 evo_rpe : 计算相对位姿误差 evo_traj : 轨迹管理的主要工具(常用来绘制轨迹) evo_config : 全局设置和 ...

  3. [VIO|实践]evo测评工具的安装与使用

    更详细的evo学习可见:https://github.com/MichaelGrupp/evo/wiki 目录 安装 测试 使用 1. evo_traj 2. evo_ape 3. evo_rpe 4 ...

  4. evo安装,亲测可用

    evo安装与使用 1.evo安装 evo共有两种安装方式 1.快捷安装 ,直接安装最新的稳定发行版: pip install evo --upgrade --no-binary evo 2.源码安装 ...

  5. EVO工具的安装和使用(window10)

    给测试的同学简单说一下EVO的安装与使用哈,从Python环境到EVO使用,会比较啰嗦,有经验的同学可以自己跳着看哈(写的有点急,有错告诉我,我改一下)(建议认真,对着步骤做,有些同学复制命令,粘贴时 ...

  6. SLAM评测工具EVO常用功能介绍【正在刷夜的李哈哈】

    看完这个我觉得你肯定会用evo了 前言 官方网页介绍 实际使用方法 绘制轨迹:evo_traj 比较绝对位姿误差:eva_ape 比较相对位姿误差:evo_rpe 如何对比kitti数据集下的轨迹(k ...

  7. 一文详解视觉里程计轨迹评估工具-evo的用法

    evo是一款用于视觉里程计和slam问题的轨迹评估工具.核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差.支持多种数据集的轨迹格式(TUM.KITTI.EuRoC MAV.ROS的bag),同 ...

  8. NMAP网络扫描工具的安装与使用

    简介 NMAP是一款流行的网络扫描和嗅探工具也是一个强大的端口扫描类安全测评工具,被广泛应用在黑客领域做漏洞探测以及安全扫描,更多的nmap是一个好用的网络工具,在生产和开发中也经常用到,主要做端口开 ...

  9. TUM数据集测评工具的使用

    相信做SLAM的同学们都知道大名鼎鼎的TUM(德国慕尼黑工业大学),像LSD-SLAM.DSO.DVO等都是出自于这个学校.同时他们还提供了各种各样的数据集,如RGBD数据集.单目数据集等,针对不同的 ...

最新文章

  1. Qt中的QPrintDialog
  2. Daily Scrum 11.16
  3. 网易云信携手SNH48 GROUP,打造在线追星新体验
  4. 史上最全MySQL锁机制
  5. 【SQL 数据库】将一张数据表信息复制到另一张数据表
  6. 网管学习日记-ACL
  7. php银联支付接口 demo,php版银联支付接口的开发
  8. C语言之volatile
  9. 要闻君说:华为与故宫携手共建智慧紫禁城;央视315曝光瞄准大数据黑市;华为官宣称自己也有操作系统了;美国夸口启动6G研发?...
  10. PHP中数组实际占用内存大小的分析
  11. 深入理解Magento第五章 – Magento资源配置
  12. 快手科技更新招股书:前11个月营收525亿元,引入10家基石投资者
  13. python 的statsmodels包,计算Wald tests
  14. Redis学习、缓存、持久化、哨兵模式
  15. ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8....Cortex-A53,A57,A72
  16. STM32单片机初学6-SPI通信驱动IPS彩屏
  17. Django shell测试
  18. python题目-统计出字符串中各字符出现的次数并以字典形式保存并排序
  19. 易信公众平台开发从入门到精通之开发验证
  20. crm软件对于中小企业究竟有哪些好处呢?

热门文章

  1. 全志B288驱动移植3-修改tps65185的VCOM
  2. JS textarea多行文本框内容 换行
  3. 分享一些自己的学习过程和学习方法(来自daimajia)
  4. 使用python的scrapy框架简单的爬取豆瓣读书top250
  5. steam数据流过滤_如何通过Steam家用流媒体获得更好的性能
  6. 本地文件上传服务器node插件,node 搭建本地文件上传服务器
  7. Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法
  8. Python入门程序【三】
  9. 走近源码:压缩列表是怎样炼成的
  10. java程序员的大数据之路(12):Hadoop的守护进程