OpenVINS代码解析-DynamicInitializer-(上)

有一段时间没有更新博客了,临近年关,有空来重新捡起来,这次我们来看看vio里面一个重要模块-初始化,OpenVINS根据相机的视差以及IMu的数据判断车辆运动状态,决定了两种初始化方式:静态初始化和动态初始化。静态初始化比较简单,有很多博客已经解析的比较详细:OpenVINS静态初始化,所以我们重点聊一聊动态初始化。

VIO初始化

1.为什么需要初始化?

VIO系统初始时刻需要跟惯性坐标系之间的关系,所以需要找到系统的重力方向来对齐惯性系的重力方向。根据VIO的系统状态可知我们还需要知道初始时刻的速度、加速度计以及陀螺仪的bias以及Camera与IMU之间的时间差dt以及外参。

2 初始化方法

论文 A Rotation-Translation-Decoupled Solution for Robust and Efficient Visual-Inertial Initialization 将初始化分为两种:基于松耦合初始化和基于紧耦合初始化

2.1 松耦合初始化

OpenVINS代码解析-DynamicInitializer-(上)_第1张图片
Vins-Mono初始化流程:
OpenVINS代码解析-DynamicInitializer-(上)_第2张图片
ORB-SLAM3改进的初始化:
OpenVINS代码解析-DynamicInitializer-(上)_第3张图片

2.1 紧耦合初始化

OpenVINS代码解析-DynamicInitializer-(上)_第4张图片
OpenVINS初始化方法:
OpenVINS代码解析-DynamicInitializer-(上)_第5张图片

你可能感兴趣的:(#,Open_VINS算法,算法)