论文部分内容阅读
移动机器人搭载传感器观测未知环境信息并创建地图,同时根据已经创建的地图确定机器人在环境中的位置,即同步定位与地图创建(Simultaneous Localization and Mapping,SLAM)。SLAM是移动机器人完成导航、路径规划、自主探索等工作的基础,一直以来都是移动机器人领域的重点研究内容。随着近几十年的发展,单机器人SLAM算法已经逐渐成熟。但是面对大规模环境,单机器人SLAM存在工作效率低、稳定性差、地图精度低等问题。因此,大规模场景中单机器人SLAM不是完成任务的最佳选择。与单机器人SLAM相比,多机器人SLAM可以通过共享环境信息、融合不同传感器信息等方式协作建图。多机器人SLAM具有效率高、容错性强、地图精度高等优点,更加适用于各种复杂的任务,受到越来越多研究人员的关注。与此同时,多机器人SLAM需要解决不同机器人的相对位姿估计、局部地图融合等问题,因此研究多机器人SLAM具有重要的意义。本文对多机器人SLAM的相对位姿估计、地图关联、全局地图优化等问题展开研究。首先,分析常用的三维环境地图描述方法,比较点云地图、立体栅格地图、语义地图的优缺点,选择使用OctoMap描述环境信息。研究3D SLAM中经典算法:LOAM算法和Cartographer算法。通过分析两种算法的基本原理,比较两种算法异同,选择Cartographer算法作为多机器人SLAM算法研究的基础。其次,分析OctoMap和室内环境的特点,提出基于滑动窗口的OctoMap特征点提取方法。根据滑动窗口内占空比(占据立体栅格与空闲立体栅格数量之比)的变化率,结合基于区域生长的平面分割算法,计算点到平面的距离,完成OctoMap特征点提取。基于回溯法搜索最大公共子图,对特征点进行关联,实现OctoMap 融合。接着,分析多机器人系统结构,结合本课题中机器人的性能,以混合式多机器人系统为基础,机器人分布式建图,集中式处理的方式协作建图。基于图优化SLAM的思想,将多机器人SLAM问题分为前端和后端。前端通过子地图的顺序关联和闭环检测计算约束,构建多机器人位姿图,后端基于捆绑调整的思想,建立全局误差函数,迭代求解,优化机器人的轨迹,创建全局一致性OctoMap。最后,搭建实验平台,小强XQ-4Pro机器人搭载Rfans-32 3D激光雷达,感知环境信息,基于ROS框架,保存激光雷达信息和机器人运动信息,创建子地图序列。根据创建的子地图序列和公开数据集验证本课题所提出的多机器人SLAM算法的有效性。