论文部分内容阅读
同时定位与地图构建(Simultaneous Localization and Mapping,SLAM)技术是移动机器人在未知环境中进行定位与环境认知领域的研究热点。基于视觉的SLAM方法已经成为国内外的研究趋势,视觉传感器Kinect可以采集图像数据和对应的深度数据,能够准确感知环境信息,且其价格低廉而被广泛研究和使用。目前采用Kinect传感器的经典视觉SLAM算法由图像处理前端和优化后端组成。前端视觉里程计阶段,机器人在采集图像的同时将当前帧与相邻帧进行匹配得到机器人当前帧的位姿估计,从而得到机器人在整个环境中的轨迹估计。然而机器人在上一帧匹配产生的误差会累积到后面的帧间匹配中,长期估计的结果将不准确,进而导致无法构建全局一致的地图。针对这种情况,本文提出了一种基于视觉词典树的SLAM闭环检测算法。为了解决视觉里程计产生累积误差等问题,本文分别对RGB-D SLAM系统的前端和后端进行研究,并对闭环检测中的场景建模进行改进,得到了一种具有较高准确性和鲁棒性强的RGB-D SLAM算法。首先,详细介绍了SLAM系统的五大模块。分析对比ORB算法与其它特征提取算法的优缺点,选择ORB提取算法以满足SLAM的实时性要求;机器人首先使用暴力匹配方法对相邻帧进行匹配,并设置阈值距离去除误匹配点,通过RANSAC和ICP算法对机器人进行位姿估计,得到机器人的估计轨迹图;分析了累积误差产生的原因及其对SLAM构建地图造成的影响。其次,研究了获取环境信息的RGB-D传感器Kinect2.0的硬件结构、相机模型及相机畸变,并叙述了校正畸变的详细过程。对RGB摄像头与红外摄像头的内参以及RGB摄像头与红外摄像头之间位姿关系进行标定,最后将彩色图像和深度图像进行融合。结果表明进行标定后的Kinect传感器采集到的点云图像重合度较高。然后,阐述了SLAM闭环检测的系统框架,并分析场景建模在闭环检测中的重要性。使用Bo VW进行场景建模,将场景中的图像特征点通过聚类算法形成视觉单词列表。由于视觉单词较多,为了更好地表达场景,采用分层结构形成视觉词典树可以更好地存储视觉单词,并且能够快速索引到相似历史帧。经典的Bo VW模型使用K-Means进行聚类,对聚类得到的每一类簇中特征点进行均值计算,并将计算结果作为类簇中心点,然而K-Means算法在寻找聚类中心的过程中受到噪声等异常维度的干扰,会造成计算得到的中心点位置与实际中心点存在较大误差。因此,提出K中心算法进行聚类,K中心算法从迭代产生的类簇中随机地选取一个特征点作为新的中心点,避免了平均计算时因异常维度的特征点造成的误差。最后,采用公开数据集(Computer Vision Group)及数据集中的评价工具对有无闭环结构和改进前后的算法进行验证。结果表明闭环检测可有效减少视觉里程计产生的累积误差;改进后算法的绝对轨迹误差较小,构建地图的一致性更好。另外,搭建Turtlebot和Kinect传感器硬件平台进行实际室内场景实验,通过ICP迭代算法进行相邻点云图像进行匹配,不断融合新采集到的图像信息,将图像信息拼接到已生成的局部点云地图,形成由局部三维点云场景到整个室内场景的三维地图构建,结果验证了改进后RGB-D SLAM算法相比于现有的传统算法具有较高的准确性和鲁棒性。