掌桥专利:专业的专利平台
掌桥专利
首页

自动导引车以及自动导引车控制方法

文献发布时间:2023-06-19 11:39:06


自动导引车以及自动导引车控制方法

技术领域

本申请涉及仓储物流技术领域,尤其涉及一种自动导引车以及自动导引车控制方法。

背景技术

目前,诸如自动导引车(Automated Guided Vehicle,AGV)等自动化搬运设备已经广泛应用于仓储、物流等领域,用于实现对货物的自动化运输。

在现有技术中,主流的AGV导航解决方案之一是,AGV通过设置在车身上的摄像头,识别在仓库地面上设置的数字对象唯一标识符(Digital Object Unique Identifier,DOI),进行导航定位,由于常用的DOI为二维码因此这种方法通常称为二维码导航。

但是,由于仓库环境较为复杂,可能出现AGV在应该采集到二维码的位置,未能识别出二维码,也就是通称的丢码。丢码的情况较为复杂,有可能是由于二维码损坏导致的,或者也可能是由于AGV移动出现偏差导致的。一般地,在丢码时AGV可按照最近一次确定出的位置信息,继续导航寻找下一个二维码。但是若AGV出现连续丢码的情况时,AGV仅依靠自身已经无法进行定位以及导航。在现有技术中,此时只能由工作人员将AGV移动至任一二维码上,使该AGV重新定位。

发明内容

本说明书实施例提供的自动导引车以及自动导引车控制方法,用于部分解决现有技术中当AGV连续丢码后,难以依靠自身重新获取DOI的问题。

本说明书实施例采用下述技术方案:

本说明书提供的自动导引车,所述自动导引车包括:处理器、图像传感器以及行动机构,所述处理器包括:标识识别模块、指令生成模块以及图像定位模块,其中:

所述标识识别模块,设置为识别所述图像传感器采集的图像中的定位标识;

所述指令生成模块,设置为根据预设的空间填充曲线生成第一行动指令,并发送至所述行动机构,以及生成采集指令发送至所述图像传感器;

所述处理器,当通过所述标识识别模块确定未在指定位置采集到定位标识时,通过所述指令生成模块生成第一行动指令并发送至所述行动机构,以及通过所述指令生成模块生成采集指令发送至所述图像传感器;

所述行动机构设置为接收所述第一行动指令或第二行动指令,并根据接收到的第一行动指令移动,或根据接收到的第二行动指令移动;

所述图像传感器设置为接收所述采集指令,并根据接收到的采集指令,在所述行动机构移动时,连续采集所述自动导引车所在位置的地面图像,并依次发送至所述处理器的图像定位模块;

所述图像定位模块,设置为根据接收所述图像传感器采集的各地面图像,确定所述自动导引车的位置变化;

所述指令生成模块,还设置为根据所述自动导引车的位置变化以及所述预设的空间填充曲线,生成第二行动指令;

所述处理器,当所述图像定位模块接收所述图像传感器发送的各地面图像时,通过所述图像定位模块确定所述自动导引车的位置变化,并通过所述指令生产模块,根据所述位置变化以及所述预设的空间填充曲线,生成第二行动指令,并将生成的第二行动指令发送至所述行动机构,直至通过所述标识识别模块从所述图像传感器采集的地面图像中识别出定位标识为止。

可选地,所述处理器,当通过所述标识识别模块未在指定位置采集到定位标识时,通过所述图像定位模块将所述自动导引车当前所在位置确定为第一坐标系的原点,并根据所述自动导引车的朝向确定所述第一坐标系的方向。

可选地,所述图像传感器设置在所述自动导引车的底部,所述图像传感器采集的地面图像的中心与所述自动导引车的中心重叠;

所述处理器,通过所述图像定位模块根据未在指定位置采集到定位标识后,接收到的第一张地面图像确定第二坐标系的原点以及方向,所述第二坐标系为所述图像传感器采集的地面图像对应的坐标系。

可选地,所述处理器,通过所述图像定位模块根据连续两帧地面图像之间的差异,确定后一帧地面图像相对于前一帧地面图像在所述第二坐标系上的坐标偏移量,以及角度偏移量;

通过所述图像定位模块根据确定出的第二坐标系上的坐标偏移量,通过坐标系转换,在所述第一坐标系中确定所述自动导引车的位置变化,以及根据所述角度偏移量确定所述自动导引车的朝向。

本说明书提供的自动导引车控制方法,包括:

当确定未在指定位置采集到定位标识时,根据预设的空间填充曲线生成第一行动指令以及采集指令;

根据生成的第一行动指令控制所述自动导引车移动,并根据生成的采集指令连续采集所述自动导引车所在位置的地面图像;

根据采集到的各地面图像,确定所述自动导引车的位置变化;

根据确定出的所述自动导引车的位置变化以及所述预设的空间填充曲线,生成所述自动导引车的第二行动指令,根据生成的第二行动指令继续控制所述自动导引车移动,直至从采集的地面图像中识别出定位标识为止。

可选地,根据生成的行动指令控制所述自动导引车移动之前,所述方法还包括:

将所述自动导引车当前所在位置确定为第一坐标系的原点,并根据所述自动导引车的朝向确定所述第一坐标系的方向。

可选地,根据采集到的各地面图像,确定所述自动导引车的位置变化,具体包括:

根据未在指定位置采集到定位标识后,接收到的第一张地面图像确定第二坐标系的原点以及方向,所述第二坐标系为所述图像传感器采集的地面图像对应的坐标系;

根据各地面图像在第二坐标系中的位置变化,确定所述自动导引车在所述第一坐标系中的位置变化;

其中,采集的地面图像的中心与所述自动导引车的中心重叠。

可选地,根据各地面图像在第二坐标系中的位置变化,确定所述自动导引车在所述第一坐标系中的位置变化,具体包括:

针对每个地面图像,根据该地面图像以及与该地面图像连续的上一帧地面图像之间的差异,确定该地面图像相对于上一帧地面图像在所述第二坐标系上的坐标偏移量,以及角度偏移量;

根据确定出的第二坐标系上的坐标偏移量,通过坐标系转换,在所述第一坐标系中确定所述自动导引车的位置变化,以及根据所述角度偏移量确定所述自动导引车的朝向。

可选地,根据确定出的所述自动导引车的位置变化以及所述预设的空间填充曲线,生成所述自动导引车的第二行动指令,具体包括:

根据所述自动导引车的位置变化,确定所述自动导引车的路径;

确定所述自动导引车路径与所述预设的空间填充曲线对应路径的偏差;

根据确定出的偏差,生成所述自动导引车的第二行动指令。

本说明书提供的计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的控制方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

当AGV未能够在指定位置采集到定位标识时,可根据预设的空间填充曲线,生成第一行动指令以及采集指令,使AGV按照第一行动指令移动,并按照采集指令连续采集AGV所在位置的图像,然后通过采集的各图像,确定该AGV的位置变化,最后根据确定出的该AGV的位置变化以及该预设的空间填充曲线,确定第二行动指令,并继续控制该AGV移动,直至识别出定位标识为止。并且,由于丢码后AGV已经不能确定自身的位置,因此可在AGV移动时连续采集AGV所在位置的图像,根据采集各图像确定AGV的位置变化,根据AGV的位置变化控制该AGV沿空间填充曲线移动。通过该控制过程AGV在丢码后,可自行寻找定位标识,避免了人工干预,节约了人工成本,提高了AGV在进行二维码导航时的容错率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1a以及图1b为本说明书实施例提供的自动导引车的结构示意图;

图2a为本说明书实施例提供的第一坐标系示意图;

图2b为本说明书实施例提供的第一坐标系中自动导引车位置变化示意图;

图3为本说明书实施例提供的第二坐标系的示意图;

图4为本说明书实施例提供的自动导引车控制方法的流程示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1a为本说明书提供一种自动导引车(Automated Guided Vehicle,AGV),该AGV包括:处理器100、图像传感器102以及行动机构104,该处理器100分别与图相传感器102和行动机构104连接。该处理器100可接收图相传感器102采集的图像,以及向该行动机构104发送第一或第二行动指令,向该图相传感器102发送采集指令。该图像传感器102位于该AGV的下表面,用于采集AGV所在位置地面图像。

为方便描述,在本说明书中以定位标识为二维码进行后续说明,当然在本说明书中定位标识还可以是其他形式的标识,本说明书对此不做限制。

在本说明书中,该AGV的处理器100在进行二维码导航时,可根据导航路径上需要经过的各二维码所在的位置,以及导航路径上各二维码的相对位置关系,从导航路径上起始点的二维码开始,向该行动机构104发送导航行动指令,控制行动机构104依次行驶至导航路径上各二维码到达目的地。

其中,由于在导航路径上两个二维码之间处理器100通常只能依靠惯性导航确定自身位置,或者依靠行动机构104移动的精度确定自身位置,而这两种方式确定出的位置通常都会存在误差。因此,处理器100为了矫正这种误差,可在行动机构104移动时控制图像传感器102采集地面图像,并将采集的各地面图像传输给处理器100,当AGV到达二维码所在的位置时,该处理器100根据该图像传感器102采集的地面图像,识别地面图像中的二维码确定AGV的位置信息。其中,该导航路径上每个二维码所在位置即本说明书中所述的指定位置。

图像传感器102根据采集指令,采集地面图像并返回处理器100,当地面图像中包含二维码时,处理器100通过获取包含二维码的地面图像,根据二维码中包含的位置信息以及地面图像中二维码朝向,矫正自身当前所在位置以及朝向。以继续向行动机构104发送导航行动指令,继续向导航路径上下一个二维码所在位置移动。

由于通常AGV在进行二维码导航时,在两个二维码之间移动后产生的位置误差不会很大,因此一般情况下处理器100可根据采集的地面图像矫正位置和朝向。但是,当二维码污损或者由于意外情况AGV移动后的路线偏移较大时,该图像传感器102采集的地面图像可能就不再包含二维码了,使得该处理器100无法根据图像传感器102采集的地面进行位置和朝向的矫正。

处理器100可在每次识别出二维码后,生成导航行动指令发送给行动机构104以控制行动机构104移动,并且处理器100还可确定该行动机构104根据该导航行动指令移动的距离,当该行动机构104移动的距离超过预设的距离阈值,且处理器100未能从图像传感器102采集的地面图像中识别出二维码时,处理器100可确定丢码。或者,处理器100当该行动机构104移动的时间超过预设的时间阈值,且未能从图像传感器102采集的地面图像中识别出二维码时确定丢码。也就是说,处理器100在图像传感器102采集的各地面图像中,本应识别出至少一个二维码,但是却未能识别出任一二维码时,可确定该AGV未能在指定位置识别出二维码,说明出现丢码的情况。

目前,在出现丢码情况时,由于处理器100无法确定时由于何种原因导致的无法识别出二维码,如可能是由于二维码污损所以无法识别出,而实际上AGV的移动路线偏移尚不大,因此处理器100可继续确定导航行动指令以控制行动机构104继续移动。在大多数情况下丢码情况只是暂时的,AGV可行驶到导航路径上后续的而其他二维码所在的位置,而重新确定自身所在位置,并继续导航。

但是,若实际上是由于其他意外情况AGV的移动路径实际出现了偏移,则处理器100可能连续在多个“应该”出现二维码的位置,均未能识别出二维码,也就是出现连续丢码的情况,该处理器100可确定无法继续导航,需要先寻找到二维码确定自身位置。也就是本说明书中所述的该处理器100,当未在指定位置采集到定位标识(如,二维码)时,可根据预设的空间填充曲线确定当前时刻的第一行动指令发送至行动机构104,以及向图像传感器102发送采集指令,以寻找AGV附近的二维码进行定位。

具体的,在本说明书中,处理器100可确定出现丢码或者连续丢码时,确定未在指定位置采集到二维码。其中,处理器100是只要确定丢码就开始寻找二维码,还是在连续出现预设数量的丢码后再寻找二维码,可以根据需要设置。并且,预设数量可根据需要设置。

在本说明书中,该处理器100具体可包括以:标识识别模块300、指令生成模块302以及图像定位模块304,如图1b所示。

其中,该标识识别模块300,设置为识别所述图像传感器采集的图像中的定位标识。该指令生成模块302,设置为当通过该标识识别模块300确定未在指定位置采集到定位标识时,根据预设的空间填充曲线生成第一行动指令,并发送至所述行动机构104,以及生成采集指令发送至所述图像传感器102。该图像定位模块,设置为根据接收所述图像传感器采集的各地面图像,确定所述自动导引车的位置变化。

当该标识识别模块300确定未在指定位置采集到二维码时,可确定已经无法定位该AGV所在位置,需要在该AGV周边区域寻找二维码,以重新确定AGV所在位置。其中,需要寻找的区域大小,可以根据需要设置,也就是指令生成模块302确定预设的需要遍历的空间大小。

例如,需要遍历的空间大小,可基于AGV在二维码导航时可能出现的路线偏移量确定。假设确定AGV在90%的情况下连续丢失3个二维码后,距离最近的二维码的位置为5m,则可确定遍历10m×10m的空间后,有90%的概率处理器100可重新识别出二维码。或者,仓库中二维码之间的间距为3m,则可设置需要遍历6m×6m的空间,等等。

进一步地,为了使该AGV可遍历需要寻找的区域,该指令生成模块302可设置为根据预设的空间填充曲线,确定寻找二维码时行动机构104需要移动的路径。该指令生成模块302具体可设置为根据预设的需要遍历的空间大小,以及预设的该空间填充曲线,确定空间填充曲线对应的路径。其中,选择哪种该空间填充曲线,具体可根据需要设置,例如,希尔伯特曲线(Hilbert Curve)、平面螺旋曲线(spiral Curve)、row-prime等。

需要说明的是,当该图像传感器102是固定设置,例如,位于该AGV的底面,采集该AGV所在地面图像,则该图像传感器102每次采集到的地面图像是存在视野范围限制的。由于视野范围的限制,因此为了避免图像传感器102采集的图像出现遗漏,在本说明书中该指令生成模块302在确定空间填充曲线对应的路径时,还需要根据该图像传感器102的视野范围确定路径之间的距离。使得该行动机构104在按照该指令生成模块302确定的空间填充曲线对应的路径移动后,该图像传感器102采集的地面图像可覆盖该空间的所有地面。例如,假设图像传感器横向的视野范围为1m,则空间填充曲线对应的路径中,相邻的路径之间的最大间距不得大于1m。

该指令生成模块302可设置为根据确定出的寻找二维码时行动机构104需要移动的路径,生成当前时刻向该行动机构104发送的第一行动指令,并发送至该行动机构104,该第一行动指令可为使行动机构104沿该路径移动的指令。

同时,由于当前处理器100已经无法确定该AGV的位置,因此需要用其他方式确定该行动机构104移动时该AGV的位置变化,以控制该行动机构104沿确定出的路径移动。于是,该指令生成模块302可设置为生成向该图像传感器102发送的采集指令,并发送至该图像传感器102,该采集指令用于控制该图像传感器102在该行动机构104移动时连续采集地面图像。使得该图像定位模块304后续可根据该行动机构104移动时,该图像传感器102采集到的连续地面图像,确定AGV的位置变化。

在本说明书中,该行动机构104设置为接收第一行动指令,并在接收到第一行动指令后,根据第一行动指令移动。

在本说明书中,该图像传感器102设置为接收采集指令,并在接收到采集指令后,根据该采集指令在该行动机构104移动时,连续采集该AGV所在位置的地面图像,并依次返回该图像定位模块304。其中,连续采集地面图像的帧率可根据需要设置,并由指令生成模块302携带在采集指令中发送至图像传感器102。

并且,由于图像定位模块304可设置为根据连续两帧地面图像之间的差异,确定AGV的位置变化,因此若两帧地面图像之间的差异太多,则难以确定AGV的位置变化。例如,若两帧地面图像的内容完全不同,没有相同的特征,则难以确定AGV的位置到底变化了多少。于是,在本说明书中,该帧率可以与该行动机构104的移动速度正相关,也就是行动机构104的移动速度越快,则图像传感器102采集地面图像的帧率越高,以避免两帧之间的差异太大。当然,具体速度与帧率的对应关系,可根据需要设置,本说明书不做限制。

在本说明书一个或多个实施例中,该图像传感器102可设置于该AGV的底部,向下采集该AGV所在位置的地面图像。并且,该图像传感器102可设置在该AGV的底部中心,使得该图像传感器102采集的地面图像的中心与该AGV的中心重叠,以简化后续根据图像传感器102采集的地面图像确定AGV位置变化的计算复杂度。

当然,在本说明书中,该图像传感器102的设置的位置以及采集地面图像的方向,也可以根据需要设置,为了方便描述,后续以该图像传感器102设置在该AGV的底部中心,向下采集AGV所在位置的地面图像为例进行说明。

当该指令生成模块302向行动机构104发送第一行动指令,以及向图像传感器102发送采集指令后,该图像定位模块304便可接收该图像传感器102依次连续采集的地面图像,以根据地面图像的变化,确定AGV的位置变化。

具体的,首先,由于该处理器100已经无法确定该AGV的实际经纬度坐标以及AGV的朝向,因此当标识识别模块300未在指定位置采集到二维码时,该图像定位模块304可设置为将该AGV当前所在位置确定为第一坐标系的原点,并根据该AGV的朝向确定该第一坐标系的方向。其中,该第一坐标系为地面坐标系,也就是以该AGV当前所在位置和朝向,建立一个临时的坐标系,以按照该第一坐标系控制该行动机构104沿确定出的空间填充曲线移动,如图2所示。

图2a为本说明书实施例提供的第一坐标系示意图。其中,第一坐标系原点位置为AGV按空间填充曲线移动时的起点位置,并且AGV的正面朝向为第一坐标系的Y1轴正方向。图2a中的虚线为图像定位模块304确定出的空间填充曲线,指令生成模块302在向该行动机构104发送控制指令后,该AGV沿该虚线移动,如图2b所示,可见AGV从起点位置沿虚线移动,同时图像传感器102采集连续采集了若干地面图像a1~an。

其次,在指令生成模块302向图像传感器102发送采集指令后,该图像定位模块304可设置为接收该图像传感器102采集的地面图像,并根据接收到的第一张地面图像,确定第二坐标系的原点以及方向,该第二坐标系为图像坐标系,即由图像传感器102采集的地面图像组成的空间对应的坐标系,如图3所示。

图3为本说明书实施例提供的第二坐标系的示意图,其中,第二坐标系的原点为第一张地面图像的中心点,或者该第一张地面图像的上的任一点,当然通常为了方便计算以中心点作为原点。当图像传感器102连续采集多张地面图像时,连续的两帧地面图像之间存在重叠,而图像定位模块304可通过对两帧地面图像进行图像配准,确定后一帧地面图像相对于前一帧地面图像在第二坐标系上的位移和旋转,从而在第二坐标系中确定地面图像之间的差异。

于是,在该图像定位模块304确定出第一坐标系和第二坐标系后,可以根据该图像定位模块304接收到的该图像处理器102采集的各地面图像,依次针对连续两帧地面图像之间的差异,确定后一帧地面图像相对于前一帧地面图像在该第二坐标系上的坐标偏移量,以及角度偏移量。

最后,该图像定位模块304可根据确定出的第二坐标系上的坐标偏移量,通过坐标系转换,在该第一坐标系中确定该AGV的位置变化,以及根据该角度偏移量确定该AGV的朝向。

通过上述过程,该图像定位模块304可每接收到一张新的地面图像,就确定该AGV的位置变化,以及确定该AGV的朝向。

另外,该图像定位模块304基于傅里叶变化的地纹识别技术,确定两帧地面图像在第二坐标系上的坐标偏移量,以及角度偏移量。

具体的,该图像定位模块304可通过以下过程确定地面图像在第二坐标系上的坐标偏移量和角度偏移量。

首先,图像定位模块304可对当前帧地面图像进行分数阶傅里叶变换的到的结果。假设,当前帧地面图像为f

其次,将分数阶傅里叶变换的到的结果,转换为对数极坐标形式l

之后,在对数极坐标下对l

再后,若当前帧之前存在上一帧地面图像,则确定上一帧地面图像f

然后,对R

之后,确定r

进一步地,确定坐标偏移量,可根据缩放因子和旋转因子对当前帧地面图像f

再对上一帧地面图像f

然后,计算F

并对能量谱R

最后,确定r

在确定出角度偏移量φ

在确定出坐标偏移量(x

则该图像定位模块304根据采集前后两帧时AGV在第一坐标系的坐标,确定AGV的位置变化。

需要说明的是,上述公式中的小写的x,y分别表示在第二坐标系中的坐标,大写的X,Y分别表示在第一坐标系中的坐标。

于是,该图像定位模块304根据连续采集到的地面图像,确定相应的AGV的位置变化后,则该指令生成模块302还可设置为根据空间填充曲线对应的路径以及AGV的位置变化,生成下一时刻向行动机构104发送的第二行动指令,并发送至该行动机构104。该行动机构104则还可设置为根据接收到的该指令生产模块302发送的第二行动指令,继续沿该空间填充曲线对应的路径移动,直至通过该标识识别模块300从该图像传感器102采集的地面图像中识别出定位标识为止。也就是说,该AGV可重复上述过程,直至标识识别模块300从该图像传感器102采集的地面图像中识别出二维码为止。

当识别出二维码后,便可确定该AGV所在位置,并继续根据二维码导航。

需要说明的是,在本说明书中第一行动指令为指令生成模块302根据空间填充曲线对应的路径生成的,而第二行动指令为指令生成模块302根据空间填充曲线对应的路径以及AGV的位置变化生成的。

基于图1a所述的AGV,当AGV未能够在指定位置采集到定位标识时,首先可根据预设的空间填充曲线,确定当前时刻该AGV的运动控制指令,使AGV根据运动控制指令移动,并连续采集AGV所在位置的地面图像,然后通过采集的各地面图像,确定该AGV的位置变化,最后根据确定出的该AGV的位置变化以及该预设的空间填充曲线,确定下一时刻的运动控制指令,并继续控制该AGV移动,直至识别出定位标识为止。由于按照空间填充曲线控制AGV移动可以使AGV遍历空间中的每个点,因此AGV可沿预设的空间填充曲线移动来寻找定位标识。并且,由于丢码后AGV已经不能确定自身的位置,因此可在AGV移动时连续采集AGV所在位置的图像,根据采集各图像确定AGV的位置变化,根据AGV的位置变化控制该AGV沿空间填充曲线移动。通过该控制过程AGV在丢码后,可自行寻找定位标识,避免了人工干预,节约了人工成本,提高了AGV在进行二维码导航时的容错率。

另外,在本说明书中,该图像传感器102的设置的位置以及采集图像的方向,均可以根据需要设置,该图像传感器102可以设置在固定云台上,或者该图像传感器102也可设置在可动云台上。则该图像定位模块304除了可根据采集的地面的图像,确定AGV的位置变化,也可根据AGV周围的环境图像的变化,确定AGV的位置变化。也就是其他视觉定位方法确定AGV的位置变化,当然,在采用其他视觉定位方法时确定AGV的位置变化时,由于目的还是沿空间填充曲线移动寻找二维码,因此该图像传感器102至少在移动至各位置时需要采集地面图像。

进一步地,若该二维码为设置在墙壁上的,那么该图像传感器102至少在移动至各位置时需要采集墙壁的图像。

基于图1a所示的AGV,本说明书还提供一种AGV控制方法,如图4所示。

图4为本说明书提供的AGV控制方法的流程示意图,具体可由AGV的处理器执行该控制过程,以在AGV周围区域中寻找二维码进行二维码导航,该AGV控制流程,具体可包括以下步骤:

S200:当确定未在指定位置采集到定位标识时,根据预设的空间填充曲线生成第一行动指令以及采集指令。

在本说明书中,该AGV控制流程应用于AGV进行二维码导航时出现丢码情况时,重新寻找二维码的过程。

具体的,控制过程可由该AGV中的处理器执行,该处理器可在导航路径上未能识别出预设数量的二维码时,确定未在指定位置采集到二维码,当未在指定位置采集到二维码也可确定需要执行本说明书提供的控制方法。

其中,预设数量可以根据需要设置,并且当指令数量大于1时,处理器100可在连续未能识别出预设数量的二维码时,确定未在指定位置采集到二维码。

该处理器在确定未在指定位置采集到二维码时,确定已经无法确定AGV所在位置,需要在周边区域寻找二维码,以重新确定AGV所在位置。其中,需要寻找的区域大小,可以根据需要设置,也就是处理器定预设的需要遍历的空间大小。

其中,关于空间填充曲线的内容已经在前文进行过描述,可以参考前述处理器100执行的操作。另外,该AGV具体如何移动已经在图1a以及图1b对应的内容中进行过描述,本说明书不再赘述。

S202:根据生成的第一行动指令控制所述自动导引车移动,并根据生成的采集指令连续采集所述自动导引车所在位置的地面图像。

在本说明书中,该AGV可通过图像传感器采集该AGV所在位置的地面图像。具体内容可参考前述内容中,关于图像传感器的描述。

S204:根据采集到的各地面图像,确定所述自动导引车的位置变化。

在本说明书中,该处理器在根据确定出的第一行动指令控制该AGV移动之前,可将该AGV当前所在位置确定为第一坐标系的原点,并根据该AGV的朝向确定该第一坐标系的方向。

然后,根据未在指定位置采集到二维码后,接收到的第一张地面图像确定第二坐标系的原点以及方向,该第二坐标系为该图像传感器采集的图像对应的坐标系,根据各地面图像在第二坐标系中的位置变化,确定该AGV在该第一坐标系中的位置变化。

具体的该处理器可针对每个地面图像,根据该地面图像以及与该地面图像连续的上一帧地面图像之间的差异,确定该地面图像相对于上一帧地面图像在该第二坐标系上的坐标偏移量,以及角度偏移量。

再根据确定出的第二坐标系上的坐标偏移量,通过坐标系转换,在该第一坐标系中确定该AGV的位置变化,以及根据该角度偏移量确定该AGV的朝向。

S206:根据确定出的所述自动导引车的位置变化以及所述预设的空间填充曲线,生成所述自动导引车的第二行动指令,根据生成的第二行动指令继续控制所述自动导引车移动,直至从采集的地面图像中识别出定位标识为止。

在本说明书中,该AGV可通过处理器执行步骤S204和步骤S206,具体过程可参考图1a以及图1b所示的AGV中处理器100各模块所执行的相应操作的过程,本说明书对此不再赘述。

本说明书实施例还提供了计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述AGV控制方法中的任一个。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 自动导引车以及自动导引车控制方法
  • 一种自动导引运输车的调度控制方法及自动导引运输车
技术分类

06120113008843