一种基于智能预测和误差识别的多AGV规划方法及系统

文档序号:29862394发布日期:2022-04-30 11:35阅读:139来源:国知局
一种基于智能预测和误差识别的多AGV规划方法及系统
一种基于智能预测和误差识别的多agv规划方法及系统
技术领域
1.本发明涉及agv技术领域,特别是涉及一种基于智能预测和误差识别的多agv规划方法及系统。


背景技术:

2.agv(automated guided vehicles)即自动导引运输车,通常也称为agv小车,是能够自动沿规定的导航路径行驶、具有安全保护、自动充电和各种移载功能的运输车。随着技术的发展,agv小车被广泛应用于制造业和物流业等不同的场景。为了提升agv在不同应用场景中的效率,一种有效的方法是投入多辆agv小车,但受限于工业环境的道路设置和任务的随机性,多agv调度过程中小车之间存在着很多公共路径,冲突检测和规避才能使多agv调度系统有效运行。此外,多agv调度系统的效率很大程度上决定了无人化工厂的生产效率。
3.目前,如果采用实时冲突检测的方法,当冲突即将发生时进行规避,可能导致agv小车掉头规避,降低agv小车的运行效率和增加耗电。如果采用实时预测的方法,提前预测未来要发生的冲突并进行规避能够提升agv小车的运行效率,但是现实场景中由于agv小车运行并非匀速,可能导致预测不准进而导致死锁等情况。


技术实现要素:

4.针对现有技术中存在的缺陷,本发明的目的在于提供一种基于智能预测和误差识别的多agv规划方法及系统,对比传统的agv调度和规避系统,该方法能够利用预测冲突的方式提前进行暂停或重规划规避,减少了agv小车频繁掉头回退导致的系统效率降低,同时对于预测消解冲突中可能存在误差导致的单边冲突和单点冲突,以及死锁情况,能够自动的消解冲突,实现了多agv调度和规避系统的自动化和智能化。
5.为了达到上述目的,本发明所采用的具体技术方案如下:
6.一种基于智能预测和误差识别的多agv规划方法,具体包括以下步骤:
7.s1,获取工厂地图和agv路网信息,工厂地图中包含任务点和agv小车经过的结点;
8.s2,获取空闲agv小车列表,从中选择完成任务代价最小的agv小车并向其下发任务;
9.s3,判断是否有空闲agv小车停在其他agv小车的任务点上,若是,则向该空闲agv小车下发规避到其他任务点的任务,否则执行下一步;
10.s4,按照优先级两两比较执行任务的agv小车之间是否存在公共路径,若否,执行步骤s6;若是,分别计算上述两个agv小车距离公共路径起点和公共路径终点的距离,设为dis
i,start
、dis
i,end
、dis
j,start
和dis
j,end
,若满足dis
j,start
<dis
i,start
<dis
j,end
或dis
i,start
<dis
j,start
<dis
i,end
,则判定会在公共路径产生冲突,并执行下一步,否则执行步骤s6;
11.s5,选择优先级低的agv小车进行规避,依次计算其在公共路径起点前进行暂停规避和绕行规避的代价,并向前预测一步判断规避方案是否会引起新的冲突,设未引起二次
冲突的规避点为可行规避点,若可行规避点中的最优规避点为剩余路径的下一个结点,则直接下发规避任务,若为剩余路径下一个结点之后的节点,则执行步骤s6;若优先级低的agv小车无可行规避点,则按照相同的规避策略向优先级高的agv小车发布规避方案,规避成功后降低优先级,若两车均不存在可行规避点,则执行步骤s6;
12.s6,判断是否存在预测误差导致的冲突,预测误差导致的冲突包括单边冲突和单点冲突,若存在,则以优先级低的agv小车进行掉头规避,即从上一个结点位置搜索一条离开公共路径的规避路径,腾出路径让优先级高的agv小车通过从而消解冲突;若不存在,则执行下一步;
13.s7,根据规避关系记录判断是否存在死锁,若不存在,置空规避关系记录,执行步骤s3,若存在,则从优先级低至高依次尝试掉头规避,当某agv小车规避方案可行时,则下发规避任务后执行步骤s3。
14.优选的,步骤s4中判断是否存在公共路径的具体方法如下:
15.以优先级低的agv小车的剩余路径节点为对象,在优先级高的agv小车的剩余路径倒序上查询是否存在上述节点,若存在则连续向后判断直到节点不相同,从而得到公共路径。
16.优选的,步骤s5中优先级低的agv小车的规避代价包括等待代价和路径代价,路径代价为规避路径的长度,等待代价为等待优先级高的agv小车通过公共路径所对应的距离长度。
17.优选的,单点冲突具体指的是两个agv小车的下一位置相同,且二者的当前位置互为再下一个位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:pathi[0]=pathj[0]且locj=pathi[1]且loci=pathj[1],则为单点冲突;
[0018]
单边冲突具体指的是两个agv小车的下一位置互为它们的当前位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:locj=pathi[0]且loci=pathj[0],则为单边冲突。
[0019]
优选的,步骤s7中采用经典拓扑排序算法计算是否存在死锁。
[0020]
一种基于智能预测和误差识别的多agv规划系统,包括:
[0021]
地图和路网单元,用于获取工厂地图和agv路网信息,工厂地图中包含任务点和agv小车经过的结点,agv路网信息指的是节点与节点之间、节点与任务点之间的连接信息;
[0022]
任务单元,用于对接上级的任务模块,当有任务需求时开始安排agv小车完成任务;
[0023]
调度和规避单元,获取空闲agv小车列表,从中选择完成任务代价最小的agv小车并向其下发任务;若有空闲agv小车停在其他agv小车的任务点上,则向该空闲agv小车下发规避到其他任务点的任务,按照优先级两两比较执行任务的agv小车之间是否存在公共路径,分别计算上述两个agv小车距离公共路径起点和公共路径终点的距离,设为dis
i,start
、dis
i,end
、dis
j,start
和dis
j,end
,若满足dis
j,start
<dis
i,start
<dis
j,end
或dis
i,start
<dis
j,start
<dis
i,end
,则判定会在公共路径产生冲突;选择优先级低的agv小车进行规避,依次计算其在公共路径起点前进行暂停规避和绕行规避的代价,并向前预测一步判断规避方案是否会引起新的冲突,设未引起二次冲突的规避点为可行规避点,若可行规避点中的最优规避点为
剩余路径的下一个结点,则直接下发规避任务,若为剩余路径下一个结点之后的节点;若优先级低的agv小车无可行规避点,则按照相同的规避策略向优先级高的agv小车发布规避方案,规避成功后降低优先级,若两车均不存在可行规避点,则判断是否存在预测误差导致的冲突,预测误差导致的冲突包括单边冲突和单点冲突,若存在,则以优先级低的agv小车进行掉头规避,即从上一个结点位置搜索一条离开公共路径的规避路径,腾出路径让优先级高的agv小车通过从而消解冲突;若不存在,则根据规避关系记录判断是否存在死锁,若不存在,置空规避关系记录,若存在,则从优先级低至高依次尝试掉头规避,当某agv小车规避方案可行时,下发规避任务。
[0024]
优选的,判断是否存在公共路径的具体方法如下:
[0025]
以优先级低的agv小车的剩余路径节点为对象,在优先级高的agv小车的剩余路径倒序上查询是否存在上述节点,若存在则连续向后判断直到节点不相同,从而得到公共路径。
[0026]
优选的,优先级低的agv小车的规避代价包括等待代价和路径代价,路径代价为规避路径的长度,等待代价为等待优先级高的agv小车通过公共路径所对应的距离长度。
[0027]
优选的,单点冲突具体指的是两个agv小车的下一位置相同,且二者的当前位置互为再下一个位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:pathi[0]=pathj[0]且locj=pathi[1]且loci=pathj[1],则为单点冲突;
[0028]
单边冲突具体指的是两个agv小车的下一位置互为它们的当前位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:locj=pathi[0]且loci=pathj[0],则为单边冲突。
[0029]
优选的,调度和规避单元采用经典拓扑排序算法计算是否存在死锁。
[0030]
本发明的有益效果在于:
[0031]
1、针对冲突发生时进行规避需要大量掉头的情况进而导致效率低下的问题,实时地与小车通信获取小车的路径、位置和状态信息,预测即将发生的冲突并通过计算在不同规避点规避的代价,智能的选择最佳的规避方案,通过提前暂停或提前重规划路径的方法规避冲突,从而提升多agv规划系统的效率。
[0032]
2、为了减少预测带来的误差导致规避方案失败,只有在小车即将到达最优的规避点时才会下发规避任务。对于预测误差导致的冲突,通过设定的冲突类型识别并进行消解,修正预测与实际运行过程的误差。
[0033]
3、对于小车因互相规避导致死锁的情况进行判断,当死锁发生时解决死锁冲突问题。
附图说明
[0034]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]
图1是本发明一种基于智能预测和误差识别的多agv规划方法的流程图;
[0036]
图2是小规模工厂地图示意图;
[0037]
图3是多agv两两比较顺序示意图;
[0038]
图4是消解冲突的规避选择示意图;
[0039]
图5是冲突消解时间向前预测一步说明示意图;
[0040]
图6是三辆agv小车形成死锁的示意图。
具体实施方式
[0041]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的其他实施例,都属于本发明保护的范围。
[0042]
如图1所示,本发明提出了一种基于智能预测和误差识别的多agv规划方法,具体包括以下步骤:
[0043]
s1,获取工厂地图和agv路网信息,工厂地图中包含任务点和agv小车经过的结点;
[0044]
s2,获取空闲agv小车列表,从中选择完成任务代价最小的agv小车并向其下发任务;该步骤可具体描述如下:
[0045]
s3,判断是否有空闲agv小车停在其他agv小车的任务点上,若是,则向该空闲agv小车下发规避到其他任务点的任务,否则执行下一步;
[0046]
s4,按照优先级两两比较执行任务的agv小车之间是否存在公共路径,若否,执行步骤s6;若是,分别计算上述两个agv小车距离公共路径起点和公共路径终点的距离,设为dis
i,start
、dis
i,end
、dis
j,start
和dis
j,end
,若满足dis
j,start
<dis
i,start
<dis
j,end
或dis
i,start
<dis
j,start
<dis
i,end
,则判定会在公共路径产生冲突,并执行下一步,否则执行步骤s6;
[0047]
步骤s4中判断是否存在公共路径的具体方法如下:
[0048]
以优先级低的agv小车的剩余路径节点为对象,在优先级高的agv小车的剩余路径倒序上查询是否存在上述节点,若存在则连续向后判断直到节点不相同,从而得到公共路径。
[0049]
s5,选择优先级低的agv小车进行规避,依次计算其在公共路径起点前进行暂停规避和绕行规避的代价,并向前预测一步判断规避方案是否会引起新的冲突,设未引起二次冲突的规避点为可行规避点,若可行规避点中的最优规避点为剩余路径的下一个结点,则直接下发规避任务,若为剩余路径下一个结点之后的节点,则执行步骤s6;若优先级低的agv小车无可行规避点,则按照相同的规避策略向优先级高的agv小车发布规避方案,规避成功后降低优先级,若两车均不存在可行规避点,则执行步骤s6;
[0050]
步骤s5中优先级低的agv小车的规避代价包括等待代价和路径代价,路径代价为规避路径的长度,等待代价为等待优先级高的agv小车通过公共路径所对应的距离长度。
[0051]
s6,判断是否存在预测误差导致的冲突,预测误差导致的冲突包括单边冲突和单点冲突,若存在,则以优先级低的agv小车进行掉头规避,即从上一个结点位置搜索一条离开公共路径的规避路径,腾出路径让优先级高的agv小车通过从而消解冲突;若不存在,则执行下一步;
[0052]
单点冲突具体指的是两个agv小车的下一位置相同,且二者的当前位置互为再下
一个位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:pathi[0]=pathj[0]且locj=pathi[1]且loci=pathj[1],则为单点冲突;
[0053]
单边冲突具体指的是两个agv小车的下一位置互为它们的当前位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:locj=pathi[0]且loci=pathj[0],则为单边冲突。
[0054]
s7,根据规避关系记录判断是否存在死锁,若不存在,置空规避关系记录,执行步骤s3,若存在,则从优先级低至高依次尝试掉头规避,当某agv小车规避方案可行时,则下发规避任务后执行步骤s3。
[0055]
步骤s7中采用经典拓扑排序算法计算是否存在死锁。
[0056]
下面以一个具体实施例对本发明进行详细阐述。
[0057]
a、获取工厂地图和agv路网信息:以附图2所示的小规模工厂地图为例,在以栅格化建图的地图g=(v,e),其中v为图的节点集合,包含两种属性:ap点表示产品的加工地点或存放地点,称为任务点;lm点表示可以经过的结点;e为图中的边的集合,边上的通行设计为双向单行。
[0058]
b、接收任务:对接上级的任务模块,当有任务需求时即会开始安排agv小车完成任务。
[0059]
c、获取是否存在空闲小车:调度和规避系统与小车进行通信,agv小车开机时状态为空闲,当agv小车受到任务开始运行时,小车的状态转为忙碌;当agv小车完成任务停留在某ap点时,小车的状态转为空闲。此处与所有小车通信,若存在空闲小车则执行下一步,若不存在空闲小车即小车都在忙碌态,则重复本步骤,等待有小车完成任务。
[0060]
d、选择空闲小车完成代价最小的agv并下发:对于接收到的任务,依次计算空闲小车完成该任务的代价,代价计算方式为空闲小车位置到任务起点的最短路径距离加任务起点到任务终点的最短路径距离,选择路径代价最小的agv小车下发任务。
[0061]
e、空闲小车是否停在其他小车的任务点上:当某agv小车i收到任务时,若有空闲agv小车j停在小车i的任务起点或任务终点时,执行步骤f。如果没有空闲小车停在其他小车的任务点上则执行步骤g。
[0062]
f、给空闲小车下发规避到其他任务点的规避任务:由于任务是按实际需求生成的,当agv小车1到达该任务点时,无法保证agv小车2已接到任务离开该任务点,此时需给空闲小车下发规避到其他ap点的任务,任务起点即空闲小车所在的ap点,任务终点在除去其他所有空闲小车所在位置和忙碌小车的任务起点以及任务终点的ap点中选择最近的ap点,然后执行步骤g。
[0063]
g、忙碌小车之间是否存在公共路径:按照设定的优先级两两比较忙碌的agv小车,对某两辆小车剩余未完成的任务路径,从前到后查询是否存在公共路径,若存在公共路径则执行步骤h;若不存在公共路径则执行步骤j。
[0064]
初始优先级设定方式为越早的任务优先级越高,此处为人为设定,可随偏好修改。
[0065]
为了在多agv系统中尽可能使得优先级低的小车规避优先级高的小车,假设存在四辆优先级从高到低的小车a、b、c、d,多agv小车两两比较顺序如图3所示。在这样的比较顺序下,如小车c同时需规避小车b和小车a,小车b与小车c比较(图中顺序为2)时初定规避c,
但由于a的优先级更高,比较顺序靠后(图中顺序为4),此时小车b就会先规避优先级更高的小车a。
[0066]
h、预测是否同时经过公共路径:对于存在公共路径的两辆小车i和j,分别计算他们距公共路径起点start和公共路径终点end的距离(dis
i,start
、dis
i,end
)和(dis
j,start
、dis
j,end
),若满足dis
j,start
<dis
i,start
<dis
j,end
或dis
i,start
<dis
j,start
<dis
i,end
,判定会同时经过公共路径产生冲突则执行步骤i;否则,执行步骤j。
[0067]
agv小车i和小车j的剩余路径在查找是否存在公共路径时(假设j的优先级低),此时的公共路径指的是相向路径。查找方式为依次以小车j的剩余路径pathj节点为对象,在小车i的剩余路径pathi倒序repathi上查询是否存在该节点,若存在则连续向后判断,直到节点不相等时即找到了所指的公共路径,示例如下。
[0068]
示例1:小车j的剩余路径pathj:lm31,lm32,ap13;小车i的剩余路径pathi:lm34,lm33,lm26,ap09。
[0069]
示例2:小车j的剩余路径pathj:lm29,lm30,lm31,lm32,lm33,lm26,ap13;小车i的剩余路径pathi:lm34,lm33,lm26,ap09。
[0070]
示例3:小车j的剩余路径pathj:lm30,lm31,lm32,lm33,lm34,lm35,ap14;小车i的剩余路径pathi:lm35,lm34,lm33,lm32,ap12。
[0071]
对于示例1,小车j和小车i的公共路径为空;对于示例2,小车j和小车i的公共路径为lm33;对于示例3,小车j和小车i的公共路径为lm32,lm33,lm34,lm35。
[0072]
i、选择agv小车下发暂停等待或绕行规避任务:以优先级低的agv小车j进行规避,依次计算其在公共路径起点前每一个lm点进行暂停规避和绕行规避的代价,并向前预测一步判断规避方案是否又会引起和其他小车的冲突,不引起二次冲突的规避点为可行规避点,若可行规避点中的最优规避点为小车j剩余路径的下一个点,则给小车j下发规避任务(若最优规避方案为暂停规避且下发规避任务时,记录规避关系);若可行规避点中的最优规避点为小车j剩余路径的下一个点之后的结点,则执行步骤j;若没有可行的规避点则以优先级高的agv小车i进行规避,规避方法同小车j。若小车i成功规避,则将小车i的优先级降到j之后,若两车都不存在可行的规避点则执行步骤j。
[0073]
当两辆小车包含公共路径时,以优先级低的agv小车j进行规避,依次计算其在公共路径起点前每一个lm点进行暂停规避和绕行规避的代价。以图4所示的任务为例,假设小车j的任务起点为ap12,任务终点为ap14;小车i的任务起点为ap11,任务终点为ap13。若小车j当前在位置1,小车i当前在位置2,此时的公共路径为lm32,lm33,lm34,lm35。agv小车j在lm31前每一个点的代价计算方式为:代价=等待代价+路径代价,等待代价即原地等待小车i通过公共路径的时间,路径代价即规避路径的长度,为了统一度量单位,将等待代价重定义为等待小车i通过公共路径的要走的距离长度。
[0074]
对于公共路径前的每一个点,lm25,lm29,lm30,lm31。小车j依次计算等待和绕行的代价,智能的选择最优的规避方案并尽可能降低误差带来的误差。
[0075]
举例对于lm25节点,暂停等待小车i通过公共路径的代价为6(假设两个节点之间的距离为1),路径代价不变仍为9;绕行即搜索其他路径,这里为lm25,lm21,lm22,lm23,lm18,lm11,lm12,lm13,lm14,lm15,lm16,lm20,lm24,lm28,lm36,lm35,ap14,此时不需等待即等待代价为0,路径代价为17。对于lm25节点,暂停等待的代价较优。又如节点lm31,小车j
到此处的过程中小车i也在前进,以等速的方式预测小车j到达位置3,小车i到达位置4,此时暂停规避的等待代价为3,路径代价为6;绕行规避的等待代价为0,路径代价为20。
[0076]
节点lm31的最优规避方式为暂停规避,代价为9且优于节点lm25。系统此时不做处理,直到小车j的下一个点是最优规避点时下发暂停或绕行任务,这样做的目的是为了防止长距离的预测使得误差较大,通过这样的方式智能的选择最优的规避方案并尽可能降低误差带来的误差。当最优规避方案为暂停规避且下发规避任务时,记录规避关系。
[0077]
在为小车j搜索最优的规避点以及规避方式时,为了采取的规避策略不会引起与其他小车的二次冲突,采取向前预测一步判断规避方案是否又会引起和其他小车的冲突的策略,不引起二次冲突的规避点才为可行规避点。以图5中的情况为例,假设小车j的任务起点为ap12,任务终点为ap14;小车i的任务起点为ap11,任务终点为ap13,小车k的任务起点为ap09,任务终点为ap06。若小车j当前在位置1,小车i当前在位置2,优先级从高到低为k,i,j。当判断小车j与小车i的冲突时,依次判断公共路径起点前的每一个节点进行暂停规避和绕行规避的可行性。可知小车j在位置1暂停等待的总代价为15,绕行规避的总代价为17;而在位置3暂停等待的总代价为9,绕行的总代价为20。但是当小车j在lm31位置暂停等待小车i时,若小车k此时在位置5,小车i的剩余路径为lm32,lm33,lm34

,小车k的剩余路径为ap09,lm26,lm33,lm32

,原本与小车k公共路径为lm32,lm33,但经过时间不同、无冲突的情况转化为有冲突,因为小车j需要在lm32位置等待距离为3。因此,在为每一个可能规避的节点搜索暂停和绕行的可行性和代价时,都会向前预测一步判断是否会引起与其他车的二次冲突。此时小车j在位置3暂停方案不可行,最优的选择即为在位置1处等待。又若小车j当前在位置6,此时可能的规避节点lm29,lm30,lm31在向前预测一步后均为不可行节点,则交换小车j与小车k的优先级,这样就会产生小车j在lm31位置暂停规避小车i,小车k在lm26位置暂停规避小车j的可行方案。
[0078]
j、是否存在预测误差导致的冲突:由于预测的前提假设是agv小车通过两个lm点的时间相等,但在实际运行环境中难免存在误差,这导致基于预测的冲突消解可能失效进而产生预测无法消解的冲突和死锁,为此本发明设计了两种预测冲突导致的冲突称为单边冲突和相向单点冲突,若判断存在预测冲突导致的冲突则执行步骤k;否则执行步骤l。
[0079]
由于预测的前提假设是agv小车通过两个lm点的时间相等,但在实际运行环境中难免存在误差,这导致基于预测的冲突消解可能失效进而产生预测无法消解的冲突和死锁,为此设计了两种预测冲突类型用来识别检测预测误差导致的冲突,从而修正智能预测产生的误差。
[0080]
单点冲突具体指的是两个agv小车的下一位置相同,且二者的当前位置互为再下一个位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:pathi[0]=pathj[0]且locj=pathi[1]且loci=pathj[1],则为单点冲突;
[0081]
单边冲突具体指的是两个agv小车的下一位置互为它们的当前位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:locj=pathi[0]且loci=pathj[0],则为单边冲突。
[0082]
k、选择agv小车下发回退规避任务:以优先级较低小车j进行掉头规避,即从它的上一个结点位置搜索一条离开公共路径的规避路径,腾出路径让小车i通过从而消解冲突。
[0083]
l、是否存在死锁:由于预测的前提假设是agv小车通过两个lm点的时间相等,但在实际运行环境中难免存在误差,这导致基于预测的冲突消解可能失效进而产生预测无法消解的冲突和死锁,根据系统记录的规避关系记录判断是否存在死锁,若存在则执行步骤m;否则,置空规避关系记录,执行步骤e。
[0084]
在暂停规避的过程中,随着预测误差的积累还可能导致死锁,因此在每一次冲突检测循环过程中,根据步骤i记录的规避关系判断是否存在死锁。具体包含以下步骤如下:
[0085]
死锁是一种小车互相等待形成闭环的情况,图6即一种三辆小车形成死锁的示例。假设三辆小车的的优先级为i,j,k,在规避的过程中产生了k暂停规避j、j暂停规避i、i暂停规避k的规避,从而形成死锁。此处采用经典的拓扑排序算法计算图中是否存在死锁。
[0086]
m、选择agv小车下发死锁消解任务:对于产生死锁的多辆小车,从优先级低至高依次尝试掉头规避,当某agv小车规避方案可行,则下发规避任务后执行步骤e。
[0087]
对于产生死锁的多辆小车,从优先级低至高依次尝试回退规避,如对于图6中存在的示例,优先从优先级最低的小车k开始搜索。小车k尝试掉头即从它的当前位置(若小车在边上,当前位置取它的上一个经过的节点),搜索规避车辆为暂停规避小车k的车辆即小车i,搜索位置为小车j与小车i的公共路径之外的最近节点,并将小车k的优先级置于小车i之后。这样做的目的是,当小车k离开暂停等待它的小车i路径后,由于小车k优先级低则开始规避,小车i即可通行,死锁消解。注意此处小车在搜索回退方案时,仍会采用步骤i中的向前预测一步方法,当掉头回退仍会与其他小车产生冲突时,搜索其他小车进行规避。这样做的目的是当多辆小车形成死锁后,靠近中心的小车可能无法规避,向前预测一步可以使得靠近外围的车辆掉头回退规避,从而成功的消解冲突。
[0088]
消解冲突后,置空规避关系记录。
[0089]
本发明还提出了一种基于智能预测和误差识别的多agv规划系统,包括:
[0090]
地图和路网单元,用于获取工厂地图和agv路网信息,工厂地图中包含任务点和agv小车经过的结点,agv路网信息指的是节点与节点之间、节点与任务点之间的连接信息;
[0091]
任务单元,用于对接上级的任务模块,当有任务需求时开始安排agv小车完成任务;
[0092]
调度和规避单元,获取空闲agv小车列表,从中选择完成任务代价最小的agv小车并向其下发任务;若有空闲agv小车停在其他agv小车的任务点上,则向该空闲agv小车下发规避到其他任务点的任务,按照优先级两两比较执行任务的agv小车之间是否存在公共路径,分别计算上述两个agv小车距离公共路径起点和公共路径终点的距离,设为dis
i,start
、dis
i,end
、dis
j,start
和dis
j,end
,若满足dis
j,start
<dis
i,start
<dis
j,end
或dis
i,start
<dis
j,start
<dis
i,end
,则判定会在公共路径产生冲突;选择优先级低的agv小车进行规避,依次计算其在公共路径起点前进行暂停规避和绕行规避的代价,并向前预测一步判断规避方案是否会引起新的冲突,设未引起二次冲突的规避点为可行规避点,若可行规避点中的最优规避点为剩余路径的下一个结点,则直接下发规避任务,若为剩余路径下一个结点之后的节点;若优先级低的agv小车无可行规避点,则按照相同的规避策略向优先级高的agv小车发布规避方案,规避成功后降低优先级,若两车均不存在可行规避点,则判断是否存在预测误差导致的冲突,预测误差导致的冲突包括单边冲突和单点冲突,若存在,则以优先级低的agv小车进行掉头规避,即从上一个结点位置搜索一条离开公共路径的规避路径,腾出路径让优先级
高的agv小车通过从而消解冲突;若不存在,则根据规避关系记录判断是否存在死锁,若不存在,置空规避关系记录,若存在,则从优先级低至高依次尝试掉头规避,当某agv小车规避方案可行时,下发规避任务。
[0093]
优选的,判断是否存在公共路径的具体方法如下:
[0094]
以优先级低的agv小车的剩余路径节点为对象,在优先级高的agv小车的剩余路径倒序上查询是否存在上述节点,若存在则连续向后判断直到节点不相同,从而得到公共路径。
[0095]
优选的,优先级低的agv小车的规避代价包括等待代价和路径代价,路径代价为规避路径的长度,等待代价为等待优先级高的agv小车通过公共路径所对应的距离长度。
[0096]
优选的,单点冲突具体指的是两个agv小车的下一位置相同,且二者的当前位置互为再下一个位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:pathi[0]=pathj[0]且locj=pathi[1]且loci=pathj[1],则为单点冲突;
[0097]
单边冲突具体指的是两个agv小车的下一位置互为它们的当前位置,假设小车j的当前位置节点为locj,剩余路径为pathj,小车i的当前位置节点为loci,剩余路径为pathi,若满足:locj=pathi[0]且loci=pathj[0],则为单边冲突。
[0098]
优选的,调度和规避单元采用经典拓扑排序算法计算是否存在死锁。
[0099]
本发明的有益效果在于:
[0100]
1、针对冲突发生时进行规避需要大量掉头的情况进而导致效率低下的问题,实时地与小车通信获取小车的路径、位置和状态信息,预测即将发生的冲突并通过计算在不同规避点规避的代价,智能的选择最佳的规避方案,通过提前暂停或提前重规划路径的方法规避冲突,从而提升多agv规划系统的效率。
[0101]
2、为了减少预测带来的误差导致规避方案失败,只有在小车即将到达最优的规避点时才会下发规避任务。对于预测误差导致的冲突,通过设定的冲突类型识别并进行消解,修正预测与实际运行过程的误差。
[0102]
3、对于小车因互相规避导致死锁的情况进行判断,当死锁发生时解决死锁冲突问题。
[0103]
以上述依据本发明的理想实施例为启示,通过上述的说明内容,本领域技术人员完全可以在不偏离本发明技术思想的范围内,进行多样的变更以及修改。本发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求书范围来确定其技术性范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1