CN114281080B - 一种amr调度系统中解死锁的方法 - Google Patents
一种amr调度系统中解死锁的方法 Download PDFInfo
- Publication number
- CN114281080B CN114281080B CN202111583656.7A CN202111583656A CN114281080B CN 114281080 B CN114281080 B CN 114281080B CN 202111583656 A CN202111583656 A CN 202111583656A CN 114281080 B CN114281080 B CN 114281080B
- Authority
- CN
- China
- Prior art keywords
- point
- deadlock
- trolley
- avoidance
- target
- 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 46
- 238000004590 computer program Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
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/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Navigation (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明涉及一种AMR调度系统中解死锁的方法,包括:S10、AMR调度系统基于记录的当前运行的每一小车的冲突信息和当前处于交管状态的小车信息,确定当前地图中是否存在死锁场景;S20、针对每一个死锁场景,获取该死锁场景中每一小车所在点位的所有出边的目标点,将每一小车所有出边的目标点保存在该小车的第一清单中;S30、基于死锁场景中各小车的第一清单,选择一个小车,采用解死锁规则判断该小车是否存在避让点;S40、若存在避让点,则将存在避让点的小车执行避让任务,以解锁完成该小车所在的死锁场景。本发明的方法定义一个解死锁规则,使得系统可以在通道狭小或者小车旋转范围不足的情况下,也能够找到合适的避让点解开每一死锁场景。
Description
技术领域
本发明涉及机器人技术领域,尤其涉及一种AMR调度系统中解死锁的方法。
背景技术
自主移动机器人(Automated Mobile Robot,AMR)定义为自主导航定位的自动导引装置,能够沿系统规划的路线行驶,完成各种功能作业的自动设备,是现代工业自动化物流系统的重要组成部分。
AMR调度系统是用于对AMR进行路径规划、任务收发和交通管理等基本功能的控制系统。其中,AMR调度系统可基于预先定义的一些预防意外情况的规则实现交通管理。然后,在实际应用,当多辆AMR发生死锁时,AMR调度系统需要确定预先定义的避让点,让一个或多个AMR行驶到避让点,以有效解开死锁。
然而,现有技术中仅仅定义一两个避让点,其无法满足实际应用,存在如下缺陷:1)通道狭小或小车密集时解死锁难度较大;2)避让点不合理造成小车行驶距离长。
为此,如何合理确定避让点,同时考虑避让点是否真的可以解开死锁成为当前AMR调度系统亟需解决的技术问题。
发明内容
(一)要解决的技术问题
鉴于现有技术的上述缺点、不足,本发明提供一种AMR调度系统中解死锁的方法。
(二)技术方案
为了达到上述目的,本发明采用的主要技术方案包括:
第一方面,本发明实施例提供一种AMR调度系统中解死锁的方法,包括:
S10、AMR调度系统基于记录的当前运行的每一小车的冲突信息和当前处于交管状态的小车信息,确定当前地图中是否存在死锁场景;
每一小车的冲突信息为所述AMR调度系统记录的该小车在点位申请过程中申请失败的点位信息及失败原因;任一运行的小车在无点位行驶时的状态为交管状态;
S20、针对每一个死锁场景,获取该死锁场景中每一小车所在点位的所有出边的目标点,将每一小车所有出边的目标点保存在该小车的第一清单中;
S30、基于死锁场景中各小车的第一清单,选择一个小车,采用解死锁规则判断该小车是否存在避让点;
S40、若存在避让点,则将存在避让点的小车执行避让任务,以解锁完成该小车所在的死锁场景。
可选地,所述S10之前,所述方法还包括:
S00、每一小车接到目标任务,AMR调度系统基于小车的当前位置和目标任务的位置,规划最短路径,在小车按照最短路径行驶中,会一次申请最短路径中的点位,当申请点位失败时,AMR调度系统记录的该小车申请失败的点位信息及失败原因;以及
当一小车行驶到已经申请的点位中的最后一个点位时,小车停止行驶并上报信息,AMR调度系统基于上报信息将该小车在无点位行驶时的状态更改为交管状态。
可选地,所述S30包括:
针对第一个死锁场景,选择该第一个死锁场景中第一个小车的第一清单中的第一个目标点;
采用解死锁规则判断所述第一个目标点是否符合避让条件,若符合,则将该第一个目标点作为避让点,执行步骤S40,以解锁所述第一个死锁场景;
否则,遍历第一清单中其他目标点,直至遍历完成找到避让点;
若遍历完成均未找到第一个小车的避让点,则选择第一个死锁场景中第二个小车的第一清单中的第一个目标点,查找该第二个小车是否存在避让点;若否,则遍历完第一个死锁场景中其他小车的第一清单中的目标点作为避让点,执行步骤S40,以解锁所述第一个死锁场景;
针对其他的每一个死锁场景,均采用遍历死锁场景中每一小车的第一清单中的目标点的方式,确认能够作为避让点的目标点,以执行步骤S40实现死锁场景的解死锁。
可选地,所述方法还包括:
若一个死锁场景中,每一小车均不存在作为避让点的目标点,则所述AMR调度系统发出死锁报警信息,以使操作人员基于死锁报警信息人工解死锁。
可选地,采用解死锁规则判断所述第一个目标点是否符合避让条件,包括:
1)所述第一个目标点不为工位点;
2)所述第一个目标点不为运行中一小车的当前点;
3)所述第一个目标点不为其他小车的第一清单中的目标点;
4)所述第一个目标点不为上一次死锁场景中未成功解死锁的避让点;
5)所述第一个目标点不为当前第一个小车的任务终点或当前所有死锁场景中其他小车的任务终点;
6)所述第一个目标点作为待申请点位时,该待申请点位为能够申请成功的点位;
若避让条件1)至6)均符合,则将该第一个目标点作为避让点。
可选地,所述S30还包括:
针对第一个死锁场景,若死锁场景中每一个小车的第一清单中均不存在能够作为避让点的目标点,则
根据第一个死锁场景中的所有小车的当前点位信息和地图中各点位信息的后退属性,确定该第一个死锁场景中是否存在具有后退路径的小车;
若存在,获取每一个存在后退路径的小车的第二清单,所述第二清单中记录有该小车的所有允许后退的入边的目标点,并存储第二清单中每一目标点所属的小车的后退路径;
针对每一个第二清单中的目标点,判断是否符合避让条件,若符合,则将符合避让条件的目标点作为死锁场景中解死锁的避让点,执行步骤S40,以解锁所述第一个死锁场景;
在其他死锁场景中每一小车的第一清单中均不存在能够作为避让点的目标点时,按照第一个死锁场景的方式查找后退路径及后退路径中的能够作为避让点的目标点。
可选地,针对每一个第二清单中的目标点,判断是否符合避让条件,包括:
1)所述第一个目标点不为工位点;
2)所述第一个目标点不为运行中一小车的当前点;
3)所述第一个目标点不为其他小车的第一清单中的目标点;
4)所述第一个目标点不为上一次死锁场景中未成功解死锁的避让点;
5)所述第一个目标点不为当前第一个小车的任务终点或当前所有死锁场景中其他小车的任务终点;
6)所述第一个目标点作为待申请点位时,该待申请点位为能够申请成功的点位;
若避让条件1)至6)均符合,则将该目标点作为避让点,终止遍历。
可选地,针对每一个第二清单中的目标点,判断是否符合避让条件,包括:
针对所有的第二清单中的目标点,按照各自所属小车到达目标点时该小车旋转角度的信息进行排序,旋转角度最小的排在第一位;
针对排序后清单中的目标点,判断是否符合避让条件。
可选地,所述S40还包括:
所述AMR调度系统确定执行避让任务的小车在完成避让任务之后,使该小车继续执行避让任务之前的目标任务。
第二方面,本发明实施例还提供一种AMR调度系统的调度设备,其包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序并执行上述第一方面任一所述的AMR调度系统中解死锁的方法的步骤。
(三)有益效果
本发明的方法中AMR调度系统先记录每一小车的冲突信息,然后确定当前地图中是否存在死锁场景,进而在存在死锁场景时采用预先定义的解死锁规则确定有效合理的避让点,该避让点一定是能够让死锁场景中的小车解死锁的点位,实现在通道狭小或小车旋转范围不足的情况下,也能够快速有效的找到可解开死锁的避让点,提高解死锁的速率。
另外,本实施例中的解死锁规则中包括前进解死锁策略和后退解死锁策略,可在实际应用中依据定义的规则进行选择,以找到合适的避让点。
附图说明
图1为本发明一实施例提供的AMR调度系统中预防死锁的方法的流程示意图;
图2为本发明另一实施例提供的AMR调度系统中预防死锁的方法的流程示意图;
图3为电子地图中通道的示意图;
图4为电子地图中冲突路径的示意图;
图5为AMR调度系统中调度设备的结构示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
在本实施例中,AMR调度系统中预先存在各AMR适用的电子地图(下述称作地图),该电子地图可为所有AMR的调度地图,所述调度地图内设置有多个点位,每一点位定义有入边和出边。
相邻点位的连接直线作为边,每一条边有方向,所有AMR按照边的方向行驶,且根据边的方向,每一点位定义有入边和出边;如图3所示,如果一条边的方向是从A点到B点,则这条边称为A点的出边,B点的入边。图4中示出的主干道上的点A点和B点,通常,主干道上的点称为大入口点,其他的入口点称为小入口点。
每一个AMR的路径信息是预先定义的起点和终点的一条路径,路径上的点位根据行驶位置确定是否锁定。本申请实施例中的小车是指AMR。
实施例一
如图1和图2所示,本发明实施例提供一种AMR调度系统中解死锁的方法,本实施例的方法的执行主体可为AMR调度系统中的调度设备,其调度设备从全局信息和AMR自身的信息分析,周期性确定死锁场景,并针对每一个死锁场景按照解死锁规则(如前进解死锁和后退解死锁)确定避让点,有效实现解死锁。本实施例的方法可包括下述步骤:
S10、AMR调度系统基于记录的当前运行的每一小车的冲突信息和当前处于交管状态的小车信息,确定当前地图中是否存在死锁场景;
每一小车的冲突信息为所述AMR调度系统记录的该小车在点位申请过程中申请失败的点位信息及失败原因;任一运行的小车在无点位行驶时的状态为交管状态。
本实施例中可周期性进行死锁场景的监测。在存在死锁场景时,获取AMR调度系统中记录的所有冲突信息和所有交管状态的小车,执行下述的步骤。
S20、针对每一个死锁场景,获取该死锁场景中每一小车所在点位的所有出边的目标点,将每一小车所有出边的目标点保存在该小车的第一清单(List)中。
S30、基于死锁场景中各小车的第一清单,选择一个小车,采用解死锁规则判断该小车是否存在避让点。
下述是以第一个死锁场景进行举例说明,但不是说就这一个死锁场景,其他的死锁场景可采用该第一个死锁场景的处理方式。
以第一个死锁场景进行举例来说,选择该第一个死锁场景中第一个小车的第一清单中的第一个目标点;
采用解死锁规则判断所述第一个目标点是否符合避让条件,若符合,则将该第一个目标点作为避让点,执行下述的步骤S40,以解锁所述第一个死锁场景;
否则,遍历第一清单中其他目标点,直至遍历完成找到避让点;
若遍历完成均未找到第一个小车的避让点,则选择第一个死锁场景中第二个小车的第一清单中的第一个目标点,查找该第二个小车是否存在避让点;若否,则遍历完第一个死锁场景中其他小车的第一清单中的目标点作为避让点,执行步骤S40,以解锁所述第一个死锁场景;
针对其他的每一个死锁场景,均采用遍历死锁场景中每一小车的第一清单中的目标点(vertex)的方式,确认能够作为避让点的目标点,以执行下述步骤S40实现死锁场景的解死锁。
应说明的是,死锁场景中所有小车的第一清单为空和后续的第二清单也为空,或者,死锁场景中所有小车的第一清单为空,则表示解死锁失败,需要发出死锁报警信息,以使操作人员协助。
通常,死锁场景中不存在所有小车的第一清单为空。
S40、若存在避让点,则将存在避让点的小车执行避让任务,以解锁完成该小车所在的死锁场景。
在本实施例中,所述AMR调度系统确定执行避让任务的小车在完成避让任务之后,使该小车继续执行避让任务之前的目标任务。
也就是说,本实施例的方法中如果找到死锁场景中某一小车的避让点,则改派小车当前任务,即小车先去避让点执行避让任务即完成解死锁,然后再继续执行当前任务。
在实际的路径规划中,如果避让点是前进解死锁避让点,则路径规划算法的起点为小车当前点,终点为前进方向上的避让点,规划完整路径即可;如果避让点是后退方向上的解死锁避让点,则获取基于预先确定的小车从当前点到避让点的后退路径,直接返回即可。
在具体实现过程中,前述的S10之前,本实施例方法还包括下述的图1中未示出的步骤S00:
S00、每一小车接到目标任务,AMR调度系统基于小车的当前位置和目标任务的位置,规划最短路径,在小车按照最短路径行驶中,会一次申请最短路径中的点位,当申请点位失败时,AMR调度系统记录的该小车申请失败的点位信息及失败原因;以及
当一小车行驶到已经申请的点位中的最后一个点位时,小车停止行驶并上报信息,AMR调度系统基于上报信息将该小车在无点位行驶时的状态更改为交管状态。
可理解的是,AMR调度系统能够记录运行中每一个小车的冲突信息。当一小车接到任务时,AMR调度系统会为小车规划最短路径。小车在行驶过程中,会依次申请路径中的点位。当小车1申请点位失败时,调度系统记录导致小车1申请失败的小车2的id和失败原因,如1->2,表示1号车与2号车冲突。当小车行驶到申请到的最后一个点位时,小车停止行驶,AMR调度系统与小车交互,将其状态改为交管状态。
本实施例的方法中AMR调度系统先记录每一小车的冲突信息,然后确定当前地图中是否存在死锁场景,进而在存在死锁场景时采用预先定义的解死锁规则确定有效合理的避让点,该避让点一定是能够让死锁场景中的小车解死锁的点位,实现在通道狭小或小车旋转范围不足的情况下,也能够快速有效的找到可解开死锁的避让点,提高解死锁的速率。
实施例二
为更好理解本发明实施例的解死锁的方法,以下对上述实施例一中的步骤S30进行详细说明。下述的子步骤S31至S35对应前进解死锁策略的应用,子步骤S36至S39对应后退解死锁策略的应用,前进解死锁策略和后退解死锁策略均为解死锁规则中的信息,优先选择前进解死锁策略使用,若死锁场景中全部小车使用前进解死锁策略判断后,均无能够作为避让点的目标点,则对该死锁场景中全部小车使用后退解死锁策略进行判断。
若前进解死锁策略和后退解死锁策略判断之后,死锁场景均无可作为避让点的点位/目标点,则AMR调度系统发出死锁报警信息,以使操作人员基于死锁报警信息人工解死锁。
具体地,步骤S30包括下述的图中未示出的子步骤:
S31、基于死锁场景中各小车的第一清单,选择一个小车,采用解死锁规则判断该小车是否存在避让点。
S32、以第一个死锁场景进行举例来说,选择该第一个死锁场景中第一个小车的第一清单中的第一个目标点;
S33、采用解死锁规则中的前进解死锁策略判断所述第一个目标点是否符合避让条件,若符合,则将该第一个目标点作为避让点,执行下述的步骤S40,以解锁所述第一个死锁场景。
采用前进解死锁策略判断所述第一个目标点是否符合避让条件,包括:
1)所述第一个目标点不为工位点;
也就是说,判断第一个目标点是否为工位点,若是工位点,则不能作为避让点,工位点是地图中小车用来执行非移动任务的点,比如小车在工位点上下料或与机台对接等。由于工位点附近可能有货架、机台等,环境较为复杂,为了安全考虑,本实施例中规定工位点不可以作为避让点。
2)所述第一个目标点不为运行中一小车的当前点;
即,小车当前占有的目标点是不能作为避让点的。
3)所述第一个目标点不为其他小车的第一清单中的目标点;
通常,AMR调度系统中存储有每一个小车的点位申请信息,若属于其他小车的点位申请失败的点,则在冲突信息中可查找到。
4)所述第一个目标点不为上一次死锁场景中未成功解死锁的避让点;
5)所述第一个目标点不为当前第一个小车的任务终点或当前所有死锁场景中其他小车的任务终点;
因为解死锁存在失败情况,故在每一次死锁场景的解死锁的避让点均在AMR调度系统中进行存储,故,查看是否为上一次解死锁的且未成功解死锁的避让点。即当之前计算的避让点使得小车实际行驶解不开时,再次计算避让点就要放弃这个目标点,继续搜索可行的避让点。
6)所述第一个目标点作为待申请点位时,该待申请点位为能够申请成功的点位;
在该条件中,若待申请点位申请不成功,则说明,可能存在与其他小车碰撞的情况,故不能将申请失败的点位作为避让点。
若避让条件1)至6)均符合,则将该第一个目标点作为避让点。
S34、若子步骤S33中存在任一项不符合,则遍历第一清单中其他目标点,直至遍历完成找到避让点。
另外,若目标点符合上述的1)、2)、6)的避让条件,则认为该目标点可以路过但不作为目标点,此时,可以把目标点的所有出边的目标点添加到第三清单中,针对第三清单继续使用上述的前进解死锁策略进行继续搜索;若目标点不符合上述的1)、2)、6)的避让条件,则不获取该目标点的第三清单。
S35、若遍历完成均未找到第一个小车的避让点,则选择第一个死锁场景中第二个小车的第一清单中的第一个目标点,查找该第二个小车是否存在避让点;若否,则遍历完第一个死锁场景中其他小车的第一清单中的目标点作为避让点,执行步骤S40,以解锁所述第一个死锁场景。
如果使用前进解死锁策略找不到避让点,尝试计算后退解死锁策略的避让点,后退解死锁需要在地图中允许后退的边上添加后退属性。比如有一条边的方向是从A点到B点,新增了后退属性后,小车可以从B点后退到A点,即反向行驶。由于后退属性的路径,不参与路径规划算法的计算,因此在计算避让点的同时需要保存所有的后退路径。
S36、针对第一个死锁场景,若死锁场景中每一个小车的第一清单中均不存在能够作为避让点的目标点,则根据第一个死锁场景中的所有小车的当前点位信息和地图中各点位信息的后退属性,确定该第一个死锁场景中是否存在具有后退路径的小车;
S37、若存在,获取每一个存在后退路径的小车的第二清单,所述第二清单中记录有该小车的所有允许后退的入边的目标点,并存储第二清单中每一目标点所属的小车的后退路径;例如,可通过新建route参数保存后退路径。
S38、针对每一个第二清单中的目标点,采用后退解死锁策略判断是否符合避让条件,若符合,则将符合避让条件的目标点作为死锁场景中解死锁的避让点,执行步骤S40,以解锁所述第一个死锁场景。
在一种可选的实现方式中,针对所有的第二清单中的目标点,可按照各自所属小车到达目标点时该小车旋转角度的信息进行排序,旋转角度最小的排在第一位;此时,针对排序后清单中的目标点,判断是否符合避让条件。例如,按照下述的1)至6)进行判断。
1)所述第一个目标点不为工位点;
2)所述第一个目标点不为运行中一小车的当前点;
3)所述第一个目标点不为其他小车的第一清单中的目标点;
4)所述第一个目标点不为上一次死锁场景中未成功解死锁的避让点;
5)所述第一个目标点不为当前第一个小车的任务终点或当前所有死锁场景中其他小车的任务终点;
6)所述第一个目标点作为待申请点位时,该待申请点位为能够申请成功的点位;
若避让条件1)至6)均符合,则将该目标点作为避让点,终止遍历。
当然,若第一个死锁场景中,每一小车均不存在作为避让点的目标点,则所述AMR调度系统发出死锁报警信息,以使操作人员基于死锁报警信息人工解死锁。
上述是以一个死锁场景进行举例说明的,针对其他的死锁场景,可依次方式实现遍历。即针对其他的每一个死锁场景,均采用遍历死锁场景中每一小车的第一清单中的目标点的方式,确认能够作为避让点的目标点,以执行前述步骤S40实现死锁场景的解死锁。
在其他死锁场景中每一小车的第一清单中均不存在能够作为避让点的目标点时,按照第一个死锁场景的方式查找后退路径及后退路径中的能够作为避让点的目标点。
本实施例中的解死锁规则可包括前进解死锁策略和后退解死锁策略,可在实际应用中依据定义的规则进行选择,以找到合适的避让点。
上述实施例中示出的是,AMR调度系统可先采用前进解死锁策略确定死锁场景中的每一小车是否存在避让点,若存在,则执行后续步骤,否则采用后退解死锁策略确定该死锁场景中每一小车是否存在避让点。
在其他实施例中,还可采用下述的解死锁规则进行计算,下述方式可根据实际应用进行选择,并不限定。
第一、针对一个死锁场景,对该死锁场景中的一小车先采用前进解死锁策略确定是否存在避让点,若存在,执行后续解死锁;否则,采用后退解死锁策略确定是否存在避让点,若存在,执行后续解死锁,否则,遍历该死锁场景中的每一小车采用上述先前进解死锁策略后后退解死锁策略的方式确定避让点。
第二、针对一个死锁场景,对该死锁场景中的一小车先采用前进解死锁策略确定是否存在避让点,若存在,执行后续解死锁;否则,遍历该死锁场景中其他的每一小车采用前进解死锁策略确定是否存在避让点,若存在,执行后续解死锁;
若所有小车在采用前进解死锁策略之后,均不存在避让点,则可针对该死锁场景中的一小车采用后退解死锁策略确定是否存在避让点,若存在,执行后续解死锁,否则,遍历该死锁场景中其他的每一小车采用后退解死锁策略确定是否存在避让点,若存在,执行后续解死锁,否则发出人工提示信息如死锁报警信息。
第三、针对一个死锁场景,对该死锁场景中的一小车先采用后退解死锁策略确定是否存在避让点,若存在,执行后续解死锁;否则,采用前进解死锁策略确定是否存在避让点,若存在,执行后续解死锁,否则,遍历该死锁场景中的每一小车采用上述先后退解死锁策略再前进解死锁策略的方式确定避让点。
第四、针对一个死锁场景,对该死锁场景中的一小车先采用后退解死锁策略确定是否存在避让点,若存在,执行后续解死锁;否则,遍历该死锁场景中其他的每一小车采用后退解死锁策略确定是否存在避让点,若存在,执行后续解死锁;
若所有小车在采用后退解死锁策略之后,均不存在避让点,则可针对该死锁场景中一小车采用前进解死锁策略确定是否存在避让点,若存在,执行后续解死锁,否则,遍历该死锁场景中其他的每一小车采用前进解死锁策略确定是否存在避让点,若存在,执行后续解死锁,否则发出人工提示信息如死锁报警信息。
通常,第三和第四的情况使用比较少,在一些特殊情况下也可使用,本实施例不对其限定,可根据实际需求选择。
实施例三
如图5所示,本实施例还提供一种调度设备,包括:存储器和处理器;所述处理器用于执行所述存储器中存储的计算机程序,以实现执行上述实施例一和实施例二任意所述的AMR调度系统中解死锁的方法的步骤。
具体地,如图5所示,本实施例的电子设备可包括:至少一个处理器51、至少一个存储器52、至少一个网络接口54和/或其他的用户接口53。电子设备中的各个组件通过总线系统55耦合在一起。可理解,总线系统55用于实现这些组件之间的连接通信。总线系统55除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统55。
本实施例的电子设备可以执行图1至图4任意所示的方法,其中,用户接口53可以包括显示器、键盘或者点击设备(例如,鼠标或者触感板等)。
可以理解,本实施例中的存储器52可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。本文描述的存储器52包括任意其它适合类型的存储器。
在一些实施方式中,存储器52存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统521和应用程序522。
其中,操作系统521,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序522,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序522中。
在本发明实施例中,处理器51通过调用存储器52存储的程序或指令,具体的,可以是应用程序522中存储的程序或指令,处理器51用于执行第一方面所提供的方法步骤。
上述本发明实施例揭示的方法可以应用于处理器51中,或者由处理器51实现。处理器51可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器51中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器51可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecific IntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器52,处理器51读取存储器52中的信息,结合其硬件完成上述方法的步骤。
另一方面,本发明实施例还提供一种计算机可读存储介质,其用于存储有计算机程序,所述计算机程序被处理器执行时实现上述任意实施例的AMR调度系统中解死锁的方法的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。
Claims (9)
1.一种AMR调度系统中解死锁的方法,其特征在于,包括:
S10、AMR调度系统基于记录的当前运行的每一小车的冲突信息和当前处于交管状态的小车信息,确定当前地图中是否存在死锁场景;
每一小车的冲突信息为所述AMR调度系统记录的该小车在点位申请过程中申请失败的点位信息及失败原因;任一运行的小车在无点位行驶时的状态为交管状态;
S20、针对每一个死锁场景,获取该死锁场景中每一小车所在点位的所有出边的目标点,将每一小车所有出边的目标点保存在该小车的第一清单中;
S30、基于死锁场景中各小车的第一清单,选择一个小车,采用解死锁规则判断该小车是否存在避让点;
采用解死锁规则判断该小车是否存在避让点,包括:
针对选择的小车的第一清单中的第一个目标点;
1)所述第一个目标点不为工位点;
2)所述第一个目标点不为运行中一小车的当前点;
3)所述第一个目标点不为其他小车的第一清单中的目标点;
4)所述第一个目标点不为上一次死锁场景中未成功解死锁的避让点;
5)所述第一个目标点不为当前第一个小车的任务终点或当前所有死锁场景中其他小车的任务终点;
6)所述第一个目标点作为待申请点位时,该待申请点位为能够申请成功的点位;
若避让条件1)至6)均符合,则将该第一个目标点作为避让点;
S40、若存在避让点,则将存在避让点的小车执行避让任务,以解锁完成该小车所在的死锁场景。
2.根据权利要求1所述的方法,其特征在于,所述S10之前,所述方法还包括:
S00、每一小车接到目标任务,AMR调度系统基于小车的当前位置和目标任务的位置,规划最短路径,在小车按照最短路径行驶中,会一次申请最短路径中的点位,当申请点位失败时,AMR调度系统记录的该小车申请失败的点位信息及失败原因;以及
当一小车行驶到已经申请的点位中的最后一个点位时,小车停止行驶并上报信息,AMR调度系统基于上报信息将该小车在无点位行驶时的状态更改为交管状态。
3.根据权利要求1所述的方法,其特征在于,所述S30包括:
针对第一个死锁场景,选择该第一个死锁场景中第一个小车的第一清单中的第一个目标点;
采用解死锁规则判断所述第一个目标点是否符合避让条件,若符合,则将该第一个目标点作为避让点,执行步骤S40,以解锁所述第一个死锁场景;
否则,遍历第一清单中其他目标点,直至遍历完成找到避让点;
若遍历完成均未找到第一个小车的避让点,则选择第一个死锁场景中第二个小车的第一清单中的第一个目标点,查找该第二个小车是否存在避让点;若否,则遍历完第一个死锁场景中其他小车的第一清单中的目标点作为避让点,执行步骤S40,以解锁所述第一个死锁场景;
针对其他的每一个死锁场景,均采用遍历死锁场景中每一小车的第一清单中的目标点的方式,确认能够作为避让点的目标点,以执行步骤S40实现死锁场景的解死锁。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若一个死锁场景中,每一小车均不存在作为避让点的目标点,则所述AMR调度系统发出死锁报警信息,以使操作人员基于死锁报警信息人工解死锁。
5.根据权利要求3所述的方法,其特征在于,所述S30还包括:
针对第一个死锁场景,若死锁场景中每一个小车的第一清单中均不存在能够作为避让点的目标点,则
根据第一个死锁场景中的所有小车的当前点位信息和地图中各点位信息的后退属性,确定该第一个死锁场景中是否存在具有后退路径的小车;
若存在,获取每一个存在后退路径的小车的第二清单,所述第二清单中记录有该小车的所有允许后退的入边的目标点,并存储第二清单中每一目标点所属的小车的后退路径;
针对每一个第二清单中的目标点,判断是否符合避让条件,若符合,则将符合避让条件的目标点作为死锁场景中解死锁的避让点,执行步骤S40,以解锁所述第一个死锁场景;
在其他死锁场景中每一小车的第一清单中均不存在能够作为避让点的目标点时,按照第一个死锁场景的方式查找后退路径及后退路径中的能够作为避让点的目标点。
6.根据权利要求5所述的方法,其特征在于,针对每一个第二清单中的目标点,判断是否符合避让条件,包括:
1)所述第一个目标点不为工位点;
2)所述第一个目标点不为运行中一小车的当前点;
3)所述第一个目标点不为其他小车的第一清单中的目标点;
4)所述第一个目标点不为上一次死锁场景中未成功解死锁的避让点;
5)所述第一个目标点不为当前第一个小车的任务终点或当前所有死锁场景中其他小车的任务终点;
6)所述第一个目标点作为待申请点位时,该待申请点位为能够申请成功的点位;
若避让条件1)至6)均符合,则将该目标点作为避让点,终止遍历。
7.根据权利要求5所述的方法,其特征在于,针对每一个第二清单中的目标点,判断是否符合避让条件,包括:
针对所有的第二清单中的目标点,按照各自所属小车到达目标点时该小车旋转角度的信息进行排序,旋转角度最小的排在第一位;
针对排序后清单中的目标点,判断是否符合避让条件。
8.根据权利要求1至7任一所述的方法,其特征在于,所述S40还包括:
所述AMR调度系统确定执行避让任务的小车在完成避让任务之后,使该小车继续执行避让任务之前的目标任务。
9.一种AMR调度系统的调度设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序并执行上述权利要求1至8任一所述的AMR调度系统中解死锁的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111583656.7A CN114281080B (zh) | 2021-12-22 | 2021-12-22 | 一种amr调度系统中解死锁的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111583656.7A CN114281080B (zh) | 2021-12-22 | 2021-12-22 | 一种amr调度系统中解死锁的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281080A CN114281080A (zh) | 2022-04-05 |
CN114281080B true CN114281080B (zh) | 2024-03-15 |
Family
ID=80873971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111583656.7A Active CN114281080B (zh) | 2021-12-22 | 2021-12-22 | 一种amr调度系统中解死锁的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281080B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117995001A (zh) * | 2022-10-31 | 2024-05-07 | 华为技术有限公司 | 车辆死锁处理方法、装置及相关设备 |
CN115683120B (zh) * | 2022-12-30 | 2023-04-14 | 湖北凯乐仕通达科技有限公司 | 机器人多车互锁检测、解锁方法和装置 |
CN115981347A (zh) * | 2023-03-22 | 2023-04-18 | 上海仙工智能科技有限公司 | 一种agv交通管制方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279675A (zh) * | 2018-01-19 | 2018-07-13 | 广东美的智能机器人有限公司 | 多移动机器人的冲突管理方法及系统 |
CN109032135A (zh) * | 2018-07-17 | 2018-12-18 | 河南森源电气股份有限公司 | 一种自动引导车的调度方法及系统 |
CN110058586A (zh) * | 2019-03-12 | 2019-07-26 | 浙江大华技术股份有限公司 | 一种自动导引运输车路径冲突的避让方法及装置 |
CN112650226A (zh) * | 2020-12-11 | 2021-04-13 | 京信智能科技(广州)有限公司 | 一种机器人的调度方法、装置、设备及介质 |
-
2021
- 2021-12-22 CN CN202111583656.7A patent/CN114281080B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279675A (zh) * | 2018-01-19 | 2018-07-13 | 广东美的智能机器人有限公司 | 多移动机器人的冲突管理方法及系统 |
WO2019141218A1 (zh) * | 2018-01-19 | 2019-07-25 | 库卡机器人(广东)有限公司 | 多移动机器人的冲突管理方法及系统 |
CN109032135A (zh) * | 2018-07-17 | 2018-12-18 | 河南森源电气股份有限公司 | 一种自动引导车的调度方法及系统 |
CN110058586A (zh) * | 2019-03-12 | 2019-07-26 | 浙江大华技术股份有限公司 | 一种自动导引运输车路径冲突的避让方法及装置 |
CN112650226A (zh) * | 2020-12-11 | 2021-04-13 | 京信智能科技(广州)有限公司 | 一种机器人的调度方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114281080A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114281080B (zh) | 一种amr调度系统中解死锁的方法 | |
CN109991977B (zh) | 机器人的路径规划方法及装置 | |
CN107167154B (zh) | 一种基于时间代价函数的时间窗路径规划冲突解决方法 | |
CN111301409A (zh) | 一种泊车路径规划方法、装置、车辆和存储介质 | |
CN113074728B (zh) | 基于跳点寻路与协同避障的多agv路径规划方法 | |
CN109724612A (zh) | 一种基于拓扑地图的agv路径规划方法及设备 | |
CN110058586A (zh) | 一种自动导引运输车路径冲突的避让方法及装置 | |
CN111338343B (zh) | 自动引导车调度方法、装置、电子设备及存储介质 | |
JP2022082419A (ja) | 動作環境におけるルートプランを最適化するためのシステム及び方法 | |
TWI796017B (zh) | 自動導引車調度方法、電子裝置及電腦可讀儲存媒體 | |
CN113532443B (zh) | 路径规划方法、装置、电子设备及介质 | |
CN112445218A (zh) | 机器人路径规划方法、装置、服务器、存储介质及机器人 | |
CN112466111B (zh) | 一种车辆行驶控制方法、装置、存储介质及电子设备 | |
CN111061272A (zh) | 一种agv小车控制方法、装置、电子设备及存储介质 | |
JP2021071891A (ja) | 走行制御装置、走行制御方法、及びコンピュータプログラム | |
CN109839928A (zh) | 无人车及其远距离防对撞方法、装置和系统 | |
WO2023125076A1 (zh) | 调度方法、装置、系统、控制设备及可读存储介质 | |
CN116700298B (zh) | 路径规划方法、系统、设备及存储介质 | |
CN114265705A (zh) | 一种amr调度系统中预防死锁的方法 | |
CN109816131B (zh) | 路径规划方法、路径规划装置及计算机可读存储介质 | |
CN113515117A (zh) | 一种基于时间窗的多agv实时调度的冲突消解方法 | |
CN114077254A (zh) | 一种agv路径冲突处理方法 | |
CN115981264A (zh) | 一种考虑冲突的agv调度与数量联合优化方法 | |
CN118092359A (zh) | 一种面向突发障碍的多agv调度冲突消解方法 | |
CN117950372A (zh) | 一种基于双向单路径的agv路径规划方法、电子设备及介质 |
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 |