CN115796553B - Agv任务调度方法、装置及agv调度系统 - Google Patents
Agv任务调度方法、装置及agv调度系统 Download PDFInfo
- Publication number
- CN115796553B CN115796553B CN202310031282.0A CN202310031282A CN115796553B CN 115796553 B CN115796553 B CN 115796553B CN 202310031282 A CN202310031282 A CN 202310031282A CN 115796553 B CN115796553 B CN 115796553B
- Authority
- CN
- China
- Prior art keywords
- agv
- task
- scheduled
- scheduling
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000002596 correlated effect Effects 0.000 claims abstract description 38
- 239000000463 material Substances 0.000 claims description 52
- 238000003860 storage Methods 0.000 claims description 42
- 230000000875 corresponding effect Effects 0.000 claims description 39
- 230000001172 regenerating effect Effects 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/60—Electric or hybrid propulsion means for production processes
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种AGV任务调度方法、装置及AGV调度系统,在当前的调度周期内,根据当前时刻分别确定每个待调度AGV任务在不超时完成情况下的可等待时长,并基于各个待调度AGV任务的可等待时长和任务优先级,确定各个待调度AGV任务在当前调度周期内的调度次序。若满足调度规则,则按照各个待调度AGV任务在当前调度周期内的调度次序进行任务调度。由于调度次序与可等待时长正相关,且与任务优先级负相关,因此,在任务优先级相同的情况下,可等待时长越短,超时风险越高,则调度次序越小,越先被调度。在可等待时长相同的情况下,任务优先级越高,调度次序越小,越先被调度。如此,可提升AGV任务执行的准时率。
Description
技术领域
本申请涉及任务调度技术领域,尤其涉及一种AGV任务调度方法、装置、计算机可读存储介质及AGV调度系统。
背景技术
随着AGV(Automated Guided Vehicle,自动导航车)技术的提出与发展,目前AGV车被广泛应用在物料运输场景中,以实现物料的自动运输。为提高运输效率,AGV车通常被配置为多台,AGV调度系统可接收由第三方系统下发的AGV任务,并将各个AGV任务分配给各台AGV车,从而可通过多台AGV车同时执行AGV任务,进而提高运输效率。然而,在利用现有的AGV任务调度方法进行任务调度时,AGV任务常常会超时完成,存在准时率低的问题。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中AGV任务的完成准时率低的技术缺陷。
第一方面,本申请实施例提供了一种AGV任务调度方法,所述方法包括:
在当前调度周期中,根据当前时刻分别确定每个待调度AGV任务的可等待时长;每个所述待调度AGV任务的所述可等待时长为在该待调度AGV任务的任务完成时刻不晚于任务截止时刻时的最长等待时长;
根据各个所述可等待时长和各个所述待调度AGV任务的任务优先级,确定各个所述待调度AGV任务在所述当前调度周期内的调度次序;其中,调度次序与可等待时长正相关,且与任务优先级负相关;
若满足调度规则,则根据各个所述待调度AGV任务在所述当前调度周期内的调度次序进行任务调度并进入下一调度周期,否则,进入下一调度周期。
第二方面,本申请实施例提供了一种AGV任务调度装置,所述装置包括:
可等待时长确定模块,用于在当前调度周期中,根据当前时刻分别确定每个待调度AGV任务的可等待时长;每个所述待调度AGV任务的所述可等待时长为在该待调度AGV任务的任务完成时刻不晚于任务截止时刻时的最长等待时长;
调度次序确定模块,用于根据各个所述可等待时长和各个所述待调度AGV任务的任务优先级,确定各个所述待调度AGV任务在所述当前调度周期内的调度次序;其中,调度次序与可等待时长正相关,且与任务优先级负相关;
调度模块,用于在满足调度规则的情况下,根据各个所述待调度AGV任务在所述当前调度周期内的调度次序进行任务调度并进入下一调度周期,否则,进入下一调度周期。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述AGV任务调度方法方法的步骤。
第四方面,本申请实施例提供了一种AGV调度系统,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行上述任一实施例所述AGV任务调度方法方法的步骤。
在本申请的AGV任务调度方法、装置、计算机可读存储介质及AGV调度系统中,在当前的调度周期内,可根据当前时刻分别确定每个待调度AGV任务在不超时完成情况下的可等待时长,并基于各个待调度AGV任务的可等待时长和任务优先级,确定各个待调度AGV任务在当前调度周期内的调度次序。在满足调度规则的情况下,按照各个待调度AGV任务在当前调度周期内的调度次序进行任务调度。由于调度次序与可等待时长正相关,且与任务优先级负相关,因此,在任务优先级相同的情况下,可等待时长越短,超时风险越高,则调度次序越小,越先被调度。在可等待时长相同的情况下,任务优先级越高,调度次序越小,越先被调度。本申请通过结合待调度AGV任务的可等待时长和任务优先级进行动态任务分配,从而可有效降低AGV任务执行超时的几率,进而提升AGV任务执行的准时率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为一个实施例中AGV任务调度方法的应用环境图;
图2为一个实施例中AGV任务调度方法的流程示意图;
图3为一个实施例中确定各个待调度AGV任务在当前调度周期内的调度次序步骤的流程示意图;
图4为一个实施例中根据各个待调度AGV任务在当前调度周期内的调度次序进行任务调度步骤的流程示意图;
图5为一个实施例中根据各当前设备信息确定目标候选AGV车步骤的流程示意图;
图6为一个实施例中将调度次序最小的目标待调度AGV任务分配给目标候选AGV车步骤的流程示意图之一;
图7为一个实施例中将调度次序最小的目标待调度AGV任务分配给目标候选AGV车步骤的流程示意图之二;
图8为一个实施例中AGV任务调度装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
正如背景技术所言,在利用现有的AGV任务调度方法进行任务调度时,AGV任务常常会超时完成,存在准时率差的问题。经发明人研究发现,导致这一问题的原因在于:目前AGV车多在仓库场景下使用,在仓库场景中,AGV任务一般是由第三方系统周期性下发的,因此,AGV调度系统只需要按照各个AGV任务的任务下发时刻来进行任务调度即可,任务下发时刻早的AGV任务优先调度。然而,在其他物料运输场景下,很多AGV任务并非是周期性执行的,而是具备一定的随机性。例如,在工厂场景下,工厂的多样性决定了AGV任务的多样性,不同的AGV任务可能具备不同的任务截止时刻、不同的紧急程度和/或不同的运动路径。因此,若按照各个AGV任务的任务下发时刻依次调度各个AGV任务,容易导致AGV任务无法在对应的任务截止时刻之前完成,进而降低了AGV任务的准时率。
为解决前述问题,本申请提出了一种AGV任务调度方法、装置、计算机可读存储介质及AGV调度系统,通过结合待调度AGV任务的可等待时长和任务优先级进行动态任务分配,从而可有效降低AGV任务执行超时的几率,进而提升AGV任务执行的准时率。
在一个实施例中,本申请的AGV任务调度方法可以应用于图1示出的应用环境中。如图1所示,该应用环境可以包括AGV调度系统102、任务下发系统104和至少一台AGV车106,AGV调度系统102分别连接任务下发系统104和各台AGV车106。可以理解,本文所述的连接可以是电性连接,也可以是通信连接,本文对此不作具体限定。
其中,任务下发系统104可以是生成待调度AGV任务的系统,包括但不限于是WMS(Warehouse Management System,仓储管理系统)和MES(Manufacturing ExecutionSystem,制造执行系统)。AGV调度系统102是指能够接收任务下发系统104下发的待调度AGV任务,并按照调度规则将各个待调度AGV任务分配给AGV车106执行,以实现任务调度的系统。本文中,AGV调度系统102可以采用任意现有技术来实现,本申请对此不作具体限制。AGV车106可以接收由AGV调度系统102分配的AGV任务并执行。
在一个实施例中,本申请提供了一种AGV任务调度方法,下述实施例以该方法应用于图1的AGV调度系统为例进行说明。如图2所示,该方法具体可以包括如下步骤:
S202:在当前调度周期中,根据当前时刻分别确定每个待调度AGV任务的可等待时长,每个待调度AGV任务的可等待时长为在该待调度AGV任务的任务完成时刻不晚于任务截止时刻时的最长等待时长。
对于每个AGV任务而言,该任务从下发到执行完成的过程可以被划分为任务下发阶段、任务等待阶段、任务分配执行阶段和执行完成阶段。其中,任务下发阶段是指生成AGV任务并将该AGV任务下发至AGV调度系统的阶段。任务等待阶段是指在下发AGV任务后,该AGV任务等待被分配至相应的AGV车的阶段。任务分配执行阶段是指AGV任务被分配至相应的AGV车并通过该AGV车执行任务的阶段。
本文中,待调度AGV任务可以为处于任务等待阶段的AGV任务,也即待调度AGV任务可以是未分配给AGV车的AGV任务。换言之,若某AGV任务未分配给AGV车,则该AGV任务为待调度AGV任务。若某AGV任务已分配给AGV车,则该AGV任务为已调度AGV任务。
具体而言,AGV调度系统可以按照预设的调度周期,周期性地确定各个待调度AGV任务的调度次序。可以理解,调度周期的周期时长可以根据实际情况确定,例如可根据AGV车的应用场景、待调度AGV任务的数量和/或AGV车的数量来确定,本申请对此不作具体限制。
在每一个调度周期中,AGV调度系统可以根据当前时刻分别确定每一个待调度AGV任务的可等待时长,以确定每个待调度AGV任务在不超时完成情况下的最长等待时长。即,在当前时刻下,每个待调度AGV任务在能够准时完成的情况下还可继续等待的最长时长。本文中,“不超时完成”是指任务完成时刻早于或等于任务截止时刻的情况。若任务完成时刻晚于任务截止时刻,则确定该AGV任务超时完成。
在其中一个实施例中,针对每个待调度AGV任务,AGV调度系统可以计算该待调度AGV任务的任务截止时刻、当前时刻和预设的任务执行时长三者之差,并将计算所得的差值作为该待调度AGV任务的可等待时长。
当前时刻可以根据当前调度周期的起始时刻和结束时刻来确定,其可大于当前调度周期的起始时刻且小于当前调度周期的结束时刻。随着当前调度周期的起始时刻和结束时刻不断迁移,每个待调度AGV任务的可等待时长在不断地更新缩短。
S204:根据各个可等待时长和各个待调度AGV任务的任务优先级,确定各个待调度AGV任务在当前调度周期内的调度次序;其中,调度次序与可等待时长正相关,且与任务优先级负相关。
其中,任务优先级可以是在生成AGV任务时根据AGV任务的任务内容预先确定的。在其中一个实施例中,任务优先级可以与该AGV任务所要运送的物料相关联。
具体而言,AGV调度系统可以根据各个待调度AGV任务的可等待时长和各个待调度AGV任务的任务优先级,确定各个待调度AGV任务的调度次序。由于调度次序与可等待时长成正相关,并与任务优先级成负相关,因此,针对任意两个任务优先级相同的待调度AGV任务而言,可等待时长较短的待调度AGV任务的调度次序小于可等待时长较长的待调度AGV任务。类似地,针对任意两个可等待时长相同的待调度AGV任务而言,任务优先级较高的待调度AGV任务的调度次序小于任务优先级较低的待调度AGV任务。若第一待调度AGV任务的任务优先级高于第二待调度AGV任务的任务优先级,且第一待调度AGV任务的可等待时长小于第二待调度AGV任务的可等待时长,则第一待调度AGV任务的调度次序小于第二待调度AGV任务的调度次序。
在其中一个实施例中,为确定各个待调度AGV任务在当前调度周期内的调度次序,AGV调度系统可根据各个可等待时长对各个待调度AGV任务进行排序,以得到时长排序结果。AGV调度系统可根据各个任务优先级对各个待调度AGV任务进行排序,以得到优先级排序结果。而后根据时长排序结果和优先级排序结果,确定各个待调度AGV任务在当前调度周期内的调度次序。
S206:若满足调度规则,则根据各个所述待调度AGV任务在所述当前调度周期内的调度次序进行任务调度并进入下一调度周期,否则,进入下一调度周期。
具体而言,各个待调度AGV任务的调度次序可用于反映各个待调度AGV任务的调度顺序。例如,在任务调度时,AGV调度系统可首先将调度次序为1的待调度AGV任务分配给AGV车,而后将调度次序为2的待调度AGV车分配给AGV车,以此类推。
AGV调度系统可以判断是否满足调度规则。可以理解,调度规则的具体规则内容可以依据实际情况确定,本文对此不作具体限定。例如,调度规则可以是判断是否存在处于空闲状态的AGV车的规则,若存在,则确定满足调度规则。和/或,调度规则可以是判断是否满足强制执行流程的规则,若满足强制执行流程,则确定满足调度规则。
在满足调度规则的情况下,AGV调度系统可以根据各个所述待调度AGV任务在所述当前调度周期内的调度次序,确定各个待调度AGV任务在当前调度周期内的调度顺序,并据此进行任务调度,且在调度完成后进入下一调度周期。如此,调度次序小的待调度AGV任务可以被优先分配给AGV车。由于调度次序与可等待时长正相关,且与任务优先级负相关,因此,可等待时长短的待调度AGV任务可以被优先分配给AGV车,任务优先级高的待调度AGV任务可以被优先分配给AGV车,以减少超时完成的任务数量。
在不满足调度规则的情况下,AGV调度系统可以不进行任务调度,并直接进入下一调度周期。也即,在不满足调度规则时,AGV调度系统在当前调度周期内可以不向任一AGV车分配AGV任务。
本实施例中,在当前的调度周期内,可根据当前时刻分别确定每个待调度AGV任务在不超时完成情况下的可等待时长,并基于各个待调度AGV任务的可等待时长和任务优先级,确定各个待调度AGV任务在当前调度周期内的调度次序。在满足调度规则的情况下,按照各个待调度AGV任务在当前调度周期内的调度次序进行任务调度。由于调度次序与可等待时长正相关,且与任务优先级负相关,因此,在任务优先级相同的情况下,可等待时长越短,超时风险越高,则调度次序越小,越先被调度。在可等待时长相同的情况下,任务优先级越高,调度次序越小,越先被调度。本申请通过结合待调度AGV任务的可等待时长和任务优先级进行动态任务分配,从而可有效降低AGV任务执行超时的几率,进而提升AGV任务执行的准时率。
在一个实施例中,根据当前时刻分别确定每个待调度AGV任务的可等待时长的步骤,包括:
针对每个待调度AGV任务,获取该待调度AGV任务的任务截止时刻和运动路径,并基于该待调度AGV任务的运动路径估计该待调度AGV任务的任务执行时长,根据当前时刻、该待调度AGV任务的任务截止时刻和该待调度AGV任务的任务执行时长,确定该待调度AGV任务的可等待时长。
具体而言,对于每一个待调度AGV任务,AGV调度系统均可执行步骤A1至步骤A3,以确定该待调度AGV任务的可等待时长:
步骤A1:获取该待调度AGV任务的任务截止时刻和运动路径。在其中一个实施例中,AGV调度系统可以从该调度AGV任务的任务信息中直接提取出该待调度AGV任务的任务截止时刻。在另一个实施例中,在获取运动路径的过程中,AGV调度系统可以从该待调度AGV任务的任务信息中提取取货位置和送货位置,并基于该取货位置和送货位置预测AGV车在执行该待调度AGV任务时的运动路径。
步骤A2:根据该待调度AGV任务的运动路径预测该待调度AGV任务的任务执行时长,也即AGV车执行该待调度AGV任务时需要消耗的时长。例如,AGV调度系统可以估计该运动路径对应的运动距离,并根据预设运动速度和运动距离预测任务执行时长。
步骤A3:根据当前时刻、该待调度AGV任务的任务截止时刻和该待调度AGV任务的任务执行时长,确定该待调度AGV任务的可等待时长。例如,AGV调度系统可以计算该待调度AGV任务的任务截止时刻、当前时刻和该待调度AGV任务的任务执行时长三者之差,并将计算所得差值作为该待调度AGV任务的可等待时长。
本实施例中,通过根据运动路径估计待调度AGV任务的任务执行时长,并结合该任务执行时长确定待调度AGV任务的可等待时长,从而可提高可等待时长的准确性。AGV调度系统根据更加准确的可等待时长来确定调度次序,并根据该调度次序进行任务调度,从而可进一步缓解超时问题,并进一步提升AGV任务执行的准时率。
在一个实施例中,根据当前时刻、该待调度AGV任务的任务截止时刻和该待调度AGV任务的任务执行时长,确定该待调度AGV任务的可等待时长的步骤,包括:
计算该待调度AGV任务的任务执行时长与预设的第一系数之间的乘积,该第一系数大于1;
计算该待调度AGV任务的任务截止时刻、当前时刻和乘积之间的第一差值,并将第一差值作为该待调度AGV任务的可等待时长。
具体而言,针对每个待调度AGV任务,AGV调度系统可以采用如下表达式计算该待调度AGV任务的可等待时长:
式中,为该待调度AGV任务的可等待时长,为该待调度AGV任务的任务截止时刻,为当前时刻,为待调度AGV任务的任务执行时长,为预设的第一系数。
考虑到任务执行过程中可能会出现道路堵塞、道路封锁和/或绕道行驶等意外情况,导致AGV车需要消耗更多的时间来执行AGV任务,为进一步提高可等待时长的预测准确性,以进一步提升AGV任务执行的准时率,AGV调度系统可以将每个待调度AGV任务的任务执行时长乘以大于1的第一系数,以得到乘积,并基于该乘积来计算待调度AGV任务的可等待时长。
可以理解,该第一系数的具体数值可以依据实际情况确定,本文对此不作具体限定,只需其大于1即可。
在一个实施例中,如图3所示,根据各个可等待时长和各个待调度AGV任务的任务优先级,确定各个待调度AGV任务在当前调度周期内的调度次序的步骤,包括:
S302:根据当前时刻,分别确定每个待调度AGV任务的已等待时长,每个待调度AGV任务的已等待时长为当前时刻与该待调度AGV任务的任务下发时刻之间的间隔时长。
其中,每个待调度AGV任务的已等待时长可用于反映该待调度AGV任务处于任务等待阶段的持续时长。
S304:针对每个待调度AGV任务,根据该待调度AGV任务的已等待时长、该待调度AGV任务的可等待时长和该待调度AGV任务的任务优先级,确定该待调度AGV任务对应的权重系数;其中,权重系数与已等待时长和任务优先级成正相关,且与可等待时长成负相关。
具体而言,AGV调度系统可以结合待调度AGV任务的已等待时长、可等待时长和任务优先级,确定该待调度AGV任务的权重系数,使得该权重系数可以同时反映已等待时长、可等待时长和任务优先级三种因素。
由于权重系数与已等待时长成正相关,与任务优先级成正相关,且与可等待时长成负相关,因此,在可等待时长相同的情况下,已等待时长越长,任务优先级越高,则权重系数越大。而在已等待时长和任务优先级相同的情况下,可等待时长越短,则权重系数越大。
可以理解,AGV调度系统可以采用任意方式来实现S304,本申请对此不作具体限制,只需权重系数与已等待时长和任务优先级成正相关,且与可等待时长成负相关即可。
在其中一个实施例中,S304可以包括如下步骤:
步骤B1:基于该待调度AGV任务的已等待时长和该待调度AGV任务的可等待时长,确定该待调度AGV任务对应的时间系数;其中,时间系数与已等待时长正相关,且与可等待时长负相关;
步骤B2:采用以下表达式计算该待调度AGV任务对应的权重系数:
式中,
Q为所述权重系数,
K为预设的第二系数,为该待调度AGV任务对应的时间系数,
P为该待调度AGV任务的任务优先级。
当时间调度策略和优先级调度策略同时存在时,需要在两个策略中寻找平衡点,以同时基于时间调度策略和优先级调度策略进行任务调度。本申请根据预设的第二系数计算得出权重系数,从而可同时结合时间调度策略和优先级调度策略来确定权重系数,使得计算得出的权重系数更加准确。
可以理解,第二系数的具体数值可以依据实际情况确定,本文对此不作具体限定。进一步地,第二系数可以大于0且小于1。
S306:按照权重系数从大到小的排序方式对各个待调度AGV任务进行排序,以得到各个待调度AGV任务在当前调度周期内的调度次序。
AGV调度系统可根据各个权重系数对各个待调度AGV任务进行排序,每个待调度AGV任务的排序次序为该待调度AGV任务在当前调度周期内的调度次序。待调度AGV任务的权重系数越大,则该待调度AGV任务的排序次序越小,调度次序越小,越先被调度。
本实施例中,AGV调度系统可结合待调度AGV任务的已等待时长来确定该待调度AGV任务的权重系数,权重系数与已等待时长成正相关。AGV调度系统根据各个权重系数的降序排序次序来确定各个待调度AGV任务的调度次序。如此,可使得已等待时长较长的待调度AGV任务具备较小的调度次序,使其优先被调度,从而可以在提高准时率的同时,降低各个AGV任务的等待时长。
在一个实施例中,如图4所示,若满足调度规则,则根据各个待调度AGV任务在当前调度周期内的调度次序进行任务调度的步骤,包括:
S402:若存在至少一个目标待调度AGV任务且各台AGV车均处于执行任务状态,则分别获取每台AGV车的当前执行任务信息;其中,目标待调度AGV任务是指需要强制执行的待调度AGV任务。
若各个待调度AGV任务中存在至少一个待调度AGV任务需要强制执行,且各台AGV车均在执行AGV任务,则可分别获取每台AGV车当前正在执行的AGV任务的任务信息,以得到每台AGV车的当前执行任务信息。
S404:根据各当前执行任务信息,在各台AGV车中确定能够被抢占任务的候选AGV车,并将各台候选AGV车的车辆标识添加到抢占AGV列表中。
针对每台AGV车,AGV调度系统可根据该AGV车的当前执行任务信息,判断该AGV车的当前执行任务是否可被抢占,若可被抢占,则将该AGV车作为候选AGV车,并将其车辆标识添加到抢占AGV列表中。如此,抢占AGV列表可记录有各台候选AGV车的车辆标识。
S406:基于抢占AGV列表和各个目标待调度AGV任务在当前调度周期内的调度次序,依次将各个目标待调度AGV任务分配给各台候选AGV车,以利用目标待调度AGV任务对候选AGV车的当前执行任务进行抢占。
具体而言,目标待调度AGV任务的调度次序越小,则该目标待调度AGV任务越先被分配给候选AGV车。当目标待调度AGV任务分配给候选AGV车时,该目标待调度AGV任务会对候选AGV车的任务执行资源进行抢占,使得候选AGV车挂起当前执行任务并优先执行目标待调度AGV任务,以强制执行目标待调度AGV任务。
本实施例中,在各台AGV车均处于执行任务状态的情况下,AGV调度系统可以向能够被抢占任务的候选AGV车分配目标待调度AGV任务,从而可利用目标待调度AGV任务抢占候选AGV车的当前执行任务,使得候选AGV车优先执行目标待调度AGV任务。如此,可提高AGV任务调度的灵活性。
在一个实施例中,目标待调度AGV任务可以是存在超时风险的待调度AGV任务,或是与接收到的强制执行指令中包含的任务标识相对应的待调度AGV任务。也即,AGV调度系统可以将存在超时风险的待调度AGV任务作为目标待调度AGV任务,也可以将由强制执行指令指定的待调度AGV任务作为目标待调度AGV任务。AGV调度系统在接收到任务下发系统发送的强制执行指令时,可以从接收到的强制执行指令中提取出任务标识,并将该任务标识所对应的待调度AGV任务作为目标待调度AGV任务。如此,AGV调度系统可以控制AGV车强制执行存在超时风险的待调度AGV任务和被指定的待调度AGV任务,以进一步降低AGV任务执行超时的几率,并提升AGV任务执行的准时率。
在一个实施例中,AGV调度系统可以将调度次序位于前N位的待调度AGV任务作为待判断任务,并根据每个待判断任务的可等待时长判断该待调度AGV任务是否存在超时风险。其中,N为正整数,进一步地,N可以为由AGV调度系统控制的AGV车的总数量。
例如,在待调度AGV任务的可等待时长小于或等于预设时长阈值的情况下,该待调度AGV任务存在超时风险;在待调度AGV任务的可等待时长大于预设时长阈值的情况下,该待调度AGV任务不存在超时风险。如此,AGV调度系统可自动地从各个待调度AGV任务中识别出存在超时风险的目标待调度AGV任务,从而可进一步降低AGV任务执行超时的几率,并提升AGV任务执行的准时率。
在一个实施例中,每台AGV车的当前执行任务信息包括该AGV车的当前执行任务的任务截止时刻和任务执行时长,关于任务截止时刻和任务执行时长的相关说明可参阅上述实施例,在此不再赘述。
根据各当前执行任务信息,在各台AGV车中确定能够被抢占任务的候选AGV车的步骤,包括:
针对每台AGV车,根据该AGV车的当前执行任务的任务截止时刻和任务执行时长,计算该AGV车的当前执行任务的剩余等待时长;
基于各个剩余等待时长,在各台AGV车中确定候选AGV车;其中,每一候选AGV车对应的剩余等待时长均大于预设时长阈值,预设时长阈值大于或等于0。
其中,当前执行任务的剩余等待时长是指在该当前执行任务不超时完成情况下的最长等待时长。AGV调度系统可以分别计算每台AGV车的当前执行任务的剩余等待时长,以确定每个当前执行任务在不超时完成的情况下的最长等待时长。AGV调度系统可以根据各个剩余等待时长和预设时长阈值,从各台AGV车中确定能够被抢占任务的候选AGV车,使得每台候选AGV车所对应的剩余等待时长均大于0。如此,可降低被抢占的AGV任务超时完成的几率,以进一步提升AGV任务执行的准时率。
在一个实施例中,每台AGV车的当前执行任务信息包括当前执行任务的抢占标识,该抢占标识用于指示该台AGV车的当前执行任务是否可被抢占。
基于各个剩余等待时长,在各台AGV车中确定候选AGV车的步骤,包括:基于各个剩余等待时长和各个抢占标识,在各台AGV车中确定候选AGV车。其中,每一候选AGV车对应的剩余等待时长均大于预设时长阈值,且每一候选AGV车对应的抢占标识均指示该候选AGV车的当前执行任务可被抢占。
具体而言,考虑到一些AGV任务的剩余执行时长虽大于预设时长阈值,但该AGV任务不可被抢占,为确保目标待调度AGV任务能够在分配后顺利抢占执行资源,也避免影响不可被抢占的AGV任务被抢占,AGV调度系统可根据各个剩余等待时长和各个抢占标识确定候选AGV车,使得每台候选AGV车的当前执行任务的剩余等待时长均大于预设时长阈值,且每台候选AGV车的当前执行任务均可被抢占。如此,可确保各个AGV任务的顺利执行,以及进一步提升AGV任务执行的准时率。
在一个实施例中,根据该AGV车的当前执行任务的任务截止时刻和任务执行时长,计算该AGV车的当前执行任务的剩余等待时长的步骤,包括:计算该AGV车的当前执行任务的任务截止时刻、该AGV车的当前执行任务的任务执行时长、当前时刻和预设任务缓冲时长之间的第二差值,并将第二差值作为该AGV车的当前执行任务的剩余等待时长。
具体而言,针对每台AGV车,AGV调度系统可以采用如下表达式计算该AGV车的当前执行任务的剩余等待时长:
式中,为该AGV车的当前执行任务的剩余等待时长,为该AGV车的当前执行任务的任务截止时刻,为当前时刻,为该AGV车的当前执行任务的任务执行时长,为预设任务缓冲时长。
可以理解,该预设任务缓冲时长的具体数值可以依据实际情况确定,本申请对此不作具体限制。
本实施例中,通过引入预设任务缓冲时长来计算剩余等待时长,从而可提高剩余等待时长的预测准确性,以降低被抢占的AGV任务超时完成的几率。如此,可进一步提升AGV任务执行的准时率。
在一个实施例中,基于抢占AGV列表和各个目标待调度AGV任务在当前调度周期内的调度次序,依次将各个目标待调度AGV任务分配给各台候选AGV车的步骤,包括:
根据抢占AGV列表中记录的各个车辆标识,分别获取每台候选AGV车的当前设备信息,并根据各当前设备信息确定目标候选AGV车,将调度次序最小的目标待调度AGV任务分配给目标候选AGV车,且在分配后将目标候选AGV车的车辆标识从抢占AGV列表中移除,以及移除调度次序最小的目标待调度AGV任务,直至抢占AGV列表为空或移除全部目标待调度AGV任务。
具体而言,抢占AGV列表可记录有未分配目标待调度AGV任务的候选AGV车的车辆标识。若抢占AGV列表非空,则表明存在至少一台候选AGV车未分配目标待调度AGV任务。若至少一个目标待调度AGV任务未被移除,则表明仍存在未分配至AGV车的目标待调度AGV任务。因此,当抢占AGV列表非空且至少一个目标待调度AGV任务未被移除时,AGV调度系统可执行至少一轮次任务调度,直至全部目标待调度AGV任务均被分配或者不存在未分配目标待调度AGV任务的候选AGV车。
在每轮次任务调度时,AGV调度系统可根据抢占AGV列表中记录的各个车辆标识,分别获取每台未分配目标待调度AGV任务的候选AGV车的当前设备信息,并根据所获取的当前设备信息,从各台未分配目标待调度AGV任务的候选AGV车筛选出目标候选AGV车。AGV调度系统可以在留存的各个目标待调度AGV任务中,筛选出调用次序最小的目标待调度AGV任务作为本轮次调度的待分配任务,并将待分配任务分配给目标候选AGV车。在任务分配后,将目标候选AGV车的车辆标识从抢占AGV列表中移除,并将本轮次调度的待分配任务从AGV调度系统中移除。移除后,判断抢占AGV列表是否为空和是否已将全部目标待调度AGV任务从AGV调度系统中移除,若抢占AGV列表非空且至少一个目标待调度AGV任务未被移除,则进入下一轮次的任务调度中,直至抢占AGV列表为空或移除全部目标待调度AGV任务。
如此,可避免在当前调度周期内将多个目标待调度AGV任务重复分配给同一候选AGV车,以确保各个被分配至候选AGV车的目标待调度AGV任务能够顺利执行,从而可降低目标待调度AGV任务执行超时的几率,并提升AGV任务执行的准时率。
在一个实施例中,每台候选AGV车的当前设备信息包括该候选AGV车的当前执行任务的剩余等待时长,关于剩余等待时长的相关说明可参阅上述实施例,在此不再赘述。
根据各当前设备信息确定目标候选AGV车的步骤,包括:将对应于最大剩余等待时长的候选AGV车作为目标候选AGV车。换言之,在每轮次任务调度中,AGV调度系统可在各台未分配目标待调度AGV任务的候选AGV车中,筛选出剩余等待时长最长的候选AGV车作为目标候选AGV车。如此,可进一步降低被抢占的AGV任务超时完成的几率,从而可进一步提升AGV任务执行的准时率。
在一个实施例中,每台候选AGV车的当前设备信息包括该候选AGV车的当前取货状态。具体地,每台AGV车执行AGV任务的过程可被划分为两个阶段,分别是取货阶段和送货阶段。其中取货阶段是指AGV车从当前位置运动至取货位置,并在取货位置取出物料的过程。运货阶段是指AGV车从取货位置运动至送货位置,并将物料摆放在送货位置的过程。每台候选AGV车的当前取货状态可用于反映该候选AGV车当前是否已取货。
如图5所示,根据各当前设备信息确定目标候选AGV车的步骤,包括:
S502:根据各台候选AGV车的当前取货状态,判断是否存在未取货AGV车,未取货AGV车为处于未取货状态的候选AGV车;
S504:若存在至少一台未取货AGV车,则选取一台未取货AGV车作为目标候选AGV车。
具体而言,AGV调度系统可根据抢占AGV列表中记录的各个车辆标识,分别获取每台未分配目标待调度AGV任务的候选AGV车的当前取货状态,并根据所获取的各个当前取货状态,判断在各台未分配目标待调度AGV任务的候选AGV车中,是否存在处于未取货状态的候选AGV车,也即是否存在未取货AGV车。若是,则选取一台未取货AGV车作为目标候选AGV车。
在其中一个实施例中,若存在多台未取货AGV车,则AGV调度系统可以分别获取每台未取货AGV车对应的剩余等待时长,并将剩余等待时长最大的未取货AGV车作为目标候选AGV车。
根据任务时间排布及任务下发原则,由于未取货AGV车所处的任务执行进度比已取货AGV车的任务执行进度慢,因此,在多数情况下,未取货AGV车的当前执行任务的调度时刻晚于已取货AGV车的当前执行任务的调度时刻,也即未取货AGV车的当前执行任务的调度次序大于已取货AGV车的当前执行任务的调度次序,未取货AGV车的当前执行任务的超时风险小于已取货AGV车的当前执行任务的超时风险。
本实施例中,AGV调度系统可优先将目标待调度AGV任务分配给未取货AGV车,以降低被抢占的AGV任务超时完成的几率,从而可进一步提升AGV任务执行的准时率。
在一个实施例中,每台候选AGV车的当前设备信息还包括该候选AGV车的当前位置。请继续参阅图5,根据各当前设备信息确定目标候选AGV车的步骤,还包括:
S506:若不存在未取货AGV车,则获取调度次序最小的目标待调度AGV任务的目标取货位置;
S508:根据目标取货位置和每台候选AGV车的当前位置,分别计算每台候选AGV车与目标取货位置之间的取货间距;
S510:在各个取货间距中确定最小取货间距,并将最小取货间隔所对应的候选AGV车作为目标候选AGV车。
若各台未分配目标待调度AGV任务的候选AGV车均处于已取货状态,则AGV调度系统可以根据本轮次调度的待调度任务确定目标候选AGV车。具体而言,AGV调度系统可以在留存的各个目标待调度AGV任务中,筛选出调用次序最小的目标待调度AGV任务作为本轮次调度的待分配任务,并将本轮次调度的待分配任务涉及的取货位置作为目标取货位置。
针对每台未分配目标待调度AGV任务的候选AGV车,AGV调度系统可以根据该候选AGV车的当前位置与目标取货位置,计算该候选AGV车与目标取货位置之间的间隔距离,以确定该候选AGV车的取货间距。在得到各个取货间距后,AGV调度系统可以在各个取货间距中确定最小取货间距,并将最小取货间距所对应的候选AGV车选取为目标候选AGV车。
如此,在各台未分配目标待调度AGV任务的候选AGV车均处于已取货状态的情况下,AGV调度系统可将本轮次调度涉及的目标待调度AGV任务分配给距离目标取货位置最近的候选AGV车,从而可缩短该目标调度AGV任务的取货时间,进而缩短任务执行时长,以降低目标调度AGV任务执行超时的几率,并提升AGV任务执行的准时率。
在一个实施例中,每台候选AGV车的当前设备信息包括该候选AGV车的当前取货状态,关于当前取货状态的相关说明可参阅上述实施例,在此不再赘述。
如图6所示,将调度次序最小的目标待调度AGV任务分配给目标候选AGV车的步骤,包括:
S602:若目标候选AGV车的当前取货状态为未取货状态,则获取目标候选AGV车的当前执行任务信息;
S604:根据目标候选AGV车的当前执行任务信息重新生成待调度AGV任务;
S606:将调度次序最小的目标待调度AGV任务分配给目标候选AGV车,以利用调度次序最小的目标待调度AGV任务对目标候选AGV车的当前执行任务进行抢占。
具体而言,在本轮次调度中,若目标候选AGV车的当前取货状态为未取货状态,则AGV调度系统可获取该目标候选AGV车的当前执行任务的任务信息,以得到当前执行任务信息,并根据目标候选AGV车的当前执行任务信息,在AGV调度系统中重新生成待调度AGV任务,以使重新生成的待调度AGV任务与目标候选AGV车的当前执行任务一致。在其中一个实施例中,AGV调度系统可将重新生成的待调度AGV任务的抢占标识确定为不可抢占标识,以避免在将重新生成的待调度AGV任务分配至AGV车后再次被抢占,从而可确保重新生成的待调度AGV任务在再次分配后能够顺利执行。在另一个实施例中,AGV调度系统可将重新生成的待调度AGV任务的调度次序确定为最小次序,使其能够在下一次调度中被分配。
在重新生成与目标候选AGV车的当前执行任务一致的待调度AGV任务后,AGV调度系统可将调度次序最小的目标待调度AGV任务分配给目标候选AGV车,以强制目标候选AGV车优先执行该目标待调度AGV任务。
如此,可避免丢失被抢占任务,使得被抢占任务能够按照前述过程被重新调度,从而确保被抢占任务能够在其对应的任务截止时刻之前完成,进而可进一步提升AGV任务执行的准时率。
在一个实施例中,每台候选AGV车的当前设备信息包括该候选AGV车的当前取货状态和当前位置。关于当前取货状态的相关说明可参阅上述实施例,在此不再赘述。
如图7所示,将调度次序最小的目标待调度AGV任务分配给目标候选AGV车的步骤,包括:
S702:若目标候选AGV车的当前取货状态为已取货状态,则根据目标候选AGV车的当前位置,确定与目标候选AGV车距离最近的物料存放位置;
S706:将目标候选AGV车的当前执行任务的送货位置修改为物料存放位置,以使目标候选AGV车运动至物料存放位置并存放物料;
S708:在确定目标候选AGV车在物料存放位置完成物料存放的情况下,将调度次序最小的目标待调度AGV任务分配给目标候选AGV车,以利用调度次序最小的目标待调度AGV任务对目标候选AGV车的当前执行任务进行抢占。
在本轮次调度中,若目标候选AGV车的当前取货状态为已取货状态,则表明目标候选AGV车当前载有物料,为避免当前载有的物料影响后续AGV任务的执行,需要将当前载有的物料进行卸料。
具体而言,AGV调度系统可根据目标候选AGV车的当前位置,确定距离最近的物料存放位置,并将目标候选AGV车的当前执行任务的送货位置修改为物料存放位置。如此,目标候选AGV车会依据修改后的送货位置重新规划运动路径,使其能够抵达物料存放位置并进行卸料。在确定目标候选AGV车完成卸料后,AGV调度系统可以将调度次序最小的目标待调度AGV任务分配给目标候选AGV车,以强制目标候选AGV车优先执行该目标待调度AGV任务。
本实施例中,在目标候选AGV车的当前取货状态为已取货状态的情况下,寻找与目标候选AGV车距离最近的物料存放位置,并使目标候选AGV车运动至该物料存放位置存放物料。在完成物料存放后再将目标待调度AGV任务分配给目标候选AGV车。如此,一方面可以避免无法取料而导致的任务执行超时,另一方面,通过将寻找距离最近的物料存放位置来存放物料,从而可缩短目标候选AGV车的物料存放时间,使其能够快速执行目标待调度AGV任务,以降低目标调度AGV任务执行超时的几率,并提升AGV任务执行的准时率。
在一个实施例中,如图7所示,将目标候选AGV车的当前执行任务的送货位置修改为物料存放位置,以使目标候选AGV车运动至物料存放位置并存放物料的步骤之前,还包括:
S704:获取目标候选AGV车的当前执行任务的原送货位置,并以物料存放位置作为取货位置,以原送货位置作为送货位置重新生成待调度AGV任务。
具体而言,由于目标候选AGV车将运载物料存放在与之距离最近的物料存放位置中,而非存放在运载物料的取货位置中,因此,为了能将运载物料运载至其对应的送货位置处,AGV调度系统可获取目标候选AGV车的当前执行任务的原送货位置,并在AGV调度系统中重新生成从物料存放位置至原送货位置的待调度AGV任务,使得执行该重新生成的待调度AGV任务的AGV车能够从物料存放位置取货,并将物料运送至原送货位置。
在其中一个实施例中,AGV调度系统可将重新生成的待调度AGV任务的抢占标识确定为不可抢占标识,以避免在将重新生成的待调度AGV任务分配至AGV车后再次被抢占,从而可确保重新生成的待调度AGV任务在再次分配后能够顺利执行。在另一个实施例中,AGV调度系统可将重新生成的待调度AGV任务的调度次序确定为最小次序,使其能够在下一次调度中被分配。
如此,可避免丢失被抢占任务,使得被抢占任务能够按照前述过程被重新调度,从而确保被抢占任务能够在其对应的任务截止时刻之前完成,进而可进一步提升AGV任务执行的准时率。
下面对本申请实施例提供的AGV任务调度装置进行描述,下文描述的AGV任务调度装置与上文描述的AGV任务调度方法可相互对应参照。
在一个实施例中,本申请还提供了一种AGV任务调度装置800。如图8所示,该装置800包括可等待时长确定模块810、调度次序确定模块820和调度模块830。其中:
可等待时长确定模块810,用于在当前调度周期中,根据当前时刻分别确定每个待调度AGV任务的可等待时长;每个所述待调度AGV任务的所述可等待时长为在该待调度AGV任务的任务完成时刻不晚于任务截止时刻时的最长等待时长;
调度次序确定模块820,用于根据各个所述可等待时长和各个所述待调度AGV任务的任务优先级,确定各个所述待调度AGV任务在所述当前调度周期内的调度次序;其中,调度次序与可等待时长正相关,且与任务优先级负相关;
调度模块830,用于在满足调度规则的情况下,根据各个所述待调度AGV任务在所述当前调度周期内的调度次序进行任务调度并进入下一调度周期,否则,进入下一调度周期。
在一个实施例中,可等待时长确定模块810包括第一时长计算单元。该第一时长计算单元用于针对每个所述待调度AGV任务,获取该待调度AGV任务的任务截止时刻和运行路径,并基于所述运行路径估计该待调度AGV任务的任务执行时长 ,根据所述当前时刻、该待调度AGV任务的任务截止时刻和该待调度AGV任务的任务执行时长,确定该待调度AGV任务的所述可等待时长。
在一个实施例中,第一时长计算单元包括乘积计算单元和第一差值计算单元。其中,乘积计算单元用于计算该待调度AGV任务的任务执行时长与预设的第一系数之间的乘积,所述第一系数大于1。第一差值计算单元用于计算该待调度AGV任务的任务截止时刻、所述当前时刻和所述乘积之间的第一差值,并将所述第一差值作为该待调度AGV任务的所述可等待时长。
在一个实施例中,调度次序确定模块820包括第二时长计算单元、权重系数确定单元和第一排序单元。其中,第二时长计算单元用于根据所述当前时刻,分别确定每个所述待调度AGV任务的已等待时长,每个所述待调度AGV任务的已等待时长为所述当前时刻与该待调度AGV任务的任务下发时刻之间的间隔时长。权重系数确定单元用于针对每个所述待调度AGV任务,根据该待调度AGV任务的所述已等待时长、该待调度AGV任务的所述可等待时长和该待调度AGV任务的任务优先级,确定该待调度AGV任务对应的权重系数;其中,权重系数与已等待时长和任务优先级成正相关,且与可等待时长成负相关。第一排序单元用于按照权重系数从大到小的排序方式对各个所述待调度AGV任务进行排序,以得到各个所述待调度AGV任务在所述当前调度周期内的调度次序。
在一个实施例中,权重系数确定单元包括时间系数确定单元和系数计算单元。其中,时间系数确定单元用于基于该待调度AGV任务的所述已等待时长和该待调度AGV任务的所述可等待时长,确定该待调度AGV任务对应的时间系数;其中,时间系数与已等待时长正相关,且与可等待时长负相关。系数计算单元用于采用以下表达式计算该待调度AGV任务对应的权重系数:
式中,
Q为所述权重系数,
K为预设的第二系数,为该待调度AGV任务对应的时间系数,
P为该待调度AGV任务的任务优先级。
在一个实施例中,调度模块830包括当前执行任务信息获取单元、候选AGV车确定单元和分配单元。其中,当前执行任务信息获取单元用于若存在至少一个目标待调度AGV任务且各台AGV车均处于执行任务状态,则分别获取每台所述AGV车的当前执行任务信息;所述目标待调度AGV任务为需要强制执行的待调度AGV任务。候选AGV车确定单元用于根据各所述当前执行任务信息,在各台所述AGV车中确定能够被抢占任务的候选AGV车,并将各台所述候选AGV车的车辆标识添加到抢占AGV列表中。分配单元用于基于所述抢占AGV列表和各个所述目标待调度AGV任务在所述当前调度周期内的调度次序,依次将各个所述目标待调度AGV任务分配给各台所述候选AGV车,以利用所述目标待调度AGV任务对所述候选AGV车的当前执行任务进行抢占。
在一个实施例中,所述当前执行任务信息包括当前执行任务的任务截止时刻和任务执行时长。候选AGV车确定单元包括第三时长计算单元和第一选取单元。其中,第三时长计算单元用于针对每台所述AGV车,根据该AGV车的当前执行任务的任务截止时刻和任务执行时长,计算该AGV车的当前执行任务的剩余等待时长。第一选取单元用于基于各个所述剩余等待时长,在各台所述AGV车中确定所述候选AGV车;其中,每一所述候选AGV车对应的剩余等待时长均大于预设时长阈值,所述预设时长阈值大于或等于0。
在一个实施例中,所述当前执行任务信息包括当前执行任务的抢占标识,所述抢占标识用于指示当前执行任务是否可被抢占。第一选取单元还用于基于各个所述剩余等待时长和各个所述抢占标识,在各台所述AGV车中确定所述候选AGV车;其中,每一所述候选AGV车对应的剩余等待时长均大于所述预设时长阈值,且每一所述候选AGV车对应的抢占标识均指示该候选AGV车的当前执行任务可被抢占。
在一个实施例中,第三时长计算单元包括第二差值计算单元。该第二差值计算单元用于计算该AGV车的当前执行任务的任务截止时刻、该AGV车的当前执行任务的任务执行时长、所述当前时刻和预设任务缓冲时长之间的第二差值,并将所述第二差值作为该AGV车的当前执行任务的剩余等待时长。
在一个实施例中,分配单元包括分配移除单元。该分配移除单元用于根据所述抢占AGV列表中记录的各个车辆标识,分别获取每台所述候选AGV车的当前设备信息,并根据各所述当前设备信息确定目标候选AGV车,将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,且在分配后将所述目标候选AGV车的车辆标识从所述抢占AGV列表中移除,以及移除调度次序最小的所述目标待调度AGV任务,直至所述抢占AGV列表为空或移除全部所述目标待调度AGV任务。
在一个实施例中,每台所述候选AGV车的当前设备信息包括该候选AGV车的当前执行任务的剩余等待时长。分配移除单元包括第二选取单元,该第二选取单元用于将对应于最大剩余等待时长的候选AGV车作为所述目标候选AGV车。
在一个实施例中,每台所述候选AGV车的当前设备信息包括该候选AGV车的当前取货状态。分配移除单元包括判断单元和第三选取单元。该判断单元用于根据各台所述候选AGV车的当前取货状态,判断是否存在未取货AGV车,所述未取货AGV车为处于未取货状态的候选AGV车。第三选取单元用于若存在至少一台所述未取货AGV车,则选取一台所述未取货AGV车作为所述目标候选AGV车。
在一个实施例中,每台所述候选AGV车的当前设备信息还包括该候选AGV车的当前位置。分配移除单元还包括目标取货位置获取单元、取货间距计算单元和第四选取单元。其中,目标取货位置获取单元用于若不存在所述未取货AGV车,则获取调度次序最小的所述目标待调度AGV任务的目标取货位置。取货间距计算单元用于根据所述目标取货位置和每台所述候选AGV车的当前位置,分别计算每台所述候选AGV车与所述目标取货位置之间的取货间距。第四选取单元用于在各个所述取货间距中确定最小取货间距,并将所述最小取货间隔所对应的候选AGV车作为所述目标候选AGV车。
在一个实施例中,每台所述候选AGV车的当前设备信息包括该候选AGV车的当前取货状态。分配移除单元包括任务信息获取单元、第一任务生成单元和第一任务分配单元。任务信息获取单元用于若所述目标候选AGV车的当前取货状态为未取货状态,则获取所述目标候选AGV车的当前执行任务信息。第一任务生成单元用于根据所述目标候选AGV车的当前执行任务信息重新生成待调度AGV任务。第一任务分配单元用于将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,以利用调度次序最小的所述目标待调度AGV任务对所述目标候选AGV车的当前执行任务进行抢占。
在一个实施例中, 每台所述候选AGV车的当前设备信息包括该候选AGV车的当前取货状态和当前位置。分配移除单元包括物料存放位置获取单元、送货位置修改单元和第二任务分配单元。物料存放位置获取单元用于若所述目标候选AGV车的当前取货状态为已取货状态,则根据所述目标候选AGV车的当前位置,确定与所述目标候选AGV车距离最近的物料存放位置。送货位置修改单元用于将所述目标候选AGV车的当前执行任务的送货位置修改为所述物料存放位置,以使所述目标候选AGV车运动至所述物料存放位置并存放物料。第二任务分配单元用于在确定所述目标候选AGV车在所述物料存放位置完成物料存放的情况下,将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,以利用调度次序最小的所述目标待调度AGV任务对所述目标候选AGV车的当前执行任务进行抢占。
在一个实施例中,分配移除单元还包括第二任务生成单元。该第二任务生成单元用于获取所述目标候选AGV车的当前执行任务的原送货位置,并以所述物料存放位置作为取货位置,以所述原送货位置作为送货位置重新生成待调度AGV任务。
在一个实施例中,所述目标待调度AGV任务为存在超时风险的待调度AGV任务,或者所述目标待调度AGV任务的任务标识包含在接收到的强制执行指令中。
在一个实施例中,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任意实施例所述AGV任务调度方法的步骤。
在一个实施例中,本申请还提供了一种AGV调度系统。该AGV调度系统包括一个或多个处理器,还包括存储器。该存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任意实施例中所述AGV任务调度方法的步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本文中,“一”、“一个”、“所述”、“该”和“其”也可以包括复数形式,除非上下文清楚指出另外的方式。多个是指至少两个的情况,如2个、3个、5个或8个等。“和/或”包括相关所列项目的任何及所有组合。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (17)
1.一种AGV任务调度方法,其特征在于,所述方法包括:
在当前调度周期中,根据当前时刻分别确定每个待调度AGV任务的可等待时长;每个所述待调度AGV任务的所述可等待时长为在该待调度AGV任务的任务完成时刻不晚于任务截止时刻时的最长等待时长;
根据各个所述可等待时长和各个所述待调度AGV任务的任务优先级,确定各个所述待调度AGV任务在所述当前调度周期内的调度次序;其中,调度次序与可等待时长正相关,且与任务优先级负相关;
若满足调度规则,则根据各个所述待调度AGV任务在所述当前调度周期内的调度次序进行任务调度并进入下一调度周期,否则,进入下一调度周期;
其中,所述若满足调度规则,则根据各个所述待调度AGV任务在所述当前调度周期内的调度次序进行任务调度的步骤,包括:
若存在至少一个目标待调度AGV任务且各台AGV车均处于执行任务状态,则分别获取每台所述AGV车的当前执行任务信息;所述目标待调度AGV任务为需要强制执行的待调度AGV任务;
根据各所述当前执行任务信息,在各台所述AGV车中确定能够被抢占任务的候选AGV车,并将各台所述候选AGV车的车辆标识添加到抢占AGV列表中;
根据所述抢占AGV列表中记录的各个车辆标识,分别获取每台所述候选AGV车的当前设备信息,并根据各所述当前设备信息确定目标候选AGV车,将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,且在分配后将所述目标候选AGV车的车辆标识从所述抢占AGV列表中移除,以及移除调度次序最小的所述目标待调度AGV任务,直至所述抢占AGV列表为空或移除全部所述目标待调度AGV任务,以利用所述目标待调度AGV任务对所述候选AGV车的当前执行任务进行抢占;每台所述候选AGV车的当前设备信息包括该候选AGV车的当前取货状态;
其中,所述将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车的步骤,包括:
若所述目标候选AGV车的当前取货状态为未取货状态,则获取所述目标候选AGV车的当前执行任务信息;根据所述目标候选AGV车的当前执行任务信息重新生成待调度AGV任务;将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,以利用调度次序最小的所述目标待调度AGV任务对所述目标候选AGV车的当前执行任务进行抢占。
2.根据权利要求1所述的AGV任务调度方法,其特征在于,所述根据当前时刻分别确定每个待调度AGV任务的可等待时长的步骤,包括:
针对每个所述待调度AGV任务,获取该待调度AGV任务的任务截止时刻和运行路径,并基于所述运行路径估计该待调度AGV任务的任务执行时长,根据所述当前时刻、该待调度AGV任务的任务截止时刻和该待调度AGV任务的任务执行时长,确定该待调度AGV任务的所述可等待时长。
3.根据权利要求2所述的AGV任务调度方法,其特征在于,所述根据所述当前时刻、该待调度AGV任务的任务截止时刻和该待调度AGV任务的任务执行时长,确定该待调度AGV任务的所述可等待时长的步骤,包括:
计算该待调度AGV任务的任务执行时长与预设的第一系数之间的乘积,所述第一系数大于1;
计算该待调度AGV任务的任务截止时刻、所述当前时刻和所述乘积之间的第一差值,并将所述第一差值作为该待调度AGV任务的所述可等待时长。
4.根据权利要求1所述的AGV任务调度方法,其特征在于,所述根据各个所述可等待时长和各个所述待调度AGV任务的任务优先级,确定各个所述待调度AGV任务在所述当前调度周期内的调度次序的步骤,包括:
根据所述当前时刻,分别确定每个所述待调度AGV任务的已等待时长,每个所述待调度AGV任务的已等待时长为所述当前时刻与该待调度AGV任务的任务下发时刻之间的间隔时长;
针对每个所述待调度AGV任务,根据该待调度AGV任务的所述已等待时长、该待调度AGV任务的所述可等待时长和该待调度AGV任务的任务优先级,确定该待调度AGV任务对应的权重系数;其中,权重系数与已等待时长和任务优先级成正相关,且与可等待时长成负相关;
按照权重系数从大到小的排序方式对各个所述待调度AGV任务进行排序,以得到各个所述待调度AGV任务在所述当前调度周期内的调度次序。
5.根据权利要求4所述的AGV任务调度方法,其特征在于,所述根据该待调度AGV任务的所述已等待时长、该待调度AGV任务的所述可等待时长和该待调度AGV任务的任务优先级,确定该待调度AGV任务对应的权重系数的步骤,包括:
基于该待调度AGV任务的所述已等待时长和该待调度AGV任务的所述可等待时长,确定该待调度AGV任务对应的时间系数;其中,时间系数与已等待时长正相关,且与可等待时长负相关;
采用以下表达式计算该待调度AGV任务对应的权重系数:
式中,Q为所述权重系数,K为预设的第二系数,为该待调度AGV任务对应的时间系数,P为该待调度AGV任务的任务优先级。
6.根据权利要求1所述的AGV任务调度方法,其特征在于,所述当前执行任务信息包括当前执行任务的任务截止时刻和任务执行时长;
所述根据各所述当前执行任务信息,在各台所述AGV车中确定能够被抢占任务的候选AGV车的步骤,包括:
针对每台所述AGV车,根据该AGV车的当前执行任务的任务截止时刻和任务执行时长,计算该AGV车的当前执行任务的剩余等待时长;
基于各个所述剩余等待时长,在各台所述AGV车中确定所述候选AGV车;其中,每一所述候选AGV车对应的剩余等待时长均大于预设时长阈值,所述预设时长阈值大于或等于0。
7.根据权利要求6所述的AGV任务调度方法,其特征在于,所述当前执行任务信息包括当前执行任务的抢占标识,所述抢占标识用于指示当前执行任务是否可被抢占;
所述基于各个所述剩余等待时长,在各台所述AGV车中确定所述候选AGV车的步骤,包括:
基于各个所述剩余等待时长和各个所述抢占标识,在各台所述AGV车中确定所述候选AGV车;其中,每一所述候选AGV车对应的剩余等待时长均大于所述预设时长阈值,且每一所述候选AGV车对应的抢占标识均指示该候选AGV车的当前执行任务可被抢占。
8.根据权利要求6或7所述的AGV任务调度方法,其特征在于,所述根据该AGV车的当前执行任务的任务截止时刻和任务执行时长,计算该AGV车的当前执行任务的剩余等待时长的步骤,包括:
计算该AGV车的当前执行任务的任务截止时刻、该AGV车的当前执行任务的任务执行时长、所述当前时刻和预设任务缓冲时长之间的第二差值,并将所述第二差值作为该AGV车的当前执行任务的剩余等待时长。
9.根据权利要求1所述的AGV任务调度方法,其特征在于,每台所述候选AGV车的当前设备信息包括该候选AGV车的当前执行任务的剩余等待时长;
所述根据各所述当前设备信息确定目标候选AGV车的步骤,包括:
将对应于最大剩余等待时长的候选AGV车作为所述目标候选AGV车。
10.根据权利要求1所述的AGV任务调度方法,其特征在于,每台所述候选AGV车的当前设备信息包括该候选AGV车的当前取货状态;
所述根据各所述当前设备信息确定目标候选AGV车的步骤,包括:
根据各台所述候选AGV车的当前取货状态,判断是否存在未取货AGV车,所述未取货AGV车为处于未取货状态的候选AGV车;
若存在至少一台所述未取货AGV车,则选取一台所述未取货AGV车作为所述目标候选AGV车。
11.根据权利要求10所述的AGV任务调度方法,其特征在于,每台所述候选AGV车的当前设备信息还包括该候选AGV车的当前位置;
所述根据各所述当前设备信息确定目标候选AGV车的步骤,还包括:
若不存在所述未取货AGV车,则获取调度次序最小的所述目标待调度AGV任务的目标取货位置;
根据所述目标取货位置和每台所述候选AGV车的当前位置,分别计算每台所述候选AGV车与所述目标取货位置之间的取货间距;
在各个所述取货间距中确定最小取货间距,并将所述最小取货间隔所对应的候选AGV车作为所述目标候选AGV车。
12.根据权利要求1至7、9至11任一项所述的AGV任务调度方法,其特征在于,每台所述候选AGV车的当前设备信息包括该候选AGV车的当前取货状态和当前位置;
所述将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车的步骤,包括:
若所述目标候选AGV车的当前取货状态为已取货状态,则根据所述目标候选AGV车的当前位置,确定与所述目标候选AGV车距离最近的物料存放位置;
将所述目标候选AGV车的当前执行任务的送货位置修改为所述物料存放位置,以使所述目标候选AGV车运动至所述物料存放位置并存放物料;
在确定所述目标候选AGV车在所述物料存放位置完成物料存放的情况下,将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,以利用调度次序最小的所述目标待调度AGV任务对所述目标候选AGV车的当前执行任务进行抢占。
13.根据权利要求12所述的AGV任务调度方法,其特征在于,所述将所述目标候选AGV车的当前执行任务的送货位置修改为所述物料存放位置,以使所述目标候选AGV车运动至所述物料存放位置并存放物料的步骤之前,还包括:
获取所述目标候选AGV车的当前执行任务的原送货位置,并以所述物料存放位置作为取货位置,以所述原送货位置作为送货位置重新生成待调度AGV任务。
14.根据权利要求1至7、9至11任一项所述的AGV任务调度方法,其特征在于,所述目标待调度AGV任务为存在超时风险的待调度AGV任务,或者所述目标待调度AGV任务的任务标识包含在接收到的强制执行指令中。
15.一种AGV任务调度装置,其特征在于,所述装置包括:
可等待时长确定模块,用于在当前调度周期中,根据当前时刻分别确定每个待调度AGV任务的可等待时长;每个所述待调度AGV任务的所述可等待时长为在该待调度AGV任务的任务完成时刻不晚于任务截止时刻时的最长等待时长;
调度次序确定模块,用于根据各个所述可等待时长和各个所述待调度AGV任务的任务优先级,确定各个所述待调度AGV任务在所述当前调度周期内的调度次序;其中,调度次序与可等待时长正相关,且与任务优先级负相关;
调度模块,用于在满足调度规则的情况下,根据各个所述待调度AGV任务在所述当前调度周期内的调度次序进行任务调度并进入下一调度周期,否则,进入下一调度周期;
其中,所述调度模块包括当前执行任务信息获取单元、候选AGV车确定单元和分配移除单元,所述分配移除单元包括任务信息获取单元、第一任务生成单元和第一任务分配单元;
所述当前执行任务信息获取单元用于若存在至少一个目标待调度AGV任务且各台AGV车均处于执行任务状态,则分别获取每台所述AGV车的当前执行任务信息;所述目标待调度AGV任务为需要强制执行的待调度AGV任务;
所述候选AGV车确定单元用于根据各所述当前执行任务信息,在各台所述AGV车中确定能够被抢占任务的候选AGV车,并将各台所述候选AGV车的车辆标识添加到抢占AGV列表中;
所述分配移除单元用于根据所述抢占AGV列表中记录的各个车辆标识,分别获取每台所述候选AGV车的当前设备信息,并根据各所述当前设备信息确定目标候选AGV车,将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,且在分配后将所述目标候选AGV车的车辆标识从所述抢占AGV列表中移除,以及移除调度次序最小的所述目标待调度AGV任务,直至所述抢占AGV列表为空或移除全部所述目标待调度AGV任务,以利用所述目标待调度AGV任务对所述候选AGV车的当前执行任务进行抢占;每台所述候选AGV车的当前设备信息包括该候选AGV车的当前取货状态;
所述任务信息获取单元用于若所述目标候选AGV车的当前取货状态为未取货状态,则获取所述目标候选AGV车的当前执行任务信息;
所述第一任务生成单元用于根据所述目标候选AGV车的当前执行任务信息重新生成待调度AGV任务;
所述第一任务分配单元用于将调度次序最小的所述目标待调度AGV任务分配给所述目标候选AGV车,以利用调度次序最小的所述目标待调度AGV任务对所述目标候选AGV车的当前执行任务进行抢占。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至14任一项所述AGV任务调度方法的步骤。
17.一种AGV调度系统,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如权利要求1至14任一项所述AGV任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310031282.0A CN115796553B (zh) | 2023-01-10 | 2023-01-10 | Agv任务调度方法、装置及agv调度系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310031282.0A CN115796553B (zh) | 2023-01-10 | 2023-01-10 | Agv任务调度方法、装置及agv调度系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115796553A CN115796553A (zh) | 2023-03-14 |
CN115796553B true CN115796553B (zh) | 2023-04-28 |
Family
ID=85428915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310031282.0A Active CN115796553B (zh) | 2023-01-10 | 2023-01-10 | Agv任务调度方法、装置及agv调度系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115796553B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118245200B (zh) * | 2024-05-30 | 2024-09-17 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 实时任务调度方法、装置、设备、存储介质和程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020119674A1 (zh) * | 2018-12-14 | 2020-06-18 | 拉扎斯网络科技(上海)有限公司 | 调度方法、调度装置、计算机可读存储介质和电子设备 |
CN114611896A (zh) * | 2022-02-28 | 2022-06-10 | 西安优艾智合机器人科技有限公司 | 机器人任务调度方法、计算机设备及存储介质 |
WO2022236816A1 (zh) * | 2021-05-14 | 2022-11-17 | 华为技术有限公司 | 一种任务分配方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4621073B2 (ja) * | 2005-05-23 | 2011-01-26 | 本田技研工業株式会社 | ロボット制御装置 |
CN104820906A (zh) * | 2015-05-21 | 2015-08-05 | 龙岩烟草工业有限责任公司 | 任务调度方法、装置以及系统 |
CN109176511B (zh) * | 2018-08-21 | 2022-03-04 | 北京云迹科技有限公司 | 适用于机器人调度的优先级判定处理方法及装置 |
CN110530369B (zh) * | 2019-08-22 | 2020-11-10 | 北京交通大学 | 基于时间窗的agv任务调度方法 |
-
2023
- 2023-01-10 CN CN202310031282.0A patent/CN115796553B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020119674A1 (zh) * | 2018-12-14 | 2020-06-18 | 拉扎斯网络科技(上海)有限公司 | 调度方法、调度装置、计算机可读存储介质和电子设备 |
WO2022236816A1 (zh) * | 2021-05-14 | 2022-11-17 | 华为技术有限公司 | 一种任务分配方法及装置 |
CN114611896A (zh) * | 2022-02-28 | 2022-06-10 | 西安优艾智合机器人科技有限公司 | 机器人任务调度方法、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115796553A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309993B (zh) | 一种自动导引运输车agv任务分配方法及装置 | |
CN109902975B (zh) | 调度方法、系统、装置以及计算机可读存储介质 | |
CN108921762B (zh) | 一种车辆混合调度方法、装置及设备 | |
CN112053068B (zh) | 一种递送机器人的云端调度方法、装置和服务器 | |
CN107544513B (zh) | 多载量自动引导车防死锁调度方法及装置 | |
CN115796553B (zh) | Agv任务调度方法、装置及agv调度系统 | |
CN113033971B (zh) | 一种服务器及递送机器人的运单调度方法、介质和装置 | |
WO2022135088A1 (zh) | 仓储机器人的控制方法、装置、设备及存储介质 | |
CN109961244A (zh) | 物品拣选方法及相关设备 | |
CN111079988A (zh) | 任务的执行方法、装置、存储介质及电子装置 | |
CN105824705B (zh) | 一种任务分配方法和电子设备 | |
CN112101831A (zh) | 货物的出库方法、装置、介质及电子设备 | |
CN114331075A (zh) | 堆场拖车调度方法、装置、设备及存储介质 | |
CN115146884B (zh) | 基于优先级的多agv协同搬运系统任务调度方法 | |
CN117724811A (zh) | 一种层次化的多核实时调度器 | |
CN112884261B (zh) | 一种agv调度方法和装置 | |
CN113253692B (zh) | Agv的巡游方法、装置、设备及可读存储介质 | |
CN112193952B (zh) | 一种电梯资源调度方法及装置 | |
CN115099666A (zh) | 一种机器人调度方法和装置、电子设备 | |
CN113177699B (zh) | 配送方法和配送系统 | |
CN113534783B (zh) | 仓库内运输车的分配方法、装置和电子设备 | |
CN114474052A (zh) | 控制机器人与货柜交互的方法、系统及机器人 | |
CN116542458B (zh) | 一种载具分配方法、系统和电子设备 | |
CN113919732B (zh) | 园区车辆调度方法、装置、设备以及存储介质 | |
CN112016802B (zh) | 设备调度方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |