论文部分内容阅读
同步定位与地图创建(Simultaneous localization and mapping,SLAM)是实现移动机器人自主导航和环境探索的关键技术之一。移动机器人SLAM的研究已经取得非常丰硕的成果,但目前的研究主要针对静态且纹理信息较为丰富的环境。随着研究的不断深入,如何提高动态、弱纹理等场景下SLAM的性能是一个有待深入研究的课题。针对这一挑战性任务,本文在已有的基于2D激光雷达SLAM方法的基础上,结合动态、弱纹理环境的特点,分别在地图创建、数据关联、闭环检测、后端优化等方面提出了相应的改进措施,实现了动态、弱纹理环境下SLAM性能的提高。具体工作包括以下几个方面:1)基于多传感器融合的前端数据关联方法研究。在扩展卡尔曼滤波(Extended Kalman Filter,EKF)的基础框架下,对激光扫描匹配输出的3自由度位姿和惯性测量单元(Inertial Measurement Unit,IMU)估计的6自由度位姿进行融合,并将结果作为非线性优化的初值参与第二次扫描匹配,进而获得在动态、弱纹理场景下更准确的初始位姿。其中,扫描匹配采用基于子图的扫描匹配方法以减小累积误差同时增强系统抗动态目标干扰的能力,通过实验选择了合适的子图帧数,利用Levenberg-Marquardt(LM)方法求解扫描匹配的非线性优化问题以获得更好的鲁棒性。采用2D栅格地图表示环境,通过实验选择了合适的地图分辨率和更新值,利用双三次插值法对栅格地图进行连续化,进而提高扫描匹配的精度。采用基于搜索窗的闭环检测方法,通过实验选择了合适的闭环检测阈值,依据实验场景规模设定了搜索窗的范围和搜索步长,将闭环检测结果作为约束条件传递给后端。2)基于稀疏姿态调整(Sparse Pose Adjustment,SPA)的后端优化方法研究。利用闭环检测约束对所有子图和雷达初始位姿进行优化,为了减小误闭环对优化结果的影响,在目标函数中加入了 Huber损失函数以减少目标函数中异常的二次项的影响,通过实验选择了合适的Huber函数的参数。3)搭建移动机器人实验平台,并在实验平台上对方法进行实验验证。为了对本文SLAM算法进行实验验证,首先,设计了移动机器人实验平台,包括基于嵌入式控制器STM32F407的硬件平台设计,并基于机器人操作系统(Robot Operating System,ROS)实现了传感器数据采集及算法软件的编程。然后,通过参数调试实验对SLAM算法参数进行调整。最后,在一般动态场景和弱纹理动态场景下进行了累积误差和地图精度的对比实验,验证了本文SLAM算法在动态、弱纹理场景下的定位和建图的准确性。