vSLAM重读(4): OKVIS--KeyFrame-based Visual-Inertial SLAM

2023-05-16

1. 摘要

视觉传感器与IMU传感器互补 == > VIO系统;

由最初的以滤波为主题,现在逐渐转换为非线性优化来实现SLAM;

提出一种方法将视觉信息与IMU测量数据紧密结合,将IMU的误差与路标点的投影误差结合在一个概率成本函数中,实现一种联合非线性优化。

使用“关键帧”的概念,我们将一部分旧状态边缘化以维持有一定边界的优化窗口,从而确保实时操作。

与只有视觉和松耦合的视觉惯性算法相比,我们的实验正式了紧耦合在精度和鲁棒性方法的好处!

2. 松耦合和紧耦合

在这里插入图片描述

  • 松耦合

    松耦合是指, IMU和相机分别进行自身的运动估计,然后对其位姿结果进行融合

松耦合也可以分为: 基于滤波和基于优化两个方向(松耦合的方法则简单的多)

	1. 在滤波方向: Ethz的Stephen Weiss研究较多,ssf和msf都是比较不错的开源算法。
	2. 在优化方向: 松耦合的工作不多, Gabe Sibley在iros2016的一篇文章
  	《Inertial Aided Dense & Semi-Dense Methods for Robust Direct Visual Odometry》提到了这个方法。
  	简单来说就是把vo计算产生的位姿变换添加到imu的优化框架里面去
  • 紧耦合

紧耦合是指,IMU和相机的状态合并在一起,共同构建运动方程和观测方程,然后进行状态估计。

紧耦合也可以分为: “基于滤波和基于优化两个方向”

	1.  在滤波方向: EKF和MSCKF, ROVIO是代表作。
	2.  在优化方向: OKVIS是代表作, orbslam2 + imu 紧耦合, 紧耦合 VINS-Mono

3. 主要贡献

1.当相机移动较慢甚至停止不动时,我们采用关键帧范例来进行无漂移估计,而不是使用时间连续的优化窗口。我们公式化一个关键帧的相对不确定性,而不表示全局姿态的不确定性(from RSLAM)。

2.提供一个完整的IMU误差项概率推到,包括相关连续图像帧的信息矩阵,而没有以IMU速率明确引入状态;

3.在系统层面上,我们开发了用于实时精确的SLAM的硬件和算法,包括使用“惯性提示”的稳定关键点匹配以及额外点剔除。

最后,在II-B引入了视觉SLAM中的惯性误差项, II-C中的实时立体声图像处理和关键帧选择, II-D中的边缘化形式。

4.测试结果图

在这里插入图片描述

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

vSLAM重读(4): OKVIS--KeyFrame-based Visual-Inertial SLAM 的相关文章

  • 【VINS论文笔记】A General Optimization-based Framework for Local Odometry Estimation with Multiple Sensors

    前言 2019年1月11日 xff0c 港科大VINS Mono的团队发布了VINS的扩展版本 VINS Fusion 其支持多种视觉惯性传感器类型 xff08 单相机 43 IMU xff0c 立体相机 43 IMU xff0c 立体相机
  • VSLAM与VIO的3D建图,重定位与世界观综述

    作者 紫川Purple River 编辑 汽车人 原文链接 xff1a zhuanlan zhihu com p 592225457 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自
  • svo: semi-direct visual odometry 论文解析

    SVO 从名字来看 xff0c 是半直接视觉里程计 xff0c 所谓半直接是指通过对图像中的特征点图像块进行直接匹配来获取相机位姿 xff0c 而不像直接匹配法那样对整个图像使用直接匹配 整幅图像的直接匹配法常见于RGBD传感器 xff0c
  • 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 2022 C++开发 (Win)配置教程

    前言 本文将讲解如何在Window系统下配置Visual Studio 2022版本的C 43 43 开发环境 步骤 下载并且安装Visual Studio Tools xff08 1 xff09 下载 Visual Studio Tool
  • 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 照做即可 本人
  • 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
  • 低版本MATLAB配置高版本Visual Studio进行C/C++编译

    文章目录 前言1 下载支持Visual Studio2019的配置文件2 将Visual Studio2019的配置文件复制粘贴到MATLAB相应路径3 确定注册表添加路径和数值名称4 完成添加4 验证是否成功总结 前言 低版本的MATLA
  • Visual Studio + Opencv配置

    目录 Opencv安装 环境变量配置Visual Studio 库的两种配置 本文使用操作系统为Windows10 xff0c 仅适用于windows环境Visual Studio编译器上的 Opencv开发配置 Opencv所有平台通用的
  • Visual C++6.0 一些编译链接报错解决

    01 VC 43 43 编写图形化界面链接时出现 LIBCD lib crt0 obj error LNK2001 unresolved external symbol main 的解决方案 在我使用VC 43 43 编写一个图形化显示界面
  • 使用CMake和Visual Studio搭建工程并引入OpenCV库

    前言 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 在之前的Windows平台下OpenCV的编译与安装 Mega Li的博客 CSDN博客 nbsp 中介绍了Windows平台中使用CMake编译Open
  • Visual Studio中设置opencv环境

    图像处理的项目中 xff0c 每建立一个新的项目 xff0c 需要对环境重新设置 xff0c 本文记录一下自己在VS中设置环境的步骤 xff0c 也分享给相同的入门小白 本文侧重说明VS中调用opencv的环境设置步骤 xff0c open
  • 使用Visual Studio Code开发Arduino踩坑日记(持续更新)

    使用Visual Studio Code开发Arduino踩坑日记 持续更新 文章目录 使用Visual Studio Code开发Arduino踩坑日记 持续更新 1 在browse path中未找到包含文件问题描述问题分析解决思路解决过
  • Visual Studio 2022下载安装

    Visual Studio 2022下载安装 1 进入官网 官网地址 xff1a https visualstudio microsoft com 这里以Windows操作系统为例 根据需要选择版本 xff0c 我这里下载的是Enterpr
  • 2021-08-06

    在编译OKVIS中 执行make j8时报错的解决方法 1 根据github上OKVIS的安装步骤一步一步执行 由于github经常进不去 我就进了gitee网站查到OKVIS的安装步骤 参考链接 https gitee com bill4
  • 【语义】如何使用PointNet训练点云数据和点云分割(初探)

    大家好 今天给大家介绍下cvpr2017 一篇文章Pointnet 语义分割 该网络基于tensorflow 写的 非常轻巧方便 但是文章和代码有一定出入 在训练过程中出现过拟合现象 大概训练了10个小时多 1 需要准备的东东 1 Ubun
  • 如何使用 FFMPEG 分割视频,以便每个块都以关键帧开始?

    我们需要将大型实时 WMV 视频源分割成大小相同的小块 我们制作了一个脚本 可以很好地执行此操作 但有一点除外 视频块不以关键帧开始 因此在播放大多数视频块时 它们不会显示任何图像 直到原始视频中的关键帧最终出现为止 到达 有没有办法告诉
  • @keyframes 不支持阿拉伯语

    我尝试用 keyframes 用阿拉伯语写一个句子 但 keyframes 不支持阿拉伯语 并且出现难以理解的字符 caption background color black caption h1 after animation move

随机推荐

  • 导纳控制 admittance control

    简单记录一下导纳控制 对于一个质量块 m m m xff0c 其位移记为 x x x xff0c 我们期望它按照预期保持在
  • T-S模糊模型与状态反馈控制及Matlab仿真 (附代码)

    目录 一 仿射非线性系统建模 二 计算T S模糊模型子系统 三 建立推理 xff0c 验证开环特性 四 极点配置 xff0c 验证闭环特性 五 使用LMI验证稳定性 一 仿射非线性系统建模 以overhead crane system为例
  • 2022同济825自控原理

    1 求 R L C RLC R L C 电路的传递函数 2 求 M a s
  • json离线解析格式化工具

    json离线解析格式化工具 xff1a 当没有网络的时候 xff0c 可以使用该工具实现json解析格式化 https download csdn net download boboelec 11992955 工具使用效果 xff1a
  • LMI 转化与Matlab工具箱

    目录 一些结论 1 1 中给出下面两结论 lmivarcase1case2case3case4 参考 需要将一些不等式转化为LMI 一些结论 1 1 中给出下面两结论 P gt 0
  • Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease Could not resolve ‘security.ubun

    在执行apt get update命令的时候更新报错 Err 1 http security ubuntu com ubuntu bionic security InRelease Could not resolve 39 security
  • 强化学习Q-Learning算法

    强化学习Q Learning算法 前言基本概念基本概念递推关系 Q learning基本原理注意事项局限性仿真 前言 学习这个算法有一段时间了 xff0c 但是因为自己犯懒一直没有整理 现整理一下 xff0c 一方面有刚入门的同学可以参考
  • 联想拯救者Y7000P装win10与Ubuntu18.04双系统

    初衷 写这个博客的初衷是为了记录本人在联想笔记本上安装Ubuntu18 04双系统时遇到的坑 xff0c 事后装完之后发现并不是很坑 xff0c 但是如果没有遇到过此类问题 xff0c 就很难受了 xff0c 所以决定记录下来 这款笔记本安
  • 强化学习DDPG算法

    强化学习DDPG算法 前言 因为疫情一直在辗转隔离 xff0c 没心思学习 xff0c 索性整理一下学过的东西 xff0c 记一下学习笔记 xff0c 就当自我安慰了 推导部分观看了这个B站的学习视频 DDPG 与DQN不同 xff0c D
  • 最优控制 3:最优控制理论中的极小值原理与动态规划

    最优控制 3 xff1a 使用极小值原理求解最优控制问题 引言极小值原理 t f t f t f 固定的情况
  • 使用Pycharm创建一个工程

    刚刚开始学习Python xff0c 使用的IDE是PyCharm 本来想记在本子上 xff0c 可是感觉有点慢 xff0c 而且多 xff0c 因此选择在网上记录自己的笔记 哈哈 xff0c 也不知道能记多长时间 PyCharm下载安装之
  • Pycharm在windows下使用Anaconda中的Python解释器各种报错的问题

    最近几天被windows下的软件快要搞疯了 电脑装了Anaconda3 xff0c 在运行一些python程序的时候 xff0c 这些程序在anaconda的自带终端中python代码可以正常运行 但是不可以使用诸如Pychrm和VS201
  • Ubnutu16.04 系统下编译PX4固件方法

    今天开始准备在Ubuntu16 04下搭建PX4的开发环境 早就听说源代码编译的过程中有很多坑 xff0c 所以在编译源代码之前在网上搜索了很多教程 xff0c 其中这个教程写的非常详细 xff1a https blog csdn net
  • 高斯过程回归中后验概率的简单推导

    最近几天在整理高斯过程回归 Gaussian Process Regression GPR 部分的知识 xff0c 虽然还有很多问题没有搞懂 xff0c 但是有一点进展还是决定总结下来 xff0c 防止遗忘 在整理之前 xff0c 先列出我
  • mavlink增加自定义消息

    mavlink作为PX4以及APM两大开源飞控的通讯协议 xff0c 应用非常广泛 在进行开源飞控二次开发时 xff0c 增加自定义消息非常普遍 比如在offboard模式下 xff0c 将视觉避障信息或者雷达信息发送给飞控 xff0c 这
  • 【从0到1】组装深度学习台式机

    本文旨在为有从事深度学习研究的同学提供一份装机攻略 xff0c 望对您有帮助 1 前言 目前 新基建 热潮 xff0c 人工智能如火如荼 xff0c 国内大部分院校 企业都会为学生 员工配置实验集群 xff0c 但是有时候想在本地自己跑些d
  • 【ROS学习】节点运行管理launch文件的基本操作

    launch文件的概念和作用 launch 文件是一个 XML 格式的文件 xff0c 可以启动本地和远程的多个节点 xff0c 还可以在参数服务器中设置参数 launch文件的作用是 xff1a 简化节点的配置与启动 xff0c 提高RO
  • 系统提示“该设备无法启动(代码:10)”,USB设备不能开始工作怎么办?

    文章来源 xff1a https www reneelab com cn this device cannot start html 目录 原因分析解决方法一 xff1a 在设备管理器中更新驱动程序解决方法二 xff1a 重新安装有问题的U
  • printf 在Linux终端上输出彩色字体 (串口也适用)

    有时我们希望在LINUX终端上按照调试级别打印不同颜色的调试信息 xff0c 如 include lt stdio h gt define DBG PRINT format arg do fprintf stdout 34 ld d fla
  • vSLAM重读(4): OKVIS--KeyFrame-based Visual-Inertial SLAM

    1 摘要 视觉传感器与IMU传感器互补 61 61 gt VIO系统 xff1b 由最初的以滤波为主题 xff0c 现在逐渐转换为非线性优化来实现SLAM xff1b 提出一种方法将视觉信息与IMU测量数据紧密结合 xff0c 将IMU的误