基于ROS的室内移动机器人自主导航技术(源码+万字报告+讲解)(支持资料参考_相关定制)
通过一次三维的旋转可以使得两个坐标系的姿态是一样的,再通过一次平移使得两个坐标系完全重合,此时两个坐标系的位姿是一样的。在用详细的数学语言进行描述之前首先引入向量,空间中的两个点连成按一个方向连成的一条线就是一个向量,他只是空间中存在的东西,并不具有坐标这一说法,只有在引入了坐标系之后才可以谈某个向量在该坐标系下的坐标。此外,近年来深度学习技术的兴起,为机器人的感知能力带来了巨大的提升。相机内参描
摘 要
随着机器人技术的发展,近些年来室内移动机器人的研究热度越来越高。本文主要利用ROS操作系统对室内移动机器人的建图定位与自主导航关键技术进行研究。
ROS是目前开发较为完整具有广阔应用前景的开源机器人操作系统,具有分布式、模块化、代码复用等优良特点。同时ROS还提供了许多开源库,在这些库的基础之上研究同时定位与地图构建和机器人自主导航技术可以节省大量时间。
ORB-SLAM2是比较优秀的视觉SLAM算法之一,它具有计算量比较小、能够实时运行等优点。在介绍ORB-SLAM2的框架之前,首先会介绍视觉SLAM的一些基础知识,在此基础之上简要介绍ORB-SLAM2的前端和后端,最后在ROS环境下对该算法进行验证并和VINS-MONO进行对比。
机器人自主导航的核心可以归结为机器人的定位和路径规划。机器人定位解决机器人在环境中的位置问题,知道机器人的位置后利用路径规划技术寻找一条代价最小的路线完成机器人的自主导航。本文利用蒙特卡洛完成机器人定位,结合A*全局路径规划算法验证移动机器人的导航效果并和Dijkstra算法进行对比。
关键词:ROS、自主导航、视觉SLAM、路径规划
Abstract
In recent years, with the development of robot technology, research on indoor mobile robots has become increasingly popular. This article focuses on the key technologies of mapping, localization, and autonomous navigation of indoor mobile robots using the ROS operating system.
ROS is currently the most complete open source robot operating system with broad application prospects. It has excellent features such as distributed computing, modularity, and code reuse. At the same time, ROS also provides many open source libraries, which can save a lot of time in research on simultaneous localization and mapping (SLAM) and robot autonomous navigation technology based on these libraries.
In recent years, research on visual SLAM has become increasingly popular. Among the algorithms, ORB-SLAM2 is one of the better ones, as it has the advantages of low computational complexity and real-time operation. Before introducing the framework of ORB-SLAM2, some basic knowledge of visual SLAM will be discussed. On this basis, the front-end and back-end of ORB-SLAM2 will be briefly introduced. Finally, this algorithm will be validated in the ROS environment and compared with VINS-MONO.
The core of robot autonomous navigation can be attributed to robot localization and path planning. Robot localization solves the problem of the robot’s position in the environment, and then uses path planning to find a path from the starting point to the endpoint to complete the robot’s autonomous movement. This article uses Adaptive Monte Carlo in ROS for robot localization, and combines A* global path planning algorithm to verify the navigation effect of mobile robots and compare it with Dijkstra’s algorithm.
Keywords: ROS,autonomous navigation, VSLAM, path planning
目录
第一章 绪论 1
1.1 课题研究背景和意义 1
1.2 国内外研究现状 1
1.2.1 视觉SLAM国内外发展现状 1
1.2.2 室内移动机器人国内外发展现状 3
1.2.3 存在问题与不足 4
1.3 可行性分析 5
1.4 本文主要研究内容 6
第二章 ORB-SLAM2原理及框架 6
2.1 视觉SLAM基础 7
2.1.1 刚体运动及其优化 7
2.1.2 相机模型 9
2.1.3 非线性优化 12
2.2 跟踪线程 14
2.2.1 引言 14
2.2.2 特征提取 14
2.2.3 特征匹配 16
2.2.4 运动估计 16
2.3 后端算法 18
第三章 基于A算法的移动机器人路径规划技术 20
3.1 ROS基础 20
3.1.1 ROS简介 20
3.1.2 ROS通信方式 22
3.2 ROS下ORB-SLAM2验证 23
3.3 机器人定位 26
3.3.1 机器人定位问题分类 26
3.3.2 蒙特卡洛定位 27
3.4 路径规划与导航 28
3.4.1 基于Dijkstra的全局路径规划算法 28
3.4.2 基于A的全局路径规划算法原理及实现 28
3.5 ROS下A算法仿真验证 30
3.5.1 基于代价地图的路径规划环境模型 30
3.5.2 A算法及其性能验证 31
结 论 33
致 谢 34
参 考 文 献 35
第一章绪论
1.1课题研究背景和意义
移动机器人已经成为人类社会中重要的一员,它们可以用于许多领域,如工业自动化、医疗护理、环境监测等。室内移动机器人是移动机器人的一种,可以在人类活动的场所自主移动,并且执行任务。它们已经广泛应用于各种环境,如医院、办公室、仓库和家庭等。然而,室内环境的复杂性和不确定性对机器人的自主移动构成了一定的挑战。由于复杂的室内环境,机器人需要具有高精度的定位和导航能力,才能避免碰撞和完成任务。解决机器人室内自主导航问题的一种重要方法之一就是视觉SLAM技术。视觉SLAM的主要工作就是利用摄像头等传感器为机器人的导航提供必要的地图信息。作为一个开放式机器人操作系统,ROS提供了完整的机器人软件框架,包括通信、控制、导航等功能,方便机器人的开发和部署。ROS中有许多开源的包,因此利用ROS进行开发可以极大缩短开发时间。本论文的研究目的是利用视觉SLAM技术研究对室内环境的建图和定位,并探索基于ROS的室内移动机器人自主导航技术。主要完成的工作是在ROS环境下对ORB-SLAM2和A全局路径规划算法进行验证。本文的研究成果可能会为机器人软件系统的开发提供实践经验,为室内移动机器人的自主导航技术提供进一步参考。
1.2国内外研究现状
1.2.1视觉SLAM国内外发展现状
(1)国外研究现状
视觉SLAM是一种利用相机和图像信息实现实时定位和地图构建的技术。在国外,视觉SLAM领域得到了广泛的研究和发展,涌现出许多创新的方法和算法。
特征提取和匹配:特征提取和匹配是视觉SLAM的关键步骤之一。国外的研究者提出了多种高效的特征描述子,例如SIFT、SURF和ORB,用于提取图像特征点。同时,他们还研究了各种特征匹配算法,包括基于描述子相似度、几何约束和局部一致性等方法,以提高匹配的精度和鲁棒性。
视觉里程计:视觉里程计是视觉SLAM中的核心任务之一,用于估计相机在连续图像序列中的运动信息。国外的研究者提出了多种视觉里程计算法,这些方法利用多视几何等必要的数学知识,通过代码的方式来实现,从而实现定位和地图构建。
地图构建和优化:国外的研究者提出了多种地图构建和优化算法,用于将相机观测到的特征点或像素映射到三维空间,并优化地图的精度和一致性。常用的方法包括基于滤波器(如扩展卡尔曼滤波器和粒子滤波器)的实时地图构建和基于图优化的离线地图优化。这些方法能够处理环境中的动态物体、误匹配和重投影误差等问题,提高地图的准确性和稳定性。
语义SLAM:近年来,国外的研究者开始关注将语义信息与视觉SLAM相结合,以实现更加丰富的地图构建。语义SLAM方法可以用于智能导航、场景理解和交互式系统等领域。
多传感器融合:为了提高定位和地图构建的准确性和鲁棒性,国外的研究者在近些年将视觉传感器和一些其他的惯性传感器进行融合。多传感器融合能够利用各个传感器的优势,提供更准确和稳定的定位和地图信息。
(2)国内研究现状
在国内,视觉SLAM作为一项重要的研究领域得到了广泛的关注和发展。国内研究者在视觉SLAM算法优化、硬件平台搭建、应用拓展等方面取得了一系列重要进展。
算法优化与创新:国内研究者在视觉SLAM算法优化和创新方面进行了大量的工作。他们优化了一系列高效的特征提取和匹配算法以加快特征提取和匹配的速度。
实时性和鲁棒性:国内研究者注重提高视觉SLAM系统的实时性和鲁棒性。他们通过算法优化、硬件加速和并行计算等手段,提高了算法的运行效率和实时性能。同时,他们还研究了鲁棒的特征提取和匹配算法,以应对光照变化、动态物体和遮挡等复杂环境条件,提高系统的鲁棒性和稳定性。
多传感器融合:在国内也有许多学者研究多传感器的融合,例如将惯性测量单元、激光雷达等与视觉传感器相结合,通过融合多源数据来提高定位和地图构建的准确性。同时,国内研究者还探索了基于多传感器融合的SLAM算法在无人车、智能交通等领域的应用。
1.2.2室内移动机器人国内外发展现状
(1)国外研究现状
自主导航和路径规划:移动机器人的关键技术之一就是自主导航。国外致力于开发高效的自主导航算法,使机器人能够在未知环境中实现自主移动。其中,SLAM(Simultaneous Localization and Mapping)技术是常用的方法,通过结合传感器数据和地图信息,实现机器人的自我定位和地图构建。此外,路径规划算法也是关注的热点,研究者通过优化算法和学习方法,使机器人能够在复杂环境中规划最优路径,并避免障碍物。
环境感知和感知技术: 为了使机器人能够感知和理解周围的环境,国外研究者提出了各种先进的感知技术。机器人主要通过传感器来感知周围的世界,包括相机,激光雷达和一些惯性传感器等。这些传感器可以获取环境中的物体位置、形状、颜色等信息,以支持机器人的决策和行为规划。此外,近年来深度学习技术的兴起,为机器人的感知能力带来了巨大的提升。通过深度学习算法,机器人能够进行物体识别、目标跟踪和场景理解等任务,从而更好地适应复杂多变的环境。
协作机器人和人机交互: 随着机器人技术的发展,研究者开始关注多个机器人之间的协作和与人类的交互。协作机器人可以在任务执行中相互合作,提高效率和灵活性。另外,人机交互也是一个重要研究方向。研究者致力于开发机器人与人类之间自然和有效的交互方式,如语音识别、姿态识别和情感识别等。这样的研究有助于实现人机共生和智能服务机器人的应用。
(2)国内研究现状
近些年国内对移动机器人的研究也越来越多,在研究开发新技术的基础之上,国内的学者同时注重应用层面的开发。
应用领域的拓展: 国内研究者将移动机器人技术广泛应用于各个领域。例如,在物流仓储领域,研究者开发了自动导航的AGV(自动导引车)系统,提高了物流仓储的效率。在医疗领域,研究者利用移动机器人进行康复训练和辅助手术。
教育与研究: 在教育和研究领域,国内研究者积极探索移动机器人的应用。移动机器人被应用于学校和科研机构中,作为教学辅助工具和研究平台。通过与学生和研究人员的互动,移动机器人不仅能够提供实验和演示的机会,还能促进学生对科学和技术的兴趣培养,并激发创新思维。
社会服务与辅助功能: 国内研究者也将移动机器人应用于社会服务和辅助功能领域。例如,在老年照护中,机器人可以提供日常生活的帮助,如智能导航、药物提醒和紧急呼叫等。此外,移动机器人还可以在灾害救援和环境监测等领域发挥重要作用,通过携带传感器和执行任务,为人类提供更安全、高效的服务。
工业自动化: 国内的工业自动化领域也是移动机器人应用的重要领域之一。机器人在工业生产线上的应用,可以提高大大提高生产效率。例如,自动导航的移动机器人可以在工厂内物料搬运和装配过程中发挥重要作用。同时,国内研究者也致力于开发更智能、灵活的工业机器人,通过与其他自动化设备和系统的集成,实现协作生产和智能制造的目标。
总体而言,近些年室内移动机器人在各个领域实现了广泛的应用。随着人工智能和机器人技术的不断发展,移动机器人将继续在未来发挥重要的作用,为人类的生活和工作带来更多的便利和创新。
1.2.3存在问题与不足
在室内移动机器人和视觉SLAM的发展过程中,存在一些问题和不足,这些问题可能限制了其应用范围和性能。
环境感知和建模的挑战:在室内环境中,为了进行精准的导航和路径规划,机器人往往需要建立十分精确的地图。然而,复杂的室内环境、动态物体和光照变化等因素会对感知和建模造成挑战,导致误差和不完整的地图,影响路径规划的准确性和可靠性。
实时性和计算复杂度:移动机器人需要在实时性要求下进行路径规划和导航。然而,视觉SLAM算法通常需要大量的计算资源和时间来处理图像数据和构建地图,这可能限制了其在实时应用中的使用。解决这个问题需要对算法进行优化,或者结合其他传感器和技术来提高实时性和效率。
鲁棒性和鲁邦性:在复杂的室内环境中,机器人需要具备良好的鲁棒性和鲁邦性,以应对各种挑战和干扰。例如,光照变化、遮挡物、不可预测的动态物体等可能导致传感器数据的不稳定和误差,进而影响路径规划的性能。改善鲁棒性和鲁邦性是进一步提升室内移动机器人和视觉SLAM系统的关键问题。
长期自主导航:长期自主导航是指机器人在长时间的运行中能够持续更新地图和路径规划,以适应环境的变化。然而,由于传感器的漂移、定位误差和地图的更新问题,机器人在长期运行中可能存在累积误差和路径规划失效的情况。解决这个问题需要开发新的方法和技术,如视觉惯性融合、闭环检测和增量式地图更新等。
多机器人协同和冲突避免:在多机器人系统中,机器人之间的协同和冲突避免是一个复杂的问题。在室内环境中,多个机器人共享同一空间,需要避免碰撞并有效地协调任务。解决这个问题需要研究多机器人路径规划和协同算法,以实现安全和高效的多机器人协同。
1.3可行性分析
(1)经济可行性:
成本:研制室内移动机器人需要大量的资金投入,涉及到硬件、软件以及人工成本,例如视觉传感器、SLAM算法、ROS机器人导航技术、框架结构等费用。此外,还要考虑生产制造、销售渠道和服务支持等方面的成本。
市场需求:当前市场对室内移动机器人的需求逐渐增加,可以应用于物流仓储、地图绘制、家庭保洁等领域。但是,在推广和普及过程中,需要花费大量的时间和精力打开市场。
可持续发展:考虑长远利益,在室内移动机器人设备的研究过程中,需要注重可持续发展,例如采用环保材料、低功耗设计等措施。
(2)技术可行性:
视觉SLAM技术:是实现机器人室内定位和导航关键技术,可以室内环境中自主完成定位和导航。但是,其在复杂室内环境中的定位精度和稳定性仍面临挑战。
室内移动机器人自主导航技术:自主导航技术可以为室内机器人提供路径规划和避障等基础功能。该技术需要硬件和软件相结合,并能够实时获取机器人传感器信息,保证机器人导航的有效性。
在室内移动机器人研究方面,除了经济可行性,还应注重技术可行性。当前,由于技术水平、需求及产业因素等问题,室内移动机器人尚未广泛应用,我们需要在不断完善基础设施,推广市场的同时,不断优化技术,提升其应用价值和竞争力。
1.4本文主要研究内容
本文主要研究室内移动机器人自主导航的关键技术,主要包括视觉SLAM(ORB-SLAM2)和移动机器人的自主导航两个大的方面。
首先在第一章绪论部分会对视觉SLAM和移动机器人的国内外发展的现状做一个研究,紧接着提出当前研究存在的问题,并对本文研究的内容可行性的分析。
在第二章中,首先会探讨一些与视觉SLAM相关的基础知识。这些知识包括用于SLAM中描述相机位置和方向的三维刚体运动以及进行位姿优化的李群和李代数。还会介绍一些常见的相机模型,例如针孔相机模型、双目相机模型和RGBD相机模型。此外,还会介绍一些在SLAM中用于求解非线性最小二乘问题的方法,包括高斯-牛顿方法和列文伯格-马夸尔特方法。通过这些知识的介绍,可以对SLAM的基本原理和相关技术有一个清晰的了解。引出基础知识之后着重ORB-SLAM2的跟踪线程,包括特征提取特征匹配和位姿估计等知识,最后简要介绍了ORB-SLAM2后端的回环检测。
在本文的第三章先是对ROS进行了简要的介绍,紧接着在ROS下对ORB-SLAM2进行验证,并和另一主流的视觉SLAM方法VINS-MONO进行对比。接下来,会介绍移动机器人的自主导航技术,其中包括机器人的定位方法和A全局路径规划算法。将会着重探讨机器人如何确定自身在环境中的位置,并展示A算法在全局路径规划中的应用。最后,通过搭建ROS机器人系统来验证A算法的性能,并将其与Dijkstra算法进行比较。通过这一实验,我们可以对A算法在路径规划中的有效性进行评估,并与传统的Dijkstra算法进行对比分析。
第二章ORB-SLAM2原理及框架
2.1视觉SLAM基础
2.1.1刚体运动及其优化
(1)三维刚体运动
视觉 SLAM 中的位姿估计是基于三维刚体运动,三维刚体运动用于描述不同坐标系之间的变换关系。坐标系是相对于某一参考系建立的,通常包括世界坐标系和相机坐标系等多种类型。三维刚体运动描述了一个点在初始坐标系中的位置,并经过旋转、平移等操作后,在新坐标系中的位置发生了哪些改变。因此,通过三维刚体运动学,结合位姿估计算法,可以有效地实现对不同坐标系之间的精确定位。假设世界坐标系为 ,相机坐标系为,我们假设相机是刚体,进而把研究的对象转为三维的刚体运动。这里所指的刚体不仅仅有位置,也就是相机具体处于空间的什么地方,也有具体的姿态,也就是相机的朝向。通过一次三维的旋转可以使得两个坐标系的姿态是一样的,再通过一次平移使得两个坐标系完全重合,此时两个坐标系的位姿是一样的。在用详细的数学语言进行描述之前首先引入向量,空间中的两个点连成按一个方向连成的一条线就是一个向量,他只是空间中存在的东西,并不具有坐标这一说法,只有在引入了坐标系之后才可以谈某个向量在该坐标系下的坐标。
假设三维空间中有一组三维的相互正交的基向量,对于向量有:
则称为在此基下的坐标。假设世界坐标系和相机坐标系的单位正交基分别为和则有:
对式(2-2)两边左乘一个则有:
中间的矩阵称作旋转矩阵,把任意维的旋转矩阵的集合定义为:
在完成旋转的变换之后我们在此基础之上加入平移。假设向量在经过旋转化后加入了平移变换,则有:
式(2-5)中的被称作平移向量,它的作用很简单,就是把一个坐标系平移使得其和另一个坐标系完全重合,从而完成一整个坐标系的变换。但是这种表达方式存在一定的缺陷,经历过旋转和平移之后的变换并不是线性变换。假如进行了两次变换::
根据式(2-6),从到的变换可以写成:
但是这样的描述非常的繁冗,在引入了变换矩阵之后,重写为式(2-8):
式(3-8)中的T 称为变换矩阵,这样通过一个矩阵描述了旋转和平移两个变换。同时这种矩阵又被称为特殊欧式群,即
(2)李群与李代数
视觉SLAM中,李群和李代数是非常重要的数学工具,用于描述相机的位姿变换和其它的变换。
李群和李代数都是数学上的概念,可以用于表示旋转和平移的变换。李群是一个连续的群,它可以被看作是一个由无穷小变换组成的集合。而李代数是一个与李群相关的切向量空间,它可以用来描述李群的无穷小变换。
在视觉SLAM中,相机的位姿变换可以使用李群表示。一般情况下,我们使用特殊欧氏群(Special Euclidean group,SE)来表示相机的位姿变换,因为它包括了旋转和平移两个变换,而且具有良好的代数性质。在三维空间中,SE(3)代表了平移和旋转的变换。
李代数则是用于计算李群的无穷小变换的。在二维空间中,SE(2)的李代数为三维向量,包括平移向量和旋转角度。在三维空间中,SE(3)的李代数是一个六维的向量,包括平移向量和旋转矩阵的无穷小表示。
利用李群和李代数,能够实现在视觉SLAM中的位姿估计、优化和滤波等操作。通过应用李代数,我们能够进行基于李代数的优化算法,以提升相机位姿和地图点位置的准确性。在视觉SLAM领域,这种方法常被用于优化相机位姿和地图点位置,从而获得更加精确的结果。
2.1.2相机模型
(1)单目相机
目前,单目相机模型存在多种形式,其中最常见的是针孔模型。该模型的主要原理是基于小孔成像,将相机视作一个小孔,将三维世界的影像投影到相机平面上,从而得到二维图像。下面将对小孔成像模型进行数学建模,以详细描述其工作原理。
图2-1: 单目相机模型
首先定义两个坐标系:相机坐标系和物理成像平面的坐标系,和。其中相机的光心o可以被视作是针孔模型的小孔。假设有一个三维世界坐标点,其坐标为,当这个点通过相机成像时,它在物理成像平面上对应的坐标为。根据相似三角形原理有:
其中焦距f表示物理成像平面到相机成像平面的距离,由于现实中的三维世界到物理平面的像是倒立的,通常会在比例前加负号来表明这种倒像的关系,但是由于最后相机呈现的相片经过处理后旋转到了正常的角度,并且为了模型建立的方便,把负号去掉,同时把整理到左侧可得:
由于计算机处理图片都是以像素的形式处理,还需要引出像素坐标系,像素坐标系和物理成像平面的关系是缩放和平移的关系。轴定义为原点向右,轴定义为原点向下。假设物理成像到像素坐标在轴上缩放了倍,在轴上缩放了倍,原点偏移了(),则像素坐标为:
将式(2-12)写成矩阵的形式为:
上式中间的矩阵成为相机的内参矩阵K,一般一个相机生产出来之后其内参就已经是确定的,通过各种手段去确定相机的内参矩阵就叫相机内参的标定。相机内参描述的是相机自身固有的参数和属性,与相机内参对应的是相机的外参数,相机外参数表示是世界坐标系到相机坐标系的变换。设点P在世界坐标系下的坐标为,在相机坐标系下的坐标为,则有:
(2)双目相机
由于单目相机无法确定物体的深度信息,在后来的发展中诞生了双目相机和深度相机。双目相机也不可以直接测量物体的深度,但是可以根据左右目来计算三维空间中点的深度。模型如下图所示。
图2-2: 双目相机模型
L为左光圈中心,R为右光圈中心,f为焦距,和为成像平面上像素坐标,根据相似三角形的原理可以得到:
整理(2-14)得到:
d被称作是视差,代表的含义是空间中的点在成像平面上的横坐标之差,视差越大则距离越近,反之越远。
(3)RGB-D深度相机
按照深度相机的测量原理目前可以分为两大类:
(1)结构光型,通过红外结构光测量像素深度,这种相机是采用结构光产生的编码投射到目标物体上,通过相机接收目标物体反射回来的编码图案,进而计算出目标物体在空间中的深度信息。它具有精度高、测量范围大和速度快等特点。例如:Kinect、Intel RealSense等。
(2)TOF型,通过飞行时间测量像素深度,这种相机是采用飞行时间原理,在拍摄目标物体时发射光子,并通过接收器回收反射光信息,计算出物体到相机的距离。它具有精度高、测量范围较大和速度快等优点,但成像质量相对较差。例如:Kinect2和一些TOF传感器等。
2.1.3非线性优化
在视觉SLAM中,往往会遇到优化问题,这些问题可以建模成一个包含高斯噪声的非线性最小二乘问题,解决非线性最小二乘的常用方法有阶梯度法,高斯牛顿法(GN)和列文伯格-马夸尔特法(LM),本章介绍使用最为广泛的GN和LM法。
(1)高斯牛顿法
首先考虑一个最小二乘的问题:
需要注意的是目标函数是而不是,对进行一阶泰勒展开可得:
其中是一个列向量,可以通过求解关于的导数得到,于是可以将问题转化为寻找一个增量,使得最小,将问题转化为线性最小二乘问题的求解:
更多推荐
所有评论(0)