一种多AGV控制方法、装置、计算机设备及存储介质与流程

未命名 09-03 阅读:129 评论:0

一种多agv控制方法、装置、计算机设备及存储介质
技术领域
1.本发明涉及自动导航小车技术领域,具体涉及一种多agv控制方法、装置、计算机设备及存储介质。


背景技术:

2.传统的制造业正在逐步转型升级为智慧化、自动化和数字化的“灯塔工厂”。制造工厂内逐步使用自动导航小车(automated guided vehicle,agv)代替人工完成物流运输。随着大量的agv被使用于物流运输,场地线路也更复杂,如果agv的协调控制不够理想,可能会导致相邻路线中发生agv碰撞或者相同路线上发生agv碰撞,导致系统发生死锁和交通管制问题,从而导致agv调度系统瘫痪,例如:两个agv分别需要在工厂内把货源运输到不同的位置,但是agv直接按照既定的行驶路线行驶会使两个agv在某一处发生碰撞。所以,需要优化agv的控制方法解决多agv在运行过程中的碰撞问题,从而提高车辆运行的安全性和总任务执行的效率。
3.文件cn110989570a公开了一种多agv防碰撞协同路径规划方法,在规划各个agv的行驶路线时,保证优先级最高的agv路线不动,比较优先级第二的agv路线与其是否有冲突碰撞的节点,如果冲突类型是可以躲避的,则令优先级第二的agv在碰撞前等待优先级最高的agv先行驶,如果冲突类型是不可躲避的,则重新规划优先级第二的agv的路径,直至所有agv的路径规划完毕为止。但是,相关技术是把agv视为了一个质点,而实际的agv因为设计的不同而具有不同的形状与轮廓,所以在agv外部轮廓比较小时,即使正常行驶也不一定与其他agv碰撞,在agv外部轮廓比较大时,某些感觉不会发生碰撞的位置也会发生碰撞,所以当前的agv控制方案常常不能准确防止多agv发生碰撞。


技术实现要素:

4.有鉴于此,本发明提供了一种多agv控制方法、装置、计算机设备及存储介质,以解决当前agv控制方案不能准确防止多agv发生碰撞的问题。
5.第一方面,本发明提供了一种多agv控制方法,方法包括:获取拓扑地图中的路径线段,路径线段是通过若干路径点对拓扑地图中每一条完整的路径进行划分得到的线段;获取当前场景中每一型号agv的轮廓信息;将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹;判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况;根据接收的任务指令为当前场景中每个agv规划任务路径,并按照路径点将每条任务路径划分为若干任务路径线段;在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv;若存在,则暂停下发行驶到目标任务路径线段的任务到当前agv,直至冲突解除,下发行驶到目标任务路径线段的任务到当前
agv;若不存在,则下发行驶到目标任务路径线段的任务到当前agv。
6.本实施例将agv拓扑地图上能够规划得到的全部完整路径划分为路径线段和路径点,然后将不同型号agv的轮廓信息依次遍历到每一条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹,从而将agv的外部轮廓引入路径线段的行驶过程,之后判断两两轮廓轨迹之间的干涉情况,针对其中一定会发生冲突的情况,将对应的路径线段和会发生冲突的特定型号agv记录到路径冲突表中。从而当agv控制系统协调控制各个agv执行任务时,将各个agv要行驶的任务路径划分为任务路径线段,以任务路径线段为指令单位依次下发给各个agv,并且在下发任务路径线段给各个agv之前,首先通过路径冲突表判断各个agv会发生冲突的其他任务路径线段上是否真实存在会发生冲突的特定型号agv,如果存在,则暂停下发任务路径线段给对应的agv,直至冲突解除;如果不存在,则直接下发任务路径线段给对应的agv。通过这一方案,可以借助路径冲突表中记录的冲突数据实时判断各个agv实际执行任务时是否会与旁边轮廓较大其他agv发生轮廓上的碰撞,如果下一步移动会和某个轮廓较大的agv发生轮廓上的碰撞,则等待,不会发生碰撞再继续行驶,从而解决了不同车型agv在不同路径行驶时碰撞情况难以避免的问题,并且通过预创建的路径冲突表查询碰撞情况,使agv控制系统仅需执行简单的查询操作,计算过程简单,系统响应迅速。
7.在一种可选地实施方式中,获取当前场景中每一型号agv的轮廓信息,包括:获取当前场景中每一型号agv的长和宽;根据每一型号agv的长和宽创建每一型号agv的最小外接矩形,作为每一型号agv的实际轮廓信息;利用每一型号agv对应长和宽中的最大值,创建每一型号agv的最大外接正方形,作为每一型号agv的最大轮廓信息。
8.在一种可选地实施方式中,将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹,包括:将每一型号agv的最大轮廓信息分别部署在每条路径线段的起点和终点上,得到多个最大轮廓轨迹;遍历判断每个最大轮廓轨迹和其他最大轮廓轨迹在起点和终点形成的最大轮廓信息是否有相交;如果有相交,则记录最大轮廓轨迹对应的路径线段之间的相交关系到路线相交表中,路线相交表中具有相交关系的路径线段用于表示各个型号agv在当前路径线段上行驶时与其他路径线段上的特定型号agv可能会发生冲突;将每一型号agv的实际轮廓信息分别遍历在路线相交表中的每条路径线段上,得到每一型号agv在路线相交表中的每条路径线段上的轮廓轨迹。
9.本实施例获取了每一型号agv的两种轮廓信息,一种是符合agv长宽的实际轮廓信息,另一种是利用长宽中的最大值构建的agv最大外接正方形,从而得到的最大轮廓信息。本实施例利用每一型号agv的最大轮廓信息分别部署在各条路径线段的起点和终点,每一条部署了最大轮廓信息的路径线段形成一个最大轮廓轨迹,之后,先两两判断每个最大轮廓轨迹和其他最大轮廓轨迹的起点/终点的最大轮廓信息是否相交,从而将其中相交的最大轮廓轨迹对应的路径线段写入路线相交表,表示可能会发生冲突但不一定发生冲突的路径线段关系,为后续路径线段和特定型号agv的冲突计算做准备。之后,本实施例只将每一型号agv的实际轮廓信息部署在路线相交表中相交的路径线段上,得到各个路径线段的轮廓轨迹,从而后续创建路径冲突表时,只需在可能冲突的路径线段中利用轮廓轨迹的干涉情况分析得到一定发生冲突的路径线段,加快了路径冲突表的创建效率,不需要对拓扑地图中的每个路径线段都利用每一型号agv的实际轮廓信息计算轮廓轨迹再遍历分析干涉,以降低agv控制系统的计算量和计算时间。
10.在一种可选地实施方式中,将每一型号agv的实际轮廓信息分别遍历在路线相交表中的每条路径线段上,得到每一型号agv在路线相交表中的每条路径线段上的轮廓轨迹,包括:根据当前agv的行驶方向,从当前agv的实际轮廓信息中确定当前agv在当前路径线段上每一步行驶的矩形距离;通过当前路径线段的长度和矩形距离的比值确定当前agv在当前路径线段上的矩形轨迹个数;基于当前agv的初始位置中心点坐标、矩形轨迹个数和当前路径线段的长度,计算当前agv每个矩形轨迹的中心点坐标;利用当前agv每个矩形轨迹的中心点坐标和当前agv的实际轮廓信息,计算当前agv每个矩形轨迹的矩形顶点坐标;通过当前agv每个矩形轨迹的矩形顶点坐标组成当前agv在当前路径线段上的轮廓轨迹。
11.本发明实施例按照agv移动的方向,将agv在一条路径线段的轮廓轨迹划分为多个首尾相接的矩形轨迹,每个矩形轨迹即agv的一个实际轮廓信息,通过这一方式,后续步骤在判断两条路径线段上分别行驶不同型号agv是否会发生冲突时,只需根据矩形轨迹的矩形顶点坐标,令一条轮廓轨迹的起点、终点两个矩形轨迹和另一条轮廓轨迹的全部矩形轨迹依次比对,只要起点终点两个矩形轨迹中至少有一个发生冲突,则可以判定两条路径分别行驶当前设定型号agv时会发生冲突,从而在保证冲突判定准确率的同时,还显著降低了冲突计算的复杂度,提高了计算效率。
12.在一种可选地实施方式中,方法还包括:针对路线相交表中的路径线段,通过两两相邻线段的斜率判断各个路径线段的起点是否为自旋点;通过每个自旋点的目标旋转角度和每一型号agv的旋转步长的比值,确定每一型号agv在每个自旋点的旋转次数;根据每一型号agv未发生旋转的实际轮廓信息、目标旋转角度和旋转次数计算每一型号agv每次旋转时的矩形顶点坐标;通过每一型号agv每次旋转时的矩形顶点坐标组成每一型号agv在每个自旋点的旋转轨迹。
13.本实施例还额外针对agv的自旋情况计算每一型号agv在每个自旋点的旋转轨迹,后续步骤通过自旋轨迹和与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,即可确定agv有自旋冲突的问题,从而进一步避免agv行驶到下一个目标任务路径线段发生的碰撞问题,进一步防止了多agv碰撞。
14.在一种可选地实施方式中,判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,包括:遍历判断各个型号agv在路线相交表中的各条路径线段上的各个矩形轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;若当前型号agv在当前路径线段上的各个矩形轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的两条路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号记入线段冲突资源表中;将相交的起点和/或终点的点位编号、参与判断的agv型号记入点冲突资源表中;遍历判断各个型号agv在路线相交表中的各自旋点的旋转轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;若当前型号agv在当前自旋点上的旋转轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号、自旋点编号和自旋角度记入自旋点冲突资源表中;线段冲突资源表、点冲突资源表和自旋点冲突资源表组成路径冲突表。
15.本实施例根据上述实施例计算的轮廓轨迹和旋转轨迹,分别创建了线段冲突资源
表、点冲突资源表和自旋点冲突资源表,以使一个agv在执行任务之前,先通过线段冲突资源表判断能否行驶到目标任务路径线段,进而在不能行驶到目标任务路径线段时还可以通过点冲突资源表判断具体不能行驶到目标任务路径线段的起点还是终点,并在agv存在自旋情况时,判断是否能够执行自旋以及自旋后的下一步行驶任务,进而显著提高了防止多agv碰撞的准确率和可靠程度。
16.在一种可选地实施方式中,在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv,包括:从线段冲突资源表中根据当前agv的型号和下一次行驶的目标任务路径线段的线段编号查询一定会发生冲突的其他任务路径线段的第一冲突线段编号与第一特定型号agv;判断第一冲突线段编号的路径线段上是否存在第一特定型号agv;若存在,从点冲突资源表中根据第一冲突线段编号和第一特定型号agv查询冲突点位编号,用于暂停下发行驶到冲突点位编号对应路径点的任务到当前agv,目标任务路径线段经过冲突点位编号的路径点;当下一次行驶的目标任务路径线段需要自旋时,从自旋点冲突资源表中根据当前agv的型号、自旋角度和自旋点编号查询一定会发生冲突的其他任务路径线段的第二冲突线段编号和第二特定型号agv;判断第二冲突线段编号的路径线段上是否存在第二特定型号agv;若存在,输出自旋冲突信息,用于暂停下发行驶到目标任务路径线段的任务到当前agv。
17.第二方面,本发明实施例提供了一种多agv控制装置,装置包括:地图数据采集模块,用于获取拓扑地图中的路径线段,路径线段是通过若干路径点对拓扑地图中每一条完整的路径进行划分得到的线段;agv轮廓采集模块,用于获取当前场景中每一型号agv的轮廓信息;轮廓轨迹模块,用于将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹;冲突表创建模块,用于判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况;路径规划模块,根据接收的任务指令为当前场景中每个agv规划任务路径,并按照路径点将每条任务路径划分为若干任务路径线段;冲突检测模块,用于在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv;第一控制模块,用于若存在,则暂停下发行驶到目标任务路径线段的任务到当前agv,直至冲突解除下发行驶到目标任务路径线段的任务到当前agv;第二控制模块,用于若不存在,则下发行驶到目标任务路径线段的任务到当前agv。
18.第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
19.第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。
附图说明
20.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是根据本发明实施例的一种多agv控制方法的流程示意图;
22.图2是根据本发明实施例的拓扑地图的结构示意图;
23.图3是根据本发明实施例的轮廓轨迹示意图;
24.图4是根据本发明实施例的一种多agv控制装置的结构示意图;
25.图5是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
26.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.根据本发明实施例,提供了一种多agv控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
28.在本实施例中提供了一种多agv控制方法,用于agv控制系统,agv控制系统可以部署在计算机设备中,在本实施例中,计算机设备包括但不限于云服务器、本地服务器和个人计算机设备。agv控制作为中控系统统一发送指令给各个agv,以使各个agv在拓扑地图中进行移动,协调各个agv执行各自的任务。图1是根据本发明实施例的一种多agv控制方法的流程图,该流程包括如下步骤:
29.步骤s101,获取拓扑地图中的路径线段,路径线段是通过若干路径点对拓扑地图中每一条完整的路径进行划分得到的线段。
30.具体地,agv控制系统首先获取拓扑地图中的路径线段和路径点,如图2所示,拓扑地图是agv工作场景的区域地图,在该地图中预设了多条任务路径,每一条完整的任务路径都被路径点划分成了路径线段,每个路径点对应有编号,如图2中的54、62、63、64,均是路径点,路径点可以是停车点也可以是agv运行经过点,路径线段是连接两个路径点的直线或者曲线,例如点54和点62之间的线段,每条线段也包含唯一的编号信息(图2中未示出)。换言之,agv必须在地图中的点和线段上移动,agv在执行任务时,agv控制系统为每个agv规划的任务路径也必须由拓扑地图上的路径线段构成。
31.步骤s102,获取当前场景中每一型号agv的轮廓信息。
32.具体地,由于不同型号的agv设计不同,对应的轮廓有大有小,为了解决多agv碰撞的问题,需要考虑agv的外部轮廓,从而利用agv的外部轮廓规划agv的控制方法,为解决多agv碰撞问题做准备。在本实施例中,获取的agv的轮廓信息包括但不限于矩形轮廓和圆形轮廓,即agv的最小外接矩形或最小外接圆,也可以是最小外接多边形。通常,为了更贴近
agv的实际形状,通过轮廓顶点的坐标可以较为容易的表示agv轮廓信息,并且坐标数量不宜过多,否则会增加计算复杂度,在一个具体地实施例中,本技术采用最小外接矩形表示agv的轮廓信息。
33.步骤s103,将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹。
34.具体地,根据不同型号的agv,本实施例利用每个型号agv的轮廓信息在每条路径线段上模拟移动,计算对应的轮廓轨迹,从而得到每一型号agv在每条路径线段上的轮廓轨迹。具体可以先将获取的路径线段进行分裂,即路径线段匹配于agv型号的数量被复制为多份,例如:加载车辆轮廓信息保存到数组m_rgn中,得到m_rgni(i=1,2,3

n)其中n表示车型总数(本实施例默认不同车型对应不同轮廓,实质上n表示的是轮廓类型总数);加载拓扑地图中的路径线段保存到m_line数组中m_linei(i=1,2,3,

nn),其中nn表示拓扑地图中线段的总数;遍历车辆轮廓数组将所有的线段中包含车辆轮廓信息生成分裂线段数组m_linej_rgni(j=1,2,3,

nn,i=1,2,3,

n),从而每一个车型都对应了路径线段总数。然后将每个型号agv的轮廓信息在每条路径线段上模拟移动,计算对应的轮廓轨迹,就得到了每条线段上各种型号agv行驶时其外部轮廓所占的空间。
35.步骤s104,判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况。
36.具体地,将步骤s103计算的轮廓轨迹两两之间均在拓扑地图上进行比对,判断一条轮廓轨迹是否会与另一条轮廓轨迹在空间上发生重叠,例如第一agv和第二agv都是矩形轮廓,那么由第一agv矩形轮廓在一条路径线段上行驶,占用该路径线段两侧部分空间,占用的全部空间构成轮廓轨迹;同样由第二agv矩形轮廓在另一条路径线段上行驶,也占用该路径线段两侧部分空间,占用的全部空间构成另一个轮廓轨迹,判断第一agv和第二agv占用的空间边缘是否发生了重叠,如果发生重叠则两两轮廓轨迹之间出现干涉。之后,本实施例基于干涉的轮廓轨迹创建路径冲突表,在路径冲突表中记录具体哪一个型号agv在哪一条路径线段上行驶会与另外哪一条路径线段上行驶的特定型号agv一定发生冲突。
37.步骤s105,根据接收的任务指令为当前场景中每个agv规划任务路径,并按照路径点将每条任务路径划分为若干任务路径线段。
38.具体地,在路径冲突表创建完成后,agv控制系统开始接收用户输入的任务指令(例如去指定地点取货、送货、在指定区域巡逻等),agv控制系统根据接收的任务指令为当前场景中每个agv规划任务路径,例如5台agv,agv控制系统为每一台agv规划各自的任务路径,如果某台agv没有任务,则不需要规划任务路径,默认任务路径为空(路径规划算法为现有技术,本实施例不再赘述,例如可采用km算法)。需要注意的是,任务路径指的是完整的路径,例如图2中从路径点49到路径点54再到路径点68的一条路径,然后按照拓扑地图中的路径点将每条任务路径划分为若干任务路径线段,为后续步骤分析每个agv行驶在每个路径线段上是否会发生碰撞冲突做准备。
39.步骤s106,在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv。
40.具体地,agv控制系统为每个agv规划了对应的任务路径之后,需要下发各自的任务路径到agv使agv执行,在下发任务之前,基于本实施例将每条任务路径已经拆分为任务路径线段的前提,对于任意一个需要行驶的agv(下文称为当前agv),先从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,例如:当前agv(车型1)将要行驶到线段1,然后从路径冲突表中查询与线段1冲突的线段有线段2和线段3,并且线段2上如果行驶了车型2会发生冲突,其他车型不会发生冲突,在线段3上如果行驶了车型3会发生冲突,其他车型不会发生冲突。然后判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv,例如:agv系统通过摄像头、各个agv的定位装置等技术检测线段2上是否真实存在车型2,并检测线段3上是否真实存在车型3,如果都存在,则表示当前agv行驶到线段1会发生碰撞,如果不存在,则表示当前agv行驶到线段1不会发生碰撞。
41.步骤s107,若存在,则暂停下发行驶到目标任务路径线段的任务到当前agv,直至冲突解除,下发行驶到目标任务路径线段的任务到当前agv;
42.步骤s108,若不存在,则下发行驶到目标任务路径线段的任务到当前agv。
43.具体地,根据路径冲突表的查询结果和实际agv位置的匹配情况,选择对应的控制策略,如果对应线段上存在特定型号的agv,则暂停下发行驶到目标任务路径线段的任务到当前agv,使agv暂时不要行驶到该线段,不下发任务,即当前agv等待。若不存在,则下发行驶到目标任务路径线段的任务到当前agv,使当前agv行驶到对应的位置。在本实施例中,agv控制系统给各个agv发送任务路径是动态分段发送,每段任务路径线段都会通过查询路径冲突表来决定是否发送,如果有冲突则不发送分段路线。需要注意的是,本实施例agv控制系统会不断查询当前冲突路段的冲突情况,如果当前agv对应的冲突路径线段上的特定型号agv移走,冲突解除则发送分段路线。另外,如果和当前agv发生冲突的冲突agv的处于工作状态,则当前agv等待,随着冲突agv的任务不断完成,当前agv的冲突可以解除,从而继续判断剩余任务路径线段是否有冲突。如果和当前agv发生冲突的冲突agv为空闲状态,本实施例则控制冲突agv移动到没有冲突的停车位上,从而解除当前agv的冲突。
44.通过本发明实施例提供的方案,将agv的外部轮廓引入路径线段的行驶过程,并两两轮廓轨迹之间的干涉情况,将对应的路径线段和会发生冲突的特定型号agv记录到路径冲突表中。从而当agv控制系统协调控制各个agv执行任务时,将各个agv要行驶的任务路径划分为任务路径线段,以任务路径线段为指令单位依次下发给各个agv,并且在下发任务路径线段给各个agv之前,首先通过路径冲突表判断各个agv会发生冲突的其他任务路径线段上是否真实存在会发生冲突的特定型号agv,如果存在,则暂停下发任务路径线段给对应的agv,直至冲突解除;如果不存在,则直接下发任务路径线段给对应的agv。通过这一方案,可以借助路径冲突表中记录的冲突数据实时判断各个agv实际执行任务时是否会与旁边轮廓较大其他agv发生轮廓上的碰撞,从而解决了不同车型agv在不同路径行驶时碰撞情况难以避免的问题,并且通过预创建的路径冲突表查询碰撞情况,使agv控制系统仅需执行简单的查表操作,不需要agv运行过程再借助图像视觉等技术现场进行碰撞分析,本方案实现过程简单,系统响应迅速。
45.在一些可选地实施方式中,上述步骤s102包括:
46.步骤a1,获取当前场景中每一型号agv的长和宽;
47.步骤a2,根据每一型号agv的长和宽创建每一型号agv的最小外接矩形,作为每一型号agv的实际轮廓信息;
48.步骤a3,利用每一型号agv对应长和宽中的最大值,创建每一型号agv的最大外接正方形,作为每一型号agv的最大轮廓信息。
49.在一种可选地实施方式中,上述步骤s103包括:
50.步骤b1,将每一型号agv的最大轮廓信息分别部署在每条路径线段的起点和终点上,得到多个最大轮廓轨迹;
51.步骤b2,遍历判断每个最大轮廓轨迹和其他最大轮廓轨迹在起点和终点形成的最大轮廓信息是否有相交;
52.步骤b3,如果有相交,则记录最大轮廓轨迹对应的路径线段之间的相交关系到路线相交表中,路线相交表中具有相交关系的路径线段用于表示各个型号agv在当前路径线段上行驶时与其他路径线段上的特定型号agv可能会发生冲突;
53.步骤b4,将每一型号agv的实际轮廓信息分别遍历在路线相交表中的每条路径线段上,得到每一型号agv在路线相交表中的每条路径线段上的轮廓轨迹。
54.具体地,本发明实施例还创建了路线相交表,通过路线相交表来记录某些车型在某些路径线段上可能会发生碰撞冲突的情况,具体记录可能发生冲突的路径线段以及路径线段上对应的车型,路径相交表用来快速查找冲突概率比较高的路径线段。然后在路线相交表中,本实施例针对冲突概率比较高的路径线段,再生成每一型号agv在各条路径线段上的轮廓轨迹,然后根据生成的轮廓轨迹判断这些可能冲突的路径线段是否真的会冲突,从而提高路径冲突表的计算效率,避免拓扑地图中所有线段都进行两两分析,降低了计算复杂度。为了实现上述过程,本实施例首先获取每一型号agv的两种轮廓信息,例如图3中的agv1和agv2,一种是符合agv长宽的实际轮廓信息,另一种是利用长宽中的最大值构建的agv最大外接正方形,得到的最大轮廓信息。然后,本实施例将每一型号agv的最大轮廓信息分别部署在各条路径线段的起点和终点(最大轮廓信息的中心和路径点重合),每一条部署了最大轮廓信息的路径线段形成一个最大轮廓轨迹。然后先计算agv轮廓长度和宽度的最大值max,再计算路径线段起点和终点的坐标,分别为起点(x
min
,y
min
)、终点(x
max
,y
max
),最后通过坐标和最大值max得到车辆在路线中起点和终点的最大轮廓信息,例如起点的最大轮廓信息的四个顶点坐标为:
55.(x
min-max,y
min-max),(x
min-max,y
min
+max),(x
min
+max,y
min
+max),(x
min
+max,y
min-max)。
56.之后,两两判断每个最大轮廓轨迹和其他最大轮廓轨迹的起点/终点的最大轮廓信息是否相交,从而将其中相交的最大轮廓轨迹对应的路径线段写入路线相交表,表示可能会发生冲突但不一定发生冲突的路径线段关系,为后续路径线段和特定型号agv的冲突计算做准备。具体可以遍历所有的分裂线段数组m_linej_rgni(j=1,2,3,

nn,i=1,2,3,

n),判断车型为i的线段j在起点和终点形成的最大矩形轮廓和其他车型的不同和线段在起点和终点形成的最大矩形轮廓是否有相交,如果有相交则记录在路线相交表中。例如图3中线段1的终点(路径点2)和线段2的起点(路径点2)发生了最大轮廓信息相交,从而行驶agv1的线段1和行驶agv2的线段2是可能发生冲突的相交路径线段。(图3仅是便于理解的举例,并不以此为限,例如两条平行的路径线段其起点和终点分别部署不同车型的最大轮
廓信息,如果出现最大轮廓信息相交,也记录两条平行的路径线段到路线相交表)路线相交表举例如下:
57.表1路线相交表
[0058][0059]
说明:如果车型1的agv1小车要在线段1上进行移动,车型为2的agv2小车要在线段2上进行移动,则两个小车可能发生碰撞即轮廓相交。
[0060]
之后,本实施例只将每一型号agv的实际轮廓信息(考虑agv长和宽的真实轮廓)部署在路线相交表中相交的路径线段上,得到各个路径线段的轮廓轨迹,从而后续创建路径冲突表时,只需在可能冲突的路径线段中利用轮廓轨迹的干涉情况分析一定发生冲突的路径线段,加快了路径冲突表的创建效率,不需要对拓扑地图中的每个路径线段都利用每一型号agv的实际轮廓信息计算轮廓轨迹再遍历分析干涉,以降低agv控制系统的计算量和计算时间。
[0061]
在一些可选地实施方式中,上述步骤b4包括:
[0062]
步骤c1,根据当前agv的行驶方向,从当前agv的实际轮廓信息中确定当前agv在当前路径线段上每一步行驶的矩形距离;
[0063]
步骤c2,通过当前路径线段的长度和矩形距离的比值确定当前agv在当前路径线段上的矩形轨迹个数;
[0064]
步骤c3,基于当前agv的初始位置中心点坐标、矩形轨迹个数和当前路径线段的长度,计算当前agv每个矩形轨迹的中心点坐标;
[0065]
步骤c4,利用当前agv每个矩形轨迹的中心点坐标和当前agv的实际轮廓信息,计算当前agv每个矩形轨迹的矩形顶点坐标;
[0066]
步骤c5,通过当前agv每个矩形轨迹的矩形顶点坐标组成当前agv在当前路径线段上的轮廓轨迹。
[0067]
具体地,如图3所示,在每一条路径线段上部署agv的实际轮廓信息从而生成轮廓轨迹时,首先根据agv的行驶方向计算agv的每一步行驶的矩形距离segment,具体地,如果agv行驶方向沿着矩形长边移动,则segment等于实际轮廓信息的长度,如果agv行驶方向沿着矩形宽边移动,则segment等于实际轮廓信息的宽度。之后,根据当前路径线段的长度length可以得到agv在线段中的矩形轨迹个数count,例如图3中的虚线框,count=length/segment+1。然后,根据每一个矩形轨迹(虚线框)计算出每个agv矩形轨迹的中心点:
[0068]
x
center
=m_start
x
+(length*i/count)*cos(m_angslant)(i=1,2,3

count)
[0069]ycenter
=m_starty+(length*i/count)*sin(m_angslant)(i=1,2,3

count)
[0070]
其中:m_start
x
为路径线段起点在x轴方向的坐标,m_starty为路径线段起点在y轴方向的坐标,length为路径线段的长度,count为agv在路径线段中产生的矩形轨迹个数,m_angslant为路径线段的斜率。
[0071]
最后,利用当前agv每个矩形轨迹的中心点坐标和当前agv的实际轮廓信息,计算当前agv每个矩形轨迹的矩形顶点坐标,其坐标分别为:
[0072][0073][0074][0075][0076]
式中,v_heigth表示agv实际轮廓信息的长度,v_width表示为实际轮廓信息的宽度,全部矩形顶点坐标组成了当前agv在当前路径线段上的轮廓轨迹。
[0077]
通过这一方式,后续创建路径冲突表的步骤,在判断两条路径线段上分别行驶不同型号agv是否会发生冲突时,只需根据矩形轨迹的矩形顶点坐标,令一条轮廓轨迹的起点、终点两个矩形轨迹和另一条轮廓轨迹的全部矩形轨迹依次比对,只要起点、终点两个矩形轨迹中至少有一个发生冲突,则可以判定两条路径分别行驶当前设定型号agv时会发生冲突,从而在保证冲突判定准确率的同时,还显著降低了冲突计算的复杂度,提高了计算效率。换言之,假设通过上述步骤生成了两条路径线段的轮廓轨迹,依次判断其中一条轮廓轨迹起点和终点位置的矩形轨迹(如图3中起点和终点处的实线轮廓)和另一个轮廓轨迹的全部矩形轨迹(例如图3中全部虚线轮廓和实线轮廓)是否相交,如果第一条轮廓轨迹的起点和终点中至少有一个矩形和另一条轮廓轨迹的任意一个矩形相交,则表示这两条路径线段上行驶对应型号的agv一定会发生冲突,从而无需判断第一条路径线段的中间位置轮廓是否会发生干涉,能够显著降低了冲突计算的复杂度,提高计算效率。
[0078]
在一些可选地实施方式中,本发明实施例提供的一种多agv控制方法还包括如下步骤:
[0079]
步骤d1,针对路线相交表中的路径线段,通过两两相邻线段的斜率判断各个路径线段的起点是否为自旋点;
[0080]
步骤d2,通过每个自旋点的目标旋转角度和每一型号agv的旋转步长的比值,确定每一型号agv在每个自旋点的旋转次数;
[0081]
步骤d3,根据每一型号agv未发生旋转的实际轮廓信息、目标旋转角度和旋转次数计算每一型号agv每次旋转时的矩形顶点坐标;
[0082]
步骤d4,通过每一型号agv每次旋转时的矩形顶点坐标组成每一型号agv在每个自旋点的旋转轨迹。
[0083]
具体地,本实施例通过相交路线表中的路径线段,判断各个线段的起点是否是自旋点,如果是自旋点则生成agv旋转轨迹的矩形。通过额外针对agv的自旋情况计算每一型号agv在每个自旋点的旋转轨迹,后续步骤可以将自旋冲突情况纳入到路径冲突表中,同理,通过自旋轨迹和与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,即可确定agv有自旋冲突的问题,从而进一步避免agv行驶到下一个目标任务路径线段发生的碰撞问题,进一步防止了多agv碰撞。计算agv在自旋点的旋转轨迹的具体步骤为:确定相交路线表中所有的相邻线段,判断两两相邻线段的斜率是否相同,
如果斜率不相同则表示agv需要转向,两条线段首尾相接的点为自旋点,从而将不相同的斜率角度ang1,ang2(弧度)保存到集合{spin_boundi}(=1,2..n)中。设定agv每次旋转的旋转步长(弧度)freso=pi/12,计算自旋点旋转的目标旋转角度fspin=ang2-ang1,进而计算agv在自旋点的旋转次数ncount=fspin/,每次旋转均会产生一个旋转矩形。之后,根据agv未发生旋转的实际轮廓信息、目标旋转角度和旋转次数计算agv每次自旋的矩形顶点坐标:
[0084]
fx=ptlocal.x*cos(m_frad+i*freso)-ptlocal.y*sin(m_frad+i*freso)(i=1,2,...ncout),
[0085]
fy=ptlocal.y*cos(m_frad+i*freso)+ptlocal.x*sin(m_frad+i*freso)(i=1,2,...ncout)其中ptlocal
x
表示agv未发生自旋时的实际轮廓信息在x轴方向的四个顶点坐标,ptlocaly为agv未发生自旋时的实际轮廓信息在y轴方向的四个顶点坐标,m_frad为agv的初始角度。
[0086]
在一些可选地实施方式中,上述步骤s104包括:
[0087]
步骤e1,遍历判断各个型号agv在路线相交表中的各条路径线段上的各个矩形轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;
[0088]
步骤e2,若当前型号agv在当前路径线段上的各个矩形轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的两条路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号记入线段冲突资源表中;
[0089]
步骤e3,将相交的起点和/或终点的点位编号、参与判断的agv型号记入点冲突资源表中;
[0090]
步骤e4,遍历判断各个型号agv在路线相交表中的各自旋点的旋转轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;
[0091]
步骤e5,若当前型号agv在当前自旋点上的旋转轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号、自旋点编号和自旋角度记入自旋点冲突资源表中。线段冲突资源表、点冲突资源表和自旋点冲突资源表组成路径冲突表。
[0092]
具体地,本发明实施例创建的路径冲突表包括三部分,分别是线段冲突资源表、点冲突资源表和自旋点冲突资源表。其中线段冲突、点冲突和自旋点冲突的判定逻辑可以参考上述步骤c1~c5和步骤d1~d4后半部分的原理描述,以编程语言的描述方式来说,创建线段冲突资源表、点冲突资源表和自旋点冲突资源表的具体流程可以理解为:
[0093]
拓扑地图中的路径线段表示为m_linei(i=1

n),n为拓扑地图中的路径线段数量,针对任意线段m_linei,先在相交路线表中快速查询的与其可能相交的全部其他路径线段,组成集合{m_linej},按照步骤c1~c5的方式遍历相交集合中{m_linej}的线段,生成各个agv在{m_linrj}的各种轮廓轨迹。判断m_linei的轮廓轨迹和集合{m_linej}的轮廓轨迹是否有相交:如果m_linei的轮廓轨迹中任何一个矩形轨迹和{m_linej}的起点矩形轨迹有相交,则记录m_linei与{m_linej}的起点冲突信息到线段冲突资源表中。如果m_linei的轮廓轨迹中任何一个矩形轨迹和{m_linej}的终点矩形轨迹有相交,则记录m_linei与{m_linej}的终点冲突信息到线段冲突资源表中,同时,将参与判断的两条路径线段的线段编
号、参与判断的agv型号记入线段冲突资源表中。另外,还将上述相交的起点和/或终点的点位编号、参与判断的agv型号记入点冲突资源表中,如下述表2和表3所示。
[0094]
表2线段冲突资源表
[0095][0096]
说明:假设当前车型1的agv1下一步要在线段1上进行移动,通过线段冲突资源表中进行查找,发现冲突线段是线段2,冲突车型是2。然后通过定位、摄像等技术开始检测线段2上是不是真的存在车型2的agv2,如果发现线段2上实际没有车型为2的agv2,则agv1可以进行移动,如果发现线段2的起点或者终点或者线段上有车型为2的agv2,则agv1不能去线段1,暂停执行任务。
[0097]
表3点冲突资源表
[0098][0099]
说明:线段冲突资源表只能表示agv想到移动到某个线段会发生冲突,但是具体移动到某个线段的哪一个具体位置会发生冲突,表2无法查到。继而,如果车型为1的agv1想要移动到线段2上的点3,通过点冲突资源表进行查找,发现如果另一条冲突线段1上有车型为1的agv2,则不允许agv1去点3。通过表2和表3的配合,能够快速通过查表的方式确定当前agv能否移动到某条路径线段,并确定当前agv能否移动到某条路径线段的具体某个点上。
[0100]
另外,本发明实施例判断线段m_linei的旋转轨迹与相交路径线段集合{m_linej}在起点的矩形轨迹是否有相交,如果有相交,则记录m_linei(i=1

n)起点与{m_linej}起点的自旋冲突信息到自旋点冲突资源表。如果线段m_linei终点旋转轨迹与线段{m_linej}的终点矩形轨迹有相交,则记录m_linei终点与{n_linej}终点的自旋冲突信息。以此类推,自旋冲突信息包括参与判断的路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号、自旋点编号和自旋角度,自旋点冲突资源表的具体形式见表4。
[0101]
表4自旋点冲突资源表
[0102][0103]
说明:如果车型为1的agv1目前在点28号上,agv1想要移动到某个其他位置(线段或点)需要发生自旋,则查询自旋点冲突资源表,如果自旋角度为(0,90),发现冲突线段为
16,冲突车型为3。然后agv控制系统去检测冲突路线16的起点是否真的存在车型3的agv2,如果有agv2且车型为3,则agv1不能移动到想要去的位置,否则可以移动到想要去的位置。
[0104]
本实施例根据上述实施例计算的轮廓轨迹和旋转轨迹,分别创建了线段冲突资源表、点冲突资源表和自旋点冲突资源表,以使一个agv在执行任务之前,先通过线段冲突资源表判断能否行驶到目标任务路径线段,进而在不能行驶到目标任务路径线段时还可以通过点冲突资源表判断具体不能行驶到目标任务路径线段的起点还是终点,或者直接通过点冲突资源表快速查找当前agv不能行驶到哪一个具体位置,并在agv存在自旋情况时,判断是否能够执行自旋以及自旋后的下一步行驶任务,进而显著提高了防止多agv碰撞的准确率和可靠程度。
[0105]
在一些可选地实施方式中,上述步骤s106包括:
[0106]
步骤f1,从线段冲突资源表中根据当前agv的型号和下一次行驶的目标任务路径线段的线段编号查询一定会发生冲突的其他任务路径线段的第一冲突线段编号与第一特定型号agv;
[0107]
步骤f2,判断第一冲突线段编号的路径线段上是否存在第一特定型号agv;
[0108]
步骤f3,若存在,从点冲突资源表中根据第一冲突线段编号和第一特定型号agv查询冲突点位编号,用于暂停下发行驶到冲突点位编号对应路径点的任务到当前agv,目标任务路径线段经过冲突点位编号的路径点;
[0109]
步骤f4,当下一次行驶的目标任务路径线段需要自旋时,从自旋点冲突资源表中根据当前agv的型号、自旋角度和自旋点编号查询一定会发生冲突的其他任务路径线段的第二冲突线段编号和第二特定型号agv;
[0110]
步骤f5,判断第二冲突线段编号的路径线段上是否存在第二特定型号agv;
[0111]
步骤f6,若存在,输出自旋冲突信息,用于暂停下发行驶到目标任务路径线段的任务到当前agv。
[0112]
具体地,本实施例通过查询线段冲突资源表、点冲突资源表和自旋点冲突资源表实现了防止多agv碰撞的控制方案,agv控制系统的具体执行逻辑在上述步骤e1至e5创建线段冲突资源表、点冲突资源表和自旋点冲突资源表的实施例中已进行了详细描述,可参考上述实施例的相关描述,在此不再赘述。
[0113]
本技术提出的技术方案,解决了多种不同轮廓的agv在执行任务过程中发生碰撞冲突的问题。将车辆轮廓信息和地图信息考虑到车辆安全行驶过程中,加载地图信息和车辆轮廓信息的时候,提前计算出线段冲突资源表、点冲突资源表和自旋点冲突资源表,在多agv执行任务的时候可以实时获取agv的冲突和碰撞情况。agv控制系统给agv规划完成任务路径后,agv控制系统根据冲突资源表分段动态下发任务,提高了agv控制系统的运行效率。
[0114]
在本实施例中还提供了一种多agv控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0115]
本实施例提供的一种多agv控制装置,如图4所示,包括:
[0116]
地图数据采集模块601,用于获取拓扑地图中的路径线段,路径线段是通过若干路径点对拓扑地图中每一条完整的路径进行划分得到的线段。详细内容参见上述方法实施例
中步骤s101的相关描述,在此不再进行赘述。
[0117]
agv轮廓采集模块602,用于获取当前场景中每一型号agv的轮廓信息。详细内容参见上述方法实施例中步骤s102的相关描述,在此不再进行赘述。
[0118]
轮廓轨迹模块603,用于将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹。详细内容参见上述方法实施例中步骤s103的相关描述,在此不再进行赘述。
[0119]
冲突表创建模块604,用于判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况。详细内容参见上述方法实施例中步骤s104的相关描述,在此不再进行赘述。
[0120]
路径规划模块605,根据接收的任务指令为当前场景中每个agv规划任务路径,并按照路径点将每条任务路径划分为若干任务路径线段。详细内容参见上述方法实施例中步骤s105的相关描述,在此不再进行赘述。
[0121]
冲突检测模块606,用于在控制当前agv执行任务时,从路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv。详细内容参见上述方法实施例中步骤s106的相关描述,在此不再进行赘述。
[0122]
第一控制模块607,用于若存在,则暂停下发行驶到目标任务路径线段的任务到当前agv,直至冲突解除下发行驶到目标任务路径线段的任务到当前agv。详细内容参见上述方法实施例中步骤s107的相关描述,在此不再进行赘述。
[0123]
第二控制模块608,用于若不存在,则下发行驶到目标任务路径线段的任务到当前agv。详细内容参见上述方法实施例中步骤s108的相关描述,在此不再进行赘述。
[0124]
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0125]
本实施例中的一种多agv控制装置是以功能单元的形式来呈现,这里的单元是指asic(application specific integrated circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0126]
本发明实施例还提供一种计算机设备。
[0127]
请参阅图5,图5是本发明可选实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器10为例。
[0128]
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程
逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
[0129]
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
[0130]
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0131]
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
[0132]
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
[0133]
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
[0134]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

技术特征:
1.一种多agv控制方法,其特征在于,所述方法包括:获取拓扑地图中的路径线段,所述路径线段是通过若干路径点对所述拓扑地图中每一条完整的路径进行划分得到的线段;获取当前场景中每一型号agv的轮廓信息;将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹;判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,所述路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况;根据接收的任务指令为当前场景中每个agv规划任务路径,并按照所述路径点将每条任务路径划分为若干任务路径线段;在控制当前agv执行任务时,从所述路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断所述其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv;若存在,则暂停下发行驶到所述目标任务路径线段的任务到当前agv,直至冲突解除,下发行驶到所述目标任务路径线段的任务到当前agv;若不存在,则下发行驶到所述目标任务路径线段的任务到当前agv。2.根据权利要求1所述的方法,其特征在于,所述获取当前场景中每一型号agv的轮廓信息,包括:获取当前场景中每一型号agv的长和宽;根据每一型号agv的长和宽创建每一型号agv的最小外接矩形,作为每一型号agv的实际轮廓信息;利用每一型号agv对应长和宽中的最大值,创建每一型号agv的最大外接正方形,作为每一型号agv的最大轮廓信息。3.根据权利要求2所述的方法,其特征在于,所述将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹,包括:将每一型号agv的所述最大轮廓信息分别部署在每条路径线段的起点和终点上,得到多个最大轮廓轨迹;遍历判断每个最大轮廓轨迹和其他最大轮廓轨迹在起点和终点形成的最大轮廓信息是否有相交;如果有相交,则记录最大轮廓轨迹对应的路径线段之间的相交关系到路线相交表中,所述路线相交表中具有相交关系的路径线段用于表示各个型号agv在当前路径线段上行驶时与其他路径线段上的特定型号agv可能会发生冲突;将每一型号agv的所述实际轮廓信息分别遍历在路线相交表中的每条路径线段上,得到每一型号agv在路线相交表中的每条路径线段上的轮廓轨迹。4.根据权利要求3所述的方法,其特征在于,将每一型号agv的所述实际轮廓信息分别遍历在路线相交表中的每条路径线段上,得到每一型号agv在路线相交表中的每条路径线段上的轮廓轨迹,包括:根据当前agv的行驶方向,从当前agv的实际轮廓信息中确定当前agv在当前路径线段
上每一步行驶的矩形距离;通过当前路径线段的长度和所述矩形距离的比值确定当前agv在当前路径线段上的矩形轨迹个数;基于当前agv的初始位置中心点坐标、所述矩形轨迹个数和所述当前路径线段的长度,计算当前agv每个矩形轨迹的中心点坐标;利用当前agv每个矩形轨迹的中心点坐标和当前agv的实际轮廓信息,计算当前agv每个矩形轨迹的矩形顶点坐标;通过当前agv每个矩形轨迹的矩形顶点坐标组成当前agv在当前路径线段上的轮廓轨迹。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:针对所述路线相交表中的路径线段,通过两两相邻线段的斜率判断各个路径线段的起点是否为自旋点;通过每个自旋点的目标旋转角度和每一型号agv的旋转步长的比值,确定每一型号agv在每个自旋点的旋转次数;根据每一型号agv未发生旋转的实际轮廓信息、所述目标旋转角度和所述旋转次数计算每一型号agv每次旋转时的矩形顶点坐标;通过每一型号agv每次旋转时的矩形顶点坐标组成每一型号agv在每个自旋点的旋转轨迹。6.根据权利要求5所述的方法,其特征在于,所述判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,包括:遍历判断各个型号agv在路线相交表中的各条路径线段上的各个矩形轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;若当前型号agv在当前路径线段上的各个矩形轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的两条路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号记入线段冲突资源表中;将所述相交的起点和/或终点的点位编号、参与判断的agv型号记入点冲突资源表中;遍历判断各个型号agv在路线相交表中的各自旋点的旋转轨迹与其他各个型号agv在路线相交表中各条路径线段上的起点矩形轨迹和终点矩形轨迹是否相交;若当前型号agv在当前自旋点上的旋转轨迹与某个型号agv在某条其他路径线段上的起点矩形轨迹和终点矩形轨迹中的至少一个相交,则将参与判断的路径线段的线段编号、相交的起点和/或终点、参与判断的agv型号、自旋点编号和自旋角度记入自旋点冲突资源表中;所述线段冲突资源表、所述点冲突资源表和所述自旋点冲突资源表组成所述路径冲突表。7.根据权利要求6所述的方法,其特征在于,所述在控制当前agv执行任务时,从所述路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断所述其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv,包括:从所述线段冲突资源表中根据当前agv的型号和下一次行驶的目标任务路径线段的线
段编号查询一定会发生冲突的其他任务路径线段的第一冲突线段编号与第一特定型号agv;判断所述第一冲突线段编号的路径线段上是否存在所述第一特定型号agv;若存在,从所述点冲突资源表中根据所述第一冲突线段编号和第一特定型号agv查询冲突点位编号,用于暂停下发行驶到所述冲突点位编号对应路径点的任务到当前agv,所述目标任务路径线段经过所述冲突点位编号的路径点;当下一次行驶的目标任务路径线段需要自旋时,从所述自旋点冲突资源表中根据当前agv的型号、自旋角度和自旋点编号查询一定会发生冲突的其他任务路径线段的第二冲突线段编号和第二特定型号agv;判断第二冲突线段编号的路径线段上是否存在第二特定型号agv;若存在,输出自旋冲突信息,用于暂停下发行驶到目标任务路径线段的任务到当前agv。8.一种多agv控制装置,其特征在于,所述装置包括:地图数据采集模块,用于获取拓扑地图中的路径线段,所述路径线段是通过若干路径点对所述拓扑地图中每一条完整的路径进行划分得到的线段;agv轮廓采集模块,用于获取当前场景中每一型号agv的轮廓信息;轮廓轨迹模块,用于将每一型号agv的轮廓信息遍历在每条路径线段上,得到每一型号agv在每条路径线段上的轮廓轨迹;冲突表创建模块,用于判断两两轮廓轨迹之间的干涉情况,并基于干涉的轮廓轨迹创建路径冲突表,所述路径冲突表用于记录各个型号agv在各个路径线段行驶时与其他路径线段上的特定型号agv一定发生冲突的情况;路径规划模块,根据接收的任务指令为当前场景中每个agv规划任务路径,并按照所述路径点将每条任务路径划分为若干任务路径线段;冲突检测模块,用于在控制当前agv执行任务时,从所述路径冲突表中查询能够与当前agv下一次行驶的目标任务路径线段发生冲突的其他任务路径线段,并判断所述其他任务路径线段上是否存在路径冲突表中记录的与当前agv一定发生冲突的特定型号agv;第一控制模块,用于若存在,则暂停下发行驶到目标任务路径线段的任务到当前agv,直至冲突解除下发行驶到目标任务路径线段的任务到当前agv;第二控制模块,用于若不存在,则下发行驶到目标任务路径线段的任务到当前agv。9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的方法。

技术总结
本发明涉及自动导航小车技术领域,公开了一种多AGV控制方法、装置、计算机设备及存储介质方法包括:获取拓扑地图中的路径线段和当前场景中每一型号AGV的轮廓信息;将每一型号AGV的轮廓信息遍历在每条路径线段上,得到每一型号AGV在每条路径线段上的轮廓轨迹;根据两两轮廓轨迹之间的干涉情况创建路径冲突表;为当前场景中每个AGV规划任务路径,将每条任务路径划分为若干任务路径线段;在控制当前AGV执行任务时,判断从路径冲突表中查询发生冲突的其他任务路径线段上是否存在路径冲突表中记录的一定发生冲突的特定型号AGV;若存在,则暂停下发行驶任务直至冲突解除;若不存在,则下发任务到当前AGV。本发明准确防止了多AGV发生碰撞的情况。碰撞的情况。碰撞的情况。


技术研发人员:韩刘柱 陈炳均 张起
受保护的技术使用者:三一机器人科技有限公司
技术研发日:2023.06.26
技术公布日:2023/8/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐