首页 > 其他分享 >【学习笔记】Vins-Mono论文阅读笔记(三)

【学习笔记】Vins-Mono论文阅读笔记(三)

时间:2022-09-23 12:55:55浏览次数:85  
标签:Mono 边缘化 残差 笔记 VIO 因子 Vins 优化 VINS

VINS的整个VIO的实现方法,也就是对应的esimator部分的代码内容。理论部分主要介绍三种因子(IMU预积分因子、视觉因子和边缘化因子)的残差构造及雅克比推导
VINS的VIO是基于紧耦合框架实现的,其本质就是一个基于滑动窗口的和图优化的VIO

公式

滑动窗口中的全状态向量被定义为:

我们使用视觉惯性BA。我们最小化所有测量残差的先验和Mahalanobis范数之和,得到最大后验估计:

这个式子就分成了三个部分

边缘化:

这里首先说说什么是边缘化,边缘化就是在进行图优化的时候,为了保持实时性,对优化变量的维度控制在一定的程度的操作,在VINS中对应的就是滑动窗口的处理。既然是滑动窗口,就涉及到了对老旧图像帧的处理问题,最最直观的想法是每来一帧新的图像,就直接丢弃原来滑窗中最老的帧,然后对滑窗内的帧进行优化。这种朴素的做法显然会导致这样一个问题:没有了第一帧的约束,那我们只能约束滑窗内每帧之间的相对位姿,而不能约束它们的绝对位姿(相对[0,0,0]的位姿)因此,进行边缘化时我们需要将丢弃的图像帧也作为一个约束项,加入到我们的优化问题中,这也是VINS里面对边缘化的处理方法,将边缘化掉的帧作为先验约束加入到损失函数中进行计算。
在理解边缘化的时候,我们需要把握边缘化的核心是什么?边缘化的作用是什么?我的理解是边缘化一方面控制优化维度,保持计算的实时性;另一方面,它相当于对现在还在滑窗中的优化变量进行约束,不至于让滑窗中优化前后的数值相差太远。可以理解为,被边缘化的变量已经固定了,然后我们基于这些已经固定的量去优化滑窗里的内容。所以在实际实现的时候,首先我们需要找到需要边缘化的帧,然后找出该帧包含哪些因子,然后找到这些和这些因子相关联的优化变量,然后再对这些优化变量构建残差项,这大体就是VINS在边缘化上实现的总体逻辑。
这里我的感觉真的很像lstm部分,引入权重来保证之前的“记忆”不会丢失,
(边缘化那部分的数学实在是看不明白推导过程,就不多说了)

IMU残差部分

这里用到的就是之前IMU预积分的内容

视觉代价误差函数部分

继续引用之前推导过的视觉因子中的残差,以及残差关于状态量的雅克比矩阵。

参考链接

标签:Mono,边缘化,残差,笔记,VIO,因子,Vins,优化,VINS
From: https://www.cnblogs.com/lugendary/p/16722332.html

相关文章

  • 【项目实战】自备相机+IMU跑通Vins-Mono记录
    前言初次接触SLAM,公司要求用自己的设备来跑通vinsmono这个程序,虽然已经跑通了别人的数据包,但是真正自己上手来运行这个程序,发现真的是困难重重,特意在此记载下来整个过程,以......
  • JVM学习笔记记录
    目录JVM学习记录一、什么是JVM1.1、定义:1.2、优点1.3、JVM、JRE和JDK区别二、内存结构2.1、整体结构2.2、程序计数器2.3、虚拟机栈问题辨析内存溢出线程运行诊断3、本地方......
  • Java基础(学习笔记非本人纯原创)
    Java学习Java基础语法一、注释:注释的说明:1、注释是在程序指定位置添加的说明信息(例如衣服的吊牌等)2、注释不参与程序运行,仅起到说明作用注释的分类://......
  • uniapp学习笔记-transition过渡动画切换卡顿的问题
    //主页分页面1分页面2 发现从主页跳转到1和2页面不存在动画卡顿,不过1和2之间切换存在卡顿,猜测可能是动画都是zoomin个人探索的解决方法:先切换到......
  • 图数据库学习笔记
    目录图数据库学习笔记图数据库简介什么是图数据库图数据库如何表达数据示例应用场景社交网络应用实时推荐地理空间管理主数据管理(MasterDataManagerment)网络和数据中心管......
  • vue学习笔记(五):组件的重用
    父组件代码:放在views文件夹中<template><div><h1>父组件</h1><!--指定type和size,传值给组件--><mybuttontype="fail"size="middle">按......
  • 【笔记】搜索
    题单简单记录一下较典型的\(\text{or}\)较有思维含量的题。0X00P1123取数游戏考虑从上往下,从左往右依次取数。每次取完一个数将其标记掉,然后下次取前看周围八个是否......
  • ansible 笔记
    ansible基于ssh  主要组成部分  安装yum安装需要先安装epel源:yuminstall-yhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm ......
  • Jenkins 20220922笔记本2
                                  ......
  • vue学习笔记(四):条件和循环
    使用如下代码:<template><div><table:key="data.id"border="1"width="300px"><trv-if="data.length===0"><tdcolspan="5">{{"无数据"}}</td......