论文部分内容阅读
SLAM是实现服务机器人高度智能化的关键技术。SLAM技术让机器人在未知的环境中,能够利用一种或多种传感器对周围环境进行探测,建立相应的地图,同时定位自身在地图中的位置。Cartographer是谷歌在2016年开源的一个可以在多传感器配置下,实现低计算资源消耗,提供2D和3D SLAM的算法系统。扫地机器人是服务机器人中一个主要的应用方向,本文在基于Player平台的扫地机器人上,利用增强的Cartographer算法实现SLAM系统。主要研究内容包括:(1)针对原有Cartographer中位姿融合不准确,存在延迟的问题,设计了一种基于位姿增量的位姿融合方法。在对激光雷达传感器的扫描数据进行位姿优化后,本方法能够结合惯性测量单元以及里程计数据更快更准确地为下一时刻提供位姿估计。本方法将所有传感器数据进行缓存,根据新优化位姿的时间戳对旧数据进行删除。以局部优化的位姿作为初值,通过惯性测量单元数据计算角度增量,里程计数据进行位置估计,融合后得到所需的位姿估计,在只有激光雷达数据时使用优化位姿计算出的速度保持位姿稳定。(2)在基于Player平台的扫地机器人上,实现了基于增强Cartographer算法的SLAM系统。该系统分为六个模块,系统配置模块完成初始配置,接口通信模块与平台上其他系统交互,Player传感器数据交互模块完成与Player平台交互,数据管理及分发模块完成与算法交互,数据处理算法模块处理数据,增强的Cartographer算法模块完成建图。数据处理算法模块的功能主要是针对各种传感器数据的特点进行相应的处理,其中激光雷达传感器采集的点云数据在极端情况下,会因为机器人的运动而导致数据准确度下降,影响到建图准确度,需要对激光雷达数据针对运动情况进行矫正,惯性测量单元和里程计数据需要根据算法的要求进行适配处理以辅助激光雷达数据建图。为验证增强Cartographer算法的有效性,在PC端使用两个含有不同传感器的数据集对算法进行定量误差测试分析。实验结果表明,在具有多传感器的德意志博物馆数据集上,本文提出的位姿融合方法降低了53%的建图定位误差。为验证扫地机器人上SLAM系统的效果,分别在环境复杂但较小以及环境简单但较大的真实场景进行测试分析。并在这些场景测试评估分析了不同组合传感器对建图的影响,结果表明最终得到的2D栅格地图达到实际使用的精度要求。最后对扫地机器人中常遇到的碰撞问题进行分析,为解决该问题增加了对里程计数据的处理,并通过对比测试验证了产生碰撞后SLAM系统建图质量的鲁棒性。