本发明涉及自动导航小车,具体涉及一种多agv控制方法、装置、计算机设备及存储介质。
背景技术:
1、传统的制造业正在逐步转型升级为智慧化、自动化和数字化的“灯塔工厂”。制造工厂内逐步使用自动导航小车(automated guided vehicle,agv)代替人工完成物流运输。随着大量的agv被使用于物流运输,场地线路也更复杂,如果agv的协调控制不够理想,可能会导致相邻路线中发生agv碰撞或者相同路线上发生agv碰撞,导致系统发生死锁和交通管制问题,从而导致agv调度系统瘫痪,例如:两个agv分别需要在工厂内把货源运输到不同的位置,但是agv直接按照既定的行驶路线行驶会使两个agv在某一处发生碰撞。所以,需要优化agv的控制方法解决多agv在运行过程中的碰撞问题,从而提高车辆运行的安全性和总任务执行的效率。
2、文件cn110989570a公开了一种多agv防碰撞协同路径规划方法,在规划各个agv的行驶路线时,保证优先级最高的agv路线不动,比较优先级第二的agv路线与其是否有冲突碰撞的节点,如果冲突类型是可以躲避的,则令优先级第二的agv在碰撞前等待优先级最高的agv先行驶,如果冲突类型是不可躲避的,则重新规划优先级第二的agv的路径,直至所有agv的路径规划完毕为止。但是,相关技术是把agv视为了一个质点,而实际的agv因为设计的不同而具有不同的形状与轮廓,所以在agv外部轮廓比较小时,即使正常行驶也不一定与其他agv碰撞,在agv外部轮廓比较大时,某些感觉不会发生碰撞的位置也会发生碰撞,所以当前的agv控制方案常常不能准确防止多agv发生碰撞。
技术实现思路
1、有鉴于此,本发明提供了一种多agv控制方法、装置、计算机设备及存储介质,以解决当前agv控制方案不能准确防止多agv发生碰撞的问题。
2、第一方面,本发明提供了一种多agv控制方法,方法包括:获取拓扑地图中的路径线段,路径线段是通过若干路径点对拓扑地图中每一条完整的路径进行划分得到的线段;获取当前场景中每一型号agv的轮廓信息;将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹;判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况;根据接收的任务指令为当前场景中每个agv规划任务路径,并按照路径点将每条任务路径划分为若干任务路径线段;在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv;若存在,则暂停下发行驶到目标任务路径线段的任务到当前agv,直至冲突解除,下发行驶到目标任务路径线段的任务到当前agv;若不存在,则下发行驶到目标任务路径线段的任务到当前agv。
3、本实施例将agv拓扑地图上能够规划得到的全部完整路径划分为路径线段和路径点,然后将不同型号agv的轮廓信息依次遍历到每一条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹,从而将agv的外部轮廓引入路径线段的行驶过程,之后判断两两轮廓轨迹之间的干涉情况,针对其中一定会发生冲突的情况,将对应的路径线段和会发生冲突的特定型号agv记录到路径冲突表中。从而当agv控制系统协调控制各个agv执行任务时,将各个agv要行驶的任务路径划分为任务路径线段,以任务路径线段为指令单位依次下发给各个agv,并且在下发任务路径线段给各个agv之前,首先通过路径冲突表判断各个agv会发生冲突的其他任务路径线段上是否真实存在会发生冲突的特定型号agv,如果存在,则暂停下发任务路径线段给对应的agv,直至冲突解除;如果不存在,则直接下发任务路径线段给对应的agv。通过这一方案,可以借助路径冲突表中记录的冲突数据实时判断各个agv实际执行任务时是否会与旁边轮廓较大其他agv发生轮廓上的碰撞,如果下一步移动会和某个轮廓较大的agv发生轮廓上的碰撞,则等待,不会发生碰撞再继续行驶,从而解决了不同车型agv在不同路径行驶时碰撞情况难以避免的问题,并且通过预创建的路径冲突表查询碰撞情况,使agv控制系统仅需执行简单的查询操作,计算过程简单,系统响应迅速。
4、在一种可选地实施方式中,获取当前场景中每一型号agv的轮廓信息,包括:获取当前场景中每一型号agv的长和宽;根据每一型号agv的长和宽创建每一型号agv的最小外接矩形,作为每一型号agv的实际轮廓信息;利用每一型号agv对应长和宽中的最大值,创建每一型号agv的最大外接正方形,作为每一型号agv的最大轮廓信息。
5、在一种可选地实施方式中,将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹,包括:将每一型号agv的最大轮廓信息分别部署在每条路径线段的起点和终点上,得到多个最大轮廓轨迹;遍历判断每个最大轮廓轨迹和其他最大轮廓轨迹在起点和终点形成的最大轮廓信息是否有相交;如果有相交,则记录最大轮廓轨迹对应的路径线段之间的相交关系到路线相交表中,路线相交表中具有相交关系的路径线段用于表示各个型号agv在当前路径线段上行驶时与其他路径线段上的特定型号agv可能会发生冲突;将每一型号agv的实际轮廓信息分别遍历在路线相交表中的每条路径线段上,得到每一型号agv在路线相交表中的每条路径线段上的轮廓轨迹。
6、本实施例获取了每一型号agv的两种轮廓信息,一种是符合agv长宽的实际轮廓信息,另一种是利用长宽中的最大值构建的agv最大外接正方形,从而得到的最大轮廓信息。本实施例利用每一型号agv的最大轮廓信息分别部署在各条路径线段的起点和终点,每一条部署了最大轮廓信息的路径线段形成一个最大轮廓轨迹,之后,先两两判断每个最大轮廓轨迹和其他最大轮廓轨迹的起点/终点的最大轮廓信息是否相交,从而将其中相交的最大轮廓轨迹对应的路径线段写入路线相交表,表示可能会发生冲突但不一定发生冲突的路径线段关系,为后续路径线段和特定型号agv的冲突计算做准备。之后,本实施例只将每一型号agv的实际轮廓信息部署在路线相交表中相交的路径线段上,得到各个路径线段的轮廓轨迹,从而后续创建路径冲突表时,只需在可能冲突的路径线段中利用轮廓轨迹的干涉情况分析得到一定发生冲突的路径线段,加快了路径冲突表的创建效率,不需要对拓扑地图中的每个路径线段都利用每一型号agv的实际轮廓信息计算轮廓轨迹再遍历分析干涉,以降低agv控制系统的计算量和计算时间。
7、在一种可选地实施方式中,将每一型号agv的实际轮廓信息分别遍历在路线相交表中的每条路径线段上,得到每一型号agv在路线相交表中的每条路径线段上的轮廓轨迹,包括:根据当前agv的行驶方向,从当前agv的实际轮廓信息中确定当前agv在当前路径线段上每一步行驶的矩形距离;通过当前路径线段的长度和矩形距离的比值确定当前agv在当前路径线段上的矩形轨迹个数;基于当前agv的初始位置中心点坐标、矩形轨迹个数和当前路径线段的长度,计算当前agv每个矩形轨迹的中心点坐标;利用当前agv每个矩形轨迹的中心点坐标和当前agv的实际轮廓信息,计算当前agv每个矩形轨迹的矩形顶点坐标;通过当前agv每个矩形轨迹的矩形顶点坐标组成当前agv在当前路径线段上的轮廓轨迹。
8、本发明实施例按照agv移动的方向,将agv在一条路径线段的轮廓轨迹划分为多个首尾相接的矩形轨迹,每个矩形轨迹即agv的一个实际轮廓信息,通过这一方式,后续步骤在判断两条路径线段上分别行驶不同型号agv是否会发生冲突时,只需根据矩形轨迹的矩形顶点坐标,令一条轮廓轨迹的起点、终点两个矩形轨迹和另一条轮廓轨迹的全部矩形轨迹依次比对,只要起点终点两个矩形轨迹中至少有一个发生冲突,则可以判定两条路径分别行驶当前设定型号agv时会发生冲突,从而在保证冲突判定准确率的同时,还显著降低了冲突计算的复杂度,提高了计算效率。
9、在一种可选地实施方式中,方法还包括:针对路线相交表中的路径线段,通过两两相邻线段的斜率判断各个路径线段的起点是否为自旋点;通过每个自旋点的目标旋转角度和每一型号agv的旋转步长的比值,确定每一型号agv在每个自旋点的旋转次数;根据每一型号agv未发生旋转的实际轮廓信息、目标旋转角度和旋转次数计算每一型号agv每次旋转时的矩形顶点坐标;通过每一型号agv每次旋转时的矩形顶点坐标组成每一型号agv在每个自旋点的旋转轨迹。
10、本实施例还额外针对agv的自旋情况计算每一型号agv在每个自旋点的旋转轨迹,后续步骤通过自旋轨迹和与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,即可确定agv有自旋冲突的问题,从而进一步避免agv行驶到下一个目标任务路径线段发生的碰撞问题,进一步防止了多agv碰撞。
11、在一种可选地实施方式中,判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,包括:遍历判断各个型号agv在路线相交表中的各条路径线段上的各个矩形轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;若当前型号agv在当前路径线段上的各个矩形轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的两条路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号记入线段冲突资源表中;将相交的起点和/或终点的点位编号、参与判断的agv型号记入点冲突资源表中;遍历判断各个型号agv在路线相交表中的各自旋点的旋转轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;若当前型号agv在当前自旋点上的旋转轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号、自旋点编号和自旋角度记入自旋点冲突资源表中;线段冲突资源表、点冲突资源表和自旋点冲突资源表组成路径冲突表。
12、本实施例根据上述实施例计算的轮廓轨迹和旋转轨迹,分别创建了线段冲突资源表、点冲突资源表和自旋点冲突资源表,以使一个agv在执行任务之前,先通过线段冲突资源表判断能否行驶到目标任务路径线段,进而在不能行驶到目标任务路径线段时还可以通过点冲突资源表判断具体不能行驶到目标任务路径线段的起点还是终点,并在agv存在自旋情况时,判断是否能够执行自旋以及自旋后的下一步行驶任务,进而显著提高了防止多agv碰撞的准确率和可靠程度。
13、在一种可选地实施方式中,在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv,包括:从线段冲突资源表中根据当前agv的型号和下一次行驶的目标任务路径线段的线段编号查询一定会发生冲突的其他任务路径线段的第一冲突线段编号与第一特定型号agv;判断第一冲突线段编号的路径线段上是否存在第一特定型号agv;若存在,从点冲突资源表中根据第一冲突线段编号和第一特定型号agv查询冲突点位编号,用于暂停下发行驶到冲突点位编号对应路径点的任务到当前agv,目标任务路径线段经过冲突点位编号的路径点;当下一次行驶的目标任务路径线段需要自旋时,从自旋点冲突资源表中根据当前agv的型号、自旋角度和自旋点编号查询一定会发生冲突的其他任务路径线段的第二冲突线段编号和第二特定型号agv;判断第二冲突线段编号的路径线段上是否存在第二特定型号agv;若存在,输出自旋冲突信息,用于暂停下发行驶到目标任务路径线段的任务到当前agv。
14、第二方面,本发明实施例提供了一种多agv控制装置,装置包括:地图数据采集模块,用于获取拓扑地图中的路径线段,路径线段是通过若干路径点对拓扑地图中每一条完整的路径进行划分得到的线段;agv轮廓采集模块,用于获取当前场景中每一型号agv的轮廓信息;轮廓轨迹模块,用于将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹;冲突表创建模块,用于判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况;路径规划模块,根据接收的任务指令为当前场景中每个agv规划任务路径,并按照路径点将每条任务路径划分为若干任务路径线段;冲突检测模块,用于在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv;第一控制模块,用于若存在,则暂停下发行驶到目标任务路径线段的任务到当前agv,直至冲突解除下发行驶到目标任务路径线段的任务到当前agv;第二控制模块,用于若不存在,则下发行驶到目标任务路径线段的任务到当前agv。
15、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
16、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。