2D激光雷达的SLAM程序设计毕业论文
2020-02-16 12:15:38
摘 要
本研究主要为了实现基于2D激光雷达的SLAM程序设计。SLAM作为自主移动机器人的核心,需要接受来自激光雷达获取的环境数据,根据获取的环境数据实现即时定位与构建环境地图的功能。针对于传统SLAM程序设计,本研究引入了图优化的思想,将激光雷达数据中包含的环境角点信息提取出来,作为环境信息约束,再根据计算出的激光雷达的位姿,实现对激光雷达位姿进行全局优化。
此SLAM程序可以分解为三个模块,分为激光雷达数据获取模块、激光雷达位姿计算模块以及全局位姿优化和环境地图构建模块。
(1)激光雷达数据获取模块中首先解析了雷达厂家封装的激光雷达获取的环境信息的数据结构,然后将其封装成ROS中自带的雷达信息数据结构,并将其发布到ROS中。
(2)激光雷达位姿计算模块中首先确定了SLAM中地图采用占据栅格地图,然后通过双线性差值将现实世界与栅格地图一一对应,再结合GN算法,将整个位姿求解问题抽象成一个非线性最小二乘问题,以求解激光雷达的运动位姿。
(3)全局位姿优化和环境地图构建模块中首先利用激光雷达检测环境角点信息,提出一种基于最小二乘法拟合直线的角点检测方案,并将角点检测结果通过NMS处理,然后将检测出的角点作为路标,即环境约束。再结合求解出的机器人的位姿,构建出位姿求解问题的图模型,然后向图模型中添加边的约束,并设计误差函数。最终完成全局位姿优化与环境地图构建,解决了SLAM中误差累积的问题。
通过最终实验结果表明,本SLAM程序较好的实现了即时定位与环境地图构建的功能,有一定的实用价值。
关键字:激光雷达;SLAM;位姿求解;角点检测;图优化
ABSTRACT
This research is mainly to implement the SLAM program based on 2D Lidar. As the core of autonomous mobile robots, SLAM needs to accept environmental data acquired from laser radar, and realize the function of real-time positioning and construction of environmental maps according to the acquired environmental data. In view of the traditional SLAM program design, this research introduces the idea of graph optimization, extracts the environmental corner information contained in the Lidar data, and using it as the environmental information constraint to globally optimize the Lidar pose.
This SLAM program could be decomposed into three modules, which are divided into a Lidar data acquisition module, a Lidar pose calculation module, and a global pose optimization and environment map construction module.
(1) The Lidar data acquisition module first analyses the data structure of the environmental information acquired by the radar manufacturer#39;s encapsulated laser radar, and then encapsulates it into the radar information data structure that comes with the ROS and publishes it to the ROS.
(2) The Lidar pose calculation module first determines that the map in SLAM adopts the occupied grid map, and maps the real world to the grid map by bilinear interpolation one by one. Combined with the GN algorithm, the whole pose calculation problem is abstracted into a Non-Linear least squares problem, is solved to compute the Lidar pose.
(3) Global pose optimization and environment map construction module firstly uses Lidar to detect environmental corner information, and then proposes a corner detection scheme based on the least squares method. The corner detection result is processed by NMS and then detected. The corner points are used as landmarks, that is, environmental constraints. Then combined with the pose of the robot, the graph model of the pose problem is constructed, then the edge constraint is added to the graph model, and the error function is designed. Finally, the global pose optimization and environmental map construction are completed, which solves the problem of error accumulation in SLAM.
From the final experiment we can easily see that the SLAM program could better realize the functions of SLAM, and has certain practical value.
KEYWORD:Lidar; SLAM; pose calculation; corner detection; graph optimization
目 录
第1章 绪论 1
1.1 研究背景和意义 1
1.2 国内外研究现状 2
1.3 本文研究内容 3
1.4 论文的组织结构 3
1.5 小结 4
第2章 激光雷达的数据获取 5
2.1 系统设计 5
2.1.1 系统硬件结构 5
2.1.2 系统软件结构 7
2.2 激光雷达帧的数据结构 9
2.3 数据解析算法与雷达数据发布 10
2.3.1 数据解析算法 10
2.3.2 激光雷达数据发布 10
2.4 实验 11
2.5 本章小结 13
第3章 激光雷达位姿计算 14
3.1 占据栅格地图 14
3.2 基于GN算法的位姿计算 18
3.2.1 GN算法介绍 19
3.2.2 GN算法与位姿求解 20
3.2.3 位姿求解算法 22
3.3 实验 23
3.4 本章总结 24
第4章 全局位姿优化与地图绘制 25
4.1 角点检测 25
4.1.1 角点特征滤波 25
4.1.2 角点特征值计算与NMS处理 27
4.2 全局位姿图优化 28
4.2.1 确定状态变量 29
4.2.2 约束建模 30
4.2.3 增量参数化 31
4.2.4 误差函数设计 32
4.2.5 数据结构设计 33
4.3 环境地图构建 38
4.4 实验 39
4.5 本章总结 40
第5章 总结与展望 41
5.1 工作总结 41
5.2 未来展望 41
参考文献 42
致 谢 44
绪论
研究背景和意义
自主移动机器人在室内环境,水下探测,航天探索等领域发挥着重要的作用,在自主移动机器人的研究中,自主导航是其中一个相当重要的研究方向。如果在室外开阔地带,机器人可以使用全球定位系统(Global Positioning System,GPS)获取位置并进行导航,但若是在室内或者海底以及外星球时,GPS就无法完成定位任务。在这种情况下,就需要机器人能够在没有先验信息的情况下,只根据自身携带的传感器就能够确定自身的位置。而机器人在定位的过程中需要针对于地图来确定位置,而环境地图的获取又需要机器人的准确定位,所以定位和构建地图这两个问题是相辅相成,互为支柱的。当这两个问题合二为一时,那就是即时定位与地图构建(Simultaneous Localization and Mapping,SLAM)问题。
SLAM问题作为自主移动机器人其中的核心,是自主移动机器人中关键的技术之一,其建图定位的精度直接影响到后续移动机器人能否准确完成任务,能否有效精确的解决SLAM问题对自主移动机器人的发展有重要影响。到目前为止,针对SLAM问题中存在的闭环检测能力差,动态环境下定位差等技术难题,解决方案层出不穷,但是如何在复杂的环境下保证构建地图和定位的精确度仍然是一个富有挑战性的研究方向,对其进行研究具有重要的理论意义和现实价值。
目前,大部分的SLAM研究都是基于视觉SLAM,虽然相机相对于雷达设备作为传感器来说更加便宜、轻便,图像也能提供更加丰富的信息,但缺点也十分明显,图像信息的实时处理需要很高的计算能力。本项目基于2D 激光雷达进行SLAM程序设计,激光雷达可以做到精确测量,能够比较精准的提供角度和距离信息,可以达到小于0.5度的角度精度以及小于1cm的测距精度,扫描范围广(通常能够覆盖平面内270度以上的范围),而且基于扫描振镜式的激光雷达可以达到较高的数据刷新率(60Hz以上),基本满足了实时操作的需要,并且相对于图像信息,激光雷达的数据计算能力要求并没有那么高。
由于激光雷达的位姿计算是一个增量过程,通过逐帧数据计算激光雷达的运动位姿,然后根据计算结果进行累加计算。这样随着时间的不断增加,激光雷达运动不断变长,环境地图的规模在不断加大,这样由于传感器等误差导致每一次计算都会存在误差,可能短时间无法显现误差,但伴随着长时间的过程,这个误差会不断的累积,这样就导致了运动时间越久,SLAM算法的准确度就会越低。针对这个问题,本项目旨在完成一个基于2D 激光雷达的SLAM程序设计,能够实现利用2D激光雷达生成室内地图的功能。相比于传统的SLAM设计,本研究引入图优化的思想完成激光雷达的全局位姿优化,构建全局环境地图,大大提高了建图的精度,有效的解决了位姿计算的误差累积的问题。
国内外研究现状
SLAM最早是Randall Smith等人提出,至今已有三十年。他们把这个问题定位为滤波技术。使用离散状态的空间,提出统计地图的概念,并通过Kalman滤波给出有效的解决方案[1]。Dieter Fox和Sebastian Thrun等人对SLAM进行深入研究与分析后,提出概率定位这个概念[2,3],之后的SLAM大都基于这个基础。按照传感器的类型来区分,其中一部分走向了视觉SLAM的方向,另外一部分则选择了激光雷达SLAM方向。现任Udacity创始人CEO、前Google副总裁、谷歌无人车领导者Sebastian Thrun在他2005年的经典著作《Probabilistic Robotics》一书中详细阐述了利用2D激光雷达基于概率方法进行地图构建和定位的理论基础,并阐述了基于RBPF粒子滤波器的FastSLAM方法,成为后来2D激光雷达建图的标准方法之一GMapping[4,5]的基础。
随着Kinect等具有深度信息的相机的发明,通过视觉解决SLAM问题的方法也逐渐兴起,比如Felix Endres等人提出了基于RGB-D相机的RGB-D-SLAM[6]的方法,Mur-Artal Raul等人提出基于特征单目视觉的ORB-SLAM[7]方法等。但是由于视觉SLAM刚刚起步,大多数都处在研究阶段,很多理论尚不完善,同时因为设备的精度无法与激光雷达相比,且计算量更大,因此在自动导航中仍以激光SLAM为主。经典的激光SLAM方法包括RBPF-SLAM[8]、FastSLAM[9,10]、GMapping[11]和HectorSLAM[12]等。这些SLAM方法在提出时取得了较好的效果,然而随着传感器设备与技术的发展,已经逐渐难以满足现代对效率的追求。
2016年,Google开源其激光雷达SLAM算法库Cartographer[13],它改进了GMapping计算复杂,没有有效处理闭环的缺点,采用SubMap和Scan Match的思想构建地图,使用分支绑定解决子地图映射,每生成一个子图就会进行一次局部回环。当所有的子图完成后,会进行全局回环检测。能够有效处理闭环,达到了较好的效果。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: