EVO的使用(翻译官方文档)
目录
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的使用(翻译官方文档)相关推荐
- Qt中文翻译(官方文档,界面,工具等)集锦
Qt中文翻译(官方文档,界面,工具等)集锦 GitHub - jiangcaiyang/QtCreator-Translation-CN: This repository is trying to f ...
- Unity 优化翻译官方文档(二) ------ 平台特定覆盖的纹理压缩格式
官方文档 : https://docs.unity3d.com/Manual/class-TextureImporterOverride.html 虽然Unity支持许多常见的图像格式作为导入纹理的源 ...
- Unity优化翻译官方文档(六) ------ CPU Usage Profiler
官网地址 : https://docs.unity3d.com/Manual/ProfilerCPU.html CPU使用分析器显示在您的游戏中花费的时间.当它被选中时,下窗格将显示所选帧的分层时间数 ...
- Unity 优化翻译官方文档(三) ------ Animation Clips
动画剪辑是Unity动画中最小的组成部分.它们代表了一个孤立的运动,如RunLeft.跳转或爬行,并且可以以各种方式进行操作和组合,以产生生动的最终结果(参见动画状态机.动画控制器控制器或混合树).您 ...
- 快速傅里叶变换-FFTW库的使用-参考和翻译官方文档
Complex One-Dimensional DFTs Plan:为实现意外结果的最佳方法而烦恼. [Ambrose Bierce, The Enlarged Devil's Dictionary. ...
- 文件标识符必须为双精度类型的整数值标量_【翻译】VTK官方文档 - vtk文件格式
本文翻译自vtk官方文档:vtk_file_format 文末有链接 VTK提供了许多源对象和编写器对象,用于读取和写入流行的数据文件格式,此外,VTK也提供了自己的文件格式.创建一种数据文件格式的主 ...
- tez安装官方文档整理+翻译
本文是对TEZ的官方文档[1]的翻译,重点都红色加粗标记,其他都是废话,直接跳过 Install/Deploy Instructions for Tez Replace x.y.z with the ...
- AsyncDisplayKit官方文档个人翻译
迁移老文章到掘金 文档比较老了,不适用最新的2.0 AsyncDisplayKit 官方文档 最近在拆解学习AsyncDisplayKit这个很知名的轮子,发现这个轮子内容还是非常庞大的,想要分解学习 ...
- Sencha Cmd 6 和 Ext JS 6 指南文档(部分官方文档中文翻译)
近期组织了几个程序员网友,正在翻译一部分官方的Sencha Cmd 6 和 Ext JS 6 指南文档. 眼下还没翻译完,大家能够先看看 Sencha Cmd 6 和 Ext JS 6 指南文档 ( ...
最新文章
- python分组聚合显示全部列_python – pandas:如何按多列分组并在多列上执行不同的聚合?...
- Tricky Sum
- underscore 系列之防冲突与 Utility Functions
- 如何在VSTFS中设置email notification
- div垂直,水平居中
- [转]我的数据结构不可能这么可爱!——珂朵莉树(ODT)详解
- 局域网连接MYSQL8.0报错1251的解决记录
- 软件测试工程师相关证书
- word打开出错,要进入安全模式问题
- 生产环境CPU飙高问题解决,记一次完整解决过程
- GB28181 协议实现H5无插件RTMP/HTTP-FLV/HLS直播监控方案 - sfxlab
- 【数字IC基础】IC(Integrated Circuit,集成电路)常用缩写
- js中offsetHeight,offsetWidth,offsetTop,offsetLeft属性的使用
- 独立开发变现周刊(第81期):开发一个应用来减少屏幕使用时间,月收入2万美元...
- 中国的教育缺少什么?
- M3DGIS三维数字沙盘电子沙盘地理信息系统开发教程第10课
- 兆声清洗晶片过程中去除力的分析
- 综合布线设计方案的步骤
- 怎么把多张图片合成为一张?
- 主题阅读卡片0005:电子邮件[email]