基于ROS平台和Kinect V2深度摄像头的SLAM系统设计与实现毕业论文
2020-02-17 23:03:17
摘 要
随着科技及自动化等技术的不断进步与发展,机器人开始更多地进入人们的生活,给人们提供着了不同程度的舒适和便利。而同步定位及地图构建(SLAM,simultaneous localization and mapping)技术是目前机器人移动研究领域的一个热点,也被国内外学者认为是真正实现完全自主移动机器人的关键。随着Kinect等深度传感器的发展,基于深度传感器采集到的彩色图像及深度信息,视觉SLAM也在不断的发展之中,但仍然存在着很多的问题等待人们去解决。本文主要依托硬件平台的搭建,在ROS系统下构造了整体的SLAM系统,同时在实际情况下对视觉SLAM问题进行研究,完成了对环境的信息采集与地图构建,最后对路径规划问题进行了一些研究。本文的主要工作如下:
(1)使用Kinect V2深度相机作为视觉传感器,结合EAIBOT D1移动平台作为底盘,在ROS系统下完成了整套SLAM系统的搭建与环境的配置。同时通过对Kinect相机完成基于OpenCV库的标定以及整合机器视觉算法的预处理,使得系统能够采集相对高质量的图像,便于对环境信息的采集。
(2)针对SLAM算法进行研究,完成包含预计功能的整套SLAM系统的设计与实现。使用基于ORB算法进行特征提取的ORB-SLAM2,并进行算法的增添改进,使系统能得到环境的点云地图。结合Octomap完成点云数据向八叉树数据结构的转化,生成相应的八叉树地图,方便后续的处理。
(3)针对路径规划进行研究和实验,给所设计的SLAM系统加入路径规划功能。在给定可用地图的情况下,系统能结合amcl及move_base 包完成移动机器人的路径规划工作。
关键词: SLAM;Kinect;点云;Octomap;路径规划
Abstract
With the continuous advancement and development of technologies such as technology and automation, robots have begun to enter people's lives more and more, providing people with varying degrees of comfort and convenience. Synchronous localization and mapping (SLAM) technology is a hotspot in the field of robot mobile research. It is also considered by domestic and foreign scholars to be the key to truly realize fully autonomous mobile robots. With the development of depth sensors such as Kinect, visual SLAM is constantly evolving based on color images and depth information acquired by depth sensors, but there are still many problems waiting for people to solve. This paper mainly relies on the construction of hardware platform, constructs the overall SLAM system under ROS system, and studies the visual SLAM problem under actual conditions, completes the information collection and map construction of the environment, and finally carries out some path planning problems. the study. The main work of this paper is as follows:
(1) Using the Kinect V2 depth camera as the visual sensor, combined with the EAIBOT D1 mobile platform as the chassis, the complete SLAM system setup and environment configuration was completed under the ROS system. At the same time, through the calibration of OpenCV library and the preprocessing of integrated machine vision algorithm for Kinect camera, the system can collect relatively high quality images and facilitate the collection of environmental information.
(2) Research on the SLAM algorithm to complete the design and implementation of the complete SLAM system with the expected function. The ORB-SLAM2 based on the ORB algorithm is used for feature extraction, and the algorithm is added and improved to enable the system to obtain the point cloud map of the environment. Combine Octomap to complete the transformation of point cloud data to octree data structure, and generate corresponding octree map to facilitate subsequent processing.
(3) Research and experiment on path planning, and add path planning function to the designed SLAM system. Given the available maps, the system can combine the amcl and move_base packages to complete the path planning of the mobile robot.
Key Words:SLAM;Kinect; point cloud; Octomap; path planning
目 录
第1章 绪论 1
1.1课题研究目的及意义 1
1.2 国内外研究现状分析 1
1.3 论文主要研究内容与结构安排 2
第2章 基于ROS和Kinect V2的移动平台设计与实现 4
2.1 引言 4
2.2 移动平台主体硬件框架搭建 4
2.2.1 Kinect V2深度摄像头的硬件构造及功能简述 4
2.2.2 ROS机器人操作系统简述 5
2.2.3 EAIBOT SSD1移动平台简述 6
2.3 移动平台图像信息采集与预处理方法设计与实现 7
2.3.1 移动平台图像信息采集及运动控制方法实现 7
2.3.2 Kinect V2深度摄像头视觉标定方法实现 8
2.3.3 移动平台图像信息预处理方法设计与实现 10
2.4 本章小结 12
第3章 SLAM系统基本功能设计与实现 13
3.1 引言 13
3.2 SLAM及点云数据的获取方法简述 13
3.2.1 SLAM简述 13
3.2.2 ORB-SLAM2原理简要分析 14
3.2.3 点云地图的获取方法设计与实现 16
3.3 基于点云数据的八叉树地图构建方法设计 17
3.3.1 点云地图的局限性分析 17
3.3.2 八叉树地图简述 17
3.3.3 八叉树地图的构建方法 19
3.4 基于ROS和Kinect V2的SLAM基本功能设计与实现 22
3.5 本章小结 24
第4章 SLAM系统路径规划功能设计与实现 25
4.1 引言 25
4.2 实现路径规划的功能包简述 25
4.2.1 amcl包 25
4.2.2 move_base包 26
4.3 基于RVIZ图形化显示程序的仿真 26
4.4 基于amcl和move_base的路径规划及导航方法 29
4.5 整体SLAM系统的避障测试 31
4.6 本章小结 32
第5章 总结与展望 33
参考文献 34
致 谢 35
第1章 绪论
1.1课题研究目的及意义
随着计算机技术及自动化技术的不断发展,之前人们难以接触到的机器人也变得较为普遍。机器人为人们的工作生活提供了巨大的便利,对人们如今乃至以后的发展产生了很大的影响。随着人们的不断探索,机器人已经变得逐步智能化,如今已广泛地应用于军用、民用、医用等许多领域并发挥着相当重要的作用。
智能移动机器人,是一种可以用于实现自主移动以及导航等功能的整体系统。它能够按照使用人员给予的目标,通过一些自身携带的传感器进行环境信息的感知探测,对目标进行自主的分析并进行规划,进而完成运动[1]。
机器人在向目标运动的过程中是否能够进行障碍物的躲避,是否能够根据已知环境地图进行自主的路径规划,是否能够进行自主的导航,这是机器人智能化水平的重要标志[2]。但在大多数情况下,机器人运行的环境通常难以事先知晓,这就要求机器人能够在完全未知的新环境下进行建图,同时利用建得的地图进行定位及导航,这也就是我们所说的同步定位与地图创建问题(Simultaneous Localization and Mapping,即SLAM)。自从SLAM这个概念在1988年首次被提出以来,很多学者将其看作是真正意义上能实现机器人自主移动的关键,近年来已经成为国内外机器人领域研究的热潮。
搭建视觉传感器的移动机器人进行所处环境的图像信息的采集工作,并完成建图工作是实时定位及导航工作的基础前提。地图的表达形式也有很多种,有点云地图、八叉树地图、栅格地图等等,如果我们能使用具体的地图完成路径规划及导航工作,可以极大地推动无人驾驶等方向的发展。因此,对不同地图表达形式以及路径规划的研究对于机器人的自主移动及新技术的发展具有极其重要的意义。
1.2 国内外研究现状分析
随着科学技术以及控制技术的不断发展,搭载传感器的移动机器人取得了长足的发展,也不断推动着我们的社会向智能时代前进。从斯坦福SRI研究出第一台机器人Shakey,到第一台登上外太空的前苏联研发的Lunokhod1,再到后面不断用于军用民用的各种机器人,移动机器人不可置否地说是已经进入了人们的生活,本身也已经具备了很高的智能化水平。
我们国家对于移动机器人的研究起步相对于发达国家比较晚,设备及研究环境相对落后。但经过这些年的不懈努力,也已经取得了非常大的进步,成就喜人。中科院研发了集识别、会话多种功能一体的CASIA-I,清华大学研制THMR系列,国防科大对无人驾驶车辆的研究,以及哈工大、香港城市大学等研究机构取得的突出成就,都代表着我国移动机器人的整体水平。虽然我们距发达国家还有不小的差距,但相信经过大家的不懈努力这个差距会越来越小。
随着计算机技术的不断发展以及传感器性能的随之提高,对于视觉SLAM的研究也进入了研究高潮。在2007年,伦敦帝国学院的Davision等人公布了基于单目相机的视觉SLAM的研究成果[3]。Murray一行人对SLAM系统进行优化处理,提升了系统的实时性[4]。Davision实现了基于双目相机的SLAM,并引入特征提取等内容。华盛顿大学Henry等人对RGB-D信息进行研究,实现了基于Kinect的RGB-D SLAM[5]。慕尼黑工业大学的Endres等人改进了这项内容,并提出了标准集测试标准。较之于国外,由于起步较晚,国内的视觉SLAM研究目前还处于一个初级阶段[6]。2013年,西安交大袁泽剑等人提出了基于彩色相机的位姿估计方法以及回环检测方法。上海交大的一些研究人员完成了室内场景的3D实时重建[7]。清华大学李海洋等人使用SURF算法以及EKF算法完成了位置估计及更新工作。高翔博士对于SLAM的研究也极大地提升了国内SLAM初学者的研究热情,大大地促进了国内的视觉SLAM研究。
随着计算机技术的不断发展,再加上人类不断地深入研究与探索,SLAM问题已经取得了很大的发展,很多优秀的算法结合各类较为精确的传感器,已经取得了较为良好的效果。视觉传感器体积较小、质量轻、安装简便、成本低廉等优点使得它逐渐成为当今研究的热点,虽然已经取得了一系列显著的成果,但仍然存在很多问题。
1.3 论文主要研究内容与结构安排
本次课题通过对视觉SLAM的学习与研究,学习了一些SLAM的知识,也了解了现阶段SLAM研究的一些方向。并使用Kinect V2深度视觉摄像头作为采集环境信息的传感器,使用EAIBOT移动机器平台,构建了一整套SLAM系统,并能够通过该系统完成环境点云地图以及八叉树地图的构建,同时我们还结合机器视觉算法完成了采集图像质量的提升。并且在给定有效地图的情况下,能够使用ROS功能包完成路径规划及导航工作。
论文结构安排如下:
第一章:对本次课题的研究背景及意义进行总体的阐述,并对SLAM、移动机器人等方面的研究的国内外现状进行必要的分析,同时完成本课题的可行性分析,最后对本文的研究内容及结构安排进行统筹。
第二章:完成整体SLAM系统硬件平台的搭建及采集图像质量的提升处理。详细介绍了本次课题所使用的Kinect深度摄像机、开源机器人平台ROS平台、EAI公司生产的D1移动平台,包括硬件结构及工作原理。然后结合理论知识完成了Kinect及机器人的驱动安装及环境配置,搭建了整套基于ROS及Kinect相机的移动平台,能够完成机器平台的联动控制及图像信息采集工作。然后结合OpenCV库完成Kinect传感器的视觉标定,再融入机器视觉算法完成图像的预处理工作,从这两方面分别完成了对采集图像的处理,为后续的建图工作打下基础。
第三章:结合搭建好的硬件平台,完成两种地图的构建。首先介绍了SLAM问题的研究内容以及一些SLAM算法,并完成了基于ORB算子的ORB-SLAM2的编译安装,同时能够结合修改之后的ORB-SLAM2完成点云地图的导出。然后对八叉树结构进行了介绍,能够结合算法对采集获取到的点云数据完成转换,生成相对应的八叉树地图。最后,使用搭建的整套SLAM系统完成整体的调试,构建出了整体的实验室的点云地图及八叉树地图。
第四章:在给定有效地图的基础上,完成路径规划及导航。首先介绍move_base以及amcl两个包的功能架构及使用,然后结合这两个功能包搭配可视化工具RVIZ完成仿真工作。能够实现在给定一张地图的情形下,指定目标位置,机器人能自主完成路径规划及导航工作的目标。本章的最后,使用D1搭载整套SLAM系统完成了实际避障测试,能够完成避障操作。
第五章:对本次课题所进行的工作完成一个系统的总结工作,分析优点及缺失,同时为下一步可以进行的方向进行了阐述及展望。
第2章 基于ROS和Kinect V2的移动平台设计与实现
2.1 引言
基于视觉信息的SLAM最首要的工作便是获取环境图像对应的深度视觉信息,准确的获取到深度信息是视觉SLAM的基础。本次课题中采用的深度摄像机与其他普通相机相比,可以同时获取到采集环境的彩色图像以及所对应的深度信息。芯片通过计算便可获得视角内环境对象的三维数据,因此深度摄像头向来用作视觉SLAM的探测传感器。深度摄像头也有很多种,微软开发的Kinect相机较为具有代表性,它不仅能够稳定地获得视觉环境的彩色图像以及与之对应的深度图像,而且价格相对低廉,测量精度也能满足视觉SLAM的精度要求。本文中我们选用Kinect V2视觉摄像头作为本课题的传感器,结合EAI的机器人底盘,整合在ROS操作系统下,完成整体硬件系统的搭建。
完成了硬件系统的搭建,接下来便是要进行环境图像信息的采集工作,能否准确而高质量地获取场景图片以及环境信息是整套系统能否正常工作的基础与前提。可以从获取图像的源头以及后续的处理来提高系统在采集自建数据集以及运动中采图的质量,从而提高建图以及路径规划的准确性。本章还介绍了本次课题所采用的提升采集图像质量的一些处理措施,即对Kinect V2的视觉标定以及基于机器视觉算法的预处理。
2.2 移动平台主体硬件框架搭建
2.2.1 Kinect V2深度摄像头的硬件构造及功能简述
本次课题所使用的Kinect V2深度摄像头由微软公司研究发行,整体结构如图2.1所示。整体由三个摄像头构成,分别是彩色、深度以及红外线相机。本次课题中,通过Kinect相机完成环境图像以及深度信息的获取。
图2.1 Kinect V2 深度传感器
Kinect V2深度传感器在价格上相对低廉,并且可以稳定地获取所处环境的彩色图像及其相对应的深度图像,测量的精度也可以满足视觉SLAM的要求。因此,我们采用Kinect V2作为本文的探测传感器,它的相关技术参数如表2.1所示。
表2.1 Kinect V2相关技术参数
传感器的特性指标 | 技术参数 |
帧率 | 30fps |
RGB图像分辨率 | 1920 x 1080 |
深度图像分辨率 | 512 x 424 |
角度范围(水平) | 70° |
角度范围(垂直) | 60° |
检测范围 | 0.5~4.5m |
人物数量 | 6人 |
人物姿势 | 6人 |
2.2.2 ROS机器人操作系统简述
ROS(Robot Operating System)是一个适用于机器人开源的元操作系统,通常被用来进行机器人的控制及操作等工作。经过查阅资料,总结ROS的优点如下:
- 精简且集成性好
- 点对点设计,分布式计算
- 包含丰富开源算法
- 支持多种编程语言进行编程
- 兼容性好,可以方便地进行系统间的代码移植
基于ROS系统的上述优点,我们选用ROS系统进行Kinect以及D1平台等设备的驱动以及操作。本次课题中,使用Ubuntu14.04系统搭配该系统对应的indigo版本的ROS操作系统,配置好环境变量,进而实现对整套硬件平台的控制。终端显示界面如图2.2所示:
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: