论文部分内容阅读
移动机器人的同步定位与建图(Simultaneous Localization and Mapping,SLAM)是实现移动机器人真正意义上自主导航的关键,同时它也是移动机器人技术研究中最具挑战性的问题之一。基于视觉的SLAM技术由于其价格低廉与信息丰富的优点受到了越来越来研究者的关注。微软于2010年推出的一款RGB-D摄像机Kinect,因其廉价性与高性能,在SLAM领域掀起了一股研究热潮。SLAM的研究就构建的地图维度来说一般分为二维SLAM与三维SLAM,其应用领域各有不同。二维地图一般用来进行移动机器人的导航与路径规划,而三维地图一般用来执行更高级的任务,如物体识别等。本论文主要研究了如何使用低成本的Kinect来进行2D SLAM与3D SLAM的实现。对Kinect 2.0摄像机的特性与标定方法进行了研究。主要研究了Kinect 2.0的深度获取原理,对Kinect 1.0与Kinect 2.0的特性进行了分析比较;通过Libfreenect2驱动在Linux系统上驱动Kinect 2.0,并基于张正友标定法对Kinect 2.0进行了标定,获取了Kinect 2.0的内外参数,从而基于Kinect获取的RGB图像与深度图像生成三维彩色点云。研究了Kinect 2.0模拟激光雷达数据在2D SLAM中的应用。研究了ROS系统与其相关工具的使用;针对二维激光雷达扫描环境得出的数据在高度方向不完备的问题,利用ROS上的depthimage_to_laserscan工具包将Kinect扫描得到的深度数据转换为激光雷达数据。针对Kinect深度数据存在的空洞问题,基于中值滤波与连通域的原理提出了一种简易的深度图修复方法,通过实验验证了该算法的有效性,并将Kinect模拟出的激光雷达数据应用在Gmapping和Hector SLAM算法中,仿真实验与真实环境实验证明了Kinect模拟激光雷达进行2D环境建图算法的有效性。研究了Kinect 2.0在3D SLAM中的应用。在特征提取与匹配算法中,使用实时性更高的ORB算法,研究了ORB算法的原理,将其与SIFT、SURF算法进行了对比实验,证明了ORB算法的高效性。使用比RANSAC算法速度更快的PROSAC算法进行外点剔除,并将ORB算法与PROSAC算法相结合来进行特征提取与匹配,实验结果表明了该方法的实时性。针对经典ICP算法存在的算法效率低、迭代易陷入局部极值等问题,提出了一种改进的ICP算法,由对比实验可知改进算法的高效性。最后,利用改进的RGBD SLAM算法对真实的环境进行了实验,得到了环境的三维点云地图与传感器的轨迹。