imu 里程计融合_视觉惯性里程计Visual–Inertial Odometry(VIO)概述

2023-05-16

周围很多朋友开始做vio了,之前在知乎上也和胖爷讨论过这个问题,本文主要来自于知乎的讨论。

个人理解错误的地方还请不吝赐教,转载请标明出处,内容如有改动更新,请看原博:http://www.cnblogs.com/hitcm/,如有任何问题,feel free to contact me at robotsming@gmail.com

如有问题,请及时反馈给我,博客会持续更新。

1.基本概述与分类

按照Davide Scaramuzza的分类方法,首先分成filter-based和optimization-based的两个大类,这也和一般SLAM系统的分类方法类似。

按照是否把图像特征信息加入状态向量来进行分类,可以分为松耦合(loosely-coupled,下面的losely是笔误)和紧耦合(tightly-coupled)。

这是两种独立的分类方法,首先看是基于滤波还是优化的,然后进一步根据状态向量中是否加入了图像的特征信息来判断松紧耦合。

VIO主要尝试的是融合Viusal和IMU的信息,因此后面的论述中也就主要考虑这两种数据。

2.Filter-based

利用滤波的方法进行多传感器的数据融合是一个很正常的套路。

按照是否把图像特征信息加入特征向量来进行分类,可以分为紧耦合和松耦合。

2.1紧耦合

紧耦合需要把图像feature进入到特征向量去,因此整个系统状态向量的维数会非常高,因此也就需要很高的计算量。比较经典的算法是MSCKF,ROVIO。

2.2紧耦合举例-msckf

以比较经典的msckf为例,据说这也是谷歌tango里面的算法,这要感觉Mingyang Li师兄在MSCKF的不懈工作。

在传统的EKF-SLAM框架中,特征点的信息会加入到特征向量和协方差矩阵里,这种方法的缺点是特征点的信息会给一个初始深度和初始协方差,如果不正确的话,极容易导致后面不收敛,出现inconsistent的情况。

Msckf维护一个pose的FIFO,按照时间顺序排列,可以称为滑动窗口,一个特征点在滑动窗口的几个位姿都被观察到的话,就会在这几个位姿间建立约束,从而进行KF的更新。

2.3松耦合

而松耦合的方法则简单的多,避免把图像的feature加入状态向量,而是把图像当成一个black box,计算vo处理之后才和imu数据进行融合。

Ethz的Stephen Weiss在这方面做了很多的研究,他的ssf和msf都是这方面比较优秀的开源算法,有兴趣的读者可以参考他的博士论文。

2.4松耦合举例-ssf

滤波器的状态向量是24维,如下,相较于紧耦合的方法会精简很多。

Ssf_core主要处理state的数据,里面有预测和更新两个过程。

Ssf_update则处理另外一个传感器的数据,主要完成测量的过程。

3.optimization-based

随着研究的不断进步和计算平台性能的不断提升,optimization-based的方法在slam得到应用,很快也就在VIO中得到应用,紧耦合中比较经典的是okvis,松耦合的工作不多。

3.1松耦合举例

这方面的工作不多,而且效果显然是没有紧耦合好的。大佬Gabe Sibley在iros2016的一篇文章《Inertial Aided Dense & Semi-Dense Methods for Robust Direct Visual Odometry》提到了这个方法。简单来说就是把vo计算产生的位姿变换添加到imu的优化框架里面去。

3.2紧耦合举例-okvis

上图左边是纯视觉的odemorty,右边是视觉IMU融合的odemorty结构, 这个核心在于Frame通过IMU进行了联合, 但是IMU自身测量有一个随机游走的偏置, 所以每一次测量又通过这个偏置联合在了一起, 形成了右边那个结构,对于这个新的结构, 我们需要建立一个统一的损失函数进行联合优化

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

imu 里程计融合_视觉惯性里程计Visual–Inertial Odometry(VIO)概述 的相关文章

  • IMU+GPS

    GPS 43 IMU 介绍 xff08 熟悉的略过 xff09 IMU校准姿态估算数据融合 介绍 xff08 熟悉的略过 xff09 GPS GlobalPositioningSystem xff1a 指美国国防部研制的全球定位系统 用户设
  • 视觉惯性里程计Visual–Inertial Odometry(VIO)概述

    本文主要来自于博客园关于知乎的讨论 链接如下 xff1a Visual Inertial Odometry VIO
  • Visual Studio 与Visual C++ 有什么区别

    Visual C 43 43 是 Visual Studio的一个部分 xff0c 此外还有 Visual Basic xff08 VB xff09 Visual C 等 VC 43 43 6 0 是VS6的 VC 43 43 2003 是
  • Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

    前言 最近想要切换编辑工具 xff0c 之前工作中使用过 Source Insight xff0c Eclipse xff0c CLion 来写 C 43 43 代码 目前来说 Source Insight 已经非常古老 xff0c 只有编
  • Visual Studio Code(vscode) 格式化C++代码

    前言 vscode 自带的代码格式化工具不太好用 xff0c 因此我们需要有额外的代码格式化插件进行辅助 xff0c 一般情况下都使用 clang format 格式化 xff0c 这里是对 vscode 安装和使用 clang forma
  • Visual Studio Code (vscode) 配置 C / C++ 环境

    Visual Studio Code vscode 配置 C C 43 43 环境 步平凡 博客园 在电脑安装软件管控严格的情况下 xff0c 想装VS装不了 xff0c 就装轻量版的VSCode了 以上写得很好 xff0c 照做即可 本人
  • Matlab2013b和Visual Studio 2013混合编程总结

    Matlab2013b和VisualStudio 2013混合编程总结 一 关于软件版本和安装的说明 一般来说 xff0c Matlab版本需高于或者等于VisualStudio的版本 综合版本功能和兼容问题 xff0c 我们选用了Matl
  • Visual Studio和VS Code的区别

    1 Visual Studio简介 xff1a 是一个集成开发环境 IDE xff0c 安装完成后就能直接用 xff0c 编译工具 xff0c 调试工具 xff0c 各个语言的开发工具 xff0c 都是已经配置好的 xff0c 开箱即用 适
  • Visual Studio 与 Visual C++ 关系

    Visual Studio netVisual C 43 43 netVisual C 43 43 MSC VER备注Visual Studio net 2002Visual C 43 43 net 2002Visual C 43 43 7
  • Imu误差模型、零偏、零偏稳定性

    原文链接 零偏 xff0c 零偏稳定性和零偏重复性 xff0c IMU误差模型 什么是零偏 xff08 Bias xff09 在陀螺静止时 xff0c 陀螺仪仍会 xff0c 以规定时间内测得的输出量平均值相应的等效输入角速率表示 xff0
  • ZED 2i 双目-IMU标定

    目录 xff1a 前言IMU标定1 编译标定工具2 准备数据集3 标定 Camera IMU标定1 安装依赖2 编译Kaibr3 制作标定板下载标定板生成标定板target yaml文件 4 数据采集5 相机标定标定中遇到的问题问题1 xf
  • Visual Studio 2022 C++ CLR 的艰难除 Bug

    请看下面一段代码 xff1a 运行结果 xff1a 这是一个Button xff0c 要用到这段代码是因为字符串出了问题 xff1a 肯定是我写的类出问题了 xff0c 便是我在控制台下测试是正常的 代码 xff1a 运行结果 xff1a
  • 深蓝学院《从零开始手写VIO》作业五

    深蓝学院 从零开始手写VIO 作业五 1 完成Bundle Adjustment求解器2 完成测试函数3 论文总结 1 完成Bundle Adjustment求解器 完成单目 Bundle Adjustment 求解器 problem cc
  • 【转载】关于Visual Studio、VC和C++的那些事

    size 61 medium 首先 xff0c 这三个东西有什么区别呢 xff1f VC和C 43 43 是相同的吗 xff0c 有什么区别呢 xff1f 我刚开始学C 43 43 的时候也有这样的问题 xff0c 在这里我来替大家解释一下
  • CoppeliaSim ( vrep ) 与 c++ ( visual studio 2019)新建基本工程

    CoppeliaSim vrep 与 c 43 43 xff08 visual studio 2019 xff09 新建基本工程 文章目录 CoppeliaSim vrep 与 c 43 43 xff08 visual studio 201
  • Ardupilot IMU恒温控制代码学习

    目录 文章目录 目录 摘要 第一章原理图学习 第二章恒温代码学习 1 目标温度怎么设置 摘要 本节主要学习ardupilot的IMU恒温控制代码 采用的飞控是pixhawk v5 欢迎一起交流学习 第一章原理图学习
  • 使用Visual Studio Code开发Arduino踩坑日记(持续更新)

    使用Visual Studio Code开发Arduino踩坑日记 持续更新 文章目录 使用Visual Studio Code开发Arduino踩坑日记 持续更新 1 在browse path中未找到包含文件问题描述问题分析解决思路解决过
  • 滑窗优化——边缘化

    文章目录 一 从高斯分布到信息矩阵 1 1 SLAM 问题概率建模 1 2 SLAM 问题求解 1 3 高斯分布和协方差矩阵 1 4 样例 1 4 1 样例1 1 4 2 样例2 二 舒尔补应用 边际概率 条件概率 2 1 舒尔补的概念 2
  • 无人机姿态融合——EKF

    联系方式 860122112 qq com 一 实验目的 使用惯性测量单元IMU和磁场传感器 磁力计 的信息 通过EKF对四旋翼无人机进行姿态融合 二 实验环境 ROS机器人操作系统 三 实验步骤 1 安装hector quadrotor
  • 足部IMU在复杂场景中行走定位

    随着微机电系统 MEMS 技术的快速发展 基于MEMS的惯性导航系统 INS 在任意环境的基站定位方面发挥着至关重要的作用 惯性导航具有自主性强 定位频率高 功耗低 实时性强等特点 因此更适合单兵作战 反恐行动 应急救援 消防救援等环境未知

随机推荐