VINS中的初始化方法

本文详细介绍了VINS中静态和动态初始化策略,重点讨论了IMUPreintegration、VINS-fusion、VI-ORB-SLAM和ORB-SLAM3的初始化流程,以及尺度初始化的重要性。强调了数据准备和VI-BA优化对初始化时间的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

本文档介绍VINS中常见的初始化方法,静态初始化相对简单,通常1s内可以完成,但如果遇到在运动时的初始化问题,初始化难度相对较大,实际工程问题中,通常会将初始化分为静态和动态初始化两部分,这里主要是介绍动态初始化方案。

一、基础知识:IMU Preintegration

IMU Preintegration

  • 等式两边同时乘以旋转的逆,把IMU测量提取出来
    在这里插入图片描述
  • Bias Updates:bias会影响上面的增量,因此bias更新时通过jacobian更新增量
    在这里插入图片描述
    因此,整体预积分流程为:
    在这里插入图片描述

二、 VINS-fusion初始化方法

与第一帧数据相距>0.1s后,利用局部窗口内的每一帧初始化,初始化流程如下:

1、单目+IMU

在这里插入图片描述

第四步实现细节:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、双目+IMU

有尺度,初始化又快又简单

  1. 和地图点匹配,SolvePnP,计算当前帧位姿
  2. 双目三角化,计算特征深度
  3. gyro bias矫正
  4. 局部窗口BA优化(视觉余项+IMU余项)

三、VI-ORB-SLAM初始化方法

a.原理介绍

compute an initial estimation for a visual-inertial full BA of the scale, gravity direction, velocity and IMU biases.

在这里插入图片描述
在这里插入图片描述

b. 实验结果分析

在这里插入图片描述

四、ORB-SLAM3初始化

a.原理

在这里插入图片描述

b. 实验结果

在这里插入图片描述

c.加速方案

假设我们这里有尺度来源tof,那么可以进行加速
在这里插入图片描述

五、Fast and Robust Initialization for Visual-Inertial SLAM

在这里插入图片描述
在这里插入图片描述

六、总结

1、 VISLAM的初始化方案需要较长的数据准备时间(1~2s)

2 、为了得到更准确的初值,需要进行VI-BA优化,耗时约几百ms,处理时间相对较久

3、没有尺度来源时,初始化需要充分的IMU激励,这个条件通常较难满足,因此整体初始化时间较久

4、初始化最重要的解释尺度初始化,其他的收敛都很快,所以如果可以有一个先验的尺度来源,很容易把初始化时间控制在1s以内

### VINS框架的初始化过程 VINS(Visual-Inertial Navigation System)是一种融合视觉和惯性测量单元(IMU)数据的导航系统,其初始化过程是整个算法的关键环节之一。以下是关于VINS初始化方法及其配置的相关说明: #### 1. 静态与动态初始化的区别 在实际应用中,VINS初始化被划分为静态初始化和动态初始化两种方式[^2]。 - **静态初始化**:适用于设备处于静止状态的情况,通常可以在1秒内完成。此阶段主要通过IMU预积分计算重力加速度的方向来估计初始姿态,并利用少量特征点观测值进一步优化参数。 - **动态初始化**:当传感器存在运动时采用该策略。相比静态模式更加复杂,因为需要额外考虑运动带来的不确定性影响。 #### 2. IMU预积分的作用 为了减少噪声干扰并提高效率,在VINS初始化过程中引入了IMU pre-integration技术[^3]。这项技术允许我们仅需存储一段时间内的加速度计读数以及陀螺仪增量角度即可重建完整的轨迹信息而无需保存每一步的具体数值变化情况。这不仅降低了内存消耗还加快了后续处理的速度。 #### 3. 初始结构构建 (Initial Structure Construction) 函数`initialStructure()`负责启动整个初始化流程[^1]。它主要包括以下几个方面的工作: - 获取当前时刻所有可用图像帧上的角点位置; - 对这些匹配成功的对应关系执行三角化操作得到三维空间坐标表示形式; - 基于上述结果初步设定世界原点的位置作为参考系起点; #### 4. 平移与旋转的同时求解 除了确定系统的起始方位外,还需要同步估算出摄像头相对于全局坐标轴之间的偏移量即所谓的“平移”。这是因为即使知道了物体如何转动也无法直接得知它们具体位于何处除非同时也明确了两者间的距离关系[^4]。 #### 5. 尺度估计实现细节 针对尺度问题,VINS-Mono项目提供了专门用于测试初始化规模节点(TestInitScaleNode),其中实现了独立版本的尺寸评估逻辑并与原始论文描述有所区别但总体思路保持一致[^5]。特别值得注意的是,由于摄像机光学特性所限,最终得出结论显示在其本地视角范围内,"重力"矢量实际上指向Y轴负半轴方向而非传统意义上的Z向下垂线方向. ```cpp // 示例代码片段展示可能涉及到的部分核心运算步骤伪码 Eigen::Vector3d g_in_cam; // Camera frame gravity vector estimation result. g_in_cam << 0,-9.81,0; ``` 以上就是有关VINS框架下初始化相关内容概述,请根据实际情况调整学习重点深入研究特定领域知识点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值