基于LIDAR的室内SLAM及其导航算法研究与实现毕业论文
2020-02-18 11:56:04
摘 要
同步建图与定位是智能移动机器人领域中实现定位与导航的关键。智能机器人的发展达到新的高度,因而同步建图与定位以及导航技术受到了广泛关注。本课题主要研究了基于LIDAR的室内SLAM及其导航算法,设计了基于STM32模块的导航控制模块,并对Cartographer算法的建图效果以及A*算法路径规划结果进行了分析。
首先,获取与处理了扫描数据与传感器数据。包括Cartographer算法对于LIDAR以及IMU等传感器数据的获取、融合以及处理过程,并研究了建图过程中坐标系之间的转换关系,为后续建图以及导航提供基础。
接着,研究了构建地图及其优化算法。对基于Cartographer建图的两次优化过程进行了研究。局部优化算法中,对局部子图进行了数学模型的构建,研究了如何通过LM算法求最优解。而全局回环检测中,主要对与分支定界法搜索最优解的遍历过程进行了研究。
在建图基础上研究了基于A*与Dijkstra算法的路径规划算法并设计了导航模块。对A*以及Dijkstra的路径规划算法进行了研究与仿真,并分析以及对比两种算法的仿真结果和优缺点。考虑到环境以及精度等因素,利用STM32开发板设计了导航模块,并将PID算法以及AMCL定位算法移植入设计系统中。
最后,实现了基于LIDAR的室内SLAM及其导航系统。在基于LINUX系统的ROS平台下进行实验。利用Cartographer算法构建了以405实验室为实验环境的地图,利用A*算法实现路径规划,利用AMCL算法实现自身定位,利用PID算法以及转速差算法实现对速度以及导航角的控制。最终实现机器人对于未知环境的同步建图与定位以及对于已知环境的定位与导航。
关键字:激光雷达;SLAM;路径规划;导航系统
Abstract
Simultaneous localization and mapping is the key to achieving positioning and navigation in the field of intelligent mobile robots. The development of intelligent robots has reached new heights, so synchronous mapping and positioning and navigation technology have received extensive attention. This thesis mainly studies LIDAR-based indoor SLAM and its navigation algorithm, designs a navigation control module based on STM32 module, and analyzes the results of the Cartographer algorithm based construction and A* algorithm path planning.
Acquisition and processing of scan data and sensor data. This thesis mainly studies the acquisition, fusion and processing of sensor data of LIDAR and IMU by Cartographer algorithm, and studies the conversion relationship between coordinate systems in the process of drawing, which provides the basis for subsequent mapping and navigation.
Build maps and their optimization algorithms. Two optimization processes based on Cartographer mapping were studied. In the local optimization algorithm, the mathematical model of the local subgraph is constructed, and how to find the optimal solution by LM algorithm is studied. In the global loopback detection, the traversal process of searching for the optimal solution with the branch and bound method is mainly studied.
Path planning algorithm and navigation module design based on A* and Dijsktra algorithm. The path planning algorithms of A* and Dijkstra are studied and simulated, and the simulation results and advantages and disadvantages of the two algorithms are analyzed and compared. Taking into account the environment and accuracy, the navigation module was designed using the STM32 development board, and the PID algorithm and AMCL positioning algorithm were transplanted into the design system.
Implementation of LIDAR-based indoor SLAM and its navigation system. The experiment was carried out under the ROS platform based on LINUX system. The Cartographer algorithm is used to construct the map with 405 laboratory as the experimental environment. The path planning is realized by A* algorithm, the positioning is realized by AMCL algorithm, and the speed and navigation angle are controlled by PID algorithm and rotation speed difference algorithm. Finally, the robot realizes synchronous mapping and positioning for the unknown environment and positioning and navigation for the known environment.
Keywords: Lidar;SLAM;path planning;navigation system
目录
摘要 I
Abstract II
第1章 绪论 1
1.1研究背景及意义 1
1.1.1 课题研究背景 1
1.1.2 课题研究意义 1
1.2 SLAM与导航算法国内外研究现状 2
1.2.1 激光SLAM算法国内外研究现状 2
1.2.2 路径规划与导航算法国内外研究现状 2
1.3本文研究内容 3
第2章 基于LIDAR的室内SLAM建图与优化算法研究 4
2.1基于LIDAR的SLAM位姿估算及建图算法 4
2.1.1 基于UKF的SLAM位姿估算算法 4
2.1.2 坐标变换及建图算法 5
2.2 数据融合与SLAM局部地图优化算法 9
2.2.1数据处理与融合算法 9
2.2.2 基于LM的SLAM局部地图优化算法 11
2.3 回环检测与全局地图优化算法 12
2.3.1 基于Branch and bound的回环检测算法 12
2.3.2 基于SPA的全局地图优化算法 13
2.4 本章小结 13
第3章 室内路径规划与导航算法研究 15
3.1 Dijkstra路径规划算法研究 15
3.1.1 Dijkstra路径规划算法流程 15
3.1.2 基于Matlab的Dijkstra算法仿真 16
3.2 A-Star路径规划算法研究 17
3.2.1 A-Star路径规划算法流程 17
3.2.2 基于Matlab的A-Star算法仿真 18
3.3 机器人导航控制策略与实现 19
3.3.1 基于AMCL和PID算法的导航控制策略 19
3.3.2 基于STM32的导航控制模块设计 21
3.4 本章小结 22
第4章 基于LIDAR的室内SLAM与导航系统设计与实现 24
4.1 基于LIDAR的室内SLAM与导航系统设计与流程 24
4.1.1 基于LIDAR的室内SLAM与导航系统设计 24
4.1.2 基于LIDAR的室内SLAM与导航系统流程 25
4.2 基于LIDAR的室内SLAM与导航系统环境搭建 27
4.2.1 基于LIDAR的室内SLAM与导航系统硬件平台选型 27
4.2.2 基于LIDAR的室内SLAM与导航系统软件环境配置 28
4.3 基于LIDAR的室内SLAM与导航系统实现 28
4.3.1 基于LIDAR的室内SLAM与导航算法移植 28
4.3.2 实验结果分析 29
4.4 本章小结 31
第5章 总结与展望 33
5.1 全文工作总结 33
5.2 对未来的展望 33
参考文献 34
致谢 35
第1章 绪论
1.1研究背景及意义
1.1.1 课题研究背景
智能移动机器人在20世纪60年代时开始慢慢发展起来,逐渐拥有了全面的操作启动系统,并在此基础上实现了诸多功能,包括做出决策,规划,实施控制与实施行为等任务。随着科技的不断发展,使机器人具有“人的意识”这一方面受到广泛关注,在此基础上,也促进了移动机器人学向多种研究方向发展。近年来,智能移动机器人已向全面模拟人这方面发展,逐渐形成感知,思维和效应等三方面综合系统。目前,智能机器人应用范围越来越广,在复杂或者危险环境下代替人类工作的能力显著提高。而对于未知环境的认知则是这一领域的关键。
SLAM(Simultaneous Localization and Mapping), 即同步定位与建图。SLAM经常用于考察机器人对陌生环境的认知能力。SLAM这一过程可表示为,在环境以及自身位姿是未知的情况下,机器人开始移动,根据位姿 估计和地图进行自身定位[1]。机器人定位和移动一直进行,进而在此基础上构造地图[2]。
同样,路径规划及导航和运动控制也是实现智能移动机器人的关键技术。在路径规划中,最常见的算法为A*、D*、Dijkstra。近年来路径规划被学者们应用于各个领域。路径规划在高科技领域:机器人壁障行动;无人机的避障突防飞行;巡航导弹规避雷达搜索等。
1.1.2 课题研究意义
近年来,移动机器人被用于越来越多的领域。而移动机器人的核心计算是SLAM算法于路径规划。其在智能机器人领域占的比重越来越大,因而研究SLAM技术与路径规划算法具有重大意义。
在当今社会中,SLAM与自主导航技术已应用得越来越广泛。例如,在商业用途方面,扫地机器人行业是迄今为止最成熟的应用行业,并且也是第一个用到SLAM技术的行业。扫地机通过激光雷达或者摄像头的方法,基于SLAM算法上可以构建地图,有效分析室内环境,采取合理性的综合措施来应对此过程中的问题。除了扫地机之外,SLAM技术在其他服务机器人(例如商场导购机器人、银行机器人)、无人机、自动驾驶等都有应用。而在工业方面,SLAM与导航技术的应用主要集中在AGV领域。对于生产以及灵活的商业存储处理技术要求不断提高,这种需求不断促使SLAM步入更广泛的应用。的当下国内有一些AGV企业都已开始将SLAM技术应用到AGV上,借此实现真正的自然导航。随着SLAM技术重要性的凸显以及应用市场的扩大 ,一些企业开始纷纷投入到SLAM技术研发中。
SLAM与自主导航技术在各个领域占的比重越来越大,但我国在这方面的技术远远落后于国外。因而研究其算法是目前亟待解决的任务。
1.2 SLAM与导航算法国内外研究现状
1.2.1 激光SLAM算法国内外研究现状
激光雷达的工作原理是发出并接收激光束采集物体信息,并将该信息显示为具有精确角度和距离的点,表示物体的轮廓于距离,这种方法也被称作点云。激光雷达采集的信息精确度高,误差易校正,可以在多种环境下运行。同时,由于点云中的点具有准确的角度和距离,使得机器人的路径规划和导航更直观[2]。激光SLAM由先前的测距定位发展而来。通常,激光SLAM系统需要对两片点云进行配对分析,分析两片点云的距离和相对于机器人的姿态改变,也就完成了对机器人自身的定位。激光SLAM理论目前也相对成熟,产品更为丰富。
由于国内SLAM技术起步较晚,从技术应用层面来说,目前仍处于发展阶段,与国外相比还有一定差距。现实中的噪声与计算误差使得SLAM的应用变得较为复杂且具有不确定性,如何解决这些问题是SLAM的核心[3]。大多数不确定性问题可以抽象为概率问题用概率论方法进行解决,利用用贝叶斯法则对问题进行建模。
早期的SLAM算法主要都是在贝叶斯框架下进行讨论的,其中,最典型的两种算法为EKF-SLAM(Extended Kalman Filters)和FastSLAM (Rao-Blackwellized particle filters)。EKF-SLAM利用拓展卡尔曼滤波器对机器人位置进行估计,FastSLAM利用粒子滤波器进行位置的估计。但由于基于Filter的SLAM采用了Markov假设,仅考虑最近两组数据的递推关系,会导致误差累加不可恢复,因此近年来基于Filter的SLAM已经基本被考虑了全局数据的Graph-based所取代[4]。Graph-Based SLAM是把SLAM问题建模成非线性优化问题,大多采用最小二乘法进行求解。基于Gprah的模型不像Filter仅考虑最近的两个状态,进行局部优化,而是对之前的所有状态一起做优化,相当于一个全局优化。于是越来越多的SLAM系统转而使用Graph进行建模求解。
1.2.2 路径规划与导航算法国内外研究现状
随着科技的发展,路径规划作为一些领域的关键技术,国内外有很多学者对路径规划进行了研究。路径规划目前主要应用于虚拟装配和机器人领域以及游戏开发[5]。路径规划是运动规划的主要研究内容之一,由路径规划和轨迹规划组成。连接起点位置和终点位置的序列点或曲线称之为路径,构成路径的策略称之为路径规划。
当今社会对于导航技术的要求越来越多,准确度、快速性、精确性以及稳定性的指标越来越高。而由于单一性的路径规划大多存在一定的缺陷,因而路径规划技术的未来是多元以及综合式的,会将多种算法相融合,囊括算法的优点,弥补其缺点,不断完善相关算法。其发展趋势主要包括以下3个方面:
1)基于反应式行为规划与基于慎思行为规划的结合。
2)全局路径规划与局部路径规划。
3)传统规划方法与新的智能方法之间的结合。
目前我国的导航技术与国外其他国家相比还存在一定的差距,因此在该技术方面还存在较大的发展空间[6]。导航技术未来的发展方向有:
1)集成式的导航技术。
2)导航技术的灵活性增加。
1.3本文研究内容
本文主要对基于LIDAR的室内SLAM算法,路径规划算法以及导航技术进行研究。其中SLAM算法的研究主要在基于Cartograher算法的地图的构建,而路径规划重点研究了A*与Dijkstra算法实现的过程,并对智能机器人如何实现自主导航技术进行了研究。
本文主要从以下3个方面进行研究:
1)地图的构建与优化算法研究。
数据处理是进行地图构建和定位的基础,系统如何获取数据,各个传感器数据之间的权重关系与融合,着重研究激光坐标和实际坐标的相互转换。同时也需要研究点云与地图的对应关系和随着机器人的移动更新地图的方案,对于基于ICP算法的扫描匹配方法展开研究。
地图优化算法包括局部优化与全局优化两部分。局部优化是在扫描匹配阶段对子图的一次优化,全局优化是在子图完成后对所有已完成的子图进行的一次回环检测。
2)路径规划算法研究。
本文重点研究了基于A*算法与Dijkstra算法的室内路径规划,并在MATLAB上进行仿真与对比。
3)导航系统设计与实现。
简述仿真平台的设计与搭建、导航系统的功能以及实现方法。使用搭建好的机器人系统对未知环境建图,将导航算法移植到系统中实现智能导航,并对实验结果进行分析。
第2章 基于LIDAR的室内SLAM建图与优化算法研究
由于室内GPS信号较弱,且大多场地无法铺建导轨,因而常利用SLAM算法对室内环境进行建图。常见的基于激光雷达的二维平面建图SLAM算法包括有 Hector-SLAM、Gmapping以及基于google开源的Cartographer算法[7]。其中,Hector-SLAM鲁棒性较好,但需要高更新频率、小测量噪声的激光扫描仪。因而当传感器更新率低时,对系统会造成巨大误差。Gmapping是一种基于粒子滤波的算法,通常若要求得到比较好的结果,则需要采集大量粒子,进而增加了计算的复杂度。Cartograher是Google的实时室内建图项目,利用传感器可以生成二维格网地图。获得每一帧激光扫描的数据,通过扫描匹配在最佳估计位置处插入子图。生成一个子图后,系统会进行一次局部的优化,在所有的子图完成后,会进行全局的回环。本课题主要采用基于google开源的Cartographer算法对室内环境进行地图的构建。
2.1基于LIDAR的SLAM位姿估算及建图算法
基于google开源的Cartographer算法采用UKF算法对机器人的初始位姿进行估计,之后,对于传感器获取的数据,在不同坐标系下进行变换。Cartographer中,存在两种坐标系,其一为子图坐标系,也称激光坐标系,另一个为世界坐标系。Cartographer对初始位姿的估计算法以及两种坐标系之间数据的变换是本章节的重点。
2.1.1 基于UKF的SLAM位姿估算算法
UKF(Unscented Kalman Filter)算法中的前提是基于任意函数近似于一种分布函数比近似于任意的非线性函数要容易的论点[8]。[9][9][9]UKF是一种最小方差估计的方法,其算法基于UT(Unscented Transformation)变换[10]。UKF将UT变换与卡尔曼滤波相结合,采用具体的确定性采样形式[8]。UKF算法具体描述如下:
首先将采样点初始化,
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: