【IMU:视觉惯性SLAM系统】

embedded/2024/12/23 18:54:48/

视觉惯性SLAM系统简介

相机(单目/双目/RGBD)与IMU结合起来就是视觉惯性,通常以单目/双目+IMU为主。
IMU里面有个小芯片可以测量角速度与加速度,可分为6轴(6个自由度)和9轴(9个自由度)IMU,具体的关于IMU的介绍可看上一篇。
在这里插入图片描述

视觉惯性SLAM应用

在这里插入图片描述

相机和IMU耦合的优势

  • 在慢速和快速运动的输出上两者具有互补性

  • 相机输出的是图像。相机在低速运动下能够稳定成像。而当相机高速运动时,不仅容易造成成像模糊,而且短时间内图像差异也较大。

  • 而IMU输出的是加速度和角速度,在快速运动时才输出可靠的测量,缓慢运动时测量结果反而不可靠。
    在这里插入图片描述

  • 在使用场景上两者具有互补性

    • 对于相机来说成像是非常重要的:图像的特征提取和匹配和场景的纹理丰富程度、光照条件强相关,在遇到白墙、玻璃等弱纹理环境以及暗光条件下很难提取到可靠特征点
    • 而IMU在这个场景没有此类问题。IMU不受视觉场景环境的能响,在该场景下IMU输出不受影响。IMU本身是个芯片,对场景没有视觉输出。
      在这里插入图片描述
  • 在确定绝对尺度方面两者具有互补性

    • 单目相机具有尺度不确定性。对于单目相机来说,无法获得绝对的尺度。如下图无法确定奥特曼和房子的真实尺度,可能同时都是模型,也可能奥特曼是人扮演的而房子是模型等。
    • 而通过单目和IMU的数据融合,可以得到绝对的尺度。
      • IMU中的加速度积分是速度,速度积分是位移。可以积分出来尺度(在多少时间内跑了多少),然后将IMU得到的尺度与视觉得到的尺度进行融合以得到绝对尺度。
        在这里插入图片描述
  • 在感知自身运动和环境变化方面两者具有互补性

    • 通过给定相机画面,很难判断出是相机在动,还是相机画面中的景色在动。

    • IMU则不同,如果车没有开,IMU就是静止的,理论上是没有输出的。
      在这里插入图片描述

    • 在抑制漂移方面两者具有互补性
      常用的IMU误差很大,积分一段时间会产生很大的漂移。但图像的输出是稳定的(现在拍和隔一段时间拍基本是一样的),可以认为没有飘逸。

视觉惯性SLAM系统对比

  • 优秀开源方案:VINS-Fusion(单双目+IMU)、OKVIS(单双日+IMU) 、ORB SLAM3(单双目+IMU/RGB-D)
  • 开源方案对比
    • 目前主流的视觉和视觉惯性SLAM、VO系统对比
      在这里插入图片描述

    • 在数据集上各VIO算法量化效果对比
      ORB-SLAM3是最佳的
      在这里插入图片描述

    • ORB-SLAM3算法流程图
      在这里插入图片描述


http://www.ppmy.cn/embedded/148140.html

相关文章

【机器人】机械臂位置、轨迹和转矩控制概要

仍旧以 RRR(三连杆)为例,实现控制,可以采用以下步骤。这里的控制包括 位置控制轨迹控制 轨迹跟踪控制, 具体根据应用需求选择。以下是实现 RRR 机械臂控制的完整过程: 1. 定义机器人模型 通过 Denavit-H…

uboot 打开log 的 方法

uboot 版本 commit f919c3a889f0ec7d63a48b5d0ed064386b0980bd (HEAD -> v2024.10, tag: v2024.10) Author: Tom Rini <trinikonsulko.com> Date: Mon Oct 7 08:54:35 2024 -0600 Prepare v2024.10 Signed-off-by: Tom Rini <trinikonsulko.com> 开启的选项…

【设计模式探索——智能遍历:如何用迭代器模式优化AI数据处理】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 迭代器含义迭代器模式的优点迭代器的核心思想 世上本没有迭代器&#xff0c;不爽的人多了&#xff…

RHCE-第六章:DNS域名解析服务器

一、DNS简介 DNS&#xff08;Domain Name System&#xff09;是互联网上的一项服务&#xff0c;它作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网。 DNS系统使用的是网络的查询&#xff0c;那么自然需要有监听的port。DNS使用的是53端…

python--在服务器上面创建conda环境

今天刚开始使用服务器的时候使用上面的公共环境发现老师缺少模块&#xff0c; [guoyupingcins195 ~]$ conda --version Traceback (most recent call last): File "/home/miniconda3/bin/conda", line 12, in <module> from conda.cli import main Fil…

Harmonyos多线程之Worker基本使用

Harmonyos多线程之Worker基本使用 Worker的注意事项创建Worker的注意事项手动创建Worker线程自动创建Worker现成 跨har包加载Worker多级Worker的声明周期管理 Worker和宿主线程的通信 Worker主要作用是为应用程序提供一个多线程的运行环境&#xff0c;可满足应用程序在执行过程…

【进阶编程】MVC和MVVM实现前后端分离的实现

在 WPF 开发中&#xff0c;通常使用 MVVM&#xff08;Model-View-ViewModel&#xff09;架构来分离视图和业务逻辑&#xff0c;但在某些情况下&#xff0c;你可能希望将 MVC&#xff08;Model-View-Controller&#xff09;模式与 MVVM 结合使用。这种结合有时是为了兼顾不同的架…

spring注解

前面使用XML配置管理Spring虽然便于集中管理和维护&#xff0c;但是可能导致配置文件变得庞大且难以维护。特别是在处理复杂的配置关系时&#xff0c;XML配置可能会变得非常繁琐。使用注解可以以简洁直观的方式直接在类或方法上进行配置&#xff0c;减少了配置的冗余和错误&…