VINS+Fusion重点梳理
A重点梳理和回顾
1传感器前端
视觉前端
特征点提取 opencv接口 goodfeaturestotrack
光流追踪 opencv接口 calcOptical
异常点剔除 光流剔除的异常点
本质矩阵的校验(不符合本质矩阵的点筛除)
特征点去畸变 “逐渐逼近式”的计算方式
特征点性质的计算
IMU预处理
IMU积分提供了高频率的里程计输出(有了IMU输出频率提升)
IMU预积分
预积分作用:帧间约束
约束的数值
约束的置信度(协方差矩阵)
连续时间预积分
离散时间的中值积分
误差卡尔曼滤波(维护误差)
预测
均值 直接原始信号积分
协方差 一个非常复杂的推导
更新
2 单目vio的初始化
旋转外参初始化 使用手跟标定的方式求解相机和IMU的旋转外参
陀螺仪零偏初始化 利用图像对极约束求解的旋转和陀螺仪积分的旋转求解陀螺仪零偏(超定方程)
视觉sfm 一个单目视觉slam的global BA的问题
视觉IMU对齐 视觉BA结果和IMU积分结果对齐,构造线性方程求解每帧的速度,位姿,恢复真实尺度
基于重力大小的调整 引入重力加速度大小先验,调整重力方向
3 基于滑动窗口的非线性优化(ceres解析求导)
视觉重投影约束
逆深度描述3d位置
残差构造 视觉重投影
优化变量 3d点逆深度
第i帧的位姿
第j帧的位姿
相机,IMU外参
相机,IMU时间延时
雅克比推导
IMU预积分的约束
对相邻两个关键帧提供约束
残差构造 帧间状态的残差
优化变量 第i,j帧的位姿,速度,IMU零偏
雅克比推导
边缘化的先验约束
舒尔补 溢出滑窗的变量成为先验约束
图优化中对被边缘化的变量提供约束
残差构建
雅克比推导
4 回环检测
构建DBOW词袋
每张图片提取额外的fast特征点
计算描述子
转换成词袋模型
检测是否有回环候选帧 作为历史信息送入回环数据库
几何校验侯选帧有效性
借助滑窗优化,得到候选帧更加精确的位姿(orb3是共视图)
四自由度位姿图优化
当前帧和回环帧的位姿约束
其他帧间位姿约束
ceres自动求导求解
视觉地图的保存和加载
5 VINS-Fusion改进
数据流 兼容播放rosbag包的实时模式
兼容读取kitti数据的离线模式
视觉前端
单向光流->双向光流
光流来进行相机间特征匹配
初始化
如果是双目,则可以利用双目三角化和PNP进行初始化
反馈前端
使用匀速模型预测特征点位置
融合GPS
使用GPS提供的绝对位置提供约束
B 典型问题的讲解
1关于vins中的虚拟相机模型
归一化焦距,460虚拟焦距建模,统一是3pixel
2 为什么初始化需要一定的激励?
只有激励存在,不同的外参IMU在不同轴上的角速度是不一样的,这样的情况才能进行估计
3 docker镜像避免一些不能运行的问题