论文部分内容阅读
近年来随着以家用服务机器人为代表的自主机器人的兴起,AR/VR技术的火热,自动驾驶技术的快速发展,机器人同时定位与地图构建(Simultaneous Localization and Mapping,SLAM)技术受到了广泛的关注。本文以此为背景研究了谷歌的Cartographer室内SLAM算法,为了提高其建图和定位的精确度对算法进行了改进,具体内容如下:一、搭建了三轮万向移动机器人平台用于在室内进行实地SLAM测试。该机器人使用树莓派3B作为硬件开发平台实现机器人的底层控制和各传感器驱动,使用机器人操作系统(ROS)作为软件开发平台,通过ROS提供的消息传递机制和坐标系变换(TF)系统实现各传感器之间的数据传递。二、提出了一种激光雷达数据补偿方法,用于解决由于激光雷达自身缺陷导致无法检测到与玻璃之间距离的问题。通过研究激光雷达数据采集机制,根据激光雷达丢失部分的前后数据,使用超声波传感器数据进行参考,之后使用最小二乘法进行拟合,完成丢失数据的补偿。根据实地测试结果,该方法能够有效补全激光雷达与玻璃之间的距离数据,提高SLAM的成功率和精确度。三、细致分析了主流的Gmapping SLAM和Hector SLAM算法的建图和定位原理。之后使用同一个rosbag数据集在ROS系统上实现模拟同时定位和建图。根据最后的建图结果,对比和分析这两种SLAM算法同Cartographer的优劣,选择Cartographer作为本文的主要研究和实现算法。四、本文提出了一种激光雷达扫描帧特征提取改进占据栅格地图构建的方法,有效地减小了扫描点数据波动对建图的影响。由于激光雷达本身的误差和人为操作不当等引起的颠簸容易引起扫描点波动,从而导致建图边缘存在大量误差点,本文通过分析Cartographer算法的前端占据栅格地图的构建和局部扫描匹配,提取扫描帧中的直线段特征并进行拟合,之后将扫描点平移到拟合后的直线段上。经过实地测试,该方法能够有效提高地图构建时边缘的清晰度和锐度。之后还研究了Cartographer的后端图优化理论和分支定界算法加速求解非线性最小二乘的方法并使用移动机器人平台实现实地同时建图和定位。经过实验结果证明,本文提出的激光雷达数据补偿方法和激光雷达扫描帧特征提取改进占据栅格地图构建的方法能够有效减小激光雷达的测距误差并提高Cartographer SLAM算法建图精确度,将定位误差控制在0.24m以下。