SLAM评估工具evo学习

参考链接

官方github:https://github.com/MichaelGrupp/evo

一、 指令分析

1.1 tum数据集,evo_ape指令

evo_ape {kitti,tum,euroc,bag} -h
evo_ape tum -h

(1) 终端输入:

evo_ape tum -h

(2) 终端打印:

usage: evo_ape tum [-h][-r {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}][-a] [-s] [--n_to_align N_TO_ALIGN] [--align_origin] [-p][--plot_mode {xy,xz,yx,yz,zx,zy,xyz}][--plot_x_dimension {index,seconds,distances}][--plot_colormap_max PLOT_COLORMAP_MAX][--plot_colormap_min PLOT_COLORMAP_MIN][--plot_colormap_max_percentile PLOT_COLORMAP_MAX_PERCENTILE][--plot_full_ref] [--ros_map_yaml ROS_MAP_YAML][--save_plot SAVE_PLOT] [--serialize_plot SERIALIZE_PLOT][--save_results SAVE_RESULTS] [--logfile LOGFILE][--no_warnings] [-v] [--silent] [--debug] [-c CONFIG][--t_max_diff T_MAX_DIFF] [--t_offset T_OFFSET][--t_start T_START] [--t_end T_END]ref_file est_fileAbsolute pose error (APE) metric app for TUM trajectory files - (c) evo
authorspositional arguments:ref_file              reference trajectory fileest_file              estimated trajectory fileoptional arguments:-h, --help            show this help message and exit--t_max_diff T_MAX_DIFFmaximum timestamp difference for data association--t_offset T_OFFSET   constant timestamp offset for data association--t_start T_START     only use data with timestamps greater or equal thisstart time--t_end T_END         only use data with timestamps less or equal this endtimealgorithm options:-r {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}, --pose_relation {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}pose relation on which the APE is based-a, --align           alignment with Umeyama's method (no scale)-s, --correct_scale   correct scale with Umeyama's method--n_to_align N_TO_ALIGNthe number of poses to use for Umeyama alignment,counted from the start (default: all)--align_origin        align the trajectory origin to the origin of thereference trajectoryoutput options:-p, --plot            show plot window--plot_mode {xy,xz,yx,yz,zx,zy,xyz}the axes for plot projection--plot_x_dimension {index,seconds,distances}dimension that is used on the x-axis of the raw valueplot(default: seconds, or index if no timestamps arepresent)--plot_colormap_max PLOT_COLORMAP_MAXthe upper bound used for the color map plot (default:maximum error value)--plot_colormap_min PLOT_COLORMAP_MINthe lower bound used for the color map plot (default:minimum error value)--plot_colormap_max_percentile PLOT_COLORMAP_MAX_PERCENTILEpercentile of the error distribution to be used as theupper bound of the color map plot (in %, overrides--plot_colormap_max)--plot_full_ref       plot the full, unsynchronized reference trajectory--ros_map_yaml ROS_MAP_YAMLyaml file of an ROS 2D map image (.pgm/.png) that willbe drawn into the plot--save_plot SAVE_PLOTpath to save plot--serialize_plot SERIALIZE_PLOTpath to serialize plot (experimental)--save_results SAVE_RESULTS.zip file path to store results--logfile LOGFILE     Local logfile path.usability options:--no_warnings         no warnings requiring user confirmation-v, --verbose         verbose output--silent              don't print any output--debug               verbose output with additional debug info-c CONFIG, --config CONFIG.json file with parameters (priority over command lineargs)

(3) 终端打印解释:

这段内容是 evo_ape 工具的命令行帮助信息,它提供了如何使用该工具来计算TUM轨迹文件的绝对位姿误差(Absolute Pose Error, APE)的详细说明。evo_ape 是一个用于评估视觉里程计(VO)或同时定位与建图(SLAM)系统性能的工具,特别是针对TUM数据集中的轨迹文件。

以下是命令行参数的解释:

位置参数

  • ref_file:参考轨迹文件,通常是ground truth轨迹。
  • est_file:估计轨迹文件,即你的视觉里程计或SLAM系统生成的轨迹。

可选参数

  • -h, --help:显示帮助信息并退出。
  • --t_max_diff T_MAX_DIFF:数据关联的最大时间戳差异。
  • --t_offset T_OFFSET:数据关联的恒定时间戳偏移。
  • --t_start T_START:只使用时间戳大于或等于这个开始时间的数据。
  • --t_end T_END:只使用时间戳小于或等于这个结束时间的数据。

算法选项

  • -r {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}, --pose_relation {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}:基于哪种位姿关系计算APE。
  • -a, --align:使用Umeyama方法(不包括尺度)进行对齐。
  • -s, --correct_scale:使用Umeyama方法进行尺度校正。
  • --n_to_align N_TO_ALIGN:用于Umeyama对齐的位姿数量,从开始计数(默认:全部)。
  • --align_origin:将轨迹原点与参考轨迹的原点对齐。

输出选项

  • -p, --plot:显示绘图窗口。
  • --plot_mode {xy,xz,yx,yz,zx,zy,xyz}:绘图投影的轴。
  • --plot_x_dimension {index,seconds,distances}:用于原始值绘图的x轴的维度(默认:秒,或者如果没有时间戳则为索引)。
  • --plot_colormap_max PLOT_COLORMAP_MAX:用于颜色图绘图的上界(默认:最大误差值)。
  • --plot_colormap_min PLOT_COLORMAP_MIN:用于颜色图绘图的下界(默认:最小误差值)。
  • --plot_colormap_max_percentile PLOT_COLORMAP_MAX_PERCENTILE:用作颜色图绘图上界的误差分布的百分位数(%,覆盖 --plot_colormap_max)。
  • --plot_full_ref:绘制完整的、未同步的参考轨迹。
  • --ros_map_yaml ROS_MAP_YAML:ROS 2D地图图像(.pgm/.png)的yaml文件,将被绘制在绘图中。
  • --save_plot SAVE_PLOT:保存绘图的路径。
  • --serialize_plot SERIALIZE_PLOT:序列化绘图的路径(实验性)。
  • --save_results SAVE_RESULTS:存储结果的.zip文件路径。
  • --logfile LOGFILE:本地日志文件路径。

可用性选项

  • --no_warnings:不显示需要用户确认的警告。
  • -v, --verbose:详细输出。
  • --silent:不打印任何输出。
  • --debug:带有额外调试信息的详细输出。
  • -c CONFIG, --config CONFIG:带有参数的.json文件(优先级高于命令行参数)。

这个工具主要用于研究和开发中,以评估和比较不同视觉里程计或SLAM系统的精度和鲁棒性。通过计算估计轨迹与参考轨迹之间的误差,研究人员和开发者可以了解他们系统的优缺点,并据此进行改进。

(4) 额外说明:

-va-v -a

当你运行 evo_ape -va 命令时,这里的 -v-a 是两个命令行参数:

  • -v:这是 --verbose 的简写形式,表示启用详细输出模式。启用这个选项后,evo_ape 会输出更多的信息,包括处理过程中的中间步骤和额外的细节,这有助于用户了解评估过程的具体情况和诊断潜在的问题。

  • -a:这是 --align 的简写形式,表示启用Umeyama算法进行位姿对齐。Umeyama算法是一种著名的点云配准方法,它可以在不考虑尺度变化的情况下,通过最小化两组点云之间的误差来估计它们之间的旋转和平移关系。在评估轨迹时,这个选项可以用来对齐参考轨迹和估计轨迹,以便更准确地计算它们之间的误差。

因此,evo_ape -va 命令的作用是启用详细输出模式,并在计算APE之前对参考轨迹和估计轨迹进行对齐。这通常用于调试和优化视觉里程计或SLAM系统,因为它提供了足够的信息来分析系统的准确性和鲁棒性,并帮助开发者理解系统在哪些方面可能需要改进。

1.2 tum数据集,evo_traj指令

(1) 终端输入:

evo_traj tum -h

(2) 终端打印:

usage: evo_traj tum [-h] [-f] [-a] [-s] [--n_to_align N_TO_ALIGN][--align_origin] [--sync][--transform_left TRANSFORM_LEFT][--transform_right TRANSFORM_RIGHT][--propagate_transform] [--invert_transform] [--ref REF][--t_offset T_OFFSET] [--t_max_diff T_MAX_DIFF] [--merge][-p] [--plot_relative_time][--plot_mode {xy,xz,yx,yz,zx,zy,xyz}][--ros_map_yaml ROS_MAP_YAML] [--save_plot SAVE_PLOT][--save_table SAVE_TABLE][--serialize_plot SERIALIZE_PLOT] [--save_as_tum][--save_as_kitti] [--save_as_bag] [--logfile LOGFILE][--no_warnings] [-v] [--show_full_names] [--silent][--debug] [-c CONFIG]traj_files [traj_files ...]trajectory analysis and manipulation tool for TUM trajectory files - (c) evo
authorspositional arguments:traj_files            one or multiple trajectory filesoptional arguments:-h, --help            show this help message and exit-f, --full_check      run all checks and print all statsalgorithm options:-a, --align           alignment with Umeyama's method (no scale) - requires--ref-s, --correct_scale   scale correction with Umeyama's method - requires--ref--n_to_align N_TO_ALIGNthe number of poses to use for Umeyama alignment,counted from the start (default: all)--align_origin        align the trajectory origin to the origin of thereference trajectory--sync                associate trajectories via matching timestamps -requires --ref--transform_left TRANSFORM_LEFTpath to a .json file with a transformation to apply tothe trajectories (left multiplicative)--transform_right TRANSFORM_RIGHTpath to a .json file with a transformation to apply tothe trajectories (right_multiplicative)--propagate_transformwith --transform_right: transform each pose andpropagate resulting drift to the next.--invert_transform    invert the transformation of the .json file--ref REF             trajectory that will be marked/used as the reference--t_offset T_OFFSET   add a constant timestamp offset (not adding to --reftrajectory)--t_max_diff T_MAX_DIFFmaximum timestamp difference for data association--merge               merge the trajectories in a single trajectoryoutput options:-p, --plot            show plot window--plot_relative_time  show timestamps relative to the start of the reference--plot_mode {xy,xz,yx,yz,zx,zy,xyz}the axes for plot projection--ros_map_yaml ROS_MAP_YAMLyaml file of an ROS 2D map image (.pgm/.png) that willbe drawn into the plot--save_plot SAVE_PLOTpath to save plot--save_table SAVE_TABLEpath to save table with statistics--serialize_plot SERIALIZE_PLOTpath to serialize plot (experimental)--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--logfile LOGFILE     Local logfile path.usability options:--no_warnings         no warnings requiring user confirmation-v, --verbose         verbose output--show_full_names     don't shorten input file paths when displayingtrajectory names--silent              don't print any output--debug               verbose output with additional debug info-c CONFIG, --config CONFIG.json file with parameters (priority over command lineargs)

(3) 终端打印的解释

evo_traj 是一个用于分析和操作TUM轨迹文件的工具。它提供了多种功能,包括轨迹对齐、尺度校正、时间戳同步、转换应用、合并轨迹等。以下是命令行参数的详细解释:

位置参数

  • traj_files:一个或多个轨迹文件。

可选参数

  • -h, --help:显示帮助信息并退出。
  • -f, --full_check:运行所有检查并打印所有统计信息。

算法选项

  • -a, --align:使用Umeyama方法进行对齐(不包括尺度)-需要指定--ref
  • -s, --correct_scale:使用Umeyama方法进行尺度校正-需要指定--ref
  • --n_to_align N_TO_ALIGN:用于Umeyama对齐的位姿数量,从开始计数(默认:全部)。
  • --align_origin:将轨迹原点与参考轨迹的原点对齐。
  • --sync:通过匹配时间戳来关联轨迹-需要指定--ref
  • --transform_left TRANSFORM_LEFT:左乘法变换的.json文件路径,用于应用于轨迹的变换。
  • --transform_right TRANSFORM_RIGHT:右乘法变换的.json文件路径,用于应用于轨迹的变换。
  • --propagate_transform:与--transform_right一起使用:变换每个位姿,并将结果漂移到下一个位姿。
  • --invert_transform:反转.json文件中的变换。
  • --ref REF:将被标记/用作参考的轨迹。
  • --t_offset T_OFFSET:添加一个恒定的时间戳偏移(不添加到--ref轨迹)。
  • --t_max_diff T_MAX_DIFF:数据关联的最大时间戳差异。
  • --merge:将轨迹合并为单个轨迹。

输出选项

  • -p, --plot:显示绘图窗口。
  • --plot_relative_time:显示相对于参考开始的时间戳。
  • --plot_mode {xy,xz,yx,yz,zx,zy,xyz}:绘图投影的轴。
  • --ros_map_yaml ROS_MAP_YAML:ROS 2D地图图像(.pgm/.png)的yaml文件路径,将被绘制在绘图中。
  • --save_plot SAVE_PLOT:保存绘图的路径。
  • --save_table SAVE_TABLE:保存统计表格的路径。
  • --serialize_plot SERIALIZE_PLOT:序列化绘图的路径(实验性)。
  • --save_as_tum:以TUM格式(*.tum)保存轨迹。
  • --save_as_kitti:以KITTI格式(*.kitti)保存位姿。
  • --save_as_bag:以ROS bag格式(.bag)保存轨迹。
  • --logfile LOGFILE:本地日志文件路径。

可用性选项

  • --no_warnings:不显示需要用户确认的警告。
  • -v, --verbose:详细输出。
  • --show_full_names:在显示轨迹名称时不缩短输入文件路径。
  • --silent:不打印任何输出。
  • --debug:带有额外调试信息的详细输出。
  • -c CONFIG, --config CONFIG:带有参数的.json文件(优先级高于命令行参数)。

这个工具主要用于研究和开发中,以分析和比较不同视觉里程计或SLAM系统的轨迹。通过计算和可视化轨迹之间的差异,研究人员和开发者可以了解他们系统的准确性和鲁棒性,并据此进行改进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Framework AMS(07)service组件启动分析-1(APP到AMS流程解读)

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要解读应用层service组件启动的2种方式startService和bindService&#xff0c;以及从APP层到AMS调用之间的打通。关注思维导图中左侧部分即…

ISO 21434标准下汽车软件开发的网络安全核心要求

ISO 21434《道路车辆——汽车网络安全工程》是一个针对汽车网络安全的国际标准&#xff0c;它对汽车软件开发提出了明确的要求&#xff0c;以确保车辆在整个生命周期内的网络安全。 以下是ISO 21434网络安全标准对汽车软件开发的主要共同要求&#xff1a; 1. 安全意识与设计 …

microsoft edge浏览器卡死问题

win11经常遇到microsoft edge浏览器卡死的情况&#xff0c;有时候是一会没用浏览器就全部卡死&#xff0c;有时候是锁屏或者电脑休眠浏览器就不能用&#xff0c;找了很多的办法都没好使&#xff0c;用以下方法好使了&#xff1a; edge浏览器中打开 edge://settings/system 把 …

Cornerstone3D Tools对影像进行交互(中篇)-注释类工具使用

&#x1f3c4;‍♀️ 前言 这里是关于Cornerstone3D Tools对影像进行交互&#xff08;中篇 &#xff09;- 注释类工具的使用介绍。在 Cornerstone3D Tools对影像进行交互(上篇)-基础交互工具及同步器 一文中主要介绍了一下基础交互类工具的使用&#xff0c;感兴趣的小伙伴可以…

【优先算法】--双指针1

“一念既出&#xff0c;万山无阻。”加油陌生人&#xff01; 目录 1.双指针--移动零 2.双指针-复写零 ok&#xff0c;首先在学习之前&#xff0c;为了方便大家后面的学习&#xff0c;我们这里需要补充一个知识点&#xff0c;我这里所谓的指针&#xff0c;不是之前学习的带有…

Linux系统移植

目录 一、简介 嵌入式Linux系统移植组成部分: 二、搭建交叉开发环境 选择交叉开发环境的原因: 1.Ubuntu和Windows下的文件互传 2.Ubuntu 下 NFS和 SSH服务开启 3.Ubuntu 交叉编译工具链安装 3.1修改环境变量 3.2安装相关库 三、bootloader的选择和移植 编译U-boot 总…

中大型企业网络架构和建设方案

1. 需求分析 &#xff08;1&#xff09;用户需求&#xff1a; 员工访问&#xff1a;支持内部员工通过有线和无线网络访问企业资源。 远程访问&#xff1a;支持远程办公员工通过VPN安全访问企业内部资源。 合作伙伴和客户访问&#xff1a;允许外部合作伙伴和客户通过受控渠道访问…

Linux 外设驱动 应用 2 KEY 按键实验

2 按键 2.1 按键介绍 按键是指轻触式按键开关&#xff0c;也称之为轻触开关。按键开关是一种电子开关&#xff0c;属于电子元器件类&#xff0c;最早出现在日本&#xff0c;称之为&#xff1a;敏感型开关&#xff0c;使用时以满足操作力的条件向开关操作方向施压开关功能闭合…

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 文章目录 东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南一 TongWeb V7二 Spring Boot JAR 配置文件三 修改 maven 依赖四 docker compose 启动项目五 查看 docker 信息 本文详细讲解了如何在 Docker 环境中将东方…

【笔记】Day2.5.1查询运费模板列表(未完

&#xff08;一&#xff09;代码编写 1.阅读需求&#xff0c;确保理解其中的每一个要素&#xff1a; 获取全部运费模板&#xff1a;这意味着我需要从数据库中查询所有运费模板数据。按创建时间倒序排序&#xff1a;这意味着查询结果需要根据模板的创建时间进行排序&#xff0…

嵌入式学习-IO进程-Day02

嵌入式学习-IO进程-Day02 标准IO函数接口 fread&#xff0c;fwrite 文件指针偏移函数 文件IO 概念 文件IO的特点 文件描述符 文件IO的函数接口 open 打开文件 close 关闭文件 read 读函数 write 写函数 lseek 移动文件指针 标准IO和文件IO对比 目录操作函数 opendir 打开目录 c…

套接字Socket

套接字 在网络中通过 IP 地址来表示和区别不同的主机&#xff0c;通过端口号来标识和区分一台主机中的不同应用进程&#xff0c;端口号拼接到 IP 地址即构成套接字 Socket。在网络中采用发送方和接收方的套接字来识别端点。套接字&#xff0c;实际上是一个通信端点&#xff0c…

C语言初阶小练习2(三子棋小游戏的实现代码)

这是C语言小游戏三子棋的代码实现 test.c文件是用来测试的部分 game.h文件是用来声明我们说写出的函数 game.c文件是用来编写我们的功能实现函数部分 1.test.c #define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void menu() {printf("***************…

使用 cmake 在 x86 系统中为 arm 系统交叉编译程序

原理&#xff1a; 在 x86 系统里使用交叉编译工具链&#xff08;arm 版 gcc/g&#xff09;编译程序&#xff0c;然后放在 arm 系统里运行。 arm 版本 使用 lscpu 查看 cpu 架构 版本说明armv732 bitarmv8/arrch6464 bit 安装交叉编译工具链 # 针对 armv7 sudo apt install…

库卡ForceTorqueControl(一)

1. 功能说明 ForceTorqueControl 是一个可后载入的备选软件包&#xff0c;具有下列功能&#xff1a; 执行取决于测得的过程力和力矩的运动 遵守过程力和力矩&#xff0c;不取决于工件的位置和尺寸 遵守加工工件期间复杂的过程力变化 沿着根据测得的过程力编程的轨迹调整速度 通…

MySQL上新:MySQL 9.1.0发布

MySQL 9.1.0 已经于 2024 年 10 月 15 日正式发布。这是一个创新版本&#xff0c;增加了一些新功能、修复了一些问题并且弃用了一些旧功能。 同时发布的还有 MySQL 8.4.3 以及 MySQL 8.0.40。 以下是该版本包含的部分更新。 原子DDL 在该版本之前&#xff0c;虽然 CREATE DAT…

【高分论文密码】AI赋能大尺度空间模拟与不确定性分析及数字制图

随着AI大语言模型的广泛应用&#xff0c;大尺度空间模拟预测与数字制图技术在不确定性分析中的重要性日益凸显。这些技术已经成为撰写高分SCI论文的关键工具&#xff0c;被誉为“高分论文密码”。大尺度模拟技术能够从不同的时空尺度揭示农业生态环境领域的内在机理和时空变化规…

JAVA开源项目 课程智能组卷系统 计算机毕业设计

本文项目编号 T 009 &#xff0c;文末自助获取源码 \color{red}{T009&#xff0c;文末自助获取源码} T009&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 老…

【JAVA毕业设计】基于Vue和SpringBoot的医院电子病历管理系统

本文项目编号 T 008 &#xff0c;文末自助获取源码 \color{red}{T008&#xff0c;文末自助获取源码} T008&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 医…

Focal Loss

Focal Loss Kullback-Leibler Divergence&#xff08;相对熵&#xff09;NLL LossCross Entropy LossBalanced Cross Entropy LossFocal Loss应用场景&#xff1a;1、车道检测与分类 Kullback-Leibler Divergence&#xff08;相对熵&#xff09; KL散度&#xff08;Kullback-L…