随着科技的发展,多样的移动平台及其控制方法的研究发展迅猛,智能移动平台的自主导航技术成为研究热点。SLAM(SimultaneousLocalizationandMapping,同时定位与地图构建)技术被认为是解决自主导航问题的关键。这个问题可以描述为:机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和已有地图进行自身定位,同时在自身定位的基础上建造增量式地图,从而实现自主定位和导航。这种具有高度智能的末端自主移动平台有广阔的应用前景,如:智能巡检、故障报警、无人驾驶、无源侦察等等。
本文旨在设计实现交互性好的语义智能导盲系统:(1)采用麦克纳姆轮移动平台和PID双闭环控制系统实现一种高效准确的移动方式;(2)利用IMU惯性导航模块和摄像头模块融合感知提供更加精准的位姿信息;(3)打破现有的有源导航方式,动态构建地图、定位和轨迹规划;(4)通过语义系统增强与盲人的交互性。初步试验结果表明,该系统能较好的满足移动平台的高精度、对环境进行感知能力和多环境的适应能力。
1.2立项背景
随着人工智能和机器学习技术的发展,计算机渐渐可以通过图片辨别出物体、人脸、声音、文字等等。那么,我们是不是可以通过摄像头代替盲人的眼睛呢?因此,如何能够让机器人的摄像头代替盲人的眼睛是一个值得研究的问题。其难点在于:在没有先验信息的情况下怎样动态建立地图模型,具有自主运动的能力。
为了能够具有自主运动能力,需要明确三个问题:自己在哪里?这是什么地方?怎么离开这个地方?SLAM是解决前两个问题的关键方法。SLAM是指搭载特定传感器的主体,在没有环境先验信息的情况下,在运动过程中建立环境的模型,同时估计自己的运动。按传感器不同主要分为基于激光雷达的SLAM和基于视觉的SLAM。激光雷达能以很高精度测出机器人周围障碍点的角度和距离,提供机器人本体与周围环境障碍物间的距离信息,是古老并且传统的方式,但是激光雷达的造价昂贵,反馈信息较少。VIO-SLAM(VisualInertialOdometrySLAM,即基于视觉惯性里程计的SLAM)是以摄像头和惯性导航元件作为主要传感器,通过计算机视觉处理手段,在运动过程中建立环境模型并估计运动。相比,VIO-SLAM的传感器摄像头要便宜很多,并且采集的数据是一帧帧图像包含信息很丰富,有利于后期的数据处理和挖掘。因此,本项目将基于VIO-SLAM展开研究。
VIO-SLAM一直是研究热点,利用视觉里程计进行定姿定位,目前主流的视觉传感器有以下三种:单目摄像头(MonocularCamera)、双目摄像头(BinocularCamera)、深度摄像头(RGB-DCamera)。深度摄像头可以直接获得图像及其对应的深度信息,但是成本太高,体积较大,不适用于室内环境。双目摄像头可以通过三角方法计算出深度信息,但是双目摄像头在目标距离较远时就会变成单目摄像头。单目摄像头通过临近图像匹配计算出摄像头位姿的变换,在两个视角上进行三角测距得到对应点的深度信息,通过迭代实现定位及建图。相比而言,单目摄像头具有载荷轻、体积小、灵活等优势,本项目采取单目摄像头方式。
直接建立的地图是杂乱无章的点,若想要机器人可以告诉使用者前方到底是什么,就要采用深度学习的方式认知出物体,并且在地图上标注标签,这个过程称为语义SLAM。这样机器人便可以把物体的具体信息反馈给使用者,相比传统的导盲辅具具有更好的交互性。
综上所述,本项目将要研究一种基于语义VIO-SLAM多传感器融合的动态建模自主导盲平台。
1.3国内外研究现状
接下来,从移动机器人、移动机器人定位方法、移动机器人的地图创建与同步定位技术、基于深度学习的语义分割等几个方面介绍下国内外在该领域的研究现状。
1.3.1移动机器人
所谓移动机器人就是指能够对复杂的环境进行自主的分析、判断和决策,并实现快捷、安全、自由移动的机器人。
从工作环境来分,可分为室内移动机器人和室外移动机器人;
按移动方式来分,可分为轮式移动机器人、步行移动机器人、蠕动机器人、履带式移动机器人、爬行机器人和水下推进式机器人等;
按控制体系结构来分,可分为功能式(水平式)结构机器人、行为式(垂直式)结构机器人和混合式结构机器人;
按功能和用途来分,可分为医疗机器人、军用机器人、助残机器人、清洁机器人和管道检测机器人等;
按作业空间来分,可分为陆地移动机器人、水下机器人、无人飞机和空间机器人。
目前,国内外关于移动机器人的研究主要集中在机构设计理论、控制策略研究、空间定位技术、自主导航等方面。移动机器人的性能从根本上取决于上层决策系统的设计,如何在未知环境中进行定位与导航是亟待解决的关键问题。国内外已涌现出不少综合的决策方法,主要有李群算法、粒子群算法等。
1.3.2移动机器人定位方法
(1)相对定位
广义测距法利用外界传感器扫描机器人导航环境,提取环境特征信息并和环境地图匹配,应用数据融合算法来提高机器人的定位精度。机器人定位过程中,需要利用外界的传感器信息补偿测距法的误差。广泛用于机器人定位的外界传感器有陀螺仪、电磁罗盘、红外传感器、超声波传感器、声纳、激光测距仪、视觉系统等。
目前利用室内环境的自然特征实现机器人的位置估计变得越来越流行。机器人定位研究中,一般利用外界传感器提取导航环境特征,并和环境地图进行匹配以修正测距法的误差。因此利用外界传感器定位机器人时,主要任务在于如何提取导航环境的特征并和环境地图进行匹配。在室内环境中,墙壁、走廊、拐角、门等特征被广泛地用于机器人的定位研究,在机器人的研究领域获得了广泛的应用,包括机器人避障[4]、室内外环境特征提取[5]、地图创建[6]和定位[7]等领域。
(2)绝对定位
绝对定位不利用以前的位置信息,完全根据传感器的观测确定当前位置,也无需知道机器人的初始位置,对于机器人位置丢失后的位置恢复非常有用。绝对定位经常依赖于如下的几种方法:导航信标、主动或被动标识、图形匹配、基于卫星的导航信号(GPS定位)、概率定位等
1.3.3移动机器人SLAM技术
上世纪80年代时的SLAM问题[13]是一个状态估计问题,最早是由Smith,Self和Cheeseman[14]提出来的,当时被称为“空间状态不确定性的估计”。由此开始的三十年,前一阶段的二十年来主要研究了基于概率估计的SLAM,例如扩展卡尔曼滤波、粒子滤波和最大似然估计,这一阶段面临着数据关联稳定性和算法有效性的挑战;之后的十年则是算法的分析,主要包含算法的可观测性、收敛性、一致性问题,滤波算法变得日趋成熟。
基于概率估计的SLAM主要的应用环境、地图表示主要是在二维空间,而在三维空间的扩展有所局限。对于该问题,一方面需要提高移动机器人对环境的感能力,另一方面也需要在现有感知能力限制下,设计更好的SLAM系统,以提高系统的实用性。视觉SLAM[17]最开始使用的外部传感器主要有声纳和激光雷达,具有分辨率高、抗有源干扰能力强等优点,但其工作受到了环境的约束,如GPS信号。由于SLAM主要在未知环境下完成,我们无从获知环境信息,而相机能够获取精准直观的环境信息且成本低、功耗小。随着计算机视觉的广泛应用,利用相机作为外部传感器成为了视觉SLAM研究的主要方向。根据其工作方式的不同,可分为以下三种:单目相机、双目相机、RGB-D相机[18]。
移动机器人通过传感器来感知周围环境,最终建立自己的环境地图。研究者对于地图存在不同需求,构建地图主要是服务于定位,则需要建立与任务要求对应的地图。构建的地图需满足以下三点要求:
地图要能准确描述环境特征;
在有噪声干扰等不确定信息的存在下准确估计机器人的位姿;
地图的构建能够充分展示环境的特征信息,根据不同的任务需求建立相应的地图模型,并保证SLAM的精度。在保证精度的同时,尽量减少地图创建过程中的数据量,来提高SLAM算法的实时性。
常用的一些环境地图的构建方法[19]有2D栅格地图、2D拓扑地图、3D点云地图、3D网格地图,以及近两年刚兴起的八叉树,该方法占用存储空间小且能够实现动态建模,在实时性上优于3D点云地图[20]。
1.3.4基于深度学习的语义分割
在机器视觉领域,随机森林分类与纹理基元森林分类是图像语义分割的传统作法。最初的分割大都基于简单的像素级别的“阈值法”,随着分割技术的不断改进,基于“图划分”的分割法改善效果明显,精度较高,成为经典的传统语义分割方法之一。在深度学习算法被创造性地引入机器视觉领域后,语义分割[21,22]问题有了突破性进展,如全卷积神经网络基于多图学习与块对角约束的全监督语义分割方法、基于模型评估的弱监督语义分割方法等许多基于神经网络训练的语义分割方法相继出现,分割精度不断提高。
全卷积神经网络(FCN)是目前语义分割最常用的网络,也是深度学习在图像语义分割任务上的开创性工作。深度卷积神经网络模型(CNN)是图像级别语义理解的利器,而FCN则是基于CNN实现的像素级别的语义理解,适用于图像语义分割、边缘检测等应用场景。FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的特征图进行上采样,使它恢复到与输入图像相同的尺寸,从而可以对每个像素都产生一个预测,同时保留原始输入图像中的空间信息,最后在上采样的特征图上进行逐像素分类。
1.4项目研究内容及意义
社会老龄化问题更加催生了服务机器人成为研究热点,智能导盲平台为盲人提供生活服务是其中重要方面,其涉及到的关键问题包括价格、安全性和互动性。在价格方面,导盲手杖无疑是最低的,但是在安全性和互动性方面都比较差;在互动性方面,导盲犬较好,但是价格昂贵;于此相比,我们提出的智能导盲平台可以较优的给出解决方案。
在对需求和研究现状分析的基础上,本文给出了一种基于语义VIO-SLAM的多传感器融合得动态建模自主导盲平台设计方案。主要采用单目摄像机和惯导系统IMU相结合的方式,利用单目ORB-SLAM算法实现未知环境中的地图构建与实时定位,利用基于深度神经网络的语义分割算法实现常见场景下地图的语义标注。
1.5参考文献
[1]白井良明.机器人工程.科学出版社.2001.
[2]JensfeltP,KristensenS.Activegloballocalizationforamobilerobotusingmultiplehypothesistracking[J].IEEETransactionsonRoboticsandAutomation,2001,17(5):748-759.
[3]LiBowen,YaoDanya.Low-costMEMSIMUnavigationpositioningmethodforlandvehicle[J].JournalofChineseInertialTechnology,2014,22(6):719-723.
[4]MartinezJL,Pozo-RuzA,PedrazaS,etal.ObjectfollowingandobstacleavoidanceusingalaserscannerintheoutdoormobilerobotAuriga-α.in:Proceedingsofthe1998IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems.Canada.1998.204-209.
[5]RoumeliotisSI,BekeyGA.SEGMENTS:alayered,dual-Kalmanfilteralgorithmforindoorfeatureextraction.in:Proceedingsofthe2000IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems.2000.454-461.
[6]KwonYD,LeeJS.Astochasticmapbuildingmethodformobilerobotusing2-Dlaserrangefinder.AutonomousRobots,1999,7(2):187-200.
[7]ZhangL,GhoshBK.Linesegmentbasedmapbuildingandlocalizationusing2Dlaserrangefinder.in:Proceedingsofthe2000IEEEInternationalConferenceonRoboticsandAutomation.SanFrancisco.April2000.2538-543.
[8]FigueroaJF,MahajanA.Arobustnavigationsystemforautonomousvehiclesusingultrasonics.ControlEngineeringPractice.1994,2(1):49-59.
[9]McGillemC,RappaportT.Infra-redlocationsystemfornavigationofautonomousvehicles.in:Proceedingsofthe1988IEEEInternationalConferenceonRoboticsandAutomation.Philadelphia,PA.1988.1236-1238.
[10]ZhangL,GhoshBK.Linesegmentbasedmapbuildingandlocalizationusing2Dlaserrangefinder.in:Proceedingsofthe2000IEEEInternationalConferenceonRoboticsandAutomation.SanFrancisco.April2000.2538-2543.
[11]哈特利.计算机视觉中的多视图几何[M].安徽大学出版社,2002:158-256.
[12]EndresF,HessJ,SturmJ,etal.3-DmappingwithanRGB-Dcamera[J].IEEETransactionsonRobotics,2014,30(1):177-187.
[13]A.ElfesandH.Moravec,Highresolutionmapsfromwideanglesonar,inProceedingsofthe1985IEEEInternationalConferenceonRoboticsandAutomation,116-121,1985.
[14]Bar-ShalomY,DaumF,HuangJ.Theprobabilisticdataassociationfilter.IEEEControlSystems,2009,29(6):82-100.
[15]LatifY,CadenaC,NeiraJ.RobustloopclosingovertimeforposegraphSLAM.TheInternationalJournalofRoboticsResearch,2013,32(14):1611-1626.
[16]CarloneL,CensiA,DellaertF.Selectinggoodmeasurementsviarelaxation:Aconvexapproachforrobustestimationovergraphs.Proceedingsofthe2014IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems(IROS2014).Chicago,IL,USA.2014.2667-2674.
[17]SünderhaufN,ProtzelP.Towardsarobustback-endforposegraphSLAM.Proceedingsofthe2012IEEEInternationalConferenceonRoboticsandAutomation(ICRA).SaintPaul,MN,USA.2012.1254-1261.
[18]BaileyT,Durrant-WhyteH.Simultaneouslocalizationandmapping(SLAM):PartII.IEEERobotics&AutomationMagazine,2006,13(3):108-117.
[19]BeesonP,ModayilJ,KuipersB.Factoringthemappingproblem:Mobilerobotmap-buildinginthehybridspatialsemantichierarchy.TheInternationalJournalofRoboticsResearch,2010,29(4):428-459.
[20]HornungA,WurmKM,BennewitzM,etal.OctoMap:Anefficientprobabilistic3Dmappingframeworkbasedonoctrees.AutonomousRobots,2013,34(3):189-206.
[21]张珂.图像语义分割算法研究[D].上海:复旦大学,2014.
[22]曹攀,钱军浩,陈智,等.基于图像分层树的图像语义分割方法[J].计算机应用研究,2017.
2.项目方案
其中,在决策系统中,需要深入研究IMU和摄像头两种传感器的数据融合方式,需要考虑环境的适应性,选择占优的模型架构,着重考虑前端特征提取及闭环检测的准确性,基于深度学习方法对图像进行语义分割,将一些已知物体与原本毫无意义的点云地图相融合着重考虑实时性和判断准确性;移动系统设计方面,需要完成对移动平台的建模和受力分析工作,同时考虑到结构的稳定性和不同场景的适应性,需要对平台外形进行合理的布局和优化,保证安全性和美观;在控制系统搭建过程中,需要考虑闭环控制精度,调节PID参数,以保证控制系统的健壮性。通过设计合理的技术路线和研究方案,开发出一个语义交互的智能移动平台。
接下来,分别针对上述三个方面的问题系统展开论述,给出每个部分的具体技术路线。
2.1决策系统设计
(1)SLAM流程
SLAM主要流程分为:传感器信息获取,相机图像信息的读取、传输和预处理,IMU惯性传感器等信息得读取和同步;视觉里程计,估算相邻图像间相机得运动,通过IMU内置的陀螺仪和加速度计可以测量角速度和加速度,融合确定位姿;回环检测,判断机器人是否曾经到达过先前得位置;后端优化,接受不同时刻视觉里程计测量的位姿和回环检测得到得信息,进行优化得到全局一致得轨迹和地图。SLAM流程图如图2所示:
采用单目视觉ORB-SLAM算法进行跟踪、地图构建和闭环控制,该算法设计的具体实施过程如下:
①通过通过张正友棋盘标定法对摄像头的畸变参数进行标定,用标定好的参数对每一帧图像进行畸变修正,然后对图像进行高斯滤波,消除噪声,为特征点提取做准备。
②提取图像的ORB特征点,即采用具有方向信息的多尺度FAST特征点,用32个字节256位比特数的BRIEF作为描述符,即一个特征点用一个256位的0或1表示,这样就构成了256维空间的特征点空间。
③利用词袋技术对特征点空间进行分类,分为M*N层,通过汉明距离就可以把提取的ORB特征点在空间中进行分类。
④前后帧图像中的特征点经过分类就可以在不同的空间位置上进行快速匹配,通过匹配特征点满足的极线约束关系就可以建立前后帧图像几何关系,从而得到相机的实时位姿信息。
⑤对每一帧图像进行上述操作,存储关键点和关键帧,从而构建环境地图信息,对新增加的关键点和关键帧在已建立的地图中搜索匹配实现重定位或者闭环检测。在整个SLAM过程中,通过光束平差法不断对误差进行修正,当检测到闭环时,对整个地图进行优化,从而提高SLAM定位的精度。
(2)语义分割
将一些已知物体与原本毫无意义的点云地图相融合,通过综合上述图像序列的点云和预先计算的目标模型来对地图中所包含的目标进行语义标注。本项目采用CNN进行图像语义分割。
一般来说,CNN的基本结构包含以下几个部分:卷积层,池化层,非线性变换层和全连接层。CNN是一个多层的神经网络,它的每一层都由多个特征图(FeatureMap)组成,而每个特征图中的点代表一个神经元。
①卷积(Convolutions):在每个卷积层中,输入特征图通过与该层的卷积核进行卷积操作得到输出特征图。输入尺度大小为32*32的图像经由6个模板大小为5*5的卷积核卷积之后,得到6个尺度大小为28*28的特征图。该过程可以看作是一种图像滤波,输入特征图中的局部神经元依据卷积模板中的参数进行加权求和,再加上偏置得到输出神经元的数值。相比于全连接网络,卷积神经网络中每个特征图上的神经元共享同一组权值,因而大大减少了网络参数,降低了网络模型的复杂度。
②池化(Pooling):池化层连接在卷积层之后,它的特征图个数与上一层的特征图个数保持一致,并且一一对应。由卷积层输出的6个尺度大小为28*28的特征图,经过2*2大小的池化模板进行降采样,得到6个14*14大小的特征图。降采样的方式一般是选取池化区域内最大的数(最大值池化),或者区域内的平均数(均值池化)。此外,也有随机池化和金字塔池化等方法。池化层通过降采样操作不仅提取了空间不变性特征,达到了二次学习的效果,而且减少神经元数量,降低了网络模型的计算量。
③非线性变换:卷积操作是多项式加权求和的计算方法,属于线性变换。而复杂的分类识别任务往往需要非线性函数拟合,所以卷积神经网络在每个卷积层之后都要加入非线性变换函数,也称激活函数。传统的CNN中所使用的激活函数是饱和非线性函数sigmoid函数和tanh函数。然而,相较于饱和非线性函数,不饱和的非线性函数,如softplus函数和ReLU函数等能够缓解网络训练时梯度消失的问题,加快网络训练速度。本设计中采用ReLU函数作为激活函数。
④全连接(Fullconnection):由池化层输出120维的特征向量,经过84组权值向量进行加权求和,得到84维的输出特征。全连接层通过与前一层所有神经元相连获取图像的全局信息,以此学习出图像中具有类别区分性的特征。在最后一个全连接层之后接入一个分类层,完成对图像的识别。
基于上述设计和实施,开展了部分综合验证试验,如图16-18所示,分别是导航路径规划、地图构建和试验过程的展示。初步的试验结果基本实现了预期目标,可以完成自主建图、导航、路径规划和运动控制。由于所采用的处理器算力有限,在计算和移动速度方面还有一定的局限,下一步的工作将深入进行算法的优化,并完善硬件的设计,
4.研究结论
经研究,采用人工智能技术的导盲平台性能上能够代替现有的导盲手杖、导盲犬等完成导盲任务,能够在保证安全的前提下增强交互性。
深度学习与SLAM的结合在一定程度上改善了视觉里程计和场景识别等由于手工设计特征而带来的应用局限性,同时对高层语义快速准确生成以及机器人知识库构建也产生了重要影响,从而潜在提高了机器人的学习能力和智能化水平。
深度学习方法因其良好的自适应、自学习能力在地图构建、实时定位、语义分割等方面都有很好的应用,但是目前只是在子模块上进行应用,如何将深度学习算法应用到整个SLAM系统仍然值得深入研究。
本研究完成了基于语义VIO-SLAM的多传感器融合得动态建模自主导盲平台设计和初步实施,初步的试验结果证明和所提设计思路的可行性,在平台算力、算法优化和硬件优化设计方面有待进一步深入研究。