论文部分内容阅读
移动机器人在未知环境下的自主导航是实现机器人智能化的关键技术之一,而定位构图(Simultaneous Localization and Mapping,SLAM)是移动机器人进行自主导航的核心。针对传统的视觉SLAM在相邻帧之间重叠区域太少、相机移动过快、图像模糊等情况下,会导致定位系统出现特征点丢失、定位精度较低,且单目SLAM存在初始化的尺度问题和追踪的尺度漂移等问题,本文重点研究了基于双目视觉惯导的SLAM算法。首先,针对传统的光流无法提供可靠的初始估计点以及特征匹配准确率不高等问题,提出了融合双目和惯性测量单元(Inertial Measurement Unit IMU)信息的特征匹配方法。使用IMU的测量信息将待跟踪点进行旋转,并将旋转之后的点作为光流的初始估计点,提高初始特征点的可信性。为了得到准确的特征匹配,在光流跟踪的基础上使用双目相机的基线约束以及环形匹配对特征点进行了筛选和剔除,并在每次筛选完之后提取新的特征点,以保证每次进行光流跟踪都有足够的特征点。实验结果表明,加入IMU和双目信息之后,在光流跟踪上所需时间更短,并且特征匹配的准确率更高。其次,针对相机在快速运动时会出现运动模糊,相邻帧之间重叠区域太少导致无法对位姿进行求解等问题,提出了基于立体视觉与IMU融合的SLAM算法。构建了由视觉重投影误差、IMU预积分残差组成的目标函数,为了减小计算的复杂度,采用滑动窗口来保证系统的实时性,并将边缘化的信息作为先验加入到目标函数中。用图优化的方法对位姿、速度以及相机和IMU的外参等状态进行优化求解,通过微型飞行器数据集(EuRoC)和室内实际场景对所提出算法进行验证,实验结果表明,所提算法在相机快速运动、光线变化等复杂环境下能实现定位和构图,并且定位精度要高于开源算法视觉惯导系统(Visual-Inertial System VINS)。最后,针对稀疏地图中所选特征点均是像素具有明显变化的点,无法代表整个场景中的大部分像素深度的问题,提出了基于双目视觉的稠密地图构建方法。将半全局块匹配算法(Semi-Global Block Matching SGBM)计算的深度值作为深度滤波器的初始值来更新深度,提高了收敛速度;并采用截断符号距离函数(Truncated Signed Distance Function TSDF)的方法将更新之后的深度与更新帧通过双目获取的深度图进行融合,最终得到稠密地图。通过实验将所提算法与基于概率的单目稠密地图构建(Probabilistic,Monocular Dense Reconstruction REMODE)所估计的深度图以及点云重建效果进行了对比。实验结果表明所提算法能得到更多的深度图,且待估计图片收敛所需的时间和更新帧的数量更少,进一步采用TSDF方法构建了EuRoC数据集场景和部分实际场景的稠密地图。