和单目纯视觉的初始化只需要获取R,t和feature的深度不同,VIO的初始化话通常需要标定出所有的关键参数,包括速度,重力方向,feature深度,以及相机IMU外参$R_{c}^{b}$和$p_{c}^{b}$。

一. 外参旋转矩阵初始化

在Feature Detection and Tracking模块中,利用Harris特征点匹配通过基础矩阵和Ransac恢复出$R_{Ck+1}^{Ck}$;

相应的使用IMU陀螺仪数据积分得到$R_{bk+1}^{bk}$;

这两个测量满足:

$R_{bk+1}^{bk}\cdot R_{c}^{b} = R_{c}^{b}\cdot R_{Ck+1}^{Ck}$

将测量得到的$R$用四元数表示,并利用四元数的运算(左乘右乘),可以得到一个约束方程:

$Q_{k+1}^{k}\cdot q_{c}^{b} = 0$

利用多组数据可以获得一个超定方程:

$Q_{N}\cdot q_{c}^{b} = 0$

通过求解最小二乘解,得到$q_{c}^{b}$。注意其中$Q_{N}$是包含使用Huber核的权重的,权重是通过残差矩阵计算得到,权重通过计算IMU项和视觉findFundamentalMat计算得到的旋转矩阵之间的差别得到,差别越大的$Q_{k+1}^{k}$,在$Q_{N}$中权重越小。

旋转初始化成功判定依据:

如果IMU三轴充分旋转,那么4*4矩阵$Q_{N}$的null space零空间的秩为1,可以得到稳定解;

如果旋转退化,则$Q_{N}$零空间的秩大于1,使用SVD分解,判断倒数第二小(第三大)的奇异值是否大于阈值。

因此,旋转标定初始化的关键在有充分的三轴旋转

二. 速度,重力方向,feature深度,以及外参平移矩阵初始化

可以将$R_{c}^{b}$,$R_{bk+1}^{bk}$,$R_{bk+1}^{b0}$当做已知固定值,使用最大似然估计(Maximum Likelihood Estimation, MLE)和Mahalanobis范数(可以理解为带权重的二范数(椭球向量范数))构建cost function,构建无偏的状态估计问题。

在Sliding Window(例如选取5帧)中对测量值构建最小二乘问题:

VINS中feature没有通过描述子匹配跟踪,也不仅像ORB-SLAM中选取观测次数多(跟踪效果好)的特征点,另外加入了视角足够大这个条件。虽然最后选取出的特征点数量比较少(150个左右),但是都是可观性很好的特征点。

(一)IMU测量模型

构建目标函数需要对测量模型建模,IMU的测量模型和预积分一样,预积分得到的测量值$\hat{z}$与状态估计值之间的差值取Mahalanobis范数,其中权重为协方差矩阵的逆(信息矩阵)。

参考预积分公式:

得到IMU测量的误差方程:

其中

为了求解高斯分布的最大似然,需要知道测量的协方差及其对应的状态转移方程(用于协方差的更新)

通过IMU的运动学方程微分,可以获得状态转移方程

假设初始IMU协方差$P_{bk}^{bk}$为0,则协方差传播方程为

协方差矩阵的传播和卡尔曼滤波的预测过程中协方差的传播是一样的,从系统的微分运动方程获取的。VINS中使用的是first-order discrete-time propagation,或者称为forward Euler method,其中加速度计的噪声$Q_{t}$需要预先知道或者使用imu_tk标定。

(二)视觉测量模型

重投影误差在VIO中,通常需要经过IMU坐标系的变换;这样有两个好处:

  • 将IMU的参数(外参)整合在视觉的residual中一起参与优化;
  • IMU的坐标系在预积分中是已知的,不需要再去计算;

因此将i帧获取的2D feature重投影到j帧上满足观测方程:

其中的坐标变换如下图所示:

初始化收敛判定:

cost function的协方差矩阵中外参平移向量$p_{c}^{b}$对应的协方差值(SVD分解)小于设定阈值时,收敛,初始化完成。由于要获得协方差矩阵(对应整个状态向量,而不是每一块误差项),需要对信息矩阵求逆,计算量较大,因此会放在新的线程中去完成(这里似乎有可以优化的空间)。  

VINS(四)初始化与相机IMU外参标定的更多相关文章

  1. 相机imu外参标定

    1. 第一步初始化imu外参(可以从参数文档中读取,也可以计算出),VINS中处理如下: # Extrinsic parameter between IMU and Camera. estimate_ ...

  2. 相机-imu外参校准总结

    1. 研究背景及相关工作 1)研究背景 单目视觉惯性slam是一种旨在跟踪移动平台的增量运动并使用来自单个车载摄像头和imu传感器的测量结果同时构建周围环境地图的技术.视觉相机和惯性测量单元(imu) ...

  3. 解放双手——相机与IMU外参的在线标定

    本文作者 沈玥伶,公众号:计算机视觉life,编辑部成员 一.相机与IMU的融合 在SLAM的众多传感器解决方案中,相机与IMU的融合被认为具有很大的潜力实现低成本且高精度的定位与建图.这是因为这两个 ...

  4. 相机IMU融合四部曲(三):MSF详细解读与使用

    相机IMU融合四部曲(三):MSF详细解读与使用 极品巧克力 前言 通过前两篇文章,<D-LG-EKF详细解读>和<误差状态四元数详细解读>,已经把相机和IMU融合的理论全部都 ...

  5. 相机IMU融合四部曲(一):D-LG-EKF详细解读

    相机IMU融合四部曲(一):D-LG-EKF详细解读 极品巧克力 前言 前两篇文章<Google Cardbord的九轴融合算法>,<Madgwick算法详细解读>,讨论的都是 ...

  6. 【项目实战】自备相机+IMU跑通Vins-Mono记录

    前言 初次接触SLAM,公司要求用自己的设备来跑通vinsmono这个程序,虽然已经跑通了别人的数据包,但是真正自己上手来运行这个程序,发现真的是困难重重,特意在此记载下来整个过程,以供大家参考. 我 ...

  7. 相机IMU融合四部曲(二):误差状态四元数详细解读

    相机IMU融合四部曲(二):误差状态四元数详细解读 极品巧克力 前言 上一篇文章,<D-LG-EKF详细解读>中,讲了理论上的SE3上相机和IMU融合的思想.但是,还没有涉及到实际的操作, ...

  8. Spring IOC容器启动流程源码解析(四)——初始化单实例bean阶段

    目录 1. 引言 2. 初始化bean的入口 3 尝试从当前容器及其父容器的缓存中获取bean 3.1 获取真正的beanName 3.2 尝试从当前容器的缓存中获取bean 3.3 从父容器中查找b ...

  9. SQL的四种连接(左外连接、右外连接、内连接、全连接)

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...

随机推荐

  1. Django 查询集的过滤内置条件

    条件选取querySet的时候,filter表示=,exclude表示!=.querySet.distinct() 去重复__exact 精确等于 like 'aaa' __iexact 精确等于 忽 ...

  2. [AHOI2004]数字迷阵

    嘟嘟嘟 应该算一道结论题吧. 首先很明显的一点,就是对于ai,j,我们只用求出ai,1就行了,剩下的就是斐波那契和矩阵快速幂的事. 至于如何求ai,1,用两种方法,但是哪一个我都不懂为啥,网上也没有解 ...

  3. PHP代码的多继承 -》 PHP代码复用新的姿势 trait

    本文参考:  http://php.net/language.oop5.traits 一.什么是trait 从PHP 5.4.0 开始 PHP 实现了一种新的代码复用方式 trait. 二.trait ...

  4. Classless Interdomain Routing (CIDR)

    IP Address Problems IP Address Exhaustion Class A, B, and C address structure inefficient Class B to ...

  5. 【MongoDB】CentOS上安装MongoDB

    权限部分尚未测试完成,请勿参考. 1.去官方网站下载Mongodb for linux的包,我没找到CentOS的,随便下载了个mongodb-linux-x86_64-amazon-3.2.0.tg ...

  6. Gradle Goodness: Check Task Dependencies With a Dry Run

    We can run a Gradle build without any of the task actions being executed. This is a so-called dry ru ...

  7. react系列(六)Redux Saga

    在Redux中常要管理异步操作,目前社区流行的有Redux-Saga.Redux-thunk等.在管理复杂应用时,推荐使用Redux-Saga,它提供了用 generator 书写类同步代码的能力. ...

  8. Eclipse 中打开选中文件/文件夹所在目录

    习惯了使用VS中的 ”通过右键打开选中文件/文件夹在电脑中的目录”功能后, 当切换到Eclipse环境后,发现居然找不到这个功能, 虽可以通过右键文件属性,看到文件路径,复制路径然后在资源管理器中打开 ...

  9. ubuntu 18.04可以连接内网,无法连接外网

    手动增加网关后,又重新sudo apt-get upgrade,  提示/etc/resolvconf/resolv.conf.d更新时,选Y后,不用手动修改网关也可以连接外网了. 一切默认更新后,1 ...

  10. CF1066A Vova and Train(模拟)

    大水题... 题目要求你求能看到的灯笼数,我们可以分为3部分 总共的灯笼数——————1 在 l 左面的灯笼数(不包括lll)——————2 在 r 左面的灯笼数(包括rrr)——————3 我们知道 ...