代码实现理论推导 代码注释、讲解 基础理解 VINS-Mono中在优化完成后,滑动窗口前,会进行边缘化(marginalization)操作,首先我们回顾下优化的状态变量是由para_Pose(6维,相机位姿); para_SpeedBias(9维,相机速度、加速度偏置、角速度偏置)、para_Ex_Pose(6维,相机IMU外参)、para_Feature(1维,特征点深度)、para_Td...
VINS-MONO中边缘化策略 边缘化策略取决于关键帧策略 1、如果次新帧是关键帧,那么当滑动窗口满时,就需要边缘化最老帧以及IMU预积分,将其转为先验。 构建新的marginalization_info,其内部应包含上一次的先验残差项、第0帧和第1帧间的IMU因子以及第一次观测为第0帧的所有路标点对应的视觉观测。 2、如果次新...
另外,VINS 中的边缘化与 G2O 计算过程中的边缘化意义不大相同(虽然处理方法一致):G2O 中对路标点设置边缘化(pPoint->setMarginalized(true))是为了 在计算求解过程中,先消去路标点变量,实现先求解相机位姿,然后再利用求解出来的相机 位姿反过来计算路标点的过程,目的是为了加速求解,并非真的将路标点给边缘化掉;而...
为了限制基于优化的VIO计算复杂度,引入边缘化。有选择地从滑动窗口中将IMU状态xK和特征λ1边缘化,同时将对应于边缘状态的测量值转换为先验。 分为两种情况: 1、一种是倒数第二帧如果是关键帧的话,将最旧的pose移出Sliding Window,将最旧帧关联的视觉和惯性数...
滑窗限制了关键帧的数量,防止pose和feature个数随时间不断增加,优化问题始终在有限复杂度内,不会随时间不断增长。边缘化理论推导部分,首先回顾了ceres中的evaluate(...),理解边缘化求解过程。接着详细解析了VINS-Mono中marginalization的实现及解释,涉及边缘化求解过程的两次优化求解:ceres Solver优化...
【学习笔记】Vins-Mono论文阅读笔记(三) VINS的整个VIO的实现方法,也就是对应的esimator部分的代码内容。理论部分主要介绍三种因子(IMU预积分因子、视觉因子和边缘化因子)的残差构造及雅克比推导 VINS的VIO是基于紧耦合框架实现的,其本质就是一个基于滑动窗口的和图优化的VIO...
上面理论搞清楚了其实只是第一步,由于VINS-mono优化的变量较多,VINS-mono的边缘化操作实际上要复杂很多,VINS-mono的边缘化相关代码在estimator.cpp的Estimator类的optimization()函数中,该函数先会先进行后端非线性优化然后紧接着就是边缘化操作,下面就针对这个函数中的边缘化相关代码进行剖析。
前面,我们已经对接下来的VIO系列主要内容有所介绍(感兴趣的可以关注:视觉与惯性传感器如何融合?),本文是VIO系列的第一节内容:VINS-mono论文解读(IMU预积分+Marg边缘化)。 论文《VINS-Mono: A Robust and Versatile MonocularVisual-Inertial State Estimator》地址:https://arxiv.org/pdf/1708.03852.pdf ...
讨论了vins-mono中,舒尔补边缘化技术如何在Bundle adjustment和滑动窗口滤波器中应用,以实现增量方程转化为先验方程的过程。边缘化概念在概率论中至关重要,它允许从联合分布中分离出条件概率和边缘概率,特别是当变量x和y遵循高斯分布时,可以通过高斯推断实现这一分离,这实质上是通过Schur消元对联合分布...
1当前帧相对最近的关键帧的特征平均视差大于一个阈值就为关键帧因为视差可以根据平移和旋转共同得到而纯旋转则导致不能三角化成功所以这一步需要imu预积分进行补偿2当前帧跟踪到的特征点数量小于阈值视为关键帧 VINS-mono论文解读:IMU预积分Marg边缘化 重磅干货,第一时间送达 VINS-mono 论文解读(IMU预积分+Marg边缘...