一种基于动态节点检测的多AGV调度方法与流程

文档序号:15096376发布日期:2018-08-04 14:40阅读:754来源:国知局

本发明涉及AGV调度领域,尤其涉及一种基于动态节点检测的多AGV调度方法。



背景技术:

多AGV调度技术包括基于图论的方法,基于区域控制和基于时间窗的方法等。其中,基于区域控制的方法要求将模型拆分为若干区域,一个区域始终由同一辆AGV负责运输,这种方法虽然可以避免多辆AGV在同一区域中产生的死锁问题,但在运输的货物需要跨越好几个区域时频繁的装卸货会带来效率上的问题。基于时间窗的控制方法要求每辆AGV按规定的时间到达或离开某一节点,这种方法的鲁棒性不高,不利于AGV在复杂环境下的工作。基于图论的方法通过将工作站与道路交叉点抽象成图中的各个节点,将运动路径抽象成连接节点的各条边。

专利号:CN107272698A,发明名称:《一种应用于多AGV协作运行的调度控制方法及系统》的专利与本发明最为接近。该专利实现了图论中的基本逻辑,通过将AGV接下来所有要经过的路径点占有,其他AGV在无法占有路径点时不会运动到该点,从而保证不会与AGV不会发生碰撞,阻塞。但其对资源的占用并不合理,如果某AGV规划的路径过长,会提前占用大量本可以被其他AGV使用的路径点,导致其他AGV进入长期无必要的等待,大大降低了AGV的工作效率。



技术实现要素:

本发明针对多AGV调度问题,提出了一种基于动态节点检测的调度方法,可以在保证多AGV在不发生阻塞、碰撞的情况下,以较高的效率进行工作。

一种基于动态节点检测的多AGV调度方法,包括以下步骤:

S1:建立抽象模型,将工作环境中每一个交叉路口和工作站作为节点,连接节点作为可通过的路径,并根据需要设定路径是否单向或双向;

S2:为每辆AGV规划路径并根据路径建立未来资源池;

S3:在通往下一个节点前,对其他AGV的未来资源池进行检测,如果检测到该节点未被占用,则前往该节点,并通知其他AGV该节点已被占用以及前一个节点已被释放,如果检测到该节点被占用,则等待一段时间后重新申请。

优选的,所述根据路径建立的未来资源池包括:有序队列A、B、C,其中,有序队列A记录当前AGV所在节点至任务终点所有节点,有序队列B记录在有序队列A的每个节点处,由于本AGV途经节点而被堵塞的其他AGV列表,有序队列C记录在有序队列A的每个节点处,由于其他AGV途经节点而堵塞本AGV的其他AGV列表。

优选的,所述检测节点是否被占用的方法为:当每辆AGV需要向下一个路径点移动时,检查未来资源池中有序队列C的首节点的列表是否为空。

优选的,所述未来资源池的建立方法为:

S2.1.先从本AGV有序队列Aa中的第一个节点开始进行前向遍历,令当前遍历到的节点为Xa1,在其他AGV的未来资源池的有序队列Ab中查找是否包含Xa1,如果不包含,则停止对有序队列Ab的搜索,如果包含,则进入S2.2;

S2.2.若在其他AGV的未来资源池的有序队列Ab的第N个元素Xbn与Xa1相同,然后前向遍历本AGV未来资源池中的队列Aa中Xa1之前的节点,直至下列条件中任一条件得到满足进入步骤S2.3,记录下遍历的长度m,开始的位置N,

(1)遍历到的节点Xam,与其他AGV的未来资源池的队列Ab的Xb(n-m)不同;

(2)已遍历到其他AGV队列Ab的当前所在节点;

(3)已遍历到本AGV队列Aa的最后一个节点;

S2.3.当遍历完所有的其他AGV未来资源队列后,对任意一辆其他AGVother,如果因满足条件(2)退出,则为本AGV有序队列Ca中从下标1开始前向的m个节点所包含的有序列表中均添加AGVother,并在AGVother的有序队列Bb中由下标N开始后向的m个列表中均添加本AGV;由于满足条件(2)表示该系列独占资源已被其他AGV占有,资源申请不成功,因此在一段时间后,重新执行步骤s2.1;如果是由其他原因导致的退出,将为本AGV有序队列Ba中从下标1开始前向的m个列表中均添加AGVother,并在AGVother的有序队列Cb中由下标N开始后向的m个列表中均添加本AGV;

S2.4.在本AGV离开当前节点资源时,根据本AGV未来资源池中的有序队列Ba通知对应的其他AGV该节点已被释放,并从对应的其他AGV的有序队列Cb中移除本AGV信息,并将未来资源池中的有序队列Aa,Ba,Ca的首节点删除,以表示本AGV已向前运动。

本发明通过为每辆AGV单独维护一个未来资源池用于管理路径资源,根据未来资源池来判断节点是否被占用,在AGV的运行过程中,不断对未来资源池进行更新,在这过程中不仅做到了防止AGV相互阻塞,碰撞,还有效的提高了资源利用效率,减少了无意义的等待时间,具有较好的实用。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明实施例中整体流程图;

图2是本发明实施例中AGV路径示意图。

具体实施方式

以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

结合附图1,在本实施例中,一种基于动态节点检测的多AGV调度方法,包括以下步骤:

S1:1.建立抽象模型,将工作环境中每一个交叉路口和工作站作为节点,连接节点作为可通过的路径,并根据需要设定路径是否单向或双向,本实施例将节点作为资源点用于管理AGV运动。

S2:为AGV分配任务,规划路径,规划出的路径由一组路径点组成,这些路径点就是上述抽象模型中的节点。如图2所示,AGV1的路径是b-c-d-e,AGV2的路径是a-d-c-f。

根据路径建立未来资源池,未来资源池包括:有序队列A、B、C,其中,有序队列A记录当前AGV所在节点至任务终点所有节点,有序队列B记录在有序队列A的每个节点处,由于本AGV途经节点而被堵塞的其他AGV列表,有序队列C记录在有序队列A的每个节点处,由于其他AGV途经节点而堵塞本AGV的其他AGV列表。

未来资源池的建立方法为:

S2.1.先从本AGV有序队列Aa中的第一个节点开始进行前向遍历,令当前遍历到的节点为Xa1,在其他AGV的未来资源池的有序队列Ab中查找是否包含Xa1,如果不包含,则停止对有序队列Ab的搜索,如果包含,则进入S2.2;

S2.2.若在其他AGV的未来资源池的有序队列Ab的第N个元素Xbn与Xa1相同,然后前向遍历本AGV未来资源池中的队列Aa中Xa1之前的节点,直至下列条件中任一条件得到满足进入步骤S2.3,记录下遍历的长度m,开始的位置N,

(1)遍历到的节点Xam,与其他AGV的未来资源池的队列Ab的Xb(n-m)不同;

(2)已遍历到其他AGV队列Ab的当前所在节点;

(3)已遍历到本AGV队列Aa的最后一个节点;

S2.3.当遍历完所有的其他AGV未来资源队列后,对任意一辆其他AGVother,如果因满足条件(2)退出,则为本AGV有序队列Ca中从下标1开始前向的m个节点所包含的有序列表中均添加AGVother,并在AGVother的有序队列Bb中由下标N开始后向的m个列表中均添加本AGV;由于满足条件(2)表示该系列独占资源已被其他AGV占有,资源申请不成功,因此在一段时间后,重新执行步骤s2.1;如果是由其他原因导致的退出,将为本AGV有序队列Ba中从下标1开始前向的m个列表中均添加AGVother,并在AGVother的有序队列Cb中由下标N开始后向的m个列表中均添加本AGV;

S2.4.在本AGV离开当前节点资源时,根据本AGV未来资源池中的有序队列Ba通知对应的其他AGV该节点已被释放,并从对应的其他AGV的有序队列Cb中移除本AGV信息,并将未来资源池中的有序队列Aa,Ba,Ca的首节点删除,以表示本AGV已向前运动。

S3:在通往下一个节点前,对其他AGV的未来资源池进行检测,检查未来资源池中有序队列C的首节点的列表是否为空,如果检测到该节点为空,则前往该节点,并通知其他AGV该节点已被占用以及前一个节点已被释放,如果检测到该节点被占用,则等待一段时间后重新申请。如果多辆AGV对同一节点进行申请占用,则先申请的AGV先对该节点进行占用,等该AGV离开后,其他AGV对该节点进行申请。

重复以上步骤直到抵达最后一个目标节点,任务完成。

本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1