预处理 | VINS-Mono 论文公式推导与代码解析分讲

本文详细介绍了VINS-Mono的预处理步骤,包括视觉前端的特征处理和KLT光流跟踪,以及IMU预积分的数学公式和代码实现。通过非线性图优化,实现紧密耦合的单目视觉惯性里程计,并讨论了关键帧选择策略和IMU预积分的误差状态方程。此外,还提到了如何在bias估计变化时进行矫正,以提高预积分测量的精度。

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

概述
在这里插入图片描述
Monocular visual-inertial odometry with relocalization achieved via nonlinear graph optimization-based, tightly-coupled, sliding window, visual-inertial bundle adjustment.
代码(注释版):cggos/vins_mono_cg
1. 测量预处理
1.1 前端视觉处理
Simple feature processing pipeline
自适应直方图均衡化在这里插入图片描述
掩模处理,特征点均匀分布在这里插入图片描述
提取图像Harris角点(  )
KLT金字塔光流跟踪(  )
连续帧跟踪
本质矩阵(RANSAC)去除外点在这里插入图片描述
发布feature_points(id_of_point, un_pts, cur_pts, pts_velocity)

Keyframe selectionCase
1: Rotation-compensated average feature parallax is larger than a thresholdCase
2: Number of tracked features in the current frame is less than a threshold
All frames are used for optimization, but non-keyframes are removed first

1.2 IMU 预积分
在这里插入图片描述
IMU 测量方程忽略地球旋转,IMU 测量方程为
在这里插入图片描述
预积分方程
(1)IMU integration in world frame

由上面的 IMU 测量方程积分就可以计算出下一时刻的 p、v 和 q :
在这里插入图片描述
(2)IMU integration in the body frame of first pose of interests
在这里插入图片描述
为避免重新传播 IMU 观测值,选用 IMU 预积分模型,从世界坐标系转为本体坐标系
在这里插入图片描述
则预积分 IMU 测量模型(估计值)为
在这里插入图片描述
离散状态下采用中值法积分的预积分方程(预积分测量值)为
在这里插入图片描述
其中
在这里插入图片描述
midPointIntegration中的相关代码:
Vector3d un_gyr = 0.5 * (_gyr_0 + _gyr_1) - linearized_bg;
result_delta_q = delta_q * Quaterniond(1, un_gyr(0) * _dt / 2, un_gyr(1) * _dt / 2, un_gyr(2) * _dt / 2);

Vector3d un_acc_0 = delta_q * (_acc_0 - linearized_ba);
Vector3d un_acc_1 = result_delta_q * (_acc_1 - linearized_ba);
Vector3d un_acc = 0.5 * (un_acc_0 + un_acc_1);

result_delta_p = delta_p + delta_v * _dt + 0.5 * un_acc * _dt * _dt;
result_delta_v = delta_v + un_acc * _dt;

// 预积分的过程中Bias没有发生改变
result_linearized_ba = linearized_ba;
result_linearized_bg = linearized_bg;

误差状态方程IMU
误差状态向量
在这里插入图片描述
根据 ESKF 中 5.3.3 The error-state kinematics 小节公式
在这里插入图片描述
对于中值积分下的误差状态方程为
在这里插入图片描述
简写为
在这里插入图片描述
所以
在这里插入图片描述
展开得
在这里插入图片描述
其中
在这里插入图片描述

在这里插入图片描述
则简写为
在这里插入图片描述
此处 F′ 即代码中 F,相关代码见 midPointIntegration。

最后得到 IMU 预积分测量关于 IMU Bias 的 雅克比矩阵、IMU 预积分测量的协方差矩阵 和 噪声的 协方差矩阵 Q,初始状态下的雅克比矩阵和协方差矩阵为单位阵和零矩阵
在这里插入图片描述
当 bias 估计轻微改变时,我们可以使用如下的一阶近似对中值积分得到的预积分测量值进行矫正,而不重传播,从而得到更加精确的预积分测量值( bias 修正的线性模型)
在这里插入图片描述
此时,可以与卡尔曼滤波对比一下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值