ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解0——整体框架与理论基础知识

ORB_SLAM2的作者在2017年提出了具有地图重用功能的单目视觉惯性定位算法,该算法的具体思路和港科大的VINS有着异曲同工之妙,整体过程可分为下面几个部分:
1.整体流程与基础知识总结
2.基于流型的IMU预积分
3.IMU初始化(视觉惯性联合初始化)
4.紧耦合优化模型
下面主要通过这三个方面对整个思路做详细的说明。还是按照VINS相同的方式来讲解,首先对整个理论知识做详细的分析,然后从代码角度做深入理解。
其中代码参考王京大神的开源方案:
https://github.com/jingpang/LearnVIORB
论文参考主要下面两篇:
Visual-Inertial Monocular SLAM with Map Reuse
On-Manifold Preintegration for Real-Time Visual–Inertial Odometry

1.整体流程与基础知识总结
(1)整体框架
对于整个ORB_SLAM2的框架大家有一定的了解,主要分为三个线程Tracking、LocalMapping和Loopclosing。我对VIO这块的理解目前只局限于前两个线程,因此整体框架就包含前两个线程中的理解。
这里写图片描述
(2)基础知识总结
这里所提到的基础知识都会在下面的理论推导公式中使用,因此都是十分重要的公式,需要牢记。
①叉积的基本性质
叉积的定义式
这里写图片描述
叉积的一个最重要的性质,在后面的雅各比矩阵推导中起到至关重要的作用,需要谨记
这里写图片描述
②指数一阶泰勒近似
这里写图片描述
这个式子就是以前数学中指数一阶泰勒展开,很简单,因为旋转涉及到李群和李代数的指数转换关系,所以这个式子在后面的优化雅各比推导中很重要。
③李群和李代数指数转换关系
ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解0——整体框架与理论基础知识_第1张图片
这里写图片描述
李群和李代数是指数映射关系,是三维向量(旋转向量)与三维旋转矩阵之间的转换,上图中可以看到流型的李群上的切平面(李代数)可以由李群一阶近似(李群扰动表示李代数扰动)
这里写图片描述
上面的公式参考视觉SLAM十四讲中,原文预积分中给出的是李代数“向量”形式,感觉不太好理解,所以还是用反对称矩阵来表示,其中Jr是李代数上的右雅各比
这里写图片描述
同样的李代数扰动可以表示李群扰动
这里写图片描述
指数映射还有另外一个性质,在李群原点处的一阶展开可以推导下面的公式,性质和推导攻入如下
这里写图片描述
这里写图片描述

你可能感兴趣的:(SLAM,视觉惯性SLAM)