掌桥专利:专业的专利平台
掌桥专利
首页

基于关键点的死锁预防方法以及小车控制系统

文献发布时间:2023-06-19 19:07:35


基于关键点的死锁预防方法以及小车控制系统

技术领域

本公开涉及自动导引车领域,尤其涉及一种基于关键点的死锁预防方法、一种小车控制系统以及一种计算机可读存储介质。

背景技术

随着机器人、物联网等技术的发展与普及,应用自动导引车AGV(AutomaticGuided Vehicle)的智能物流仓库以其高效的运作效率赢得了广大企业的青睐。根据具体的应用场景,自动导引车系统AGVS(Automatic Guided Vehicle System)的规模从单台到几十台甚至上百台不等,系统道路网也越来越复杂,其中主要存在碰撞与死锁两大难题。例如,分布式AGV控制情形下,AGV在路径规划算法(如A*算法)完成后,或者集中式AGV控制情形下,因为实际场地或运行等因素,容易发生AGV路径重合等产生死锁的情况。过去的仓库设计者往往采用单行线地图的方式规避该问题,但这种过于保守的地图设计策略将导致AGV需要绕行更远的距离才能抵达目的地,限制了AGVS的性能发挥。在保证AGVS较高运行效率的前提下,如何提出有效的交通控制策略,确保系统不因发生碰撞与死锁而陷入瘫痪,保证AGV交通管制系统运行的有序性和高效性,具有重要意义。

背景技术部分的内容仅仅是公开发明人所知晓的技术,并不当然代表本领域的现有技术。

发明内容

有鉴于现有的一个或多个缺陷,本发明设计一种基于关键点的死锁预防方法,包括:

S11:当接收到小车添加关键点的请求时,通过处理器将小车添加到所述关键点的候选集合中;

S12:当所述候选集合中存在多个小车时,两两比对,对于剩余路径存在重合的小车,基于每个小车的冲突数量以及到达所述关键点的距离,通过处理器评出优选小车;

S13:将所述优选小车锁闭到所述关键点,通过处理器选择避让点,并控制所述优选小车前往避让点;

S14:当所述优选小车通过所述关键点后,通过处理器释放锁闭,并将其从所述候选集合中删除;

S15:重复步骤S11-S14,直至所述候选集合中的全部小车通过所述关键点;

其中,与一个小车的剩余路径存在重合的小车数量为该小车的冲突数量。

根据本发明的一个方面,还包括:根据地图边关系进行扫描,将符合以下条件的路径点设为关键点:

出边和入边的总数大于等于3;

出边大于等于2;和

至少有一个相邻的路径点在巷道中。

根据本发明的一个方面,其中所述步骤S12还包括:

S121:对于剩余路径存在重合的小车,计算每个小车的冲突数量,将冲突数量最多的小车添加到优选冲突集合;

S122:对于所述优选冲突集合中的全部小车,选出处于未带载状态的小车,并将所述处于未带载状态的小车添加到第二冲突集合;

S123:对于所述第二冲突集合中的全部小车,计算每个小车到达所述关键点的曼哈顿距离,将曼哈顿距离最短的小车评选为优选小车。

根据本发明的一个方面,还包括:当所述候选集合中剩余一个小车时,控制所述一个小车通过所述关键点。

根据本发明的一个方面,还包括:当所述候选集合中剩余两个小车,并且所述两个小车的剩余路径不存在重合时,控制所述两个小车依次通过所述关键点。

根据本发明的一个方面,其中所述步骤S13还包括:将符合以下条件的路径点设为避让点:

与所述关键点相邻,且深度为1;

位于关键点的出边方向,且不与其它小车的行驶方向冲突;和

无其它小车前往避让。

根据本发明的一个方面,其中所述步骤S13还包括:选择避让点后,计算并拼接所述优选小车的当前位置到避让点的路径以及从避让点到所述优选小车终点的路径,更新所述优选小车的路径。

根据本发明的一个方面,其中所述步骤S13还包括:当不存在符合条件的避让点或者所述避让点位于所述优选小车的剩余路径上时,控制所述优选小车沿剩余路径继续行驶。

根据本发明的一个方面,还包括:在小车行驶过程中,探测到下一个关键点或者在第一预设距离内存在障碍物时,将所述障碍物设为不可通行点,重新规划路径。

根据本发明的一个方面,还包括:在小车行驶过程中,探测到距离最后一个关键点小于第二预设距离或者距离终点小于第三预设距离内存在处于空闲状态的小车时,触发所述处于空闲状态的小车驶离小车的剩余路径。

本发明还涉及一种小车控制系统,包括:

多个小车,

调度单元,与所述多个小车通信,配置为执行如权利要求1-10中任一项所述的死锁预防方法。

根据本发明的一个方面,所述调度单元还包括:

锁闭管理模块,配置为管理所述多个小车的锁闭请求以及释放锁闭请求;

路径规划模块,配置为对所述多个小车进行路径规划;和

死锁预防模块,与所述锁闭管理模块和所述路径规划模块耦接,配置为控制所述多个小车解除死锁、避开障碍物以及触发处于空闲状态的小车驶离。

根据本发明的一个方面,其中所述小车为自动导引运输车。

本发明还涉及一种计算机可读存储介质,包括存储于其上的计算机可执行指令,所述可执行指令在被处理器执行时实施如上所述的死锁预防方法。

本发明的技术方案通过识别和标记关键点,可以在多车情况下对关键点处进行交通控制以预防死锁、避免碰撞,实现AGV的无冲突高效运行。主要流程为:1.识别地图中可能产生冲突的关键点位;2.感知小车即将通过的关键点位;3.感知小车前方的固定障碍物绕过;4.感知小车前方空闲车驶离;5.控制关键点位的小车通过顺序;6.选择需要避让的小车到关键点位附近避让。

附图说明

构成本公开的一部分的附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:

图1示出了本发明一个实施例的基于关键点的死锁预防方法流程图;

图2A示出了本发明实施例一的判断关键点的示意图;

图2B示出了本发明实施例二的判断关键点的示意图;

图2C示出了本发明实施例三的判断关键点的示意图;

图3A示出了本发明实施例四的计算冲突距离的示意图;

图3B示出了本发明实施例五的计算冲突距离的示意图;

图3C示出了本发明实施例六的计算冲突距离的示意图;

图4示出了本发明一个实施例的死锁预防方法之步骤S12的流程图;

图5示出了本发明实施例七的死锁预防方法示意图;

图6示出了本发明实施例八的死锁预防方法示意图;

图7示出了本发明实施例九的死锁预防方法示意图;

图8示出了本发明实施例十的障碍物避让示意图;

图9示出了本发明实施例十一的障碍物避让示意图;

图10示出了本发明实施例十二的空闲车避让示意图;

图11示出了本发明实施例十三的空闲车避让示意图;

图12示出了本发明实施例十四的空闲车避让示意图;

图13示出了本发明实施例十五的空闲车避让示意图;

图14示出了本发明一个实施例的小车控制系统模块图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。

在本发明的描述中,需要理解的是,术语"中心"、"纵向"、"横向"、"长度"、"宽度"、"厚度"、"上"、"下"、"前"、"后"、"左"、"右"、"竖直"、"水平"、"顶"、"底"、"内"、"外"、"顺时针"、"逆时针"等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,"多个"的含义是两个或两个以上,除非另有明确具体的限定。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语"安装"、"相连"、"连接"应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接:可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征之"上"或之"下"可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征"之上"、"上方"和"上面"包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征"之下"、"下方"和"下面"包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第二特征。

下文的公开提供了许多不同的实施方式或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1示出了本发明一个实施例的基于关键点的死锁预防方法,死锁预防方法10包括以下步骤:

在步骤S11,当接收到小车添加关键点的请求时,通过处理器将小车添加到关键点的候选集合中。系统启动时,针对导入的地图元素,根据地图边关系,遍历其中的路径点或换向点,将满足一定条件的点设为关键点。当小车(自动引导车)接近该关键点时,小车可发出添加该关键点的请求。

根据本发明的一个优选实施例,死锁预防方法10还包括:根据地图边关系进行扫描,将符合以下条件的路径点设为关键点:(a1)出边和入边的总数大于等于3;(a2)出边大于等于2;(a3)至少有一个相邻的路径点在巷道中。例如,判断路径点A点是否为关键点,其中,A点的出边为以A点为起点、其它路径点为终点的路径方向;A点的入边为以其它路径点为起点、A点为终点的路径方向。基于A点的出边和入边可以判断条件(a1)和条件(a2)。优选地,A点可以选择特殊的路径点,例如换向点(即允许带载的小车变换方向的路径点),但不考虑存储点及其相关的出边和入边。

关于条件(a3),可以通过以下方式判断A点是否至少有一个相邻的路径点(例如B点)在巷道中:(b1)与B点相邻的路径点的数量小于与A点相邻的路径点的数量;(b2)满足以下条件之一:与B点相邻的路径点的数量为1;或,与B点相邻的路径点的数量为2,且两相邻的路径点和B点形成的不是直角;或,与B点相邻的路径点的数量为3,且去掉A点后形成的不是平角。因为小车(例如AGV)只能沿曼哈顿距离在路径点或换向点间移动,不考虑双通道的话,A点的出边和入边总数最大为4,基于条件(b1),可以判断B点出边和入边总数为2或3,此种情况,B点可能位于巷道中(例如十字路口或丁字路口),也可能紧邻路径边界(例如墙角或墙边),需要再结合条件(b2)进一步排除后者。

以下通过实施例描述如何判断A点为关键点。

图2A示出了本发明实施例一的判断关键点的示意图,图中黑色粗实线为路径边界(例如墙体或货架),每个方格代表一个路径点或者换向点。首先,A点的出边数为2,入边数为1,出边和入边总数为3,所以A点满足条件“(a1)出边和入边总数大于等于3”以及“(a2)出边大于等于2”。继续判断与A点相邻的B点是否在巷道中:与B点相邻的点为A点和C点,则与B点相邻的点数为2;与A点相邻的点为B点、D点和E点,则与A点相邻的点数为3,B点满足条件“(b1)与B点相邻的点数小于与A点相邻的点数”,但是,A点、B点和C点形成直角,所以B点不满足条件“(b2)与B点相邻的点数为2,且两相邻的点和B点形成的不是直角”。亦即,B点不在巷道中,B点不满足条件“(a3)与A点相邻的B点在巷道中”,因此,A点不满足成为关键点的全部条件,A点不是关键点。

图2B示出了本发明实施例二的判断关键点的示意图,图中黑色粗实线为路径边界(例如墙体或货架),每个方格代表一个路径点或者换向点。首先,A点的出边数为2,入边数为2,出边和入边总数为4,所以A点满足条件“(a1)出边和入边总数大于等于3”和“(a2)出边大于等于2”。继续判断与A点相邻的B点是否在巷道中:与B点相邻的点为A点、C点和D点,则与B点相邻的点数为3;与A点相邻的点为B点、E点、F点和H点,则与A点相邻的点数为4,B点满足条件“(b1)与B点相邻的点数小于与A点相邻的点数”,但是,去掉A点后,B点、C点和D点形成平角,所以B点不满足条件“(b2)与B点相邻的点总数为3,且去掉A点后形成的不是平角”。亦即,B点不在巷道中,B点不满足条件“(a3)与A点相邻的B点在巷道中”,因此,A点不满足成为关键点的全部条件,A点不是关键点。

以上通过两个实施例排除了关键点靠近路径边界的情况,图2C示出了本发明实施例三的判断关键点的示意图,图中黑色粗实线为路径边界(例如墙体或货架),每个方格代表一个路径点或者换向点。首先,A点的出边数为3,入边数为1,出边和入边总数为4,所以A点满足条件“(a1)出边和入边总数大于等于3”以及“(a2)出边大于等于2”。然后,继续判断与A点相邻的B点是否在巷道中:与B点相邻的点为A点和C点,则与B点相邻的点数为2;与A点相邻的点为B点、D点、E点和F点,则与A点相邻的点数为4,B点满足条件“(b1)与B点相邻的点数小于与A点相邻的点数”,并且,A点、B点和C点形成平角,所以B点满足条件“(b2)与B点相邻的点数为2,且两相邻的点和B点形成的不是直角”。亦即,B点在巷道中,B点满足条件“(a3)与A点相邻的B点在巷道中”,因此,A点满足成为关键点的全部条件,A点是关键点。

以上通过三个实施例对如何判断关键点进行了描述,基于上述条件,扫描出地图中的全部关键点。关键点通常为可能发生冲突的路径点,一般来说,以下路径点都会被标识为关键点:十字路口的交叉点、丁字路口的交叉点以及死胡同路口的交叉点。

对于每个关键点,可以设置该关键点的候选集合。小车在运行过程中,可检索其路径上的下一个关键点,并发出添加关键点的请求,从而该小车被加入到该关键点的候选集合中。另外,每个关键点的候选集合是动态调整的,当小车申请添加该关键点时可以加入该关键点的候选集合;当小车通过该关键点之后,可以从该关键点的候选集合中删除。

在步骤S12:当候选集合中存在多个小车时,两两比对,对于剩余路径存在重合的小车,基于每个小车的冲突数量以及到达关键点的距离,通过处理器评出优选小车。其中,优选小车为可以优先通过该关键点的小车。当候选集合中存在多个小车时,需要解决两个问题:如何计算到冲突路径的冲突距离,以及如何提前解决死锁问题。

以小车AGV1为例,从AGV1最前端的锁闭点开始,找到剩余路径中的下一个关键点,例如关键点A1。其中,锁闭点为禁止其它AGV进入的路径点或换向点,以保证本AGV安全进入或通过。

找到下一关键点A1后,AGV1发出添加到关键点A1的请求,调度单元监听到该请求后,添加AGV1到关键点A1的候选集合中,并从其他关键点的候选集合中删除AGV1。

对于关键点A1的候选集合中的全部小车,基于各小车的路径,两两分组比对路径重合情况以计算到冲突路径的冲突距离(以下简称冲突距离)。例如某个分组中包括小车AGV1和小车AGV2,获取AGV1和AGV2的当前位置以及剩余路径,如果AGV2的剩余路径过了关键点A1后需要经过AGV1的当前位置,并且AGV2从关键点A1到AGV1的当前位置的路径与AGV1的当前位置到关键点的路径重合,则AGV1的冲突距离为0;否则,AGV1的冲突距离为AGV1的当前位置到关键点A1的曼哈顿距离。如果AGV2的冲突距离也为0,则AGV1和AGV2的剩余路径存在重合,按照当前路径继续行驶一定会发生死锁。一般来说,由于关键点A1至少有3个相邻的路径点,不在这两个小车路径上的第三个路径点可以作为避让点,从候选集合中选出优选小车后,更改其路径,并控制该优选小车行驶到该路径点进行避让,以避免死锁。

图3A示出了本发明实施例四的计算冲突距离的示意图,图中示出了AGV2和AGV1的当前位置以及关键点A1,其中,AVG2的剩余路径为P2,AGV1的剩余路径为P1,剩余路径P2与剩余路径P1在关键点A1两侧形成两段冲突路径CP1和CP2。AGV2第一次过关键点A1后需要经过AVG1的当前位置,亦即,剩余路径P2与剩余路径P1在关键点A1一侧形成冲突路径CP1,则AGV1的冲突距离为0;AGV1第一次过关键点A1后需要经过AVG2的当前位置,剩余路径P1与剩余路径P2在关键点A1另一侧形成冲突路径CP2,则AGV2的冲突距离为0。

图3B示出了本发明实施例五的计算冲突距离的示意图,图中示出了AGV2和AGV1的当前位置以及关键点A1,其中,AVG2的剩余路径为P2,AGV1的剩余路径为P1,剩余路径P2与剩余路径P1在关键点A1一侧形成冲突路径CP。AGV2第一次过关键点A1后需要经过AVG1的当前位置,则AGV1的冲突距离为0;AGV1第一次过关键点A1后不需要经过AVG2的当前位置,则AGV2的冲突距离为到达关键点A1的曼哈顿距离。

图3C示出了本发明实施例六的计算冲突距离的示意图;图中示出了AGV2和AGV1的当前位置以及关键点A1,其中,AVG2的剩余路径为P2,AGV1的剩余路径为P1,剩余路径P2与剩余路径P1形成冲突路径CP。AGV2第一次过关键点A1后不经过AVG1的当前位置,则AGV1的冲突距离为到达关键点A1的曼哈顿距离;AGV1第一次过关键点A1后也不经过AVG2的当前位置,则AGV2的冲突距离为到达关键点A1的曼哈顿距离。

以上通过三个实施例介绍了如何计算两个小车的冲突距离。按照上述方法,对候选集合中的全部小车,两两比对,获得全部冲突距离。

根据本发明的一个优选实施例,其中所述步骤S12还包括:

在步骤S121:对于剩余路径存在重合的小车,计算每个小车的冲突数量,将冲突数量最多的小车添加到优选冲突集合。其中,与一个小车的剩余路径存在重合的小车数量为该小车的冲突数量。以AGV1和AVG2为例,与AGV1剩余路径存在重合的小车,即冲突距离为0的小车,作为AGV1的冲突集合1,冲突集合1中的小车数量即为AGV1的冲突数量;与AGV2剩余路径存在重合的小车,即冲突距离为0的小车,作为AGV2的冲突集合2,冲突集合2中的小车数量即为AGV2的冲突数量。依次类推,计算每个小车的冲突数量,将冲突数量最多的小车添加到优选冲突集合。

在步骤S122:对于优选冲突集合中的全部小车,选出处于未带载状态的小车,并将所述处于未带载状态的小车添加到第二冲突集合。如果优选冲突集合冲有多个小车,例如在步骤S121中有多个小车的冲突数量相同,则继续比较小车的带载情况。此时不考虑带载多少,仅考虑是否带载。将其中未带载的小车添加到第二冲突集合。此外,如果优选冲突集合中仅有一个小车,则该小车为优选小车。

在步骤S123:对于第二冲突集合中的全部小车,计算每个小车到达关键点A1的曼哈顿距离,将曼哈顿距离最短的小车评选为优选小车。如果第二冲突集合中还有多个小车,例如冲突数量相同且均未带载,则继续比对小车到关键点A1的曼哈顿距离,将距离最近的评选为优选小车。此外,如果第二冲突集合中仅有一个小车,则该小车为优选小车。

以上通过步骤S121-S123选出了需要优先通过关键点A1的小车,上述方法的前提为候选集合中存在多个小车,并且预计未来会发生死锁。

根据本发明的一个优选实施例,死锁预防方法10还包括:当候选集合中剩余一个小车时,控制所述一个小车通过关键点。

根据本发明的一个优选实施例,死锁预防方法10还包括:当候选集合中剩余两个小车,并且两个小车的剩余路径不存在重合时,控制两个小车依次通过关键点。

评出优选小车之后,还需考虑:小车通过关键点A1后继续按照剩余路径行驶,还是更改路径、暂时前往避让点进行避让。

在步骤S13:将优选小车锁闭到所述关键点,通过处理器选择避让点,并控制所述优选小车前往避让点。评出优选小车后,本轮评选结束,其余小车留待下一轮评选优选小车。然后,将该优选小车锁闭到关键点A1,同时需要确定优选小车前往的下一个路径点,即避让点。

根据本发明的一个优选实施例,其中步骤S13还包括:将符合以下条件的路径点设为避让点:(c1)与所述关键点相邻,且深度为1;(c2)位于关键点的出边方向,且不与其它小车的行驶方向冲突;(c3)无其它小车前往避让。

例如,冲突距离均为0的AGV1和AGV2,在步骤S12中选出优选小车AGV1,首先,获取不与AGV1、AGV2冲突的行驶方向为可用方向;然后,获取关键点A1周围空闲的深度为1的在可用方向上的路径点为候选点,其中,深度为1表示路径点与关键点A1的距离为1个码点,即地图上的最小距离单位;接着,获取候选点中AGV1可达、不阻碍AGV2、无其他候选集合中优选小车选择的路径点;最后,选择其中一个点作为AGV1的避让点。

根据本发明的一个优选实施例,其中步骤S13还包括:选择避让点后,计算并拼接优选小车的当前位置到避让点的路径以及从避让点到优选小车终点的路径,更新优选小车的路径。继续以冲突距离均为0的AGV1和AGV2为例,AGV1通过关键点A1到达避让点后,如果其更新后的路径还需要通过关键点A1,可以继续竞争关键点A1,即参与下一轮候选集合中优选小车的评选。此时,AGV1的冲突距离为到达关键点A1的曼哈顿距离,AGV2的冲突距离为0,如果候选集合中仅有AGV1和AGV2,则本轮评选中AGV2为优选小车,可以锁闭并通过关键点A1。

根据本发明的一个优选实施例,其中所述步骤S13还包括:当不存在符合条件的避让点或者避让点位于优选小车的剩余路径上时,控制所述优选小车沿剩余路径继续行驶。继续以冲突距离均为0的AGV1和AGV2为例,AGV1通过关键点A1到达避让点后,如果其更新后的路径不需要再次通过关键点A1,即可继续沿剩余路径行驶。此时,候选集合中仅有AGV2,AGV2为优选小车,可以锁闭并通过关键点A1。

在步骤S14:当优选小车通过关键点后,通过处理器释放锁闭,并将其从候选集合中删除。例如,AGV1锁闭关键点A1,则只有AGV1可以通过,其它小车均不能进入或通过,所以AGV1通过后,需要释放锁闭,以便于其它小车继续竞争或通过该关键点A1。

在步骤S15:重复步骤S11-S14,直至候选集合中的全部小车通过关键点。当本轮的优选小车锁闭并通过关键点后,如果有新的小车申请添加到关键点A1的候选集合,则更新候选集合,继续下一轮评选;否则,基于候选集合中剩余的小车继续下一轮评选,直至关键点A1的候选集合中小车数量为0。

综上所述,通过步骤S11-S15介绍了死锁预防方法10,扫描出可能产生冲突的路径点,作为关键点;当小车即将通过该关键点时,基于候选集合中全部小车的冲突数量、带载情况以及冲突距离,控制小车顺序通过,前往避让点进行避让或者继续剩余路径,以实现死锁情况的提前解决。以下通过实施例进一步描述。

实施例七

如图5所示,小车AGV1和小车AGV2即将通过同一个十字路口。AGV2向前行驶过程中,添加本车到该十字路口的关键点候选集合中。AGV1向前行驶过程中,也申请添加到该候选集合中,则候选集合中有两个小车,开始优选小车的评选:由于AGV1和AGV2的冲突距离均不为0,亦即冲突数量均为0,如果其中一个未带载,则未带载小车为优选小车,否则,基于到达关键点的距离评出优选小车。如图5所示,例如AGV1到达关键点的距离为3,AGV2到达关键点的距离为1,由于AGV2距离关键点较近,AGV2为优选小车。AGV2到达十字路口附近,成功申请到关键点锁闭,AGV2优先通过十字路口,然后释放锁闭,继续剩余路径行驶,同时处理器将其从候选集合中删除。下一轮评选时,候选集合中仅剩AGV1,则AGV1为优选小车,可以锁闭并通过关键点、通过处理器释放锁闭并将其从候选集合中删除。该实施例为小车无冲突的情况。

实施例八

如图6所示,小车AGV1和小车AGV2即将通过同一个十字路口,并且AGV2在转弯后需要经过AGV1当前位置。AGV2向前行驶过程中,添加本车到该十字路口的关键点候选集合中。AGV1向前行驶过程中,也申请添加到该候选集合中,则候选集合中有两个小车,开始优选小车的评选:计算冲突距离,AGV1的冲突距离为0,AGV2的冲突距离为到达关键点的曼哈顿距离,此时AGV1的冲突数量为1,AGV2的冲突数量为0,AGV1的冲突数量多于AVG2的冲突数量,AGV1为优选小车。AGV1到达十字路口附近,成功申请到关键点锁闭,AGV1优先通过十字路口,然后释放锁闭,继续剩余路径行驶,同时处理器将其从候选集合中删除。下一轮评选时,候选集合中仅剩AGV2,则AGV2为优选小车,可以锁闭并通过关键点、通过处理器释放锁闭并将其从候选集合中删除。该实施例为预期会发生死锁并提前解决。

实施例九

如图7所示,小车AGV1和小车AGV2即将通过同一个十字路口,AGV2在转弯后需要经过AGV1当前位置,AGV1在转弯后也需要经过AGV2当前位置。AGV2向前行驶过程中,添加本车到该十字路口的关键点候选集合中。AGV1向前行驶过程中,也申请添加到该候选集合中,则候选集合中有两个小车,开始优选小车的评选:计算冲突距离,AGV1和AGV2的冲突距离均为0,此时AGV1的冲突数量为1,AGV2的冲突数量也为1,如果其中一个未带载,则未带载小车为优选小车,否则,基于到达关键点的距离评出优选小车。如图7所示,例如AGV1到达关键点的距离为3,AGV2到达关键点的距离为1,由于AGV2距离关键点较近,AGV2为优选小车。确定AGV2前往避让的避让点:AGV1和AGV2的行驶方向均不可用,十字路口向上或向右的深度为1的路径点为可用点,例如选择上方点为避让点。

AGV2更新路径为:当前位置→十字路口的关键点→十字路口上方的避让点→十字路口的关键点→目标位置。AGV2到达十字路口附近,成功申请到关键点锁闭,AGV2优先通过十字路口,然后释放锁闭,同时处理器将其从候选集合中删除。

由于AGV2的更新后路径还要通过该十字路口的关键点,AGV2重新申请添加到该关键点的候选集合,更新候选集合,参与下一轮评选的小车为AGV1和AGV2。计算冲突距离,AGV1的冲突距离为0,AGV2的冲突距离为到达关键点的曼哈顿距离,此时AGV1的冲突数量为1,AGV2的冲突数量为0,AGV1的冲突数量多于AVG2的冲突数量,AGV1为优选小车。AGV1到达十字路口附近,成功申请到关键点锁闭,AGV1优先通过十字路口,然后释放锁闭,继续剩余路径行驶,同时处理器将其从候选集合中删除。此时候选集合中仅剩AGV2,则AGV2为优选小车,可以锁闭并通过关键点、通过处理器释放锁闭并将其从候选集合中删除。该实施例为预期会发生环形死锁并提前解决。

以上通过实施例七、八、九,对死锁预防方法10进行了详细描述。本发明的技术方案通过识别和标记关键点,可以在多车情况下对关键点处进行交通控制以预防死锁、避免碰撞,实现AGV的无冲突高效运行。

根据本发明的一个优选实施例,死锁预防方法10还包括:在小车行驶过程中,探测到下一个关键点或者在第一预设距离内存在障碍物时,将障碍物设为不可通行点,重新规划路径。其中,第一预设距离例如为10个码点。障碍物例如为:人工锁闭路径点、故障锁闭路径点、货架、离线小车、状态异常小车、错误小车等。

图8示出了本发明实施例十的障碍物避让示意图,小车AGV1在双通道中行驶,行驶过程中在当前通道发现障碍物,将障碍物设为不可达路径点,从旁边通道绕过。

图9示出了本发明实施例十一的障碍物避让示意图,小车AGV1在单通道中行驶,行驶过程中在当前通道发现障碍物,将障碍物设为不可达路径点,从单通道外侧绕过。

根据本发明的一个优选实施例,死锁预防方法10还包括:在小车行驶过程中,探测到距离最后一个关键点小于第二预设距离或者距离终点小于第三预设距离内存在处于空闲状态的小车时,触发处于空闲状态的小车驶离小车的剩余路径。其中,第二预设距离例如为10个码点,第三预设距离例如为10个码点,第二预设距离与第三预设距离也可以不相等。触发处于空闲状态的小车避让时,其目标避让点满足不在当前小车的未来路径上。

图10示出了本发明实施例十二的空闲车避让示意图,小车AGV1前往d点,行驶过程中发现空闲小车AGV2,向调度单元申请空闲小车AGV2避让,AGV2收到避让任务,选择最近的不在小车AGV1路径上的可达点a并前往避让。小车AGV1到达d点。

图11示出了本发明实施例十三的空闲车避让示意图,小车AGV1前往d点,行驶过程中发现空闲小车AGV2。AGV2收到避让任务,选择最近的不在小车AGV1路径上的可达点e。此时,丁字路口的关键点候选集合中有AGV1和AGV2,计算冲突距离,AGV2的冲突距离为0,AGV1的冲突距离为到达关键点的曼哈顿距离,AGV2的冲突数量为1,AGV1的冲突数量为0,AGV2为优选小车,可以锁闭并通过关键点前往e点。AGV1在路口附近等待AGV2通过后,再锁闭并通过关键点前往d点。该实施例为死胡同口关键点的避让策略。

图12示出了本发明实施例十四的空闲车避让示意图,小车AGV1前往d点,行驶过程中发现空闲小车AGV2。AGV2收到避让任务,选择最近的不在小车AGV1路径上的可达点e。AGV2到达e点避让,AGV1达到d点。

图13示出了本发明实施例十五的空闲车避让示意图,小车AGV1前往d点,行驶过程中发现空闲小车AGV2。AGV2收到避让任务,选择最近的不在小车AGV1路径上的可达点e。AGV2到达e点避让,AGV1达到d点。该实施例为死胡同的避让策略。

本发明还涉及一种小车控制系统20,如图14所示,包括:

多个小车21,

调度单元22,与所述多个小车21通信,配置为执行如上所述的死锁预防方法10。

根据本发明的一个优选实施例,所述调度单元22还包括:

锁闭管理模块221,配置为管理所述多个小车21的锁闭请求以及释放锁闭请求;

路径规划模块222,配置为对所述多个小车21进行路径规划;和

死锁预防模块223,与所述锁闭管理模块221和所述路径规划模块222耦接,配置为控制所述多个小车21解除死锁、避开障碍物以及触发处于空闲状态的小车21驶离。

根据本发明的一个优选实施例,其中所述小车21为自动导引运输车。

本发明还涉及一种计算机可读存储介质,包括存储于其上的计算机可执行指令,所述可执行指令在被处理器执行时实施如上所述的死锁预防方法10。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于激光扫描的AGV小车控制系统及其控制方法
  • 上卷小车钢卷高度自动对中的控制系统及方法
  • 一种锁定自动小车行驶路径关键点的方法和装置
  • 一种基于三点编码标记点的车架的关键点测量方法
技术分类

06120115803476