帮助中心
帮助中心主页
调度系统介绍
RoboView库位管理
调度逻辑
多车调度(G-MAPF 算法)
功能文档
E-MAPF 系列功能(提前开放试用)
激活叶子结点(Leaves)
特殊属性
MAPF 功能(v0.1.8.220917后不再维护)
MAPF 功能(v0.1.8.220917后不再维护)
回调
新分组
拼合单
运单
交管调度策略

废弃

一、交管调度策略

     交通管制调度策略首先根据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即将发生死锁,判断方法为AGV1的剩余路径即将经过AGV2的占用站点或者占用站点的关联站点,同时AGV2的剩余路径也即将经过AGV1的下一个站点或者其关联站点,则AGV1需停在当前站点,等待AGV2走过AGV1的下一个站点或者其关联站点。上述某个站点的关联站点是指如果该站点上有AGV,其关联站点上不能同时有其他AGV,否则会发生碰撞,这些站点称为该站点的关联站点。上述AGV的剩余路径是指AGV从当前站点到当前任务终点的路径,不包括AGV已走过的路径。如果某辆AGV的剩余路径上有1个以上的空闲避让点,则暂时不会与其他车发生死锁。如果是两辆AGV已经发生死锁,判断方法为AGV1的剩余路径即将经过AGV2的占用站点或者其关联站点,同时AGV2的剩余路径也即将经过AGV1的当前站点或者其关联站点,则这两辆AGV中选择更新路径代价最小的那一辆AGV去避让点,即哪一辆AGV离最近的避让点更近,且不与其他车发生死锁。如果是三辆AGV发生环路死锁,判断方法为AGV1即将经过AGV2的占用站点或者其关联站点,同时AGV2即将经过AGV3的占用站点或者其关联站点,而且AGV3也即将经过AGV1的当前站点或者其关联站点,需要构成闭环,即循环相互占用,才能判断为环路死锁;三辆AGV以上发生环路死锁,判断方法以此类推。当发生环路死锁时,首先需要按照上述方法把处于死锁环上的所有车检测出来,然后选择更新路径代价最小的那一辆AGV更新路径去最近的避让点。如果一辆AGV在去避让点的过程中又和其他AGV发生死锁,且这辆AGV相比其他AGV更新路径的代价小,那么这辆AGV会删除去原先避让点的计划,重新更新路径去新的最近避让点或者恢复原始路径。
第二个条件是调度系统根据各站点和各路段的占用状态,判断下一路段和下一路段的终点是否被其他AGV占用;若下一路段或者下一路段的终点被其他AGV占用,调度系统指示AGV在当前站点等待;若该AGV已占用下一路段和下一路段的终点,则调度系统指示AGV向下一路段的终点行进;如果下一路段和下一路段的终点都没有被占用,继续往下判断第三个条件是否满足。
第三个条件是调度系统根据AGV的长度,宽度(长度和宽度可以根据载货的不同而变化)和行驶的方向角度,采用碰撞检测方法,判断所述AGV在行驶到下一路段终点的过程中是否会和其他AGV发生碰撞;若会碰撞,调度系统指示AGV在当前站点等待;若不会碰撞,继续往下判断第四个条件是否满足。
上述碰撞检测方法为根据AGV的长度,宽度,行驶的方向角度,安全边际和定位误差所构成的矩形包围盒,判断两个包围盒是否相交,如果相交,两辆AGV会发生碰撞,否则不会发生碰撞。安全边际通常设置为300mm,定位误差通常为20mm。
第四个条件是判断下一路段和下一路段的终点是否在互斥区。在互斥区内,最多只能有一辆AGV。若互斥区内有其他AGV,调度系统指示AGV在当前站点等待;若互斥区内没有其他AGV,则四个条件都满足,AGV占用下一路段和下一路段的终点,调度系统指示AGV向下一路段的终点行进。当AGV在路段上行驶过一段指定距离时,把该路段的起点释放,这个指定距离设置为AGV的最大长度加上安全边际和定位误差。当AGV行驶到路段的终点时,把该路段释放。
交通管制方法有一个输入参数planDist,是每次交通管制提前规划小车行走的距离,默认值为3米。调度系统计算已占用的路段长度之和是否小于planDist。若小于planDist,则按照上述四个条件继续往下判断AGV是否可以走到再下一路段和再下一路段的终点。AGV已占用的站点和路段,即调度系统已分配给AGV的站点和路段是AGV务必要行驶的路线。若大于planDist,则这一轮规划中当前AGV判断结束,继续规划下一辆AGV,直到这一轮规划所有AGV判断结束。下一轮规划重复这四个条件的判断,直到所有AGV到达任务的终点为止。
交管的基本原则是一个被占用的站点或路段不能分配给其他小车。在planDist距离之内,规划到小车能够行驶到的最远站点,途中的站点和路段都分配给这辆小车。交管的过程就是不断占用和释放的过程。
如图1所示,在T1时刻,小车当前站点位于P1,通过计算,在planDist距离之内,小车可以行驶到站点p4,则把站点p8,路段SEG1,站点P4以及路段SEG2占用。在T2时刻,小车在路段SEG1行驶过一段距离,如果这个距离大于指定距离,则把路段的起点P1释放。在T3时刻,小车到达路段SEG1的终点P8,则把SEG1释放。在未到达之前规划的终点P4之前,通过计算,小车可以继续行驶到站点P6,则把站点P5,路段SEG3,站点P6以及路段SEG4占用,如T4时刻所示,从而保证小车可以顺畅的运行。在T5时刻,小车到达路段SEG2的终点,则把站点P8和SEG2释放。如此重复上面的步骤,直到小车到达路径的终点为止。

图1

二、交通管制流程图


图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行驶到路段的终点时,把该路段释放。
调度系统计算已占用的路段长度之和是否小于planDist。若小于planDist,则重复第二步至第五步继续往下判断AGV是否可以走到再下一路段和再下一路段的终点;若大于planDist,则这一轮规划中当前AGV判断结束,下一辆AGV重复第一步至第五步的判断,直到这一轮规划所有AGV判断结束。下一轮规划重复第二步至第五步,直到所有AGV到达任务的终点为止。

最近更新 2024/02/24
文章内容

废弃

一、交管调度策略

二、交通管制流程图

三、交管调度步骤