在VINS-Mono后端优化、边缘化过程中,都是使用ceres计算,需要构建costfunction并求解计算残差和雅克比。既然我写的是白话文章,便于更好理解边缘化,这里先回顾下ceres中的evaluate(...),其主要用来计算雅克比和残差,下面以预积分为例看下ceres中的一些参数如parameters、parameter_block_sizes_等: //imu_factor.h类下Ev...
VINS-MONO中边缘化策略 边缘化策略取决于关键帧策略 1、如果次新帧是关键帧,那么当滑动窗口满时,就需要边缘化最老帧以及IMU预积分,将其转为先验。 构建新的marginalization_info,其内部应包含上一次的先验残差项、第0帧和第1帧间的IMU因子以及第一次观测为第0帧的所有路标点对应的视觉观测。 2、如果次新...
为了限制基于优化的VIO计算复杂度,引入边缘化。有选择地从滑动窗口中将IMU状态xK和特征λ1边缘化,同时将对应于边缘状态的测量值转换为先验。 分为两种情况: 1、一种是倒数第二帧如果是关键帧的话,将最旧的pose移出Sliding Window,将最旧帧关联的视觉和惯性数...
另外,VINS 中的边缘化与 G2O 计算过程中的边缘化意义不大相同(虽然处理方法一致):G2O 中对路标点设置边缘化(pPoint->setMarginalized(true))是为了 在计算求解过程中,先消去路标点变量,实现先求解相机位姿,然后再利用求解出来的相机 位姿反过来计算路标点的过程,目的是为了加速求解,并非真的将路标点给边缘化掉;而...
前面,我们已经对接下来的VIO系列主要内容有所介绍(感兴趣的可以关注:视觉与惯性传感器如何融合?),本文是VIO系列的第一节内容:VINS-mono论文解读(IMU预积分+Marg边缘化)。 论文《VINS-Mono: A Robust and Versatile MonocularVisual-Inertial State Estimator》地址:https://arxiv.org/pdf/1708.03852.pdf ...
滑窗限制了关键帧的数量,防止pose和feature个数随时间不断增加,优化问题始终在有限复杂度内,不会随时间不断增长。边缘化理论推导部分,首先回顾了ceres中的evaluate(...),理解边缘化求解过程。接着详细解析了VINS-Mono中marginalization的实现及解释,涉及边缘化求解过程的两次优化求解:ceres Solver优化...
这个就是边缘化操作,边缘化之后,得到的先验矩阵H和先验向量b分别是: 滑窗会导致H矩阵不再稀疏。8.1.3 构造非线性优化的H矩阵这一部分实际上就是非线性优化部分关于构造H矩阵的内容。 (1)对先验矩阵进行扩维,扩充的维度就是下一次优化增加的状态量的维度 ...
VINS 所有知识点梳理https://blog.csdn.net/hltt3838/article/details/106075292他人是一面镜子,保持谦虚的态度 边缘化https://blog.csdn.net/weixin_44580210/article/details/95748091Leo-Peng vinsmono翻译https://blog.csdn.net/yys2324826380/article/details/105046864/闭关修炼到走火入魔...
本文深入解读VINS-Mono的核心部分——紧耦合非线性优化。紧耦合优化将视觉约束、IMU约束、闭环约束整合在一个大目标函数中,实现滑动窗口内所有帧的PVQ、bias等参数的非线性优化。紧耦合优化的过程包括残差函数构建、视觉约束、IMU约束及基于舒尔补的边缘化操作。构建残差函数时,需要优化的状态量包括滑动窗口...
同时引入绝对信息。这确保了利用过去估计的同时保持优化过程的高效和精确。综上所述,舒尔补边缘化技术在vins-mono中是关键的优化手段,它有效地处理了Bundle adjustment和滑动窗口滤波器中的变量边缘化问题,实现了增量方程到先验方程的转化,同时保持了优化过程的高效性和准确性。