【《基于Aruco码的机器人定位系统研究》13000字】_第1页
【《基于Aruco码的机器人定位系统研究》13000字】_第2页
【《基于Aruco码的机器人定位系统研究》13000字】_第3页
【《基于Aruco码的机器人定位系统研究》13000字】_第4页
【《基于Aruco码的机器人定位系统研究》13000字】_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE10 基于Aruco码的机器人定位系统研究目录TOC\o"1-3"\h\u221081.1课题的背景及研究意义 1158461.2 国内外研究现状 299141.2.1视觉识别技术研究现状 299451.2.3基于二维码的定位技术研究现状 4276081.机器人定位和Aruco码 6115722.1机器人定位 6222152.Aruco码的图像处理 13299583.Aruco的检测 161绪论1.1课题的背景及研究意义近几十年以来,关于机器人的各种技术得到了跨越式的发展及应用,诸如自动控制理论的研究、现代控制理论的发展、机器人导航算法的更新、传感器精度大大提高等,都支持了机器人技术的不断迭代更新。机器人凭借自身灵活机动、占用空间小便于携带等优点逐渐成为21世界的研究热点,各种机器人技术也应用到我们生活的方方面面,摄及军事、民用、商用等用途,比如用于精确制导、救灾救援、反恐排爆、农业植保、航空航天等领域。相应的,也催生了的许多高新技术机器人企业,比如美国的3DRobotics,法国的Parrot以及我国的大疆、科沃斯、新松等。同样,机器人的发展也伴随着计算机技术的进步,近年来,计算机视觉、深度学习、图像处理等新名词被提出,相应的,人们也越发关注机器人的目标识别与定位技术,另一方面,随着传统材料被逐渐淘汰,更多的轻型复合材料被用在机器人的制造上,这使得机器人的灵活机动性能得到了很大的提高,能执行更多以前不能执行的任务,同样的,关于机器人其他方面的技术,比如卫星定位技术,电子通信技术以及无线控制技术等,都得到了巨大的发展,致使人们开发更加灵活的机器人定位控制技术以提高机器人的自主性。近十几年的发展过程中,关于机器人的定位问题始终是机器人领域的主要研究方向及研究难点之一,机器人只有准确了解自身在环境中的位置及姿态,才能成功完成路径规划、避障等任务。目前机器人的定位方法主要有2种,第一种是由外部设备想向机器人本体提供环境位置信息,比如用于实验室的运动捕捉系统,但这种系统造价昂贵且抗干扰性弱,所以只能用于特定的场合下,这限制了机器人的应用范围,基于这种前提,用机器视觉来估计机器人位姿情况的技术得到了广泛的关注。目前,市面上大多数产品级机器人的定位控制系统都是通过多颗卫星无死角联合定位的,但由于距离原因,亦或者在室内、高楼间等复杂环境下定位信号往往存在延时性或定位信号缺失从而导致定位精度不高或者定位失败,这样机器人就会变为一个机器,就像人失去视觉一样,不能实现自主控制。然而,在现实情况下,机器人应用的绝大部分场景,例如室内物流仓库、写字楼间传递物品以及发生自然灾害的情况下,都需要机器人自己控制自己,因为人的工作量是有限的,这就像工业机器人在工厂工作时,人只是起到一个监督及排障等作用一样。更甚者,在一些特定的工作状态下,例如国防领域中,我们用无人机进行侦察、干扰、打击等任务时,就需要机器人完全自主控制,因此,提高机器人自主控制的能力,是推动机器人技术进步的关键。本课题建立在没有户外运动捕捉系统、卫星定位系统信号差(诸如室内、隧道、桥洞等环境下)等机器人与目标物难以相对定位的前提下,提出了一种基于Aruco码的机器人定位系统设计方法,从而为机器人精确定位提供了支持。在以前,在人们的认知中,机器人彷佛是一个虚无缥缈的东西,只能在一些科幻电影中看见,但其实人们无比渴望能在现实世界中看到它,本文就是为了解决机器人定位系统造价高昂,发明一种价格低廉且满足机器人控制精度要求的定位与姿态估计系统,具有实际意义和一定的科研意义。1.2 国内外研究现状1.2.1视觉识别技术研究现状视觉识别技术是当下热门的计算机技术的研究方向之一,是人工智能领域在计算机技术领域的一个重要延伸,它通过计算机将真实世界呈现在我们眼前,是当下人们花费巨大人力物力研究的一种高新技术。通过了多年的努力,全世界的科学家们及各国当地的大学或者研究机构在视觉识别技术领域进行了广泛且深入的探索研究,并取得了一系列重大的成果,但许多关键性的问题噩待解决,其中一个最具挑战性的课题莫过于对目标进行识别与定位。目前,在科研及工程领域内,用于计算机视觉技术的目标检测识别定位技术的常用方法如下:基于统计特征的目标识别检测定位这种方法的基本过程是最初经过学习,选取一定量的样本和非样本,然后抽象出它们的特征,最后于图像中的系统特征进行辨识。这种方法的优点是不需要事前建立目标的模型,从而避免了大量的计算及验证过程,并且如果建立的模型不完整的话,会给后面的实验带来误差并不断累积,最终造成结果大大偏离真实值,该法的常见种类有Boost法、支持向量机法、神经网络法等。这种方法也有缺陷,那就是在识别之前,需要选取大量样本,并对它们进行学习训练,这一步通常会花费大量时间。基于模板的目标检测识别定位顾名思义,这种方法要预先定义并设置一些模板,以便在之后的实验中能够根据所设模板的特征,成功匹配目标物,从而确定目标是否存在于所检测图像中,如果图像匹配,能当即得到模板在世界坐标系中的位置坐标。之后结合预测算法,就可以预测目标物在接下来会产生什么运动,也就是在下一帧图像中,目标可能出现在的地方的位置集合,这种方法最大的优点就是让检测的范围尽量小,大大提高效率。(3)基于运动的目标检测识别定位这种方法通过对比一个图像相邻的帧的像素值是否发生变化,且向什么方向变化,这可以作为这个图像的某种特征值,然后分析得出目标的位置及运动状态,目前这种技术应用在众多领域,它的优点有两个,一是精确检测,二是得到在时间维度上目标的所有信息。目前有两种方法运用较成熟,一是差分法,二是光流法。(4)基于特征的目标检测识别定位这种方法同样要先提取目标的所有特征点,然后与待识别物体的所有特征点进行对比分析,以确定目标在图像中的位置情况。现存的算法有很多种,其中较为常见的有SIFT法、SUFT法、FAST法以及Haar法等等,而最后一个方法Haar是目前最成熟且运用最广泛的方法之一,它有许多优点,比如它能够将目标的全部特征都描述出来且描述的十分全面,而且它所需要处理的数据量较其他算法少,这样就使得它的结构十分简单且运算速度很快。它通常结合AdaBoost算法进行实验,然后对所选取样本的Haar特征进行学习训练,然后将结果输出,构成一个集合,用于检测目标。(5)基于区域的目标检测识别定位这种方法将图像的全局信息进行创建并关联起来,再进行分析推断,最后得出相邻图像的对应区域之间的互相联系信息,最后进行目标识别。这种算法有一个明显的缺点,一是计算十分繁琐,从而计算所需要时间很长,简介导致检测成本变高。由于计算十分复杂,就导致了计算的实时性很差,因此此种方法很难单独应用在需要实时处理数据的场合中,在运算中必须结合其他信息因素正常进行。目前,出现了一个新的算法:显著性区域目标检测算法,这是一个以人类视觉原理作为基础的先进检测方法,通过近年来的运用取得了较大的发展,是这几年发展最为迅速的基于区域的目标识别方法之一。1.2.2视觉定位技术研究现状经过了很多年的发展,目前,在计算机、传感器等服务于视觉定位技术的相关技术发展的推动下,机器人定位技术得到了跨越式的飞速发展,并且应用的领域也十分广泛,例如军工技术、医疗科技技术以及航空航天技术等领域。对于机器人,和人需要有最基础的感知能力和视觉一样,需要通过自身安装的各种传感器准确的自主感知到自己位于已知及未知环境的位置及姿态,建立在此基础上,机器人方可实现自主导航。但是,在不同的空间环境中,用于定位的各种传感器的精度会发生一定程度的漂移从而导致定位不准,所以要顺利完成自主定位与导航任务,就需要机器人在不同的环境下应用不同的定位方法。由于移动机器人的应用环境不同,有些环境下需要较高的定位精度,比如物流车间场景,要求机器人的定位精度要达到厘米级别,最严苛的环境诸如排爆等场景时甚至要达到毫米级别。卫星信号在良好的条件下定位精度一般在米级,不符合上述应用场景的要求。而利用惯性导航元件虽然可以测量目标相对位移,但这种元件有个致命的缺点:由惯导元件测量后的数据存在一定程度上的漂移,因此它需要其他传感器配合使用以提高精度,并且它的算法复杂,不利于大规模应用。近几年提出的技术利用激光雷达进行精准测距,完成定位任务,但是需要在环境中布置反光板来为激光雷达提供定位信息,而且激光雷达造价昂贵也不是适合大规模使用。近两年来机器人可以通过电磁、寻迹的方式进行定位,虽然此种方法可以基本满足其定位精度要求,但是在定位前需要提前在环境中布置轨道或路标,而当机器人的任务发生变化时,需要重新布置路径,灵活性很差,成本很高。1.2.3基于二维码的定位技术研究现状近些年,出现了利用色带和条形码、qr码等利用二维码的视觉定位方法,这种方法通常在地面铺设的彩带做引导,在二维码中添加位置信息,机器人通过识别二维码实现定位,但这种方法的缺点是地面上的彩带和二维码容易被人为地污损,且当机器人任务路径发生改变时,需要重新粘贴色带或二维码,这使得机器人的灵活性变差,定位对环境要求变高。另外,这种方法要求摄像头的光轴方向与二维码铺设的平面必须呈垂直关系,而且要求摄像头与二维码铺设平面距离要尽可能地接近,否则机器人将不能很好地识别二维码,这使得这种方法有较大的局限性。在一个以往的专利中公开了一种用单目相机和二维码路标进行室内机器人自主定位的方法,该方法不仅克服了不能有效识别二维码所产生的机器人运动局限性,而且当机器人执行任务的内容发生改变时不需要重新布置路径,但这种方法依然不够灵活,其不足之处在于,需要根据机器人的行驶路径提前布置好二维码,二维码的布局需要严格按照一定的规律,而且必须经过精确地测量才能确定二维码之间的位姿关系;如果用这种方法机器人行进路线必将受二维码布局和二维码信息的制约,机器人行走方式单一,不能完成复杂曲线行驶。而且,此方法使用在二维平面铺设二维码的方式,不能获得机器人的三维空间坐标,只能用于局限的规划平面路径,无法规划无人机等空间中运行的机器人的三维路径,应用场景比较有限。近些年,随着AR/VR技术的飞速发展,人们开发出了各种各样用于视觉检测的标志,这些二维码均能实现目标的快速检测且具有很高的抗干扰性,便用成本也很低。这些二维码被用于增强现实技术,下表1.1为几个常见的增强现实二维码比较。表1.1增强现实二维码比较1.3论文的主要研究内容在进行机器人的定位与导航时,我们通常人为的设置合作标记,这是一种重要的辅助手段,而要实现机器人完成自主定位及导航,最重要的就是要能正确检测并识别出环境中的标记。本文的主要研究内容如下:第一章介绍了了课题的背景和意义,总结了视觉识别技术、视觉定位技术及基于二维码的定位技术的国内外研究现状,并阐述了论文的主要研究内容;第二章研究了机器人定位的技术和方法,并研究了Aruco的组成及编码解码方式;第三章研究了Aruco图像处理的技术背景和图像处理方法;第四章研究了Aruco码的检测过程,研究了相机标定,静态和动态检测过程,并展示了实验结果。机器人定位和Aruco码近年来,基于图像处理的机器人定位方法在普遍应用于我们所熟知的领域,从最初应用于与人类密切相关的民用危险环境领域(例如火灾、地震等自然灾害现场),到如今应用于关乎国家安全的国防安全领域(例如军事作战、武装侦察和防空防御等方面),尤其是没有GPS信号或GPS信号受到干扰不稳定时(例如室内、地下通道和隧道等环境),有巨大的应用前景。当前,视觉导航技术是一种重要的机器人定位导航的方法,早在机器人诞生之初,人们就设想并尝试进行机器人的视觉导航,因为双眼提供的视觉为人类提供了关于周围环境最真实的信息,眼见为实就是这个道理。那么机器人是否实现视觉导航这一点呢?在很久以前机器人诞生之初,计算机的存储能力及运算能力还较差,而图像处理占用的内存很大且要求计算机有较快的运行速度,这就使得处理一块图像需要大量的人力物力,最终导致图像处理没有实时性,机器视觉发展滞后。但随着近十几年来计算机技术得到了跨越式发展,上述问题被一个个解决,计算机图像处理能力及计算速度的大大提高,使得图像处理展现出实时性,慢慢的图像处理被用于各种实时场合,在这种大环境下,关于机器人的视觉定位技术受到了学术界广泛的研究及关注。目前应用机器人视觉定位技术的场合十分之多,例如智能机器人、公共交通的管理、汽车行驶应用和无人机完全自主着降。机器人定位技术的核心要务就是要对标志进行快速且准确的检测与识别,从而精确计算出机器人在自身所处环境中的实际地理位置。机器人在实际环境下定位精度的高低水平主要取决于对标志辨识的准确与否以及是否能准确并实时的识别出各种传感器所反馈的位置信息2.1机器人定位2.1.1机器人定位技术进入21世纪以来,智能技术、传感器技术和计算机技术在不断进步,支撑了机器人技术也在不断进步,智能移动机器人在人类的生产和生活中发挥着越来越关键的作用,现如今关于机器人的定位技术主要涉及以下五个方面:移动机器人的超声导航定位技术超声导航定位技术的原理类似于激光技术和红外技术,由超声波传感器的发射探头发射超声波,在某种介质中进行传播,如果遇到障碍,超声波就会被反射然后由接收装置接收。长期以来,超声波传感器广泛应用于移动机器人导航定位中,它具有诸如分辨率高、采集速度快和造价低能被大范围应用等优点,而且超声波导航定位在没有复杂的图像设备技术支持时也可采集环境信息时,这样就不会产生测量延时,测量得到的数据也就更加真实。同时,在天气条件恶劣、环境光照不足、有障碍物产生阴影、等外部不良条件下,超声导航定位受到的影响较小,因此超声导航定位广泛应用于各种移动机器人传感系统中。移动机器人视觉导航定位技术在视觉导航定位系统研究领域,目前国内导航方法主要是将安装于汽车的车载摄像头安装在机器人上以实现导航定位,这样也就意味着定位所用到的传感器及控制设备等原安装在环境中的设备被安装在机器人本体上,也就是说图像识别和路径规划等高级动作将由机器人控制计算机加以决策实现。这种定位技术的工作原理是机器人对周围环境完成一些简单的光学处理,首先机器人通过摄像机对周围环境进行检测,采集图像信息,然后压缩处理采集到的信息,接着由神经网络和统计方法组成的学习子系统对信息作反馈处理,然后就可以对图像相信和机器人运动初始位置建立某种连接关系,最后完成机器人的自主导航定位功能。全球定位系统技术全球定位系统技术一般采用伪距离差分动态定位方法。通过4颗卫星观测位置信息的变化,反馈给接收机,由计算机进行计算,最后通过某种算法经过推导得到机器人正在任一时刻环境中的三维位置坐标。如果与参考站的实际距离大于1000公里,可以消除卫星钟差和对流层误差。在移动导航中,卫星定位系统GPS的定位精度由许多参考因素,除了信号差、传播道路不通畅等因素,还与时钟误差、传播误差、接收机噪声等诸多因素有关联。由于要参考众多因素,如果我们只用GPS进行导航定位的化,可靠性并不高。因此,我们通常将磁罗盘和GPS相结合进行定位。除此之外,GPS在室内和水下等对定位精度要求很高的复杂情况下也不能得到很好的应用。移动机器人光反射导航定位技术典型光导定位技术以激光反射和红外定位为前提。目前研究出的用激光技术制造的全球定位系统的工作主要由激光旋转、激光反射、光电接收及数据采集四个步骤构成。工作时,激光的发射步骤由旋转装置进行,经过一段时间激光反射,反射的激光被光电接收装置接收,数据采集器读取数据并进行信号处理,处理后的数据将作为码盘的旋转机构角度测量值(靶标),然后与主机建立通信连接,对PC机进行数据处理,将标志值和测量值比较,就能计算出传感器电流在路线图系统中的位置和方向,对目标进行进一步的精准定位导航。SLAM技术目前大多数处于行业领先地位的服务机器人公司采用的主要技术为SLAM技术。在SLAM技术中,只有硅烷技术(SLAMTEC)具有独特的优势。SLAM技术是一种未知环境地图建模技术,就是首先对未知环境进行检测,在模拟器上建立环境地图,为之后的路径规划打下基础。1988年,提出了SLAM实时建图技术,建立环境的实时地图,这类方法主要应用于对地图的定位以及工程方面。对于完全未知的环境,SLAM技术主要通过激光雷达测距的方式建图,为机器人自主导航提供支持。SLAM技术可以概括的描述为:机器人在未知的环境中移动,初始位置不知道的情况下,机器人可以在移动过程中对自己当前的位置进行估计并根据传感器反馈的信息定位位置,建立实时地图。2.1.2机器人定位方法关于机器人的定位方法,麻省理工教授JohnJ.Leonard和原悉尼大学教授HughDurrant-Whyte最初提出了三个问题。第一个问题机器人如何根据已知的信息和观测到的信息确定自己在环境中的实时位置。第二个和第三个问题,可以归结为一个问题:指定一个目标点,如何通过机器人的自主路径规划来到达这个目标点。对一般的移动机器人来说,这个目标是二位空间坐标点,即平面坐标点,我们称之为机器人的定点导航问题。而对于像无人机等在三位空间运动的机器人,定点导航显然不适用,如果想要实现三维空间导航,那么就要求机器人要能到达空间中的所有位置,这和SLAM建图类似。在我们日常生活中由许多地方用到了机器人的三位空间导航技术,比如用于通讯的基站和用于卫星定位的GPS系统,相比之下,机器人的定位环境一般都比较苛刻,大多是室内和室外的复杂环境,比如用于日常生活的扫地机器人和用于反恐排爆的机器人,它们对机器人的定位的精度和速度都很高,因此需要用到别的定位方法。下面就列举了几个。相对定位法航位推算法(Dead-ReckoningMethod)应用于无人机定位的相对定位法,它是最经典也是运用最广泛的相对定位法。就和我们现在看到的飞机一样,上面装备了大量的精密传感器,它们的作用是对机器人的实时运动状态进行监测,防止定位偏离或失败。通过递推累计公式,还能计算出机器人的初始位置。航算法用到的传感器一般有:码盘、惯性传感器(如陀螺仪、加速度计等)。码盘是一种安装在车轮上的光电传感器,用来计算车轮的转数,进而得出机器人相对上一时刻的位置及姿态变化量,这些量经过累积就可以对机器人的下一步动作进行估计,推理出下一位置坐标。由于码盘价格便宜且安装简单,用码盘进行定位操作简单,步骤少,所以能进行快速定位,但用码盘进行定位容易受到环境的影响,如果车轮产生位移,亦或者由于道路原因产生干扰,码盘的定位精度将大打折扣,最终导致定位失败。常用的惯性传感器有用于测量角加速度的陀螺仪和用于测量线加速度的加速度计。将测得的角加速度和线加速度进行拟合,积分得出机器人的位姿信息。一般情况下,用惯性传感器的定位精度比用码盘的高,但惯性传感器定位也易环境影响,影响因素有:陀螺仪产生漂移、标定有误差等。无论是码盘定位还是惯性传感器定位,它们都存在一个共同的缺点,那就是累积误差:随着时间、距离的不断增加,误差也会随之增大。因此相对定位法不适用于长时间、长距离的精确定位。绝对定位法机器人在进行绝对定位时,要在环境中选取一个参照物,这个参照物是恒定不变的且它的参照信息是要易获取的。然后将自己与参照信息进行对比分析,建立某种联系,解算自己的位姿信息。基于信标的定位原先信标主要指用于航空或航海的无线电波。在机器人定位领域,信标主要指可以被识别和检测出的带有明显特征的标志,机器人在定位时可以通过这种标志算出机器人本体与标志的相对位置,进而带入标志位置坐标,解算出机器人的绝对坐标实现定位。用于定位的标志有以下三个特征:①信标的位置固定且信标的绝对坐标已知;②信标具有主被动特征,易于辨识;③信标位置便于从各方向观测。信标定位的方法主要是三边测量和三角测量。三边指机器人与信标之间的距离,三边测量定位系统至少需要3个安装在机器人身上的发射器或接收器且它们的位置必须是已知的。三角指机器人与信标之间的角度,也需要3个发射器或接收器进行辅助。环境中已知信标的特征是信标定位的基础,通过安装在机器人身上的传感器进行观测。用于观测的传感器有许多种类,比如激光雷达、超声波传感器和视觉传感器,这些传感器优点众多,比如定位精度高、定位实时性好、鲁棒性高及没有累计误差等。目前基于信标的机器人已经具备成熟的技术,但由于造价高昂,只适合对定位精度要求较高的场合。基于视觉的定位科学研究统计表明,人类从外界获得信息量约有75%来自视觉,与人一样,机器人探测周围环境最直接的方式就是通过视觉探测。近年来热门的研究领域,比如模式识别和机器视觉,都属于视觉定位领域。视觉定位主要有单目视觉和双目视觉两种。单目视觉用于二维定位,只能探测平面信息,如果要获取环境的深度信息,只能通过移动改变位姿进行不同方向不同角度的测量,适用于执行简单的定位任务,比如通过目标的几何形状,取3个以上特征点进行目标位置信息获取,但单目视觉的定位精度不高。双目立体视觉三维测量是基于视差原理的。双目视觉利用两个相机,如果一个相机像面上的任意一点都能在另一个相机上找到相对应的点,即可得出该点的三位信息坐标。环境地图模型匹配定位环境地图模型匹配定位通过机器人上安装的各种传感器对周围环境信息探测并进行局部地图构建,在其内部通常由完整的地图,将构建的局部地图与完整地图进行比对,即可得出自己的环境位置。由于要事先建立完整的地图,对于复杂的环境,该方法就不太适用了。2.2Aruco码2.2.1Aruco码组成ArUco标记最初由RafaelMuioz和SergioGarrido共同提出并实现的,它是一种二进制标记码,主要作用是增强现实。标准的二进制基准Aruco码标记可以准确估计环境中摄像头的具体位置。由于内部构造较为简单,所以在进行Aruco码检测时能很简单并高校的被识别出,并且它对环境的抗干扰性很强。为了实现机器人的精确定位,关键就是要找到真实世界和成像投影间相对应的点,最容易也是最简单的方法就是采用基本的标记,aruco码标记就是当前最流行及简便的标记之一。它的id可以由内部的二进制编码进行验证,如果错误,它可以及时检测到并进行矫正。机器人实现自主定位导航需要一个外部载体,而一个优良的合作标记应具有下列特征:(1)标记本身应具有明显的特征且包含丰富的特征信息以便于之后的位置和姿态估计工作;(2)标记本身的形状及颜色等特征要与周围环境有明显差别,以便于被更容易的检测识别出来:(3)不受周围环境的影响,以便于能够被应用于大多数场合;(4〉标记内所包含的信息易于被检测装置提取,以便于计算机能够及时的、实时的处理提取到的信息,从而满足系统实时性的要求。外部的黑色边框有利于检测装置对标记图像的快速检测,内部的二进制编码矩阵则允许它的识别和检测,满足了一个优良的合作标记的各种技术指标。ArUco是一个被用于增强现实技术的库,它其中包含了许多预定义的不同尺寸的标识。每个ArUco标记内部都有一个唯一固定的内部矩阵,由二进制编码组成。这样的结构使识别装置对它的识别速度加快,增强了编码的可靠性、保密性,减少了被错误检测的几率。图2.1Aruco码的组成2.2.2标记解码每一个Aruco码都有一个内部编码,比如一个7×7的Aruco码,它的本体被分为7×7的网络,除了外部的一周是它的黑色边框,它的id信息包含在内部的5×5网络中。受到计算机二进制语言的启发,我们发现该码也只有两种状态:黑和白,对应的我们将黑色表示为0,白色表示为1。通过这样的信息分割,在经过数组的排列组合,Aruco码的内部就存在5个标记序列,每个序列有5位数字组成。海明码是一种内部包含用于验证信息传输的数据的代码。一个标准的海明码有8位,包含4个数据位(D1-D4)、3个奇偶校验位(用于控制)和最后1位检查位。如图2.2所示。Aruco码的编码方式与海明码相似,3位数字用于校验,2位数字用于数据存储。图2.2海明码与海明码不同,本文采用的Aruco码中将编码的位数由8位减少为5位,奇偶校验位不变,仍然是3位,数据位由4位减少为2位,其中将偶数列作为数据列,如图2.3所示。这种编码方式产生了1024种组合,如图2.4所示。图2.3Aruco编码图2.4Aruco编码形式的标记标记解码的流程如下:(1)检查轮廓的完整性。如果Aruco码有完整的四边形轮廓,那么进行切割,先将一个完整的Aruco码平均分为7×7个小方格。然后检测每个小方格的像素值,如果小方格中非零像素小于方格中像素,则判定该方格为黑色格,反之则为白色。最后检测外围一圈的所有方格,如果所有方格都是黑色的,那么判定此轮廓是完整的。(2)识别编码区域。经过轮廓检查,将方格分为黑白两类,在黑白方格中分别写入0或1进行编码。搭载在机器人上的摄像头在拍摄时受环境影响会产生旋转变化,由于有4个旋转方向,就要分析4种不同的情况,因此对标记区域进行4次编码解码,然后在4个结果中选出1一个真实值。(3)通过海明距离,确定旋转角度。统计所有处于旋转状态之下的标记,计算它们的海明距离。和第二步类似,每个标记都对应着4种海明编码方式,经过计算之后,会产生四个不同的海明距离。在4个结果中0的个数大于等于1,则计算这个旋转后的矩阵来表示ID。过程如图2.5所示。图2.5Aruco解码Aruco码的图像处理第二部分介绍了Aruco码的编码方式以及如果进行解码,第三部分主要介绍Aruco码的图像处理,在这之前,先介绍用于Aruco码图像处理的工具。3.1Aruco码图像处理的背景技术3.1.1PythonPython是一种广泛使用的解释型、高级和通用的编程语言。1991年,荷兰数学与计算机科学研究学会的GuidovanRossum创造并发布了第一版Python语言。Python语言使用中缀表达式,是LISP语言的一种,同时承继了ABC语言。Python进行面对对象编程时十分简单和高效,并提供了许多高级的数据结构,并且这些结构运用起来十分高效。目前Python语言已经成为快速开发语言的代表,这是因为它解释型语言的本质易于被理解掌握且Python版本的更新速度不断加快,并且每次伴随更新,新的功能就会被不断添加进来,也正以为如此,Python逐渐被用于独立的、大型项目的开发。Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库,提供了适用于各个主要系统平台的源码或机器码。3.1.2OpenCVOpenCV是一个开源计算机视觉与机器学习软件库,可以在各种系统上运行。它由一系列c函数和少量C++类构成,呈现出轻量且高效的特性,同时其他编程语言也可应用在OpenCv上,OpenCv多用于图像处理算法和计算机视觉技术。OpenCV主要由C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、JavaandMATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。所有新的开发和算法都是用C++接口。OpenCV于1999年由Intel建立,如今由WillowGarage提供支持。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括500多个C函数的跨平台的中、高层API。它不依赖于其它的外部库——尽管也可以使用某些外部库。OpenCV为IntelRIntegratedPerformancePrimitives(IPP)提供了透明接口。这意味着如果有为特定处理器优化的IPP库,OpenCV将在运行时自动加载这些库。3.2图像处理算法3.2.1图像灰度化彩色图像中的每一个像素点都是由RGB(红绿蓝)三通道组成,每一种通道都有0-255共256种值可取,因此一个像素点就可能会有1600多万种变化。图像灰度处理就是将图像RGB三个通道的值变成一样,使得图像中的每一个像素点只有256种变化方式,进而减少计算量。由于本次采用的Aruco码是由黑白块组成的,这就使得更容易灰度处理这些图像,获得所需的目标信息。图像灰度化处理中用到最多的方法时加权平均法,将RGB图像的3个通道的值分别与一定的权值相乘并累加。经过灰度处理后图像保留下了大部分原图的特征信息,不会改变图像包含的信息,色度和亮度分等级仍很鲜明,不会影响到接下来的图像处理。按照下式就能得到加权平均后的灰度图像Gray(x,y)。3.2.2图像阈值化 图像阈值化是指把经过灰度处理后的图像根据算法的规则将RGB通道的值变为仅有黑色(0)、白色(255)两种值的图像,通过这样转变,我们能更加容易的捕获目标,不同的阈值选取能直接对图像取黑还是白产生巨大的影响。阈值选择方法的可以分为以下几种(1)全局固定阈值二值化 这种方法采用一个固定的阈值来对图像进行二值化,这种方法在二值化时稳定性高,能排除掉部分干扰。通过现场视频画面提前经过不断的调试得出一个最优的阈值,可以提高入侵目标二值化的精度,使得目标更容易被分辨出来。这种方法虽然适应环境的变化能力较弱,但在一些室内场地,光线变化不大的场景下,通过现场调试得出最优阈值后,二值化的效果非常好。 (2)局部自适应阈值二值化 局部自适应阈值二值化指定一个像素点周围的一定范围,检测该范围内的像素值,然后确定这个像素点的二值化阈值。这样做可以根据周围的环境的明亮程度来自动选择适应的阈值。二值化阈值在亮度高的区域相对高,在亮度低的地方相对低。这种方法能够自适应环境进行二值化处理,避免了不同的场景都要重复进行调试,但因此精度会有缩减。设原始图像的灰度为Ⅰ,通过合适方法选取一个阈值T将图像进行分割,分割后的图像为:(3.2)I(i,j)表示分割前图像(i,j)处的灰度Aruco的检测4.1摄像头标定4.1.1摄像头模型摄像头成像使用小孔成像模型,如图4.1所示;图4.1小孔成像模型采用张氏标定法,对摄像头进行标定,确定摄像头的内参矩阵K,标定过程如图2.2所示。图4.2摄像头标定示意图4.1.2畸变矫正相机的成像模型有线性成像模型和非线性成像模型两种。线性成像模型是理想状态下的成像模型,它不考虑镜头制造和安装过程中引入的畸变,根据针孔成像原理而成。在相机镜头生产过程中,由于制造水平和安装工艺有限,会使镜头发生一定的畸变,因此理想的线性成像模型并不存在,实际的相机在成像过程中都云反生一足的畸变,径向畸变和切向畸变是成像过程中最常见的两种畸变类型。企问畸受云便图像像素点沿着半径方向发生移动,切向畸变会使图像像素点沿着垂直于半径的方向发生移动,径向畸变和切向畸变会对像素点位置产生影响。径向畸变存在的主要原因是由于镜头径向曲率的不规则变化。它会使图像发生扭曲变形,在离中心点距离越大的地方变形量也越大。在正方向上的变形会导致图像发生枕形畸变,负方向上的变形会导致图像发生桶形畸变。切向畸变一般是由于镜头的几何中心和光学中心不一致造成的。在发生畸变变形以后,图像的像素坐标发生了变化,偏离了它本来的位置。可以通过对相机进行标定,将相机畸变系数求解出来,然后利用畸变系数对图像进行校正,得到理想的没有变形的图像。矫正前矫正后图4.3矫正前后对比图4.2Aruco码检测4.2.1静态检测ArUco的检测步骤如下:步骤1:检测标记,检测过程如图2.3所示,包括:步骤1.1:搜索图像中所有的待选标记,利用自适应性阈值法来将标记进行分割,然后从阈值化的图像中提取出外形轮廓,并且舍弃掉非凸多边形和不是方形的轮廓,接着使用一些额外的滤波来剔除过小或过大的轮廓以及过于相近的凸多边形等。步骤1.2:对比分析待筛选标记的内部编码来认定它们是否确实是标记,包括:步骤1.2.1:对图像进行透视变换处理,来得到其规范形态图(正视图)。步骤1.2.2:对规范化的图像用最大类间差法(Otsu法)进行阈值化处理以分离黑色和白色位,然后提取出每个标记的标记位,最后分析出标记的编号。步骤2:先进行角点处亚像素级细化处理,再根据小孔成像模型,利用ArUco码标记了的4个角点的像素坐标,通过solvePnP函数处理即可求解出摄像机的旋转矩阵R′和平移矩阵T。图4.5标记检测过程流程图在环境中图像检测Aruco标记,环境中有7个标记静态检测分为以下8个步骤;1.导入所需库importnumpyasnpimporttimeimportcv2importcv2.arucoasaruco读取图片frame=cv2.imread('1.jpg')3.灰度化处理gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)4.设置预定义的字典aruco_dict=aruco.Dictionary_get(aruco.DICT_6X6_250)5.使用默认值初始化检测器参数parameters=aruco.DetectorParameters_create()6.使用aruco.detectMarkers()函数可以检测到marker,返回ID和标志板的4个角点坐标corners,ids,rejectedImgPoints=aruco.detectMarkers(gray,aruco_dict,parameters=parameters)7.画出标志位置aruco.drawDetectedMarkers(frame,corners,ids)8.返回cv2.imshow("frame",frame)cv2.waitKey(0)静态检测效果演示:检测前检测后图4.5静态检测效果图4.2.2动态检测进行Aruco码的动态检测,通过安装在机器人上的传感器可以实现机器人的实时位姿估计,进而机器人能确定自己在环境中的位置,实现机器人的定位。动态检测效果演示:图4.5动态检测效果图总结随着科技的发展与进步,机器人出现在我们生活的方方面面,对机器人的定位研究也上升到了一个新的层面,与此同时,计算机技术的发展带动了视觉定位技术的发展,为机器人实现自主控制提供了技术支持,但之前研究出用于定位的设备或技术都需要大量的资金支持,对此研究人员就想出研究一种简单快捷、低成本且易于操作的机器人定位方法,二维码的发明为他们提供了灵感,二维码在我们周围随处可见,并且印刷一个二维码和购买一个传感器的成本相比几乎可以忽略不计,且二维码对各种影响定位的因素由很强的鲁棒性,二维码技术也十分成熟。本文对基于Aruco码的定位系统进行了系统设计,研究的内容包括机器人定位、Aruco码的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论