ORBSLAM3运行记录(单目+IMU)

2023-10-13 20:20

本文主要是介绍ORBSLAM3运行记录(单目+IMU),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ORBSLAM3运行记录

  • 1.单目+IMU数据集运行记录
    • 自己做的其它测试
  • 2.单目+IMU自己采集数据运行记录
    • 测试结果

1.单目+IMU数据集运行记录

ORBSLAM3没有预留ROS下单目+IMU的结点,这个需要自己去写代码添加,可以参考这篇博客,《ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式》。我的ROS结点为Mono-IMU,字典文件ORBvoc.txt在ORBSLAM3 / Vocabulary文件夹中,配置文件EuRoC.yaml在ORB_SLAM3 / Examples / Monocular-Inertial 文件夹中。数据集采用的是EuRoC数据集下的MH_05_difficult.bag
为了进入ORBSLAM3文件夹中,打开终端1执行

cd /home/xiaoqiang/roswork/catkin_ws/src/ORB_SLAM3

接着执行

rosrun ORB_SLAM3 Mono-IMU Vocabulary/ORBvoc.txt Examples/Monocular-Inertial/EuRoC.yaml

等待一会儿,打开终端2执行如下指令,播放.bag文件。

rosbag play /home/xiaoqiang/Downloads/MH_05_difficult.bag

运行结果很完美,用evo评价工具与标准轨迹对比误差5.3厘米。
运行结果
在这里插入图片描述
evo评价结果
在这里插入图片描述
在这里插入图片描述

自己做的其它测试

配置文件EuRoC.yaml中的的外参矩阵的平移量为(-0.0216401454975,-0.064676986768,0.00981073058949
我将其改为(0.0,0.0,0.0),运行结果依然很完美,用evo评价工具与标准轨迹对比误差厘米级。
我将其改为(0.1,0.1,0.1),运行结果依然很完美,用evo评价工具与标准轨迹对比误差厘米级。
我将其改为(1.0,1.0,1.0),运行结果很糟糕,几乎不能运行。
我将其改为(10.0,10.0,10.0),运行结果很糟糕,几乎不能运行。
以上结果说明,外参阵的平移量在真值附近小范围调整对实验结果影响不大。一般来说,如果相机和IMU的距离在10cm左右,在不知道精确外参平移的情况下可将其置零。

外参旋转为

   data: [0.0148655429818, -0.999880929698, 0.00414029679422, -0.00,0.999557249008, 0.0149672133247, 0.025715529948, -0.00,-0.0257744366974, 0.00375618835797, 0.999660727178, 0.00,0.0, 0.0, 0.0, 1.0]

我直接改为

   data: [0, -1, 0, -0.00,1,  0, 0, -0.00,-0,  0, 1,  0.00,0.0, 0.0, 0.0, 1.0]

三轴角度变化均值在1°左右,运行结果如下

这篇关于ORBSLAM3运行记录(单目+IMU)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/205639

相关文章

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、