vins-mono采用了一个松耦合传感器融合方法来获得真值,通过将只基于视觉的sfm结果与米制IMU预积分对齐,可以粗略地估计尺度,重力,速度和甚至偏置。在本文中,初始化阶段忽略加速度偏置项,加速度偏置与重力耦合,由于相对于重力的幅度来说,加速度偏置是个很小的数了,很难观察到。 A、估计旋转外参数(具体算法在InitialEX...
初始化开始于基于视觉的SfM,以此来估计相机位姿及特征点位置,为了限制计算量,这里仅使用一定数量的帧进行,即所谓的Sliding Window。首先,检查最新帧和以前的帧(程序中先从第一帧开始找,因为与最新帧里的更远,视差更大)之间的特征对应关系,如果有足够多的特征匹配及充足的视差,使用5(对)点法(程序中使用的是cv::...
速度v,重力g,尺度s初始化 重力矢量修正 校准流程: 旋转外参如果不可知,先估计外参 利用旋转约束估计陀螺仪bias:qc0bk=qc0ck⊗q−1bcqc0bk=qc0ck⊗qbc−1 利用平移约束估计重力方向、速度以及尺度初始值:s¯¯¯¯pc0bk=s¯¯¯¯pc0ck−Rc0bkpbcsp¯c0bk=sp¯c0ck−Rc0bkpbc(...
本文深入解析了VINS-MONO的初始化过程,主要聚焦视觉与IMU之间的关联对齐。首先,当相机坐标系与世界坐标系相关联时,通过外参数方程[公式]来构建关系。视觉和IMU对齐的关键在于估计相邻帧之间的旋转,可通过视觉测量[公式]和IMU旋转积分[公式]来得到两条路径,构建等式求解外参数。具体来说,利用旋转的两...
Vins-mono是香港科技大学开源的一个VIO算法,https://github.com/HKUST-Aerial-Robotics/VINS-Mono,是用紧耦合方法实现的,通过单目+IMU恢复出尺度,效果非常棒。 感谢他们开源,我从中学到了非常多的知识。源码总共有15000多行,我在通读完程序之后,结合参考文献,把程序背后的算法理论都推导了一遍,总结成了本文,与各位...
Vins-Mono算法主要包括以下几个步骤: 1.预处理:首先对图像进行特征提取和跟踪,并对连续帧间的IMU数据进行预积分。 2.初始化:通过一个松耦合的方式进行初始化,提供激活非线性系统的必要初始值,如姿态、速度、重力向量、陀螺仪偏差及3D特征位置。 3.本地视觉惯性里程计:通过联合优化所有的视觉、惯性信息求解滑窗内...
VINS-mono 论文解读(IMU预积分+Marg边缘化) 前面,我们已经对接下来的VIO系列主要内容有所介绍(感兴趣的可以关注:视觉与惯性传感器如何融合?),本文是VIO系列的第一节内容:VINS-mono论文解读(IMU预积分+Marg边缘化)。 论文《VINS-Mono: A Robust and Versatile ...
我们首先对VINS-Mono的初始化过程做一个简要概述。其基本思想是通过解决一个线性最小二乘法问题来获得速度、重力矢量和尺度,从而使来自Camera的SfM与IMU的预积分结果相一致。 2.基于DNNs的特征点筛选方法 EXPERIMENTALEVALUATION 1.实验系统平台和实验设置
对于GNSS绝对定位方法,其全局坐标系的原点OG是预先定义的,并保持不变。对于相对定位方法VINS-Mono和INS,其局部坐标系的框架原点OX和OY在其初始化后动态定义,是其后续相对定位的基础。同时,定位结果是对某种定位方法的体心的状态估计。 2.转化关系计算 (1)轨迹对齐:...