1.概述
PL_VINS是一个基于点线识别的实时的单目惯性里程计。
在VINS_MONO的基础上,加入了线特征,提升了性能。
2.系统构成
a.计算预处理
PL_VINS的初始线程,提取相机和IMU的raw information,并进行对齐。
图像:对每一帧图像中的点、线特征进行识别并跟踪。使用Shi-Tomasi检测点特征,KLT跟踪,基于RANSAC的对极几何进行优化。
线:优化LSD提取线特征,LBD算法跟踪提取描述子,KnnMatch匹配。
IMU:陀螺仪和加速度计的数据处理方法与VINS_MONO相同,对两连续帧进行预积分。
初始化:获得初始几帧的相机位姿,点线landmarks,并将每一帧的数据与IMU预积分的数据(速度,重力向量,陀螺仪偏置)对齐。
b.局部视觉惯性里程计
在初始化结束后,激活紧耦合的基于优化的局部视觉惯性里程计线程,用来高精度预测6-DOF的相机位姿(最小化测量残差)
step1:对新老帧之间对应的点、线特征,通过三角测量获得三维点、线路标点坐标。通过逆深度和普吕克坐标(Plcker coordinate)参数化。
step2:使用恒定大小的滑动窗口,通过最小化多残差方程,获得最优的位姿,速度,路标点,加速度和陀螺仪偏置。
step3:每加入新的一帧,边缘化最老的一帧以维持滑动窗口的大小
##关键帧提取方法:当前帧和上一关键帧视差过大,查过一定量;或者跟踪到的特征少于一个特定值。
c. 回环检测
当当前帧被选为关键帧时,激活回环检测线程,搜索并确定存在的回环(也可用于重定位)。
3. 细节处理
a. 寻找线特征 (基于OPENCV封装的LSD,由于运算量大,无法实现实时检测)
优化:隐藏参数的更改(图像金字塔的尺度和层数;外接矩形内最小点密度的阈值)
长度筛选(将一些长度较短,小于阈值的线段筛除掉)