目录

1 配置(Configuration)

自定义配置文件

Global settings

evo_config show

evo_config set

evo_config reset

2 evo_traj



1 配置(Configuration)

evo_config 命令可以改变全局设置和生成自定义配置文件

自定义配置文件

我们可以把实验参数存储在专门的文件里,不用每次在命令行里敲。evo的大部分命令都可以用-c--config参数来加载.json配置文件

例如,下面的命令用来计算相对位姿误差:

evo_rpe tum groundtruth.txt estimate.txt --pose_relation angle_deg --delta 1 --delta_unit m --verbose --plot

evo_config generate命令可以通过--out参数把任意命令行参数加入到.json文件

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

生成的文件如下

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

后面用到这些参数时可以这么做

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

注意:

  • evo_config generate要用长的,比如用--plot,不要用缩写-p
  • 配置文件里的参数有更高的优先级,意思是命令行和配置文件里的参数重复了,以配置文件里的参数为准

Global settings

可以显示、更改、重置存储在settings.json里的全局设置,这个文件默认在/home/用户名/.evo文件夹下面

evo_config show

这个命令会打印settings.json里面的内容和参数的解释(如果加了--brief,就只显示settings.json里面的内容,不显示别的)

evo_config set

使用这个命令设置单个或多个参数,如果没有-c/--config这个参数的话,更改的是默认的配置

例如你的配置如果是这样子的

{"logfile_enabled": false,"plot_export_format": "pdf","plot_figsize": [8,8]
}

运行了这个命令之后

evo_config set plot_export_format png logfile_enabled true plot_figsize 10 9

默认配置就变成了这个样子

{"logfile_enabled": true,"plot_export_format": "png","plot_figsize": [10,9]
}

evo_config reset

这个命令会将设置还原成默认

2 evo_traj

evo_traj用来完成不同的轨迹的处理工作,如:

  • 展示一些信息
  • 画图
  • 验证数据是否有效
  • 输出为其他格式
  • 应用变换等

Basics

evo_traj可以挺多的轨迹,以支持的轨迹格式(tum、euroc、kitti等,具体见第3部分)的文件作为输入,例如

evo_traj tum traj_1.txt traj_2.txt traj_3.txt

(也可以在UNIX-like系统上使用通配符,如evo_traj tum traj_*

对于ROS bag包,指定bag文件的路径,后面跟着topic的名称

evo_traj bag data.bag /groundtruth /odom /tf:map.base_link

也可以使用--all_topics选项载入bag包中的所有轨迹。TF topics可以通过特殊的语法使用

参考的轨迹可以通过--ref来指明

evo_traj bag data.bag /odom /tf:map.base_link --ref /groundtruth

如果使用evo_traj的同时要使用对齐的特征(-a / --align, -s / --correct_scale or --n_to_align),这样就必须通过--ref参数指明参考轨迹

Check trajectory data

默认情况下,evo_traj只是以下面的形式打印一些关于轨迹的重要信息

name:    groundtruth
infos:  12765 poses, 304.207m path length, 889.019s duration

在verbose(-v / --verbose)模式下,以下面的形式输出

name:   groundtruth
infosduration (s)    889.01894474nr. of poses    12765path length (m) 304.206897009pos_end (m)     [ -3.32159757  -4.64051651  32.7839329 ]pos_start (m)   [-0.00489994 -0.01775981 -0.01375532]t_end (s)       1502793459.3t_start (s)     1502792570.28

可以通过--full_check参数,这个过程会进行数学和逻辑上的检查,例如,四元数是否有单位范数,时间戳是否是上升的等。一些速度值也会显示出来。(除了kitti模式,此时没有时间戳)

name:   groundtruth
infosduration (s)    889.01894474nr. of poses    12765path length (m) 304.206897009pos_end (m)     [ -3.32159757  -4.64051651  32.7839329 ]pos_start (m)   [-0.00489994 -0.01775981 -0.01375532]t_end (s)       1502793459.3t_start (s)     1502792570.28
checksSE(3) conform   yesarray shapes    oknr. of stamps   okquaternions     oktimestamps      ok
statsv_avg (km/h)    1.411572v_avg (m/s)     0.392103v_max (km/h)    3.038775v_max (m/s)     0.844104v_min (km/h)    0.001567v_min (m/s)     0.000435

Tips:On UNIX-like systems, pipe the output to less to get a more comfortable view when loading multiple trajectories. If you don't want any output except warnings and errors, use --silent.

Plotting

在命令中加入 -p--p 画出轨迹,可以通过 --plot_mode 指定视野,例如 --plot_mode xz 来画x轴和z轴的视野,或者 --plot_mode xyz 来画3D视野。在任何情况下,画图窗口都会存在第2个tab,分别画出x,y和z的值,以及第3个tab,画出roll,pitch和yaw角度

Alignment and transformation

Geometric alignment

如果用--ref指定了参考轨迹,你可以用Umeyama的方法将其他轨迹和关于参考轨迹对齐

  • --align or -a 使用 SE(3) Umeyama alignment(rotation, translation),包含旋转和平移
  • --align --correct_scale or -as 表示使用Sim(3) Umeyama alignment (rotation, translation, scale),包含旋转、平移和尺度缩放
  • --correct_scale or -s 表示 只进行尺度校正

效果如下图所示

也可以之对齐轨迹的前n个位姿,使用--n_to_align参数,如--n_to_align 100

自从v1.5版本以来,--align_origin可以用于drift/loop closure evaluation

Temporal alignment

这个过程通过选择参考轨迹和其他轨之间的最佳匹配时间戳完成。所有轨迹之后退化为最佳匹配时间戳。如果没有发现匹配就报错,命令参数有

  • --t_offset:添加一个常量时间偏移

EVO的使用(翻译官方文档)相关推荐

  1. Qt中文翻译(官方文档,界面,工具等)集锦

    Qt中文翻译(官方文档,界面,工具等)集锦 GitHub - jiangcaiyang/QtCreator-Translation-CN: This repository is trying to f ...

  2. Unity 优化翻译官方文档(二) ------ 平台特定覆盖的纹理压缩格式

    官方文档 : https://docs.unity3d.com/Manual/class-TextureImporterOverride.html 虽然Unity支持许多常见的图像格式作为导入纹理的源 ...

  3. Unity优化翻译官方文档(六) ------ CPU Usage Profiler

    官网地址 : https://docs.unity3d.com/Manual/ProfilerCPU.html CPU使用分析器显示在您的游戏中花费的时间.当它被选中时,下窗格将显示所选帧的分层时间数 ...

  4. Unity 优化翻译官方文档(三) ------ Animation Clips

    动画剪辑是Unity动画中最小的组成部分.它们代表了一个孤立的运动,如RunLeft.跳转或爬行,并且可以以各种方式进行操作和组合,以产生生动的最终结果(参见动画状态机.动画控制器控制器或混合树).您 ...

  5. 快速傅里叶变换-FFTW库的使用-参考和翻译官方文档

    Complex One-Dimensional DFTs Plan:为实现意外结果的最佳方法而烦恼. [Ambrose Bierce, The Enlarged Devil's Dictionary. ...

  6. 文件标识符必须为双精度类型的整数值标量_【翻译】VTK官方文档 - vtk文件格式

    本文翻译自vtk官方文档:vtk_file_format 文末有链接 VTK提供了许多源对象和编写器对象,用于读取和写入流行的数据文件格式,此外,VTK也提供了自己的文件格式.创建一种数据文件格式的主 ...

  7. tez安装官方文档整理+翻译

    本文是对TEZ的官方文档[1]的翻译,重点都红色加粗标记,其他都是废话,直接跳过 Install/Deploy Instructions for Tez Replace x.y.z with the ...

  8. AsyncDisplayKit官方文档个人翻译

    迁移老文章到掘金 文档比较老了,不适用最新的2.0 AsyncDisplayKit 官方文档 最近在拆解学习AsyncDisplayKit这个很知名的轮子,发现这个轮子内容还是非常庞大的,想要分解学习 ...

  9. Sencha Cmd 6 和 Ext JS 6 指南文档(部分官方文档中文翻译)

    近期组织了几个程序员网友,正在翻译一部分官方的Sencha Cmd 6 和 Ext JS 6 指南文档. 眼下还没翻译完,大家能够先看看 Sencha Cmd 6 和 Ext JS 6 指南文档  ( ...

最新文章

  1. python分组聚合显示全部列_python – pandas:如何按多列分组并在多列上执行不同的聚合?...
  2. Tricky Sum
  3. underscore 系列之防冲突与 Utility Functions
  4. 如何在VSTFS中设置email notification
  5. div垂直,水平居中
  6. [转]我的数据结构不可能这么可爱!——珂朵莉树(ODT)详解
  7. 局域网连接MYSQL8.0报错1251的解决记录
  8. 软件测试工程师相关证书
  9. word打开出错,要进入安全模式问题
  10. 生产环境CPU飙高问题解决,记一次完整解决过程
  11. GB28181 协议实现H5无插件RTMP/HTTP-FLV/HLS直播监控方案 - sfxlab
  12. 【数字IC基础】IC(Integrated Circuit,集成电路)常用缩写
  13. js中offsetHeight,offsetWidth,offsetTop,offsetLeft属性的使用
  14. 独立开发变现周刊(第81期):开发一个应用来减少屏幕使用时间,月收入2万美元...
  15. 中国的教育缺少什么?
  16. M3DGIS三维数字沙盘电子沙盘地理信息系统开发教程第10课
  17. 兆声清洗晶片过程中去除力的分析
  18. 综合布线设计方案的步骤
  19. 怎么把多张图片合成为一张?
  20. 主题阅读卡片0005:电子邮件[email]

热门文章

  1. python基础学习之海龟作图
  2. 数控机床设备远程监控系统解决方案
  3. shell脚本实现加减乘除计算器
  4. 双Gige相机连接电脑
  5. windows10,基于已有的anaconda和pycharm安装rasa
  6. request接口的excel
  7. 电脑优化及精品软件分享
  8. 正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊字符...
  9. 【php】php中global与$GLOBAL['']的区别
  10. SNMP Informant采集 MIB oids