本博客是用来记录自己阅读该论文时的随笔若有什么错误希望大家及时指出一起学习
该SLAM系统设计的主要目的是确保无人机自动导航的计算效率,因此必须要确保该SLAM算法的实时执行和高速可靠性所以该控制系统确保小车可以依赖于在线SLAM进行自主运动。为了实现系统的高速准确率,算法每次迭代几乎都花费恒定的时间是很重要的。为了实现以上要求,我们的算法由两个主要的线程组成:里程计线程和绘图线程,如下图:
Figure1
里程计线程对于局部可控性方面很重要,绘图线程在全局操作的执行上很重要。这两个线程最终通过一个利用绘图线程的输出以及将该输出与视觉信息融合的滤波器相关联。
两个线程的概述:
里程计线程:首先获得了一个新的立体图像对后高质量的特征被检测到,该检测部分是基于非极大值抑制的梯度图中的角点和斑点模糊。其后的IMU是用于预测UAV的相对位移目的是定义一个特征匹配的搜索半径。特征点通过循环匹配,使用图像梯度块的SAD算法加权到被预测的坐标的距离,这一步的输出是一个以后可以使用RANSAC优化的稀疏特征点集。值得注意的是我们系统中有两个不同的RAMSAC优化算法,这两个算法取决于系统的设置,如果一个IMU是可获得的我们直接应用它的陀螺仪测量值来加速并且只执行单点的RANSAC优化。然而如果一个IMU是不可获得的,通常使用三点算法。这种RANSAC的结果是利用高斯牛顿优化设置内点为了得到最终的相对旋转和平移,该过程避免了都在同一时间优化,这样处理的会更快表现也更鲁棒。通过结合获得的相对位移,我们有一个代表基于里程计平移的 作为累计里程计的结果。
绘图线程:得到来自里程计线程的特征点管理模块输出,并将该输出放入帧序列为了以后的关键帧管理步骤。这一步检查了一个当前关键帧是否需要被纳入考虑或者是否要被丢弃,这取决于当前关键帧与上一被存储的关键帧之间的距离,如果该帧被纳入考虑则算法检查回环的可能性。回环检测之后我们在稀疏的位姿集处(特征点不被包括)运行g2o这会导致位姿图更新,因此校正里程计漂移。 绘图线程的输出可以看作由 提出的作为地图到里程计转换的矫正。
这两个线程最终通过一个指数滤波器结合并且结果可以看作提出了一个基于地图的平移 该平移被用于位姿控制器
以上提出的SLAM框架能够保证一个完全分开的里程计部分和绘图部分,这样确保了里程计能够在连续时间里不需要等待绘图进程来运行。这整个方法仍然保留了足够的资源这样在该环境下使用一个双目的方法来计算深度地图也可以构造一个稠密地图,在这里我们特别使用了半全局算法并且我们将结果插入全局octomap,octomps并不参与位姿估计的过程但在EuRoc的竞赛中避免冲突是很必要的
两个线程的详细描述:
1. 里程计线程:基于两种情况:(1)在自动UAV的应用中IMU是系统设置的一部分