论文部分内容阅读
随着无人驾驶汽车、增强现实和虚拟现实等技术的快速发展,作为其中的关键技术,同时定位与地图构建(Simultaneous Localization and Mapping,SLAM)成为了研究热点。根据传感器的不同,SLAM可分为激光SLAM和视觉SLAM。相比于价格高昂的激光雷达,视觉传感器成本较低,获取信息丰富,以之为基础的视觉SLAM得到了广泛的认可和应用。视觉SLAM主要分为特征点法和直接法。特征点法依靠特征提取与匹配来跟踪相机位姿,对光照变化不敏感,鲁棒性较好。但存在特征提取与匹配比较耗时,面对特征缺失场景算法易失效等不足。直接法直接利用像素信息,通过最小化光度误差来估计相机位姿与构建地图。它免去了耗时的特征提取与匹配过程,使得算法的速度更快。但由于它基于灰度不变假设,所以对场景光照变化很敏感,对图像质量的要求也较高。同时,由于单目视觉SLAM的尺度不可观性,算法会产生尺度漂移。本文针对以上问题,对基于直接法的单目视觉SLAM技术展开了较深入的研究:首先,搭建了用于SLAM测试的移动机器人平台。该平台由Turtlebot2移动机器人,单目相机和笔记本电脑组成。Turtlebot2机器人作为行进载体,通过ROS(Robot Operating System)操作系统控制它移动,为本文所设计单目视觉SLAM算法提供运行测试平台。然后,设计并实现了基于直接法的单目视觉里程计。直接法采用了灰度不变假设,而相机曝光参数,透镜的渐晕衰减和相机响应函数等因素会在一定程度上破坏该假设。本文借鉴了DSO(Direct Sparse Odometry)算法,对相机进行光度标定来建立更加精细的相机成像模型。并采用7维SSD(Sum of Squared Distance)残差模板以提高对像素信息的利用程度。通过高斯—牛顿法最小化光度误差来获得相机位姿和点云地图参数。同时,采用滑动窗口,利用海森矩阵的稀疏性对冗余数据进行边缘化以保证算法的实时性。通过公开数据集对本文视觉里程计算法进行对比评估并取得了较好结果。最后,在前述得到的视觉里程计基础上,设计并实现了基于直接法的单目视觉同时定位与地图构建算法。该算法采用词袋模型来检测闭环,建立基于相似变换群的位姿约束,并将该约束添加入全局位姿图优化中以获得更准确的相机位姿估计,减小了算法的累积误差。通过公开数据集对所实现的算法进行评估,结果表明本文算法的累积误差明显小于未加闭环检测的单目视觉里程计。通过Turtlebot2移动机器人平台的SLAM实验,验证了本文算法在实际场景中运行的有效性。