CN115237137A - 一种多agv调度与协同路径规划方法和装置 - Google Patents
一种多agv调度与协同路径规划方法和装置 Download PDFInfo
- Publication number
- CN115237137A CN115237137A CN202210944129.2A CN202210944129A CN115237137A CN 115237137 A CN115237137 A CN 115237137A CN 202210944129 A CN202210944129 A CN 202210944129A CN 115237137 A CN115237137 A CN 115237137A
- Authority
- CN
- China
- Prior art keywords
- agv
- goods
- node
- optimal
- path
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 54
- 230000003068 static effect Effects 0.000 claims description 26
- 239000006173 Good's buffer Substances 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 4
- 238000007796 conventional method Methods 0.000 abstract 1
- 230000009191 jumping Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 10
- 230000006872 improvement Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002035 prolonged effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229910052731 fluorine Inorganic materials 0.000 description 1
- 125000001153 fluoro group Chemical group F* 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0219—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Warehouses Or Storage Devices (AREA)
Abstract
本发明涉及一种多AGV调度与协同路径规划方法和装置,属于路径规划技术领域,解决现有方法对单个功能的优化已经很难满足多AGV系统的实际需求的问题。方法包括:判断当前时间ts处的待运送的货物集合中是否存在包裹且所述空闲AGV集合中是否存在空闲AGV;当存在包裹且存在空闲AGV时,调用AGV均衡调用算法,获取空闲AGV集合中可调度的最优AGV以由最优AGV完成对待运送的货物集合中货物task[m]的运送任务;调用AGV协同路径规划算法以基于仓储环境的栅格地图针对最优AGV规划无冲突的最优路径,其中,最优AGV基于最优路径完成所述货物task[m]的运送任务并返回AGV停泊区。降低AGV数量增加对系统整体运行效率的影响。
Description
技术领域
本发明涉及路径规划技术领域,尤其涉及一种多AGV调度与协同路径规划方法和装置。
背景技术
近年来,受土地资源逐渐短缺、人力成本急剧上升等现实因素影响,传统物流行业的发展受到严重限制,而伴随着物联网、人工智能等技术的快速发展,智能化的技术手段和设备不断推进物流行业传统模式的升级优化,特别是在智能仓储领域,无人化、智能化、高效化逐渐成为当代智能仓储的发展方向。自动导引小车(Auto Guide Vehicle,AGV)作为智能仓储中的运动单元,是物流运输环节的核心部件,通过部署一定数量的AGV,凭借其高效、安全、高度自动化等性能,可完全代替仓储环节的人工搬运,有效改善传统仓库中人工搬运作业模式效率低下、人力成本高等问题,因此,多AGV系统已逐渐发展为当下智能仓储领域研究的一个热点。
AGV调度和路径规划是多AGV系统的两个核心功能。在货物动态到达以及AGV动态变化的环境中,AGV调度可以为货物匹配合适的AGV,提升AGV的使用效率;路径规划可以为AGV自主规划出一条无冲突路径并将货物自主运输至指定货架位置处,以实现货物的存储目的。以前仓储环境中AGV数量较少情况下,研究人员偏向通过优化AGV路径以提升系统运作效率,但是随着智能仓储中AGV数量的增加,对单个功能的优化已经很难满足多AGV系统的实际需求,需对调度和规划展开协同研究,以提高多AGV系统的整体协作效率。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种多AGV调度与协同路径规划方法和装置,用以解决现有方法对单个功能的优化已经很难满足多AGV系统的实际需求的问题。
一方面,本发明实施例提供了一种多AGV调度与协同路径规划方法,包括:判断当前时间ts处的待运送的货物集合中是否存在包裹且所述空闲AGV集合中是否存在空闲AGV;当所述待运送的货物集合中存在包裹且所述空闲AGV集合中存在空闲AGV时,调用AGV均衡调用算法,获取所述空闲AGV集合中可调度的最优AGV以由所述最优AGV完成对所述待运送的货物集合中货物task[m]的运送任务,其中,所述最优AGV获得所述货物task[m]的起始位置和目标位置信息,同时更新所述当前时间ts处的待运送的货物集合和空闲AGV集合;以及调用所述AGV协同路径规划算法以基于仓储环境的栅格地图针对所述最优AGV规划无冲突的最优路径,其中,所述最优AGV基于所述最优路径完成所述货物task[m]的运送任务并返回AGV停泊区。
上述技术方案的有益效果如下:利用AGV均衡调用算法和AGV协同路径规划算法为动态到达的货物指派AGV以及为AGV规划路径,以完成货物在货架上的存储任务。通过采用集中决策和分散决策相结合的方式,可有效降低AGV数量增加对系统整体运行效率的影响。
基于上述方法的进一步改进,在调用所述AGV协同路径规划算法之后还包括:判断所述当前时间ts是否大于等于所述结束时间te,其中,若所述当前时间ts大于等于所述结束时间te,生成系统运行时间内的所述最优AGV的全部最优路径;否则更新所述当前时间ts,返回至判断所述待运送的货物集合中是否存在包裹且所述空闲AGV集合中是否存在空闲AGV的步骤。
基于上述方法的进一步改进,在判断当前时间ts处的待运送的货物集合中是否存在包裹且所述空闲AGV集合中是否存在空闲AGV之前还包括:对仓储环境进行建模,以通过以下模型自动生成面向所述仓储环境的多AGV系统的栅格地图:
2xi+yp=W,
Rxj+yq=H,
其中,yp>xi,0<i<W-2,p∪[0,w-1],yq>xj,0<j<H-R,q∪[0,H-1],H表示栅格地图长度;W表示栅格地图宽度;R表示横向单排货架数量;xi表示第i个竖排货架;xj表示第j个横排货架;yp表示第p个竖排过道;yq表示第q个横排过道,所述仓储环境包括货物缓存区、AGV停泊区、货架以及通道,其中,所述栅格地图中的货物缓存区是对货物到达后进行缓存的区域,AGV在所述货物缓存区中取到货物后送至指定的货架位置处;所述栅格地图中的AGV停泊区是AGV的集中停泊区域,停泊在所述AGV停泊区中的AGV接收系统的调度任务,从所述AGV停泊区行驶至所述货物缓存区;所述栅格地图中的货架是存放货物的双排多层堆垛架,在AGV到达指定货架位置时,货架上的提升系统将货物送至指定层的位置处;以及所述栅格地图中的通道包括运行通道和退出通道,其中,所述运行通道供AGV在上、下、左、右四个方向上行驶,所述退出通道设置在所述栅格地图侧边,用于使运送完货物的AGV退出。
基于上述方法的进一步改进,所述AGV均衡调用算法包括:当判断所述空闲AGV集合中的空闲AGV数量大于1时,从所述空闲AGV集合中选择使用次数最少的AGV作为所述最优AGV并将所述货物task[m]的运送任务分配给所述最优AGV;当所述使用次数最少的AGV的数量大于1时,将多个使用次数最少的AGV中的任一个作为所述最优AGV并将所述货物task[m]的运送任务分配给所述最优AGV;以及更新所述货物task[m]的状态并更新所述最优AGV的使用次数和状态。
基于上述方法的进一步改进,所述AGV协同路径规划算法包括:根据所述货物task[m]的起始位置和目标位置信息,并且利用预约表中不同时刻下所述栅格地图中各节点的占用信息,充分规避静态障碍和动态障碍的前提下,针对所述最优AGV规划无冲突的合理路径,其中,所述预约表存储有多个节点((x,y),avg[n]),其中,(x,y)为节点坐标,avg[n]为在节点坐标(x,y)处的占用的AGV。
基于上述方法的进一步改进,所述AGV协同路径规划算法包括:定义并初始化用于存储AGV已搜寻到的路径节点集合PATH_LIST、待处理的节点集合OPEN_LIST、处理完成的节点集合CLOSE_LIST、用于获取全局信息的预约表集合RESERVE_TABLE以及用于扩展的中心节点CNODE;将所述起始位置放入所述待处理的节点集合OPEN_LIST,并判断所述待处理的节点集合OPEN_LIST是否为空,其中,当所述待处理的节点集合OPEN_LIST为空时,不存在可通行路径,结束操作;当所述待处理的节点集合OPEN_LIST不为空时,将所述起始位置放入处理完成的节点集合CLOSE_LIST中,同时删除所述待处理的节点集合OPEN_LIST中的起始位置,并将所述中心节点CNODE设置为所述起始位置;判断在所述当前时间ts下在预约表集合RESERVE_TABLE中是否存在预约表RESERVE_TABLE[ts];当存在所述预约表RESERVE_TABLE[ts]时,判断在预约表RESERVE_TABLE[ts]的中心节点CNODE处是否存在AGV占用,若存在AGV占用,则所述最优AGV在所述起始位置停车等待,等待时长为tw,更新所述当前时间,其中,所述当前时间为所述开始时间与所述等待时长之和;当不存在所述预约表RESERVE_TABLE[ts]时,重新创建预约表RESERVE_TABLE[ts];当中心节点CNODE处不存在AGV占用时或者在重新创建预约表RESERVE_TABLE[ts]之后,在所述中心节点CNODE处添加所述最优AGV,并将中心节点CNODE放入所述AGV已搜寻到的路径节点集合PATH_LIST中;判断所述中心节点CNODE是否为所述AGV停泊区中的节点,其中,当是所述AGV停泊区中的节点时,所述最优AGV的运送任务已结束,所述最优AGV状态更新为空闲状态,并输出所述最优AGV的完整运行路径;当不是所述AGV停泊区中的节点时,对所述中心节点CNODE进行扩展以获取邻居节点集合neighbors;采用静态障碍判断策略判断邻居节点集合neighbors中的每个邻居节点是否为静态障碍物;以及采用动态障碍判断策略判断所述中心节点CNODE是否为动态障碍物。
基于上述方法的进一步改进,采用静态障碍判断策略对邻居节点集合neighbors进行判断包括:判断邻居节点neighbors[d]是否为所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点,当所述邻居节点neighbors[d]是所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点,所述邻居节点的序号d自加1;当所述邻居节点neighbors[d]不是所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点时,将所述邻居节点neighbors[d]存入所述待处理的节点集合OPEN_LIST中;若邻居节点集合neighbors中所有节点未搜索完成,所述邻居节点的序号d自加1,重新执行判断邻居节点neighbors[d]是否为所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点的步骤;以及若邻居节点集合neighbors中所有节点已搜索完成,则获取所述待处理的节点集合OPEN_LIST中代价最小的节点,并赋值给所述中心节点CNODE,同时在所述待处理的节点集合OPEN_LIST中删除所述中心节点CNODE,而在所述处理完成的节点集合CLOSE_LIST中添加所述中心节点CNODE。
基于上述方法的进一步改进,采用动态障碍判断策略对所述中心节点CNODE进行判断包括:更新当前时间ts=ts+tp,判断在所述当前时间ts下是否存在所述预约表RESERVE_TABLE[ts],其中,tp为AGV在单个节点间的运行时长;当存在所述预约表RESERVE_TABLE[ts]时,判断所述预约表RESERVE_TABLE[ts]的所述中心节点CNODE处是否存在AGV占用;当存在AGV占用时,计算所述中心节点CNODE所在的货架通道的剩余容量h',若h'大于零,则所述最优AGV停车等待,等待时长为已占用AGV的卸货时长tq,更新所述当前时间ts=ts+tq,返回至所述AGV协同路径规划算法中的判断在所述当前时间ts下在预约表集合RESERVE_TABLE中是否存在预约表RESERVE_TABLE[ts]的步骤;若所述剩余容量h'小于零,执行路径重新规划,在AGV已搜寻到的路径节点集合PATH_LIST中定位至中心节点CNODE在所述栅格地图中的最近交叉点位置(xm,p,ym,p),设置AGV已搜寻到的路径节点集合PATH_LIST中的(xm,p+1,ym,p+1)为静态障碍,并删除AGV已搜寻到的路径节点集合PATH_LIST中(xm,p,ym,p)至(xm,d,ym,d)间的路径节点,将所述中心节点CNODE更新为最近交叉点位置(xm,p,ym,p),并返回至所述AGV协同路径规划算法中的判断所述中心节点CNODE是否为所述AGV停泊区中的节点的步骤。
基于上述方法的进一步改进,所述预约表是与所述栅格地图的尺寸和布局相同的表格,在系统运行时间区间内,以系统运行时间间隔为依据建立多个预约表,以提供实时的系统全局状态信息。
另一方面,本发明实施例提供了一种多AGV调度与协同路径规划装置,包括:任务判断模块,用于判断当前时间ts处所述待运送的货物集合中是否存在包裹且所述空闲AGV集合中是否存在空闲AGV;AGV均衡模块,用于当所述待运送的货物集合中存在包裹且所述空闲AGV集合中存在空闲AGV时,调用AGV均衡调用算法,获取所述空闲AGV集合中可调度的最优AGV以由所述最优AGV完成对所述待运送的货物集合中货物task[m]的运送任务,其中,所述最优AGV获得所述货物task[m]的起始位置和目标位置信息,同时更新所述当前时间ts处的待运送的货物集合和空闲AGV集合;以及协同路径规划模块,用于调用所述AGV协同路径规划算法以基于仓储环境的栅格地图针对所述最优AGV规划无冲突的最优路径,其中,所述最优AGV基于所述最优路径完成所述货物task[m]的运送任务并返回AGV停泊区。
与现有技术相比,本发明至少可实现如下有益效果之一:
1、利用AGV均衡调用算法和AGV协同路径规划算法为动态到达的货物指派AGV以及为AGV规划路径,以完成货物在货架上的存储任务。通过采用集中决策和分散决策相结合的方式,可有效降低AGV数量增加对系统整体运行效率的影响。
2、在为随机到达的货物指派AGV的调度阶段,通过采用AGV均衡调用算法可以保证AGV的均衡使用,有效提升系统的整体寿命。在AGV的分散决策过程中,在预约表的全局信息指导下,各AGV可快速规划出最优路径,并且协同路径规划算法可解决系统运行过程中的发生的AGV冲突,提高AGV的搜索效率,可有效降低系统整体拥堵情况。
3、将系统运行过程中的静态障碍和动态障碍作为对AGV进行路径规划的约束条件,可在均衡使用AGV的前提下,快速规划出多个AGV的无碰撞最优路径。
4、利用预约表信息为AGV提供系统状态信息,根据系统整体运行情况以决定AGV运送货物的出发时间;在AGV路径规划阶段,每个AGV独自决策运行路径,通过预约表提供的全局信息,应对运行过程中的静态障碍和动态障碍,并通过设计的动态障碍处理策略快速反应。通过集中决策和分散决策的方式进行多AGV系统的协同优化,有利于提高AGV系统的整体运行效率。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为根据本发明实施例的多AGV调度与协同路径规划方法的流程图;
图2为根据本发明实施例的多AGV调度与协同路径规划方法的整体流程图;
图3为根据本发明实施例的AGV均衡调用算法流程图;
图4为根据本发明实施例的AGV协同路径规划算法流程图;
图5为根据本发明实施例的AGV运行方向,为上下左右四个方向;
图6为根据本发明实施例的自动生成的30×30仓储栅格地图;
图7为根据本发明实施例的本发明中AGV的3类冲突,分别是相向冲突、追击冲突和节点冲突;
图8为根据本发明实施例的3个AGV在不同时刻的运行示意图,其中,在t=8时刻的运行图中,AGV运行过程中检测到出现冲突时,采用的是AGV停车等待策略;
图9为根据本发明实施例的3个AGV在不同时刻的运行示意图,其中,在t=8时刻的运行图中,AGV运行过程中检测到出现冲突后,采用后撤并重规划路径策略;
图10为根据本发明实施例的3个AGV在不同时刻的运行示意图,其中,在t=8时刻的运行图中,AGV根据预约表预测到将出现追击冲突并长时间等待,AGV采取直接返回交叉点处重规划路径策略。
图11为根据本发明实施例的多AGV调度与协同路径规划装置的框图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明实施例的利用AGV均衡调用算法和AGV协同路径规划算法为动态到达的货物指派AGV以及为AGV规划路径,以完成将货物从到达缓存区运送至指定货架进行存储的任务。该方法将系统运行过程中的静态障碍和动态障碍作为对AGV进行路径规划的约束条件,可在均衡使用AGV的前提下,快速规划出多个AGV的无碰撞最优路径。
本发明的一个具体实施例,公开了一种多AGV调度与协同路径规划方法。参考图1,多AGV调度与协同路径规划方法,包括:在步骤S102中,判断当前时间ts处待运送的货物集合中是否存在包裹且空闲AGV集合中是否存在空闲AGV;在步骤S104中,当待运送的货物集合中存在包裹且空闲AGV集合中存在空闲AGV时,调用AGV均衡调用算法,获取空闲AGV集合中可调度的最优AGV以由最优AGV完成对待运送的货物集合中货物task[m]的运送任务,其中,最优AGV获得货物task[m]的起始位置和目标位置信息,同时更新当前时间ts处的待运送的货物集合和空闲AGV集合;在步骤S106中,调用AGV协同路径规划算法以基于仓储环境的栅格地图针对最优AGV规划无冲突的最优路径,其中,最优AGV基于最优路径完成货物task[m]的运送任务并返回AGV停泊区。
与现有技术相比,本实施例提供的多AGV调度与协同路径规划方法中,利用AGV均衡调用算法和AGV协同路径规划算法为动态到达的货物指派AGV以及为AGV规划路径,以完成货物在货架上的存储任务。通过采用集中决策和分散决策相结合的方式,可有效降低AGV数量增加对系统整体运行效率的影响。
下文中,将参考图1,对根据本发明实施例的多AGV调度与协同路径规划方法的各个步骤进行详细描述。
首先,对仓储环境进行建模,以自动生成面向仓储环境的多AGV系统的栅格地图。具体地,参考图6,仓储环境包括货物缓存区、AGV停泊区、货架以及通道。栅格地图中的货物缓存区是对货物到达后进行缓存的区域,AGV在货物缓存区中取到货物后送至指定的货架位置处。栅格地图中的AGV停泊区是AGV的集中停泊区域,停泊在AGV停泊区中的AGV接收系统的调度任务,从AGV停泊区行驶至货物缓存区。栅格地图中的货架是存放货物的双排多层堆垛架,在AGV到达指定货架位置时,货架上的提升系统将货物送至指定层的位置处。栅格地图中的通道包括运行通道和退出通道,其中,参考图5,运行通道供AGV在上、下、左、右四个方向上行驶,退出通道设置在栅格地图侧边,用于使运送完货物的AGV退出。
参考图6,对仓储环境进行建模,以自动生成面向仓储环境的多AGV系统栅格地图包括通过以下模型自动生成面向仓储环境的多AGV系统栅格地图:
2xi+yp=W,
Rxj+yq=H,
其中,yp>xi,0<i<W-2,p∪[0,w-1],yq>xj,0<j<H-R,q∪[0,H-1],H表示栅格地图长度;W表示栅格地图宽度;R表示横向单排货架数量;xi表示第i个竖排货架;xj表示第j个横排货架;yp表示第p个竖排过道;yq表示第q个横排过道。
其次,获取当前时间ts处的待运送的货物集合和空闲AGV集合,以及系统运行的开始时间t0和结束时间te。具体地,获取开始时间ts处的待运送的货物集合TaskList和空闲AGV集合AgvIdleList。待运送的货物集合TaskList包括货物task[m],m为包裹的编号,取值为正整数。空闲AGV集合AgvIdleList包括agv[n],其中,nAGV内的编号,取值为正整数。
接下来,在步骤S102中,判断当前时间ts处待运送的货物集合TaskList中是否存在包裹且空闲AGV集合AgvIdleList中是否存在空闲AGV。即,待运送的货物集合TaskList是否为非空集合并且空闲AGV集合AgvIdleList是否为非空集合。
在步骤S104中,当待运送的货物集合TaskList中存在包裹且空闲AGV集合AgvIdleList中存在空闲AGV时,调用AGV均衡调用算法,获取空闲AGV集合中可调度的最优AGV以由最优AGV完成对待运送的货物集合中货物task[m]的运送任务,其中,最优AGV获得货物task[m]的起始位置(xm,0,ym,0)和目标位置(xm,e,ym,e)信息,同时更新当前时间ts处的待运送的货物集合和空闲AGV集合。当待运送的货物集合TaskList和空闲AGV集合AgvIdleList均为非空集合时,调用AGV均衡调用算法;然而当待运送的货物集合TaskList或空闲AGV集合AgvIdleList为空集合时,执行判断当前时间ts是否大于等于结束时间te的步骤。
具体地,AGV均衡调用算法包括:当判断空闲AGV集合中的空闲AGV数量大于1时,从空闲AGV集合中选择使用次数最少的AGV作为最优AGV并将货物task[m]的运送任务分配给最优AGV;当使用次数最少的AGV的数量大于1时,将多个使用次数最少的AGV中的任一个作为最优AGV并将货物task[m]的运送任务分配给最优AGV;以及更新货物task[m]的状态并更新最优AGV的使用次数和状态。
在步骤S106中,调用AGV协同路径规划算法基于仓储环境的栅格地图以针对最优AGV规划无冲突的最优路径,其中,最优AGV基于最优路径完成货物task[m]的运送任务并返回AGV停泊区。具体地,AGV协同路径规划算法包括:根据货物task[m]的起始位置和目标位置信息,并且利用预约表中不同时刻下栅格地图中各节点的占用信息,充分规避静态障碍和动态障碍的前提下,针对最优AGV规划无冲突的合理路径。无冲突指为AGV规划路径时,既要避开静态障碍物,如货物缓存区、AGV停泊区、货架等,还要避开与其他AGV产生各类冲突的动态障碍。参考图7,在AGV运行过程中,主要存在AGV的相向、节点和追击的3种类型冲突。
AGV协同路径规划算法包括:定义并初始化用于存储AGV已搜寻到的路径节点集合PATH_LIST、待处理的节点集合OPEN_LIST、处理完成的节点集合CLOSE_LIST、用于获取全局信息的预约表集合RESERVE_TABLE以及用于扩展的中心节点CNODE;将起始位置放入待处理的节点集合OPEN_LIST,并判断待处理的节点集合OPEN_LIST是否为空,其中,当待处理的节点集合OPEN_LIST为空时,不存在可通行路径,结束操作;当待处理的节点集合OPEN_LIST不为空时,将起始位置放入处理完成的节点集合CLOSE_LIST中,同时删除待处理的节点集合OPEN_LIST中的起始位置,并将中心节点CNODE设置为起始位置;判断在当前时间ts下在预约表集合RESERVE_TABLE中是否存在预约表RESERVE_TABLE[ts];当存在预约表RESERVE_TABLE[ts]时,判断在预约表RESERVE_TABLE[ts]的中心节点CNODE处是否存在AGV占用,若存在AGV占用,则最优AGV在起始位置停车等待,等待时长为tw,更新当前时间,其中,当前时间为开始时间与等待时长之和;当不存在预约表RESERVE_TABLE[ts]时,重新创建预约表RESERVE_TABLE[ts];当中心节点CNODE处不存在AGV占用时或者在重新创建预约表RESERVE_TABLE[ts]之后,在中心节点CNODE处添加最优AGV,并将中心节点CNODE放入AGV已搜寻到的路径节点集合PATH_LIST中;判断中心节点CNODE是否为AGV停泊区中的节点,其中,当是AGV停泊区中的节点时,最优AGV的运送任务已结束,最优AGV状态更新为空闲状态,并输出最优AGV的完整运行路径;当不是AGV停泊区中的节点时,对中心节点CNODE进行扩展以获取邻居节点集合neighbors;采用静态障碍判断策略判断邻居节点集合neighbors中的每个邻居节点是否为静态障碍物;以及采用动态障碍判断策略判断所述中心节点CNODE是否为动态障碍物。
预约表是与栅格地图的尺寸和布局相同的表格,在系统运行时间区间内,以系统运行时间间隔为依据建立多个预约表,以提供实时的系统全局状态信息,预约表包括多个节点((x,y),avg[n]),其中,(x,y)为节点坐标,avg[n]为在节点坐标(x,y)处的占用的AGV。
具体地,采用静态障碍判断策略判断邻居节点集合neighbors中的每个邻居节点是否为静态障碍物包括:判断邻居节点neighbors[d]是否为栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点,当邻居节点neighbors[d]是栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点,邻居节点的序号d自加1,即d++;当邻居节点neighbors[d]不是栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点时,将邻居节点neighbors[d]存入待处理的节点集合OPEN_LIST中;若邻居节点集合neighbors中所有节点未搜索完成,邻居节点的序号d自加1,即d++,重新执行判断邻居节点neighbors[d]是否为栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点的步骤;以及若邻居节点集合neighbors中所有节点已搜索完成,则获取待处理的节点集合OPEN_LIST中代价最小的节点,并赋值给中心节点CNODE,同时在待处理的节点集合OPEN_LIST中删除中心节点CNODE,而在处理完成的节点集合CLOSE_LIST中添加中心节点CNODE。
具体地,采用动态障碍判断策略判断中心节点CNODE是否为动态障碍物包括:更新当前时间ts=ts+tp,判断在当前时间ts下是否存在预约表RESERVE_TABLE[ts],其中,tp为AGV在单个节点间的运行时长;当存在预约表RESERVE_TABLE[ts]时,判断预约表RESERVE_TABLE[ts]的中心节点CNODE处是否存在AGV占用;当存在AGV占用时,计算中心节点CNODE所在的货架通道的剩余容量h',若h'大于零,则最优AGV停车等待,等待时长为已占用AGV的卸货时长tq,更新当前时间ts=ts+tq,返回至AGV协同路径规划算法中的判断在当前时间ts下在预约表集合RESERVE_TABLE中是否存在预约表RESERVE_TABLE[ts]的步骤;若剩余容量h'小于零,执行路径重新规划,在AGV已搜寻到的路径节点集合PATH_LIST中定位至中心节点CNODE在栅格地图中的最近交叉点位置(xm,p,ym,p),设置AGV已搜寻到的路径节点集合PATH_LIST中的(xm,p+1,ym,p+1)为静态障碍,并删除AGV已搜寻到的路径节点集合PATH_LIST中(xm,p,ym,p)至(xm,d,ym,d)间的路径节点,将中心节点CNODE更新为最近交叉点位置(xm,p,ym,p),并返回至AGV协同路径规划算法中的判断中心节点CNODE是否为AGV停泊区中的节点的步骤。通过节点的左右位置是否为货架判断节点是否为交叉点,若为货架则不为交叉点,否则为交叉点。
在调用AGV协同路径规划算法的步骤S106之后还包括判断当前时间ts是否大于等于结束时间te。若当前时间ts大于等于结束时间te,生成系统运行时间内的最优AGV的全部最优路径,否则更新当前时间ts,返回至步骤S102,即,判断待运送的货物集合中是否存在包裹且空闲AGV集合中是否存在空闲AGV的步骤。最优路径由两段路径构成,分别是从货物起始位置到目标卸货位置的路径和目标卸货位置到AGV停泊区的路径。
本发明的另一个具体实施例,公开了一种多AGV调度与协同路径规划装置。参考图11,多AGV调度与协同路径规划装置包括:地图生成模块、任务获取模块、任务判断模块1102、AGV均衡模块1104、协同路径规划模块1106、时间判断模块、更新跳转模块和最优路径生成模块。
任务判断模块1102用于判断待运送的货物集合中是否存在包裹且空闲AGV集合中是否存在空闲AGV。AGV均衡模块1104用于当待运送的货物集合中存在包裹且空闲AGV集合中存在空闲AGV时,调用AGV均衡调用算法,获取空闲AGV集合中可调度的最优AGV以由最优AGV完成对待运送的货物集合中货物task[m]的运送任务,其中,最优AGV获得货物task[m]的起始位置和目标位置信息,同时更新系统运行的当前时间ts处的待运送的货物集合和空闲AGV集合。协同路径规划模块1106用于调用AGV协同路径规划算法以针对最优AGV规划无冲突的最优路径,其中,最优AGV基于最优路径完成货物task[m]的运送任务并返回AGV停泊区。
地图生成模块用于对仓储环境进行建模,以自动生成面向仓储环境的多AGV系统的栅格地图。任务获取模块用于获取当前时间ts处的待运送的货物集合和空闲AGV集合以及系统运行的开始时间t0和结束时间te。时间判断模块用于更新当前时间ts,然后判断当前时间ts是否大于等于结束时间te。更新跳转模块用于当当前时间ts小于结束时间te时,返回至任务判断模块,判断待运送的货物集合中是否存在包裹且空闲AGV集合中是否存在空闲AGV。最优路径生成模块用于当当前时间ts大于等于结束时间te时,生成系统运行时间内的最优AGV的全部最优路径。
下文中,参考图2至图10,以具体实例的方式对根据本发明实施例的多AGV调度与协同规划方法进行详细描述。
参考图2,根据本发明实施例的多AGV调度与协同规划方法包括如下步骤:
步骤一:对仓储环境进行建模,自动生成面向仓储环境的多AGV系统栅格地图。
步骤二:获取ts时刻待运送的货物集合TaskList和空闲AGV集合AgvIdleList。
步骤三:若TaskList中存在包裹且AgvIdleList中存在空闲AGV,即len(TaskList)>0且len(AgvIdleList)>0,调用AGV均衡调用算法,获取可调度的最优AGV,即avg[n],以完成对TaskList中货物task[m]的运输任务,avg[n]相应获得task[m]的起始位置和目标位置信息。同时,更新ts时刻下的TaskList和AgvIdleList,即TaskList=TaskList-task[m],AgvIdleList=AgvIdleList-agv[n],执行步骤四;若TaskList中不存在包裹或AgvIdleList中不存在空闲AGV,即len(TaskList)=0或len(AgvIdleList)=0,执行步骤五。
步骤四:调用AGV协同路径规划算法为avg[n]规划无冲突的最优路径,在avg[n]完成对task[m]的运送任务并返回AGV停泊区后,意味着avg[n]执行完成完整运送任务,执行步骤三。
步骤五:判断系统运行时间是否已到设定的系统结束时间,即ts≥te吗?若成立,系统运行结束,输出所有AGV的运行路径集合;否则,更新时间,ts=ts+Δt,继续执行步骤二。
步骤一中的仓储环境包括货物缓存区、AGV停泊区、货架以及通道,通过如下模型自动生成面向仓储环境的栅格地图:
2xi+yp=W (1)
yp>xi (2)
0<i<W-2 (3)
p∪[0,w-1] (4)
Rxj+yq=H (5)
yq>xj (6)
0<j<H-R (7)
q∪[0,H-1] (8)
其中,H表示栅格地图长度;W表示栅格地图宽度;R表示横向单排货架数量;xi表示第i个竖排货架;xj表示第j个横排货架;yp表示第p个竖排过道;yq表示第q个横排过道。
所述栅格地图中的货物缓存区是对货物到达后进行缓存的区域,具备一定的货物缓存能力,AGV在该区域中取到货物后送至指定的货架位置处;栅格地图中的AGV停泊区为AGV的集中停泊区域,停泊在该区域中的AGV接收系统的调度任务,从该区域至货物缓存区的路径,由于AGV并未开始运送货物,因此本发明不将其考虑到AGV的完整行驶路径中;栅格地图中的货架为存放货物的双排多层堆垛架,在AGV到达指定货架位置时,货架上的提升系统将货物送至指定层的位置处。栅格地图中的通道包括运行通道和退出通道,其中,运行通道供AGV在上、下、左、右四个方向上行驶,退出通道设置在栅格地图侧边,仅用作AGV运送完货物退出使用。
步骤二中的货物动态到达缓存区,其到达时间服从随机均匀分布,分布函数表示为:
tarrive~(ts,te) (9)
其中,tarrive表示货物的到达时间,ts表示系统运行的开始时刻,te表示系统运行的结束时刻。
参考图3,步骤三中设计的AGV均衡调用算法用于为货物指派合适的AGV,可以提高所有AGV的均衡使用率,提高AGV系统的整体寿命,包括如下具体步骤:
Step31:判断AgvIdleList中的空闲AGV数量,若len(AgvIdleList)>1,说明当前存在多个AGV可运送货物task[m],跳至Step32,否则,将task[m]指派给AgvIdleList中的avg[n],跳至Step33。
Step32:以AGV的使用次数作为指派依据,考虑选取使用次数最少的AGV,若存在多个使用次数相同的AGV,则为货物随机指派一个AGV。将task[m]指派给avg[n]后,跳至Step33。
Step33:avg[n]获取task[m]的起始位置(xm,0,ym,0)以及货物目标位置(xm,e,ym,e),更新avg[n]的使用次数和状态。
参考图4,步骤四中设计的AGV协同路径规划算法,根据货物赋予AGV的起始点和目标货架位置信息,并利用预约表中不同时刻下栅格地图中各节点的占用信息,在充分规避静态障碍和动态障碍的前提下,为待运送货物的AGV规划出无冲突的合理路径,包括如下具体步骤:
Step1:定义用于存储avg[n]已搜寻到的路径节点信息集合PATH_LIST、待处理的节点集合OPEN_LIST、处理完成的节点集合CLOSE_LIST、用于获取全局信息的预约表集合RESERVE_TABLE以及用于扩展的中心节点CNODE,初始化PATH_LIST、OPEN_LIST、CLOSE_LIST、RESERVE_TABLE和CNODE,定义AGV单个节点间运行时长为tp。
Step2:将初始节点(xm,0,ym,0)放入OPEN_LIST,并判断OPEN_LIST是否为空,如果为空,则说明不存在可通行路径,结束操作;否则,将(xm,0,ym,0)放入CLOSE_LIST中,表示(xm,0,ym,0)已规划,同时删除OPEN_LIST中的(xm,0,ym,0),并设置CNODE=(xm,0,ym,0),执行Step3。
Step3:判断在ts时刻下在RESERVE_TABLE中是否存在预约表RESERVE_TABLE[ts],若存在,跳至Step4,否则,跳至Step6。
Step4:判断在RESERVE_TABLE[ts]的CNODE处是否存在AGV占用,若存在,跳至Step5,否则,跳至Step7。
Step5:avg[n]在初始位置停车等待,等待时长为tw,更新avg[n]的开始运送货物时间,ts=ts+tw,跳至Step4。
Step6:新建预约表RESERVE_TABLE[ts],并在CNODE处添加avg[n],并将CNODE放入PATH_LIST中,跳至Step8。
Step7:在RESERVE_TABLE[ts]的CNODE处添加avg[n],并将CNODE放入PATH_LIST中,跳至Step8。
Step8判断CNODE是否为AGV停泊区中节点,若不是,表示存在待处理的路径节点,跳至Step9,否则说明avg[n]的运输任务已结束,更新avg[n]状态为空闲,并输出avg[n]的完整运行路径。
Step9:对节点CNODE进行扩展,获取邻居节点集合neighbors,设待判断节点的下标为d,跳至Step10。
Step10:采取静态障碍判断策略对neighbors[d]进行判断:
Step101:判断neighbors[d]是否为栅格图中的货物缓存区、AGV停泊区、货架以及退出通道节点,若成立,d++,继续执行Step101,否则,将neighbors[d]存入OPEN_LIST中,执行Step102;
Step102:若neighbors中所有节点已搜索完成,即len(neighbors)=0,则获取OPEN_LIST中代价最小的节点,并赋值给CNODE,同时在OPEN_LIST中删除CNODE,在CLOSE_LIST中添加CNODE,执行Step11的动态障碍物判断策略;若len(neighbors)>0,则令d++,继续执行Step101。
Step11:采取动态障碍物判断策略对CNODE进行判断:
Step111:更新时间,ts=ts+tp,判断ts时刻下是否存在预约表RESERVE_TABLE[ts],若不存在,跳至Step7,否则,执行Step112;
Step112:判断RESERVE_TABLE[ts]的CNODE处是否存在AGV占用,若不存在,跳至Step7,否则,执行Step113;
Step113:计算CNODE所在的货架通道剩余容量h',若h'>0,则avg[n]停车等待,等待时长为已占用AGV的卸货时长tq,更新时间ts=ts+tq,跳至Step3,否则,跳至Step114;
Step114:执行路径重规划,在PATH_LIST中定位至CNODE在栅格图中的最近交叉点位置(xm,p,ym,p),设置PATH_LIST中的(xm,p+1,ym,p+1)为静态障碍,并删除PATH_LIST中(xm,p,ym,p)~(xm,d,ym,d)间的路径节点,更新节点,CNODE=(xm,p,ym,p),并跳至Step8。
步骤四中的无冲突指为AGV规划路径时,既要避开静态障碍物,如货物缓存区、AGV停泊区、货架等,还要避开与其他AGV产生各类冲突的动态障碍,参考图7,在AGV运行过程中,主要存在AGV的相向、节点和追击的3种类型冲突;
步骤四中的最优路径由两段路径构成,分别是从货物起始位置到目标卸货位置的路径和目标卸货位置到AGV停泊区的路径;
优选的,step1中的预约表是和栅格地图尺寸和布局相同的表格,节点表示形式为((x,y),avg[n]),其中(x,y)表示节点坐标,avg[n]表示节点(x,y)处占用的AGV。在系统运行时间区间内,以系统运行间隔时间为依据建立多个预约表,可在所有AGV做路径规划时提供实时的系统全局状态信息;优选的,Step5中的初始位置处停车等待与AGV运行过程中的停车等待定义不同,将初始位置处停车等待值设置为tw,AGV运行过程中的停车等待值设置为tq;
Step9中的节点邻域扩展,包括上、下、左、右4个邻居节点;
优选的,Step102中的获取代价最小的节点,主要是采用两段式距离计算,其中第一段距离采用启发式函数计算(公式(10)和(11)),节点距离起点的代价加上终点距离目标卸货点的预计代价(采用曼哈顿距离表示);第二段距离计算从卸货点到AGV停泊区的距离,利用卸货点最近拐弯点到退出通道以及AGV停泊区的直行距离计算得到;
f(d)=g(d)+h(d) (10)
h(d)=abs(xe-xd)+abs(ye-yd) (11)
其中,f(d)表示货物的初始节点s经过节点d到达目标节点e的评价值,g(d)是从初始节点s到节点e的实际代价,h(d)是从节点s到目标节点e的估计代价,(xe,ye)表示目标节点在栅格图中的坐标,(xd,yd)表示当前遍历的节点d在栅格图中的坐标;
优选的,Step113中的通道剩余容量计算公式如下:
R(sij)=H-I(sij) (12)
其中,H表示系统设定的货架间可通行AGV容量上限,R(sij)表示相邻货架i和货架j间的剩余可通行AGV容量,I(sij)表示相邻货架i和货架j间的AGV数量。
Step114中回溯至交叉点位置,通过节点的左右位置是否为货架判断节点是否为交叉点,若为货架则不为交叉点,否则为交叉点;
本方法具体实施包括以下步骤:
(1)系统初始化设置:
步骤一:自动化生成栅格地图。设置栅格地图的长度和宽度,联排货架的数量,自动生成的货物缓存区数量,图6为自动生成的栅格地图(大小为30*30)。其中,将栅格地图划分成如下区域,包括货物缓存区、AGV停泊区、AGV行驶通道、AGV退出通道、货架:
货物缓存区:在货物到达后可进行暂时缓存的多个区域,具备一定的货物缓存能力,AGV在该区域中取到货物后送至指定的货架位置处;
AGV停泊区:AGV运送完货物后,需要返回停靠的区域;
货架:存放货物的双排多层堆垛架,AGV运送货物到指定位置处时,货架上的提升系统将货物送到指定层的位置处;
AGV行驶通道:供AGV行驶的通道,货架间的通道为单通道;
AGV退出通道:AGV运送完货物从行驶通道中退出并回到AGV停泊区的唯一通道;
步骤二:设置系统运行的相关参数。设置系统运行的开始时间ts和结束时间te,AGV数量以及货物数量,AGV的卸货时间为6。其中,货物的具体到达时间服从随机均匀分布,利用公式(13)获得。ts作为算法运行的外层循环,Δt作为时间更新间隔,设置Δt=4。设置空的预约表集合RESERVE_TABLE。
tarrive~U(ts,te) (13)
(2)系统运行:
步骤三:获取ts时刻下的所有货物缓存区中货物状态为“未处理”的货物集合TaskList,以及AGV停泊区中AGV状态为“空载”且初始位置在停泊区的AGV集合AgvIdleList;
步骤四:若TaskList中货物数量为空,则表示ts时刻无积压货物或到达货物待运送,则更新时刻,ts=ts+Δt,跳至步骤三;否则,若AgvIdleList中空闲AGV数量为空,则表示ts时刻无可用的AGV,则当前货物积压,更新时刻ts=ts+Δt,跳至步骤三;否则,跳至步骤五;
步骤五:若AgvIdleList中的空闲AGV数量为1,则为待运送的货物调度AGV时无需考虑其他因素,直接选择TaskList中最早到达需要派送的货物task[m],并为其指派avg[n];若AgvIdleList中存在多个空闲AGV,则按照早到早运送原则为货物指派AGV,并且AGV也采用使用次数最小原则优先选择,可以保证AGV的均衡使用,同时,AGV停泊区的AGV采用串行原则,同一时刻下仅允许出行一个AGV;此时avg[n]获取了task[m]的起始位置(xm,0,ym,0)和目标位置(xm,e,ym,e),更新avg[n]的使用次数和状态为“空载”,更新task[m]的状态为“已指派”,跳至步骤六;
步骤六:定义用于存储avg[n]已搜寻到的路径节点信息集合PATH_LIST、待处理的节点集合OPEN_LIST、处理完成的节点集合CLOSE_LIST、用于获取全局信息的预约表集合RESERVE_TABLE以及用于扩展的中心节点CNODE,初始化PATH_LIST、OPEN_LIST、CLOSE_LIST、RESERVE_TABLE和CNODE,将(xm,0,ym,0)放入OPEN_LIST,并判断OPEN_LIST是否为空,如果为空,则说明不存在可通行路径,结束操作;否则,将(xm,0,ym,0)放入CLOSE_LIST中,表示(xm,0,ym,0)已规划,同时删除OPEN_LIST中的(xm,0,ym,0),并设置CNODE=(xm,0,ym,0),执行步骤七;
步骤七:在RESERVE_TABLE中搜索是否存ts时刻下的预约表RESERVE_TABLE[ts],若不存在RESERVE_TABLE[ts],则表示ts时刻系统中无AGV在运送货物,故新建RESERVE_TABLE[ts],并在CNODE处添加avg[n],在ts时刻位置CNODE已被占用,继续为avg[n]规划下一个将通行的节点,即跳至步骤八;若存在RESERVE_TABLE[ts],则表示在ts时刻系统中有其他AGV运送货物,则继续判断在CNODE处是否存在AGV占用,若无占用,表示在位置CNODE处avg[n]可以通行,则在RESERVE_TABLE[ts]中的CNODE处添加avg[n],继续为avg[n]规划下一个将通行的节点,即跳至步骤八;若RESERVE_TABLE[ts]在CNODE处被其他AGV占用,则对avg[n]采用停车等待策略,task[m]在货物分派平台等待派送,等待时长为tw,并更新运送时间,ts=ts+tw,继续按照当前步骤的流程操作;
步骤八:对每一个AGV而言,每一条完整的路径规划都是由两段路径组成,第一段路径中,AGV是带载状态,从货物分派平台运送货物至指定货架位置处,第二段路径中,AGV完成货物的卸货,在空载状态下从货物目标位置至AGV停泊区,因此,需要判断avg[n]是否已在空载状态下到达AGV停泊区,如果到达停泊区意味着这趟货物运送任务完成,释放avg[n],即更新其状态为空闲且位置为AGV停泊区,等待下一个调度任务。若avg[n]未到达AGV停泊区,意味着需要继续规划avg[n]的下一步行走节点,跳至步骤八,对avg[n]的前进节点进行规划;
步骤九:本发明中定义的AGV行走方向为上下左右四个方向,如5所示,因此,对CNODE进行扩展,获取CNODE四个方向上的邻居节点集合为neighbors=[(xm,u,ym,u),(xm,l,ym,l),(xm,h,ym,h),(xm,r,ym,r)],设d=0,并跳至步骤十;
步骤十:对扩展的邻居节点进行静态障碍物判断。判断neighbors[d]是否为货物缓存区、AGV停泊区、货架以及退出通道节点,若为上述其一坐标,则放弃该节点,令d++,继续执行本步骤;若neighbors[d]不是上述任一坐标,将neighbors[d]存入OPEN_LIST中,若neighbors中所有节点已搜索完,获取OPEN_LIST中代价最小的节点,并赋值给CNODE,同时在OPEN_LIST中删除CNODE,在CLOSE_LIST中添加CNODE,并更新avg[n]运行至CNODE的到达时间ts,即ts=ts+tp,并对avg[n]在CNODE处进行动态障碍物判断,跳至步骤十一,保证行驶路径不出现冲突;
步骤十一:继续利用预约表判断系统全局的AGV状态和位置信息。判断在ts时刻是否存在预约表RESERVE_TABLE[ts],若不存在,表示avg[n]在CNODE处可通行,则跳至步骤八;若RESERVE_TABLE[ts]存在,则判断在RESERVE_TABLE[ts]的CNODE处是否有其他AGV占用,如果无占用,则表示avg[n]可以前进,在RESERVE_TABLE[ts]的CNODE处添加avg[n],同时,继续以CNODE为中心点扩展邻居节点,即跳至步骤八;若在RESERVE_TABLE[ts]的CNODE处存在其他AGV占用,则计算当前通道的剩余容量,以确定是采取等待策略还是路径重规划策略,即跳至步骤十二;
步骤十二:利用公式(14)计算CNODE的通道剩余容量h',若h'>0,则表示当前通道可以通行,不会造成拥堵,则采用停车等待策略,等待时长为已占用节点的AGV的剩余卸货时长tq,并更新avg[n]的开始运送时间,ts=ts+tq,并跳至步骤七;若h'≤0,则表示当前通道已处于拥堵状态,avg[n]不可选择neighbors[d]为下一个运行节点,那么需要对AGV进行重新规划,即跳至步骤十三;
R(sij)=H-I(sij) (14)
步骤十三:在PATH_LIST中定位至neighbors[d]在栅格图中的最近交叉点位置(xm,p,ym,p),设置PATH_LIST中的(xm,p+1,ym,p+1)为静态障碍,并删除PATH_LIST中(xm,p,ym,p)~(xm,d,ym,d)间的路径节点,更新节点,CNODE=(xm,p,ym,p),并继续执行步骤九。如图10中所示,各圆圈点表示AGV,不同编号(例如,1、2和3)代表不同AGV(例如,agv[1]、agv[2]和agv[3]),货架中标出的编号与其相对应,表示AGV的货物运送终点。在t=8时,对1号圆圈代表的AGV进行路径规划时,会在同一通道的2号圆圈点处产生追击冲突,若采用图8中的等待策略或是图9中退出-重规划策略,均会造成1号圆圈代表的AGV的时间消耗,因此,本发明中提出一种直接退出到交叉点进行路径快速重规划策略,可以降低AGV探索和后退造成的时间消耗。
步骤十四:在到达设定的系统运行截止时间时,输出所有的路径信息。
本发明还提出一种基于货物动态到达的多AGV调度与协同规划系统,该系统包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所属计算机程序被处理器执行时实现基于货物动态到达的多AGV调度与协同规划方法的步骤。
本发明的有益效果在于:通过采用集中决策和分散决策相结合的方式,可有效降低AGV数量增加对系统整体运行效率的影响。在为随机到达的货物指派AGV的调度阶段,通过采用AGV均衡调用算法可以保证AGV的均衡使用,有效提升系统的整体寿命。同时,在AGV的分散决策过程中,在预约表的全局信息指导下,各AGV可快速规划出最优路径,并且协同路径规划算法可解决系统运行过程中的发生的AGV冲突,提高AGV的搜索效率,可有效降低系统整体拥堵情况。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种多AGV调度与协同路径规划方法,其特征在于,包括:
判断当前时间ts处的待运送的货物集合中是否存在包裹且空闲AGV集合中是否存在空闲AGV;
当所述待运送的货物集合中存在包裹且所述空闲AGV集合中存在空闲AGV时,调用AGV均衡调用算法,获取所述空闲AGV集合中可调度的最优AGV以由所述最优AGV完成对所述待运送的货物集合中货物task[m]的运送任务,其中,所述最优AGV获得所述货物task[m]的起始位置和目标位置信息,同时更新所述当前时间ts处的待运送的货物集合和空闲AGV集合;以及
调用所述AGV协同路径规划算法以基于仓储环境的栅格地图针对所述最优AGV规划无冲突的最优路径,其中,所述最优AGV基于所述最优路径完成所述货物task[m]的运送任务并返回AGV停泊区。
2.根据权利要求1所述的多AGV调度与协同路径规划方法,其特征在于,在调用所述AGV协同路径规划算法之后,还包括:判断所述当前时间ts是否大于等于结束时间te,其中,
若所述当前时间ts大于等于所述结束时间te,生成系统运行时间内的所述最优AGV的全部最优路径;
否则更新所述当前时间ts,返回至判断所述待运送的货物集合中是否存在包裹且所述空闲AGV集合中是否存在空闲AGV的步骤。
3.根据权利要求2所述的多AGV调度与协同路径规划方法,其特征在于,在判断当前时间ts处的待运送的货物集合中是否存在包裹且所述空闲AGV集合中是否存在空闲AGV之前还包括:
对仓储环境进行建模,以通过以下模型自动生成面向所述仓储环境的多AGV系统的栅格地图:
2xi+yp=W,
Rxj+yq=H,
其中,yp>xi,0<i<W-2,p∪[0,w-1],yq>xj,0<j<H-R,q∪[0,H-1],H表示栅格地图长度;W表示栅格地图宽度;R表示横向单排货架数量;xi表示第i个竖排货架;xj表示第j个横排货架;yp表示第p个竖排过道;yq表示第q个横排过道,
所述仓储环境包括货物缓存区、AGV停泊区、货架以及通道,其中,所述栅格地图中的货物缓存区是对货物到达后进行缓存的区域,AGV在所述货物缓存区中取到货物后送至指定的货架位置处;所述栅格地图中的AGV停泊区是AGV的集中停泊区域,停泊在所述AGV停泊区中的AGV接收系统的调度任务,从所述AGV停泊区行驶至所述货物缓存区;所述栅格地图中的货架是存放货物的双排多层堆垛架,在AGV到达指定货架位置时,货架上的提升系统将货物送至指定层的位置处;以及所述栅格地图中的通道包括运行通道和退出通道,其中,所述运行通道供AGV在上、下、左、右四个方向上行驶,所述退出通道设置在所述栅格地图侧边,用于使运送完货物的AGV退出。
4.根据权利要求1所述的多AGV调度与协同路径规划方法,其特征在于,所述AGV均衡调用算法包括:
当判断所述空闲AGV集合中的空闲AGV数量大于1时,从所述空闲AGV集合中选择使用次数最少的AGV作为所述最优AGV并将所述货物task[m]的运送任务分配给所述最优AGV;
当所述使用次数最少的AGV的数量大于1时,将多个使用次数最少的AGV中的任一个作为所述最优AGV并将所述货物task[m]的运送任务分配给所述最优AGV;以及
更新所述货物task[m]的状态并更新所述最优AGV的使用次数和状态。
5.根据权利要求2所述的多AGV调度与协同路径规划方法,其特征在于,所述AGV协同路径规划算法包括:根据所述货物task[m]的起始位置和目标位置信息,并且利用预约表中不同时刻下所述栅格地图中各节点的占用信息,充分规避静态障碍和动态障碍的前提下,针对所述最优AGV规划无冲突的合理路径,其中,所述预约表存储有多个节点((x,y),avg[n]),其中,(x,y)为节点坐标,avg[n]为在节点坐标(x,y)处的占用的AGV。
6.根据权利要求5所述的多AGV调度与协同路径规划方法,其特征在于,所述AGV协同路径规划算法包括:
定义并初始化用于存储AGV已搜寻到的路径节点集合PATH_LIST、待处理的节点集合OPEN_LIST、处理完成的节点集合CLOSE_LIST、用于获取全局信息的预约表集合RESERVE_TABLE以及用于扩展的中心节点CNODE;
将所述起始位置放入所述待处理的节点集合OPEN_LIST,并判断所述待处理的节点集合OPEN_LIST是否为空,其中,
当所述待处理的节点集合OPEN_LIST为空时,不存在可通行路径,结束操作;
当所述待处理的节点集合OPEN_LIST不为空时,将所述起始位置放入处理完成的节点集合CLOSE_LIST中,同时删除所述待处理的节点集合OPEN_LIST中的起始位置,并将所述中心节点CNODE设置为所述起始位置;
判断在所述当前时间ts下在预约表集合RESERVE_TABLE中是否存在预约表RESERVE_TABLE[ts];
当存在所述预约表RESERVE_TABLE[ts]时,判断在预约表RESERVE_TABLE[ts]的中心节点CNODE处是否存在AGV占用,若存在AGV占用,则所述最优AGV在所述起始位置停车等待,等待时长为tw,更新所述当前时间,其中,所述当前时间为开始时间与所述等待时长之和;
当不存在所述预约表RESERVE_TABLE[ts]时,重新创建预约表RESERVE_TABLE[ts];
当中心节点CNODE处不存在AGV占用时或者在重新创建预约表RESERVE_TABLE[ts]之后,在所述中心节点CNODE处添加所述最优AGV,并将中心节点CNODE放入所述AGV已搜寻到的路径节点集合PATH_LIST中;
判断所述中心节点CNODE是否为所述AGV停泊区中的节点,其中,
当是所述AGV停泊区中的节点时,所述最优AGV的运送任务已结束,所述最优AGV状态更新为空闲状态,并输出所述最优AGV的完整运行路径;
当不是所述AGV停泊区中的节点时,对所述中心节点CNODE进行扩展以获取邻居节点集合neighbors;
采用静态障碍判断策略判断所述邻居节点集合neighbors中的每个邻居节点是否为静态障碍物;以及
采用动态障碍判断策略判断所述中心节点CNODE是否为动态障碍物。
7.根据权利要求6所述的多AGV调度与协同路径规划方法,其特征在于,采用静态障碍判断策略对邻居节点集合neighbors进行判断包括:
判断邻居节点neighbors[d]是否为所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点,
当所述邻居节点neighbors[d]是所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点,所述邻居节点的序号d自加1;
当所述邻居节点neighbors[d]不是所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点时,将所述邻居节点neighbors[d]存入所述待处理的节点集合OPEN_LIST中;
若邻居节点集合neighbors中所有节点未搜索完成,所述邻居节点的序号d自加1,重新执行判断邻居节点neighbors[d]是否为所述栅格地图中的货物缓存区、AGV停泊区、货架以及退出通道的节点的步骤;以及
若邻居节点集合neighbors中所有节点已搜索完成,则获取所述待处理的节点集合OPEN_LIST中代价最小的节点,并赋值给所述中心节点CNODE,同时在所述待处理的节点集合OPEN_LIST中删除所述中心节点CNODE,而在所述处理完成的节点集合CLOSE_LIST中添加所述中心节点CNODE。
8.根据权利要求6或7所述的多AGV调度与协同路径规划方法,其特征在于,采用动态障碍判断策略对所述中心节点CNODE进行判断包括:
更新当前时间ts=ts+tp,判断在所述当前时间ts下是否存在所述预约表RESERVE_TABLE[ts],其中,tp为AGV在单个节点间的运行时长;
当存在所述预约表RESERVE_TABLE[ts]时,判断所述预约表RESERVE_TABLE[ts]的所述中心节点CNODE处是否存在AGV占用;
当存在AGV占用时,计算所述中心节点CNODE所在的货架通道的剩余容量h',若h'大于零,则所述最优AGV停车等待,等待时长为已占用AGV的卸货时长tq,更新所述当前时间ts=ts+tq,返回至所述AGV协同路径规划算法中的判断在所述当前时间ts下在预约表集合RESERVE_TABLE中是否存在预约表RESERVE_TABLE[ts]的步骤;
若所述剩余容量h'小于零,执行路径重新规划,在AGV已搜寻到的路径节点集合PATH_LIST中定位至中心节点CNODE在所述栅格地图中的最近交叉点位置(xm,p,ym,p),设置AGV已搜寻到的路径节点集合PATH_LIST中的(xm,p+1,ym,p+1)为静态障碍,并删除AGV已搜寻到的路径节点集合PATH_LIST中(xm,p,ym,p)至(xm,d,ym,d)间的路径节点,将所述中心节点CNODE更新为最近交叉点位置(xm,p,ym,p),并返回至所述AGV协同路径规划算法中的判断所述中心节点CNODE是否为所述AGV停泊区中的节点的步骤。
9.根据权利要求8所述的多AGV调度与协同路径规划方法,其特征在于,所述预约表是与所述栅格地图的尺寸和布局相同的表格,在系统运行时间区间内,以系统运行时间间隔为依据建立多个预约表,以提供实时的系统全局状态信息。
10.一种多AGV调度与协同路径规划装置,其特征在于,包括:
任务判断模块,用于判断当前时间ts处待运送的货物集合中是否存在包裹且空闲AGV集合中是否存在空闲AGV;
AGV均衡模块,用于当所述待运送的货物集合中存在包裹且所述空闲AGV集合中存在空闲AGV时,调用AGV均衡调用算法,获取所述空闲AGV集合中可调度的最优AGV以由所述最优AGV完成对所述待运送的货物集合中货物task[m]的运送任务,其中,所述最优AGV获得所述货物task[m]的起始位置和目标位置信息,同时更新所述当前时间ts处的待运送的货物集合和空闲AGV集合;以及
协同路径规划模块,用于调用所述AGV协同路径规划算法以针对所述最优AGV规划无冲突的最优路径,其中,所述最优AGV基于所述最优路径完成所述货物task[m]的运送任务并返回AGV停泊区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210944129.2A CN115237137B (zh) | 2022-08-05 | 2022-08-05 | 一种多agv调度与协同路径规划方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210944129.2A CN115237137B (zh) | 2022-08-05 | 2022-08-05 | 一种多agv调度与协同路径规划方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115237137A true CN115237137A (zh) | 2022-10-25 |
CN115237137B CN115237137B (zh) | 2024-08-16 |
Family
ID=83679279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210944129.2A Active CN115237137B (zh) | 2022-08-05 | 2022-08-05 | 一种多agv调度与协同路径规划方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237137B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116399352A (zh) * | 2023-04-06 | 2023-07-07 | 深圳市森歌数据技术有限公司 | 一种智慧无人停车场agv的路径规划方法、装置及存储介质 |
CN116620775A (zh) * | 2023-06-12 | 2023-08-22 | 江苏齐鑫智能科技有限公司 | 一种封闭仓档案机器人设备中转仓的调用方法 |
CN116880476A (zh) * | 2023-07-05 | 2023-10-13 | 湘南学院 | 一种基于交通管控的agvs运行控制方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032149A (zh) * | 2018-10-12 | 2018-12-18 | 盐城工学院 | 一种基于栅格地图的多移动机器人平衡防死锁路径规划方法 |
CN110989570A (zh) * | 2019-10-15 | 2020-04-10 | 浙江工业大学 | 一种多agv防碰撞协同路径规划方法 |
CN112034845A (zh) * | 2020-08-10 | 2020-12-04 | 深圳技术大学 | 一种多智能主体避障方法、系统和计算机可读存储介质 |
CN113074728A (zh) * | 2021-03-05 | 2021-07-06 | 北京大学 | 基于跳点寻路与协同避障的多agv路径规划方法 |
CN113075927A (zh) * | 2021-03-22 | 2021-07-06 | 哈尔滨理工大学 | 基于预约表的仓储潜伏式多agv路径规划方法 |
WO2021254415A1 (zh) * | 2020-06-18 | 2021-12-23 | 北京卫星制造厂有限公司 | 一种基于时间窗的agv智能调度方法 |
WO2022032444A1 (zh) * | 2020-08-10 | 2022-02-17 | 深圳技术大学 | 一种多智能主体避障方法、系统和计算机可读存储介质 |
-
2022
- 2022-08-05 CN CN202210944129.2A patent/CN115237137B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032149A (zh) * | 2018-10-12 | 2018-12-18 | 盐城工学院 | 一种基于栅格地图的多移动机器人平衡防死锁路径规划方法 |
CN110989570A (zh) * | 2019-10-15 | 2020-04-10 | 浙江工业大学 | 一种多agv防碰撞协同路径规划方法 |
WO2021254415A1 (zh) * | 2020-06-18 | 2021-12-23 | 北京卫星制造厂有限公司 | 一种基于时间窗的agv智能调度方法 |
CN112034845A (zh) * | 2020-08-10 | 2020-12-04 | 深圳技术大学 | 一种多智能主体避障方法、系统和计算机可读存储介质 |
WO2022032444A1 (zh) * | 2020-08-10 | 2022-02-17 | 深圳技术大学 | 一种多智能主体避障方法、系统和计算机可读存储介质 |
CN113074728A (zh) * | 2021-03-05 | 2021-07-06 | 北京大学 | 基于跳点寻路与协同避障的多agv路径规划方法 |
CN113075927A (zh) * | 2021-03-22 | 2021-07-06 | 哈尔滨理工大学 | 基于预约表的仓储潜伏式多agv路径规划方法 |
Non-Patent Citations (2)
Title |
---|
于赫年;白桦;李超;: "仓储式多AGV系统的路径规划研究及仿真", 计算机工程与应用, no. 02, 31 December 2020 (2020-12-31) * |
蔺一帅;李青山;陆鹏浩;孙雨楠;王亮;王颖芝;: "智能仓储货位规划与AGV路径规划协同优化算法", 软件学报, no. 09, 31 December 2020 (2020-12-31) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116399352A (zh) * | 2023-04-06 | 2023-07-07 | 深圳市森歌数据技术有限公司 | 一种智慧无人停车场agv的路径规划方法、装置及存储介质 |
CN116399352B (zh) * | 2023-04-06 | 2024-01-19 | 深圳市森歌数据技术有限公司 | 一种智慧无人停车场agv的路径规划方法、装置及存储介质 |
CN116620775A (zh) * | 2023-06-12 | 2023-08-22 | 江苏齐鑫智能科技有限公司 | 一种封闭仓档案机器人设备中转仓的调用方法 |
CN116880476A (zh) * | 2023-07-05 | 2023-10-13 | 湘南学院 | 一种基于交通管控的agvs运行控制方法 |
CN116880476B (zh) * | 2023-07-05 | 2024-01-19 | 湘南学院 | 一种基于交通管控的agvs运行控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115237137B (zh) | 2024-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7019935B2 (ja) | シェルフアレイ用の入出庫制御方法及び搬送システム | |
CN115237137B (zh) | 一种多agv调度与协同路径规划方法和装置 | |
CN110182527B (zh) | 用于货架阵列的出入库控制方法和搬运系统 | |
Le-Anh et al. | A review of design and control of automated guided vehicle systems | |
CN110009259B (zh) | 一种应用于双向路径下柔性制造车间的多agv调度方法 | |
CN105354648B (zh) | Agv调度管理的建模及其优化方法 | |
CN113074728B (zh) | 基于跳点寻路与协同避障的多agv路径规划方法 | |
JP4746674B2 (ja) | 搬送システムと搬送方法 | |
CN110182529B (zh) | 用于货架阵列的出入库控制方法和搬运系统 | |
CN110850828B (zh) | 一种四向穿梭车路径冲突调度方法 | |
CN110182528B (zh) | 用于货架阵列的出入库控制方法和搬运系统 | |
CN113075927A (zh) | 基于预约表的仓储潜伏式多agv路径规划方法 | |
CN113592158A (zh) | 多agv路径规划和多agv智能生产线中agv与机器联合调度方法 | |
Hu et al. | Conflict-free scheduling of large-scale multi-load AGVs in material transportation network | |
CN104346658A (zh) | 基于改进银行家算法的自动小车存取系统动态调度方法 | |
JP2020190915A (ja) | 走行決定方法、コントローラ、及び当該コントローラを備える走行システム | |
CN116755401A (zh) | 包含路径规划和车辆通行策略的多无人叉车调度控制方法 | |
Xu et al. | Dynamic spare point application based coordination strategy for multi-AGV systems in a WIP warehouse environment | |
JP6911826B2 (ja) | 倉庫設備の制御システム及び制御方法 | |
CN114326610A (zh) | 一种基于双层时空网结构的agv运行优化系统及方法 | |
CN109308591A (zh) | 一种搬运调度方法、装置、电子设备及存储介质 | |
CN115167457A (zh) | 一种考虑电量约束的多agv调度与协同路径规划方法和装置 | |
CN116719329B (zh) | 路径规划方法、系统、设备及存储介质 | |
JP2013035670A (ja) | 搬送車システム | |
Xia et al. | A multi-AGV optimal scheduling algorithm based on particle swarm optimization |
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 |