AGV休息任务分配方法、装置、计算机设备和存储介质
技术领域
本申请涉及自动化物流技术领域,特别是涉及一种AGV休息任务分配方法、装置、计算机设备和存储介质。
背景技术
随着工业4.0时代的来临,自动导引车辆(Automated Guided Vehicle,AGV)在仓储物流得到广泛的应用,AGV往往是通过多机协作的方式,高效完成取货卸货任务。通常,当AGV完成一组任务空闲后,为了不影响其他AGV执行任务,不能停在任务点上原地休息,调度系统需将空闲的AGV按照设备类型调度到特定区域进行休息。AGV休息任务分配的结果,影响到下次任务的执行。因此,如何高效给多AGV分配休息任务是AGV调度系统急需解决的问题。
针对相关技术中,高效地给AGV分配休息任务的问题,目前尚未提出有效的解决方案。
发明内容
基于此,有必要针对上述技术问题,提供一种AGV休息任务分配方法、装置、系统、计算机设备和存储介质。
根据本发明的一个方面,提供了一种AGV休息任务分配方法,所述方法包括:
获取待分配AGV以及可用休息区;
计算从所述待分配AGV中的第一AGV当前位置到各个所述可用休息区的运行代价,根据运行代价筛选N个所述可用休息区作为备选休息区,其中,根据所述当前位置到所述可用休息区的运行路径以及所述可用休息区的优先级确定所述运行代价,N为大于零的整数;
获取各个所述待分配AGV的所述备选休息区,以及获取与所述备选休息区对应的所述运行代价,根据所述运行代价计算各种配对组合对应的总代价值,基于任务分配数量和总代价值确定所述待分配AGV与所述可用休息区的分配结果。
在其中一个实施例中,所述计算从第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个所述可用休息区作为备选休息区包括:
计算从第一AGV当前位置到各个可用休息区的距离代价,其中,所述距离代价根据所述第一AGV从当前位置到所述可用休息区的曼哈顿距离以及所述优先级获得;
根据所述距离代价筛选N个所述可用休息区作为备选休息区,计算所述备选休息区的所述运行代价。
在其中一个实施例中,根据运行代价筛选N个所述可用休息区作为备选休息区包括:
指示所述运行代价最小的所述可用休息区为预分配休息区,其余N-1个所述可用休息区为所述备选休息区;
在所述运行代价最小的所述可用休息区已被其他AGV设为预分配休息区的情况下,指示所述运行代价次小的所述可用休息区为预分配休息区,其余N-1个所述可用休息区为所述备选休息区。
在其中一个实施例中,所述获取待分配AGV以及可用休息区包括:
获取AGV休息任务干扰信息,将阻挡AGV对应的休息区分配给被阻挡AGV,将所述阻挡AGV加入待分配AGV。
在其中一个实施例中,所述计算从第一AGV当前位置到各个可用休息区的运行代价之后,所述方法包括:
将所述运行代价存入历史记录;
在计算所述第一AGV当前位置到第一可休息区的运行代价的情况下,查询所述历史记录,在所述历史记录中存在所述从第一AGV当前位置到第一可用休息区的第一运行代价的情况下,调用所述历史记录中的所述第一运行代价。
在其中一个实施例中,所述获取待分配AGV以及可用休息区之后,所述方法包括:
根据所述第一AGV的类型、所述当前位置和属性信息计算所述可用休息区对应于所述第一AGV的所述优先级。
根据本发明的另一个方面,还提供一种AGV休息任务分配装置,所述装置包括第一模块、第二模块和第三模块:
所述第一模块用于获取待分配AGV以及可用休息区,
所述第二模块用于计算从第一AGV当前位置到各个所述可用休息区的运行代价,根据运行代价筛选N个所述可用休息区作为备选休息区,其中,根据所述当前位置到所述可用休息区的运行路径以及所述可用休息区的优先级确定所述运行代价,所述第一AGV为所述待分配AGV,N为大于零的整数;
所述第二模块用于获取各个所述待分配AGV的所述备选休息区,以及获取与所述备选休息区对应的所述运行代价,根据所述运行代价计算各种配对组合对应的总代价值,基于任务分配数量和总代价值确定所述待分配AGV与所述可用休息区的分配结果。
在其中一个实施例中,所述第二模块还用于计算从第一AGV当前位置到各个可用休息区的距离代价,其中,所述距离代价根据所述第一AGV从当前位置到所述可用休息区的曼哈顿距离以及优先级获得;并且根据所述距离代价筛选N个所述可用休息区作为备选休息区,计算所述备选休息区的所述运行路径。
在其中一个实施例中,所述第二模块还用于指示所述运行代价最小的所述可用休息区为预分配休息区,其余N-1个所述可用休息区为所述备选休息区;在所述运行代价最小的所述可用休息区已被其他AGV设为预分配休息区的情况下,指示所述运行代价次小的所述可用休息区为预分配休息区,其余N-1个所述可用休息区为所述备选休息区。
根据本发明的另一个方面,还提供一种AGV休息任务分配系统,其特征在于,所述系统包括控制端和待分配AGV:
所述控制端获取待分配AGV以及可用休息区;
所述控制端计算从所述待分配AGV中的第一AGV当前位置到各个所述可用休息区的运行代价,根据运行代价筛选N个所述可用休息区作为备选休息区,其中,根据所述当前位置到所述可用休息区的运行路径以及所述可用休息区的优先级确定所述运行代价,N为大于零的整数;
所述控制端获取各个所述待分配AGV的所述备选休息区,以及获取与所述备选休息区对应的所述运行代价,根据所述计算各种配对组合对应的代价值,基于任务分配数量和总的运行代价确定所述待分配AGV与所述可用休息区的分配结果;
所述待分配AGV根据所述分配结果运行至与所述待分配AGV相对应的所述可用休息区。
根据本发明的另一个方面,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述AGV休息任务分配系统。
根据本发明的另一个方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述AGV休息任务分配方法。
上述AGV休息任务分配方法、装置、系统、计算机设备和存储介质,获取待分配AGV以及可用休息区,计算从待分配AGV中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,获取各个待分配AGV的所述备选休息区,以及获取与备选休息区对应的运行代价,根据运行代价计算各种配对组合对应的总代价值,基于任务分配数量和总代价值确定待分配AGV与可用休息区的分配结果,通过预筛选,减少了穷尽计算每个待分配AGV与可用休息区之间的运行代价以及每种待分配AGV和可用休息区之间的分配方法的总代价值的过程,从而提高了AGV休息任务分配的效率。
附图说明
图1是根据本发明一个实施例中AGV休息任务分配方法的应用场景图;
图2是根据本发明一个实施例中AGV休息任务分配方法的流程图一;
图3是根据本发明一个实施例中AGV休息任务分配方法的流程图二;
图4是根据本发明一个实施例中的AGV休息任务干扰的示意图一;
图5是根据本发明一个实施例中的AGV休息任务干扰的示意图二;
图6是根据本发明一个具体实施例中的AGV任务分配的流程图;
图7是根据本发明一个具体实施例中的AGV休息任务分配方法的流程图;
图8是根据本发明一个实施例中AGV休息任务分配装置的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1是根据本发明一个实施例中AGV休息任务分配方法的应用场景图,本申请提供的AGV休息任务分配方法,可以应用于如图1所示的应用环境中。其中,AGV102通过网络与控制端104通过网络进行通信。控制端104获取待分配AGV102以及可用休息区,计算从待分配AGV102中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据运行代价计算各种配对组合对应的总代价值,基于任务分配数量和总代价值确定待分配AGV与可用休息区的分配结果。其中,控制端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
根据本发明的一个方面,图2是根据本发明一个实施例中AGV休息任务分配方法的流程图一,如图2所示,提供了一种AGV休息任务分配方法,以该方法应用于图1中的控制端104为例进行说明,包括以下步骤:
步骤S210,获取待分配AGV以及可用休息区。获取所有AGV的状态以及位置信息,根据预设的筛选条件,获取待分配休息任务的AGV,同时,根据调度系统中休息区的占用情况,获取可用休息区的信息。例如,在AGV完成用户指定的任务后,便将该AGV视为待分配AGV。可选地,在AGV调度系统的整体任务分配系统中,预设待分配休息任务的AGV的条件,例如,在AGV完成用户指定任务之后,检查AGV的电量,在电量低于预设的电量阈值时,派给AGV充电任务而不是休息任务,此外,校验待分配任务表,若待分配任务表中的任务有指定AGV,被指定的AGV也不会接受休息任务。根据上述预设的筛选条件,获取到最终的休息任务待分配AGV。对于可用休息区,则可以根据地理位置将地图分隔为若干子区域,只有在待分配AGV和休息区在同一个子区域中,才将该子区域中的休息区作为可用休息区。
步骤S220,计算从待分配AGV中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区。AGV的运行代价是由AGV从当前所在位置运行到对应可用休息区的运行路径和与该可用休息区对应的优先级共同决定的,需要说明的是,上述优先级是可用休息区对应一个待分配AGV的优先级,同一个可用休息区对应不同的待分配AGV可以处于不同的优先级。N为大于零的整数,N可以设置为预设的固定数值,也可以设置为根据待分配AGV的数量变化的动态数值。例如,N可以固定为10,也可以设置为待分配AGV数量的一半。
在一个实施例中,图3是根据本发明一个实施例中AGV休息任务分配方法的流程图二,如图3所示,计算从第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区包括:
步骤S310,计算从第一AGV当前位置到各个可用休息区的距离代价。距离代价根据第一AGV从当前位置到可用休息区的曼哈顿距离以及优先级确定;通过公式1计算AGV当前点到待分配休息区表中每个休息区点的曼哈顿距离
lrn=|xr-xn|+|yr-yn| 公式1
其中xr、yr为AGV当前位置的横纵坐标,xn、yn为休息区点的横纵坐标,AGV到各个可用休息区的距离代价可以通过公式2计算
hrn=k*lrn 公式2
其中,k为可用休息区的优先级对应的权值。
步骤S320,根据距离代价筛选N个可用休息区作为备选休息区,计算备选休息区的运行代价。
在步骤S310至步骤S320中,由于运行代价是AGV实际的运行路径与优先级确定的,而距离代价的计算只需要AGV当前位置以及可用休息区的横纵坐标,先通过距离代价筛选备选休息区,再计算备选休息区的运行代价,在待分配AGV以及可用休息区的数量较大的情况下将大大节省计算资源,使得休息任务分配的效率进一步提升。
在一个实施例中,根据运行代价筛选N个可用休息区作为备选休息区包括:指示运行代价最小的可用休息区为预分配休息区,其余N-1个可用休息区为备选休息区;在运行代价最小的可用休息区已被其他AGV设为预分配休息区的情况下,指示运行代价次小的可用休息区为预分配休息区,其余N-1个可用休息区为备选休息区。在本实施例中,给各个待分配AGV分配备选休息区的时候,将备选休息区分为预分配休息区和备选休息区,由于每个可用休息区中只能停入一个AGV,因此,如果所有备选休息区均无差别地分配给AGV,则最后进行配对的时候,仍然需要计算的大量的配对方式,本实施例则考虑通过设置预分配休息区,在一个可用休息区被一个AGV视为预分配休息区的时候,之后进行备选休息区计算的过程中,AGV不会在将该可用休息区排除在外,在后续的全局配对过程中,配对结果的可执行度将大大提升,也进一步提升了后续的计算速度以及休息任务分配效率。
步骤S230,获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据运行代价计算各种配对组合对应的总代价值,基于任务分配数量和总代价值确定待分配AGV与可用休息区的分配结果。在步骤S230中,可以根据每个待分配AGV以及每个AGV的备选休息区及其对应的运行代价值,建立代价矩阵,表1是根据本发明一个实施例中的待分配AGV运行代价矩阵,如表1所示,表中的数值表示每个AGV从当前位置运行到每个休息区点的代价值,将可用的休息区表中非预分配及备选休息区的点的运行代价置为无穷大∞。
表1
基于每个AGV只能有一个休息区,每个可用休息区也只能分配给一台AGV的原则,通过计算可以得到每一种分配组合对应的总代价值,分配组合存在AGV没有分配到休息区的可能性;再基于尽量多的任务分配数量,即尽可能多的AGV分配到休息区,且总代价值最小的方案,作为本轮最终的休息任务分配结果。
上述AGV休息任务分配方法,通过获取待分配AGV以及可用休息区,计算从待分配AGV中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据计算各种配对组合对应的代价值,基于任务分配数量和总的运行代价确定待分配AGV与可用休息区的分配结果,通过预筛选,减少了计算每个待分配AGV与可用休息区之间的运行代价以及每种待分配AGV和可用休息区之间的分配方法的总的运行代价,从而提高了AGV休息任务分配的效率。
在一个实施例中,获取待分配AGV以及可用休息区包括:获取AGV休息任务干扰信息,将阻挡AGV对应的休息区分配给被阻挡AGV,将阻挡AGV加入待分配AGV。休息任务与取货任务的一个很大的区别即在于,由于休息任务中的AGV到达休息区后在一段时间内就不会再移动,因此实际AGV执行休息任务时,由于每台AGV完成任务的时间可能存在不一致的情况,导致AGV之间休息任务相互干扰,休息任务难以完成。图4是根据本发明一个实施例中的AGV休息任务干扰的示意图一,图5是根据本发明一个实施例中的AGV休息任务干扰的示意图二,如图4所示,节点1、2为休息区,A车当前位于节点6,B车当前位于节点7,在上一轮休息任务分配中两车均已分配休息区点,A车分配节点2休息,B车分配节点1休息。如图5所示,在执行休息任务中,A车已率先到达节点2休息,B车位于节点3,想前往节点1休息,此时B车被A车阻挡,触发了A车和B车的挪车,即A、B两车重新分配休息任务,B车重新分配A车所在的休息区点,而A车加入待分配AGV表,待统一分配。但是对于休息区,由于在A获取新的任务离开节点2之前,通过节点2到达节点1执行休息任务是无法实现的,因此再次之前节点1不会再加入到可用休息区。
本实施例在休息任务分配时,考虑休息任务的干扰信息,即在任务分配时如果存在相互干扰的AGV,则对会对存在干扰的AGV重新分配休息区点,有效的避免了干扰的持续,确保AGV能够完成休息任务。
在一个实施例中,计算从第一AGV当前位置到各个可用休息区的运行代价之后,上述方法包括:将运行代价存入历史记录;在计算第一AGV当前位置到第一可休息区的运行代价的情况下,查询历史记录,在历史记录中存在从第一AGV当前位置到第一可用休息区的第一运行代价的情况下,调用历史记录中的第一运行代价。在本实施例中,在计算运行代价前,通过与分配结果的历史记录进行比较,如果历史分配过程中已计算过该AGV到该休息区点的运行代价,则不计算直接采用历史值。可选地,对于同一类型的AGV共享同一个历史值,并不要求是同一台AGV,而是相同类型的AGV从同一个位置到某个休息区的运行代价均相同,因此可以共享同一个历史值。减小了运行代价的重复计算,提高了休息任务分配的效率。
在一个实施例中,获取待分配AGV以及可用休息区之后,上述方法包括:根据第一AGV的类型、当前位置和属性信息计算可用休息区对应于第一AGV的优先级。在本实施例中,根据待分配的AGV的类型、位置、属性信息例如AGV的优先级信息,对可用休息区的优先级进行排列和确定。优先考虑设备类型和区域位置,其次考虑AGV的优先级,若在与AGV位于同一区域存在满足类型要求的休息区,再按照优先级信息,依次选取高到低优先级存于待分配休息区表;若同一区域没有满足类型要求的休息区,则从其他区域按照优先级,依次选取从高到低优先级存于待分配休息区表。最后得到的待分配休息区表,就是对应于该AGV的,优先级从高到低排列的各个待分配休息区,相应地,可以设置从高到低的权值。在本实施例中,根据AGV的类型、当前位置和属性信息计算AGV的可用休息区的优先级,使得优先级的排列和权值更加准确,从而使得任务分配的结果更加准确。
在一个具体的实施例中,AGV任务分配流程以及休息任务分配的流程如下:
一、AGV任务分配流程:图6是根据本发明一个具体实施例中的AGV任务分配的流程图,如图6所示,AGV任务分配流程包括:
步骤S610,获取所有AGV的状态信息、位置信息以及所有待分配的任务信息;将其存于待分配AGV表及待分配任务表中。
步骤SS620,筛选出满足分配条件的AGV。根据AGV的状态及位置信息,对表中不满足分配条件,例如处于空闲状态、不位于地图内的AGV进行滤除。
步骤S630,判断筛选之后是否有需要分配的AGV;如果是,放入待分配AGV表中。
步骤S640,判断表中的AGV是否需要充电。对表中AGV的电量进行校验,若电量小于设定的阈值,则将其从表中滤除,并分配充电任务。
步骤S650,筛选出满足分配条件的待分配任务信息。
步骤S660,若表中仍有待分配的AGV,则对待分配任务表中的任务进行校验,滤除终点信息有误的任务,并根据任务是否指定设备对其进行分类,得到指定设备任务表和不指定设备任务表。对指定设备任务表中的任务,将其分配给所指定的设备,并在待分配AGV表中剔除成功分配的AGV。如果指定的设备不满足要求,则等待下个分配周期再重新分配。
步骤S670,对于不指定设备的任务,判断是否有需要分配的任务。若没有,进入步骤S692,分配休息任务。
步骤S680,如果有需要分配的任务,则根据任务的要求如设备类型、优先级,从待分配的AGV表中,筛选得到满足要求的设备,并求得设备完成对应任务的运行代价。基于总的运行代价最小原则,将不指定设备任务表中的任务择优分配给待分配AGV表中设备,并将成功分配任务的AGV从表中剔除。
步骤S690,判断经过任务分配后,待分配AGV表中是否仍有未分配的AGV。若有则进入步骤S692,分配休息任务。
二、AGV休息任务分配:图7是根据本发明一个具体实施例中的AGV休息任务分配方法的流程图,如图7所示,该AGV休息任务分配方法包括:
步骤S710,获取系统中所有AGV状态、位置信息,筛选出空闲且位于地图内的AGV,将其存于待分配AGV表,同时再根据本轮的任务分配结果,将已分配其他任务的AGV中从待分配AGV表中滤除。
步骤S720,获取系统中AGV休息任务干扰信息。给被阻挡AGV分配阻挡其运行的AGV所在的休息区点,将阻挡AGV加入待分配AGV表中,重新分配休息区。
步骤S730,根据休息区的使用情况,筛选出未占用的休息区。从系统中获取所有的休息区点信息,并将其存于可用休息区表中,从已分配任务中,得到休息区点的使用情况,并将相关的休息区点从可用休息区表中剔除,从而得到本次休息区分配可用的休息区表。
步骤S740,判断待分配AGV表中的各个AGV是否有预分配的休息区,若有,直接根据预分配内容指定休息区。
步骤S750,若没有,对每个待分配AGV,根据AGV的类型、位置、优先级信息,筛选得到可用休息区并计算各个可用休息区的距离代价。优先考虑设备类型和区域位置,其次考虑优先级,若在与AGV位于同一区域存在满足类型要求的休息区,再按照优先级信息,依次选取高到低优先级存于待分配休息区表,若同一区域没有满足类型要求的休息区,则从其他区域按照优先级,依次选取从高到低优先级存于待分配休息区表。再通过公式1计算从AGV当前点到待分配休息区表中每个休息区点的曼哈顿距离,再根据休息区点的优先级,通过公式2计算得到AGV到每个休息区点的距离代价。
步骤S760,对距离代价进行排序,根据距离代价排序结果,计算前N个休息区的运行代价。其中,AGV的运行代价是由AGV从当前所在位置运行到对应休息区点的运行路径和其对应的优先级共同决定的。如果该类型AGV之前已计算过当前点到休息区点的运行代价,则直接取历史值。若未计算过,则规划从AGV当前点到休息区点,计算得到对应的运行代价。
步骤S770,选取运行代价最小的休息区点,判断其是否已被其他AGV选为预分配的休息区点,若已被其他AGV选为预分配休息区点,则选取次优的运行代价作为预分配休息区点,若未被分配,则将其作为当前AGV预分配的休息区点,其余的N-1个点作为该AGV的备选休息区点。通过步骤S750到步骤S770得到每个待分配AGV表中每个AGV的预分配休息区点,备选休息区点,及其对应的运行代价值,将可用的休息区表中非预分配及备选休息区的点的运行代价置为无穷大∞,构成的代价矩阵。
步骤S780,每个AGV有且只能分配一个休息区点,每个休息区点也只能分配给一台AGV。通过计算可以得到每一种分配组合对应的总的代价值,基于尽量多的分配且总的运行代价最小的原则,可以得到当前最优的分配组合,从而确定每个AGV分配休息区的结果。
上述AGV休息任务分配方法,在休息任务分配时,考虑休息任务的干扰信息,即在任务分配时如果存在相互干扰的AGV,则对会对存在干扰的AGV重新分配休息区点,有效的避免了干扰的持续,确保AGV能够完成休息任务。在计算运行代价前进行了预处理,通过预处理尽可能的滤除一些不满足要求的休息区点,尽量减少不必要的运行代价的计算。在计算代价前,通过与历史分配结果进行比较,如果历史分配过程中已计算过到该休息区点的运行代价,则不计算直接采用历史值。同时在确定最佳的配对关系时,采用分支定界算法,减小搜索次数,优化搜索效率。通过上述方法,有效的解决了休息任务分配耗时的问题,满足了休息任务分配对实时性的要求。
应该理解的是,虽然图2-7中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,图8是根据本发明一个实施例中AGV休息任务分配装置的示意图,如图8所示,提供了一种AGV休息任务分配装置80,包括第一模块82、第二模块84和第三模块86:
第一模块82用于获取待分配AGV以及可用休息区;
第二模块84用于计算从第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,其中,根据当前位置到可用休息区的运行路径以及可用休息区的优先级确定运行代价,第一AGV为待分配AGV,N为大于零的整数;
第三模块86用获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据运行代价计算各种配对组合对应的总代价值,基于任务分配数量和总代价值确定待分配AGV与可用休息区的分配结果。
在一个实施例中,第二模块84还用于计算从第一AGV当前位置到各个可用休息区的距离代价,其中,距离代价根据第一AGV从当前位置到可用休息区的曼哈顿距离以及优先级获得;并且根据距离代价筛选N个可用休息区作为备选休息区,计算备选休息区的运行代价。
在一个实施例中,第二模块84还用于指示运行代价最小的可用休息区为预分配休息区,其余N-1个可用休息区为备选休息区;在运行代价最小的可用休息区已被其他AGV设为预分配休息区的情况下,指示运行代价次小的可用休息区为预分配休息区,其余N-1个可用休息区为备选休息区。
根据本发明的另一个方面,还提供一种AGV休息任务分配系统,系统包括控制端和待分配AGV:
控制端获取待分配AGV以及可用休息区,
控制端计算从待分配AGV中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,其中,根据当前位置到可用休息区的运行路径以及可用休息区的优先级确定运行代价,N为大于零的整数;
控制端获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据计算各种配对组合对应的代价值,基于任务分配数量和总的运行代价确定待分配AGV与可用休息区的分配结果;
待分配AGV根据分配结果运行至与待分配AGV相对应的可用休息区。
关于AGV休息任务分配装置和系统的具体限定可以参见上文中对于AGV休息任务分配方法的限定,在此不再赘述。上述AGV休息任务分配装置和系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述AGV休息任务分配装置、系统,获取待分配AGV以及可用休息区,计算从待分配AGV中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据计算各种配对组合对应的代价值,基于任务分配数量和总的运行代价确定待分配AGV与可用休息区的分配结果,通过预筛选,减少了计算每个待分配AGV与可用休息区之间的运行代价以及每种待分配AGV和可用休息区之间的分配方法的总的运行代价,从而提高了AGV休息任务分配的效率。
根据本发明的另一个方面,提供了一种计算机设备,该计算机设备可以是服务器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储AGV以及休息区数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种AGV休息任务分配方法。
上述AGV休息任务分配计算机设备,获取待分配AGV以及可用休息区,计算从待分配AGV中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据计算各种配对组合对应的代价值,基于任务分配数量和总的运行代价确定待分配AGV与可用休息区的分配结果,通过预筛选,减少了计算每个待分配AGV与可用休息区之间的运行代价以及每种待分配AGV和可用休息区之间的分配方法的总的运行代价,从而提高了AGV休息任务分配的效率。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述AGV休息任务分配方法
上述AGV休息任务分配计算机可读存储介质,获取待分配AGV以及可用休息区,计算从待分配AGV中的第一AGV当前位置到各个可用休息区的运行代价,根据运行代价筛选N个可用休息区作为备选休息区,获取各个待分配AGV的备选休息区,以及获取与备选休息区对应的运行代价,根据计算各种配对组合对应的代价值,基于任务分配数量和总的运行代价确定待分配AGV与可用休息区的分配结果,通过预筛选,减少了计算每个待分配AGV与可用休息区之间的运行代价以及每种待分配AGV和可用休息区之间的分配方法的总的运行代价,从而提高了AGV休息任务分配的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。