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

机器人多车互锁检测、解锁方法和装置

文献发布时间:2023-06-19 18:32:25


机器人多车互锁检测、解锁方法和装置

技术领域

本申请涉及机器人路径规划技术领域,特别是涉及一种机器人多车互锁检测、解锁方法和装置。

背景技术

随着社会的发展,机器人、电动式无人车等智能移动设备已经遍布生活中的方方面面,尤其在物流技术领域,智能移动设备在搬运、输送等应用上大大降低了用人成本。但是,在同一地图区域内往往有多台车辆同时作业,每辆车工作过程中,需要从一个点位走向另一个点位,甚至有可能行走多个点位,比如调度一辆空的小车从B点位将货物搬运到C点位,目前小车的位置始A点位,那么小车需要从A点位行驶至B点位再行驶至C点位,再比如,小车从从A点位行驶至B点位过程中,为其规划的路径是,先从A点位出发,直行5米,到中间点位E,再从E点位向左转向90°,行驶10米到达B点位,那么小车需要从A点位行驶至E点位,转弯,再从E点位行驶至B点位,再行驶至C点位。调度系统为了避免两车相撞,会让车辆两两之间保持安全距离,这个安全距离不可压缩,当多车进入环路后,互相避让就会出现多车互相锁死的情况,但是也不一定只要成环就会互相锁死,仍然存在特殊情况下虽然成环但仍有可行路径。

发明内容

基于此,有必要针对上述技术问题,提供一种能够精确检测出多测互锁锁死的检测、解锁方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种机器人多车互锁检测方法,所述方法包括,

从所有点位中查找入度为零的点位和出度为零的点位;

删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;

根据所述第一点位集合中点位的数量确定是否存在多车互相锁死。

在其中一个实施例中,所述根据所述第一点位集合中点位的数量确定是否存在多车互锁之前,包括,判断所述第一点位集合中是否存在所述入度为零的点位,以及是否存在所述出度为零的点位,若存在,继续删除所述入度为零的点位和所述出度为零的点位,直至所述第一点位集合既不包括入度为零的点位也不包括出度为零的点位。

在其中一个实施例中,根据所述第一点位集合中点位的数量确定是否存在多车互锁,包括,若所述第一点位集合中存在点位,则存在多车互相锁死情形;若所述第一点位集合中不存在点位,则不存在多车互相锁死情形。

第二方面,本申请提供了一种机器人多车解锁方法,所述方法包括,

获取机器人车辆数;

获取入度为零的点位,获取初度为零的点位,删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;

根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点,直至不存在多车互相锁死情形。

在其中一个实施例中,所述方法还包括确定第一弧集合、第二弧集合以及第三弧集合;

删除以所述入度为零的点位为始点的边,删除以所述出度为零的点位为终点的边,得到第一弧集合;从所述第一弧集合中确定所有成对的正向边和反向边作为第二弧集合;从所述第一弧集合中删除第二弧集合得到第三弧集合。

在其中一个实施例中,所述根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位,包括,

若所述机器人车辆数大于第一点位集合中的点位数,则从组成第三弧集合的点位中确定至少一个出度和入度均为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。

在其中一个实施例中,若所述机器人车辆数大于第一点位集合中的点位数且所述组成第三弧集合的点位不存在出度和入度均为1的点位,或者,若所述机器人车辆数小于或等于第一点位集合中的点位数;

则从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。

在其中一个实施例中,所述从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,包括,若所有点位中不存在入度为0且出度为1的点位,则从第一点位集合中确定入度最小的点位作为更换路径点位,控制经过更换路径点位的机器人更换路径,直至不存在多车互相锁死情形。

在其中一个实施例中,所述控制经过更换路径点位的机器人更换路径,包括,将构成第二弧集合的点位确定为障碍点位,控制经过更换路径点位的机器人更换路径配置为使更换后的新路径不经过所述障碍点位。

第三方面,本申请还提供了一种机器人多车互锁检测及解锁装置,包括,

多车互锁检测模块,用于从所有点位中查找入度为零的点位和出度为零的点位;删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;检测第一点位集合中点位的数量;

多车互锁确定模块,用于根据所述第一点位集合中点位的数量确定是否存在多车互锁,若所述第一点位集合中存在点位,则存在多车互相锁死情形;若所述第一点位集合中不存在点位,则不存在多车互相锁死情形;

数据获取模块,用于获取机器人车辆数;获取第一点位集合中的点位数;

解锁模块,用于根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点,直至不存在多车互相锁死情形。

上述机器人多车互锁检测、解锁方法和装置,在互锁检测方法中,先从所有点位中查找入度为零的点位和出度为零的点位;删除入度为零的点位和出度为零的点位,得到第一点位集合;再根据所述第一点位集合中点位的数量确定是否存在多车互相锁死。现有方法中多采用向图拓扑排序法与深度优先搜索法,均能搜索出路径构成的环,但是组成环,并不一定会死锁,仍会存在特殊情况下,可行路径。本申请优化了检测方法,将入度为零的点位和出度为零的点位都删掉,迭代不断的进行删剪,若是不成环,则所有的点位均能最终成为入度为零的点,既通过删剪可以把所有的点位都删掉,最终第一点位集合为空集,否则,有若干入度及出度均不为零的点将会构成一个或者多个环路,从而形成多车互相锁死。

本申请提供的机器人多车解锁方法,先获取机器人车辆数;获取入度为零的点位,获取初度为零的点位,删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;再根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点位,直至不存在多车互相锁死情形。现有技术中的解锁方法大多采用设计规则法,根据车的情况设计固定的方法,而并不考虑互相锁死的环路的情况,本申请比较机器人车辆数和第一点位集合中的点位数,制定解锁策略,通过等待点位或者障碍点位的设定,控制机器人在等待点位等待或者控制至少一个机器人更换路径避开障碍点位,以实现根据成环情况进行精准解锁。

附图说明

图1为一个实施例中机器人多车互锁检测、解锁方法的应用环境图;

图2为一个实施例中机器人多车互锁检测的示意图;

图3为一个实施例中机器人多车互锁检测的流程示意图;

图4为一个实施例中机器人多车解锁方法的流程示意图;

图5为一个实施例中多车互锁检测、解锁方法流程示意图;

图6为一个实施例中机器人多车互锁检测及解锁装置结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的机器人多车互锁检测、解锁方法,可以应用于如图1所示的应用环境中。其中,机器人102可以通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104可以先获取多个机器人102路径中的所有点位,从所有点位中查找入度为零的点位和出度为零的点位;删除所有入度为零的点位和所有出度为零的点位,得到第一点位集合;根据第一点位集合中点位的数量确定是否存在多车互相锁死。服务器104还可以获取机器人车辆数,根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点,直至不存在多车互相锁死情形。

其中,机器人102可以但不限于是各种应用于物流仓库且具备装载功能的机器人,包括但不限定于各种形式的AGV设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种机器人多车互锁检测方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

S201,从所有点位中查找入度为零的点位和出度为零的点位。

机器人车辆在执行任务时,从机器人车辆的起始位置到执行任务位置和/或到终点位置,由多个点位加上点位与点位之间的行驶方向构成整个行驶路径,点位与点位之间的行驶方向可认为是有向边,同时多个点位加上点位与点位之间的有向边构成一个有向图。基于形成的有向图,在机器人车辆路径中的所有点位中查找入度为零的点位和出度为零的点位;存在指向点位本身的所有边数为该点位的入度数,点位本身指向其他任何点位的边数为该点位的出度数,入度为零的点位是指入度数为零的点位,可以理解的为不存在指向点位本身的边,出度为零的点是指出度数为零的点,可以理解的为不存在点位本身指向其他任何点位的边。

S202删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合。

将所有入度为零的点位都删除,是指该点位只要入度为零,不管其出度是多少,就进行删除处理,同理,将所有出度为零的点位都删除,是指该点位只要出度为零,不管其入度是多少,就进行删除处理。

在其中一种实施方式中,所述根据所述第一点位集合中点位的数量确定是否存在多车互锁之前,包括,判断所述第一点位集合中是否存在所述入度为零的点位,以及是否存在所述出度为零的点位,若存在,继续删除所述入度为零的点位和所述出度为零的点位,直至所述第一点位集合既不包括入度为零的点位也不包括出度为零的点位。以此确保第一点位集合中不包括任何入度为零的点位和出度为零的点位。

S203根据所述第一点位集合中点位的数量确定是否存在多车互相锁死。

由于同一个地图区域内有多车行驶,由此多条行驶路径构成的有向图有可能会出现闭环的情况,当出现闭环情况时,车辆之间的行驶路径很可能会互相锁死,导致机器人车辆互相等待不能将作业任务执行下去。所以,在机器人多车路径中如果出现互相锁死的情况,那么由多条行驶路径构成的有向图中一定有出现闭环的情况,本申请在多车互锁检测过程中,检测成环与否是判断是否存在多车互相锁死的关键之一,虽然也有极特殊情况下的成环,不出现多车互相锁死的情形,但是只要检测出成环,并且将闭环破坏掉,那么一定不会出现多车互相锁死的情形。

在其中一种实施方式中,根据第一点位集合中点位的数量确定是否存在多车互相锁死,包括,若所述第一点位集合中存在点位,则判定为存在多车互相锁死情形;若所述第一点位集合中不存在点位,则判定为不存在多车互相锁死情形。可以理解的是,若第一集合中不存在点位,那么机器人多车的所有路径中的点位都是入度为零或者出度为零的点位,通过有向边剪枝的方法,将入度为零的点的出边都剪掉,迭代不断的将入度为零的点的出边全部剪掉,最终一定可以通过有向边剪枝的方法将所有的边都剪掉,这样所有的点都能最终成为入度为零的点;若所述第一点位集合中存在点位,通过有向边剪枝的方法将会存在若干入度不为零的点减不掉,那么这些既有入度又有出度的点位,就很可能构成一个或者多个环路。

在其中一种实施方式中,多车互锁检测方法的流程图如图3所示,机器人多车路径上的所有点位构成点位集合V,从点位集合中查找入度为零的点位,既Vin=0的点位,从点位集合中查找出度为零的点位,既Vout=0的点位,从点位集合V中删除Vin=0的点位和Vout=0的点位,得到第一点位集合V1;值得注意的是,此步骤中查找Vin=0的点位和查找Vout=0的点位并无严格的先后顺序,同理删除Vin=0的点位和Vout=0的点位也无严格的先后顺序,本申请对查找Vin=0的点位和查找Vout=0的点位的顺序以及删除Vin=0的点位和Vout=0的点位的顺序不作限定。

在其中一种实施方式中,还可以,先从点位集合V中查找并删除Vin=0的点位,更新点位集合V得到更新后的点位集合V’,进一步,再从点位集合V’中查找并删除Vout=0的点位,更新点位集合V’得到点位集合V1。

此步骤中可以进一步判断第一点位集合V1中是否还存在Vin=0的点位或者Vout=0的点位,如果存在,继续删除,直至第一点位集合V1既不包括Vin=0的点位也不包括Vout=0的点位。

根据图3的流程图,得到第一点位集合V1之后,进一步判断第一点位集合V1是否为空集,若第一点位集合V1是空集,则判断为不存在多车互相锁死的情形,若第一点位集合V1不是空集,则判断为存在多车互相锁死的情形,在实际应用过程中,若第一点位集合V1是空集,那么一定不存在成环,不成环的情形之下也就一定不存在多车互相锁死的情形;但是若第一点位集合V1不是空集,则一定存在成环,成环却不一定引起多车互相锁死,有极特殊的成环情况之下,多车仍可以正常通行,这种情形很难被检测出来,本申请将所有的成环都判定为有多车互相锁死的潜在风险,及时的将环解除,从而避免多车互相锁死现象的发生。

在其中一种实施方式中,本申请提供的解锁方法如图4所示,首先获取机器人车辆数,此处的机器人车辆数是指位于同一地图范围内的机器人车辆数;获取入度为零的点位,获取初度为零的点位,删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;此处得到第一点位集合的步骤与上述多车互锁检测方法中得到第一点位集合中的方法及步骤雷同,此处不再赘述,值得的注意的是,这里获取机器人车辆数以及得到第一点位集合的步骤没有特别的先后顺序,本申请对获取机器人车辆数以及得到第一点位集合的步骤的顺序不作限定。

根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点位,直至不存在多车互相锁死情形。

只有第一点位集合中的点位数不为零,才判定为需要解锁,所以以下的解锁方法都是建立在第一点位集合中的点位数不为零的情况下进行的。所述根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;包括根据第一点位集合中的点位数确定是否存在多车互相锁死情形,若存在多车互相锁死情形,则控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点位,直至不存在多车互相锁死情形。

解锁过程中,本实施例方案通过设置等待点位,让需要经过等待点位的车辆在等待点位进行等待,以形成避让,让其他车辆先通过,这样就会将互相锁死的闭环解开,等到检测不到多车互锁的情形,解除等待点位,控制在等待点位等待的车辆通行;本实施例方案还可以通过设置障碍点位,控制需要经过障碍点位的车辆更换路径,以形成避让,在实际调度过程中,先控制需要经过障碍点位的第一个机器人更换路径,不再经过障碍点,继续监测是否还存在多车互相锁死的情形,如果依然存在,那么再控制需要经过障碍点位的第二个机器人更换路径,配置为使需要经过障碍点位的第二个机器人不再经过障碍点位,继续监测是否还存在多车互相锁死的情形,直到不存在多车互相锁死的情形,再解除障碍点标记,所有机器人不再更换路径,按照规划路径正常执行作业任务。

所述方法还包括确定第一弧集合、第二弧集合以及第三弧集合;删除以所述入度为零的点位为始点的边,删除以所述出度为零的点位为终点的边,得到第一弧集合;从所述第一弧集合中确定所有成对的正向边和反向边作为第二弧集合;从所述第一弧集合中删除第二弧集合得到第三弧集合。机器人车辆在执行任务时,从机器人车辆的起始位置到执行任务位置和/或到终点位置,甚至从起始位置到执行任务位置和/或到终点位置的过程中也有很多点位,由多个点位加上点位与点位之间的行驶方向来构成整个行驶路径,同时多个点位加上点位与点位之间的行驶方向也构成一个有向图。所有路径中的点位形成点集合,所有路径中的点位与点位之间的有向边构成弧集合,在其中一个实施例中通过有向剪枝的方法确定第一弧集合、第二弧集合以及第三弧集合,所述第一弧集合是指从所有的有向边中删除了以入度为零的点位为始点的边以及删除了以出度为零的点位为终点的边之后的有向边集合,所述第二弧集合是指成对的正向边和反向边构成的有向边集合,例如点位A和点位B之间,既有从A到B的路径,又有从B到A的路径,那么从A到B的路径和从B到A的路径就构成一个成对的正向边和反向边,从而这个成对的正向边和反向边属于第二弧集合,第三弧集合是指从第一弧集合中删除第二弧集合得到的有向边集合。

所述根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位,包括,若所述机器人车辆数大于第一点位集合中的点位数,则从组成第三弧集合的点位中确定至少一个出度和入度均为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。

第一点位集合中的点位数不为零代表当前路径下存在成环,极有可能存在多车互相锁死的现象,所以需要进行破环解锁,在其中一个实施例中,通过比较机器人车辆数与第一点位集合中的点位数来制定解锁策略,当机器人车辆数大于第一点位集合中的点位数,则从组成第三弧集合的点位中确定至少一个出度和入度均为1的点位作为等待点位,可以理解的是,出度和入度均为1的点位也就是说在该点位只有一台机器人会通过,将该点位设置成为等待点位,让经过该点位的这一台机器人在此处等待,其他闭环中的车辆继续行驶,在等待点位等待的机器人等待至不存在多车互相锁死的情形,等待的机器人等待的过程中不断检测是否存在成环互锁,检测到不存在成环互锁之后,解除等待点位,将等待点位调整为普通点位,原等待的机器人按照规划路径继续行驶。

在其中一个实施例中,若所述机器人车辆数大于第一点位集合中的点位数且所述组成第三弧集合的点位不存在出度和入度均为1的点位,或者,若所述机器人车辆数小于或等于第一点位集合中的点位数;则从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。入度为0且出度为1的点位可以理解为在该点位没有入边只有一个出边,也就是该点位是其中一辆机器人的起始点位,控制经过该点位的机器人在此等待,也就是说让处于始发点位的机器人车辆在起始点位等待,而不发车,这样其他机器人按照规划路径继续行驶,直至检测到不存在成环互锁之后,解除等待点位,将等待点位调整为普通点位,原等待在起始点位的机器人按照规划路径继续行驶。

在其中一个实施例中,所述从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,包括,若所有点位中不存在入度为0且出度为1的点位,则从第一点位集合中确定入度最小的点位作为更换路径点位,控制经过更换路径点位的机器人更换路径,直至不存在多车互相锁死情形。所述控制经过更换路径点位的机器人更换路径,包括,将构成第二弧集合的点位确定为障碍点位,控制经过更换路径点位的机器人更换路径配置为使更换后的新路径不经过所述障碍点位。具体的,先确定更换路径点位,找到入度最小的点位作为更换路径点位,可以先控制第一台经过更换路径点位的机器人车辆在此处重新搜索路径,更换新的路径,新的路径配置为避开障碍点位,这里的障碍点位是指构成第二弧集合的点位,第一台经过更换路径点位的机器人车辆更换路径后,继续检测是否还存在成环情形,如果还存在,继续控制第二台经过更换路径点位的机器人车辆在此处重新搜索路径,更换新的路径,新的路径配置为避开障碍点位。返回继续检测是否还存在成环情形,直至检测到所有路径中不存在成环情形,将更换路径点位和障碍点位还原成正常点位供机器人车辆行走。值得注意的是,如果经过更换路径点位的机器人车辆原始路径中不经过构成第二弧集合的点位,那么在此处不用更换路径,更换路径的目的是为了减少经过构成第二弧集合的点位的车辆,以解开所有机器人车辆路径中的成环。

在其中一个实施例中,如图5所示的互锁检测及解锁方法的流程示意图,示意图中所呈现的互锁检测及解锁逻辑,首先从所有在同一地图区域内的机器人车辆的路径中寻找是否存在成环情形,若存在成环,则通过解锁的方式进行破环处理,保证所有机器人车辆的所有路径中没有环路存在,即使有环路出现也能及时破环处理,以防止出现多车路径互相锁死无法通行。

第一步,机器人车辆的路径是由一个一个的点位以及各点位之间的有向边组成的,通过各点位的出入度情况判断是否有成环现象,从所有点位中查找入度为零的点,即Vin=0的点位,从所有点位中查找出度为零的点位,即Vout=0的点位,从所有点位中删除Vin=0的点位和Vout=0的点位,删除后得到第一点位集合V1。值得注意的是,有可能存在出度和入度都等于零的点位,可以理解为Vin=0的点位构成的集合和Vout=0的点位可能存在交集,出度和入度都等于零的点位同理进行删除。可以理解的是,第一点位集合V1中的每个点位都是既有入度又有出度,这样V1中的点位就会构成一个或者多个环路。

第二步,判断第一点位集合V1是否为空集,也就是说进一步判断第一点位集合V1是否存在点位,如果V1是空集,V1中不存在任何点位,那么判断为不存在多车互相锁死的情形,即所有车辆正常通行,没有互锁现象;如果V1不是空集,V1中存在点位,那么V1中的点位就会构成一个或者多个环路,此时需要破坏环路,以避免出现多车互相锁死的情形。

第三步,解锁过程主要根据成环情况制定解锁策略,首先,获取机器人车辆数,这里的车辆数是指同一地图区域内的车辆数,例如在一些场所中,机器人车辆是分区进行作业的,比如说将50台机器人放置在某仓储库中,但是仓储库分为普通仓储区和高频仓储区,在作业划分时,有10辆机器人负责普通仓储区的搬运,有40辆机器人负责高频仓储区的搬运,而普通仓储区和高频仓储区的机器人车辆设置为不进行跨区作业,那么互锁检测和解锁策略仅用于采集各自区域的数据,例如,高频仓储区的互锁检测和解锁策略获取的机器人车辆数为40;同理,如果同一场所中机器人是分层作业的,例如某仓储库分为上下两层,上层中设置30辆机器人进行搬运作业,下层设置20辆机器人进行搬运作业,上下两层的机器人不能够跨层作业,那么互锁检测和解锁策略仅用于采集各自层的数据。其次,确定第一弧集合、第二弧集合以及第三弧集合;删除以所述入度为零的点位为始点的边,删除以所述出度为零的点位为终点的边,得到第一弧集合;从所述第一弧集合中确定所有成对的正向边和反向边作为第二弧集合;从所述第一弧集合中删除第二弧集合得到第三弧集合。

第四步,比较车辆数与V1中的点位数,可以理解为用第三步获取的车辆数同第一步得到的第一点位集合中的点位做比较,如果机器人车辆数大于第一点位集合中的点位数,则进一步判断组成第三弧集合的点位中是否存在出度和入度均为1的点位,如果存在,则从组成第三弧集合的点位中确定至少一个出度和入度均为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。如果组成第三弧集合的点位不存在出度和入度均为1的点位,则进一步判断所有点位中是否存在入度为0且出度为1的点位,如果存在,则从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。如果不存在,则从第一点位集合中确定入度最小的点位作为更换路径点位,控制经过更换路径点位的机器人更换路径,直至不存在多车互相锁死情形。所述控制经过更换路径点位的机器人更换路径,包括,将构成第二弧集合的点位确定为障碍点位,控制经过更换路径点位的机器人更换路径配置为使更换后的新路径不经过所述障碍点位。

若所述机器人车辆数小于或等于第一点位集合中的点位数;则进一步判断所有点位中是否存在入度为0且出度为1的点位,如果存在,则从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。如果不存在,则从第一点位集合中确定入度最小的点位作为更换路径点位,控制经过更换路径点位的机器人更换路径,直至不存在多车互相锁死情形。所述控制经过更换路径点位的机器人更换路径,包括,将构成第二弧集合的点位确定为障碍点位,控制经过更换路径点位的机器人更换路径配置为使更换后的新路径不经过所述障碍点位。

以上解锁过程主要通过车辆数与出入度均不为零的点位进行比较,根据比较值合理设置等待点位或者更换路径点位,如果解锁策略为设置等待点位,那么控制通过等待点位的机器人车辆在等带点位等待,让其他车辆正常通行,直至互锁检测中不存在互相锁死情形,如果解决策略为设置更换路径点位,那么需要把存在互逆边的点位,即前文所述有成对的正向边和反向边的点位设置为障碍点位,控制通过更换路径点的车辆更换行驶路径,避开障碍点位,以此从有成对的正向边和反向边的点位处开始解环,直至互锁检测中不存在互相锁死情形。

在一个实施例中,如图6所示,提供了一种机器人多车互锁检测及解锁装置,包括:多车互锁检测模块601,多车互锁确定模块602,数据获取模块603,解锁模块604,其中:

多车互锁检测模块601,用于从所有点位中查找入度为零的点位和出度为零的点位;删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;检测第一点位集合中点位的数量;

多车互锁确定模块602,用于根据所述第一点位集合中点位的数量确定是否存在多车互锁,若所述第一点位集合中存在点位,则存在多车互相锁死情形;若所述第一点位集合中不存在点位,则不存在多车互相锁死情形;

数据获取模块603,用于获取机器人车辆数;获取第一点位集合中的点位数;

解锁模块604,用于根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点,直至不存在多车互相锁死情形。

上述的机器人多车互锁检测及解锁装置,先通过多车互锁检测模块检测获得第一点位集合,第一点位集合通过删除所述入度为零的点位和所述出度为零的点位得到;再通过多车互锁确定模块确定是否存在多车互相锁死情形,根据所述第一点位集合中点位的数量确定是否存在多车互锁,若所述第一点位集合中存在点位,则存在多车互相锁死情形;若所述第一点位集合中不存在点位,则不存在多车互相锁死情形;如果存在多车互相锁死的情形,则通过数据获取模块获取制定解锁策略所需要的数据,获取机器人车辆数;获取第一点位集合中的点位数;解锁模块根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点,直至不存在多车互相锁死情形。具体的,解锁模块需要从所有的有向边中根据点位的出度和入度获取第一弧集合、第二弧集合以及第三弧集合;删除以所述入度为零的点位为始点的边,删除以所述出度为零的点位为终点的边,得到第一弧集合;从所述第一弧集合中确定所有成对的正向边和反向边作为第二弧集合;从所述第一弧集合中删除第二弧集合得到第三弧集合。如果机器人车辆数大于第一点位集合中的点位数,则进一步判断组成第三弧集合的点位中是否存在出度和入度均为1的点位,如果存在,则从组成第三弧集合的点位中确定至少一个出度和入度均为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。如果组成第三弧集合的点位不存在出度和入度均为1的点位,则进一步判断所有点位中是否存在入度为0且出度为1的点位,如果存在,则从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。如果不存在,则从第一点位集合中确定入度最小的点位作为更换路径点位,控制经过更换路径点位的机器人更换路径,直至不存在多车互相锁死情形。所述控制经过更换路径点位的机器人更换路径,包括,将构成第二弧集合的点位确定为障碍点位,控制经过更换路径点位的机器人更换路径配置为使更换后的新路径不经过所述障碍点位。若所述机器人车辆数小于或等于第一点位集合中的点位数;则进一步判断所有点位中是否存在入度为0且出度为1的点位,如果存在,则从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。如果不存在,则从第一点位集合中确定入度最小的点位作为更换路径点位,控制经过更换路径点位的机器人更换路径,直至不存在多车互相锁死情形。所述控制经过更换路径点位的机器人更换路径,包括,将构成第二弧集合的点位确定为障碍点位,控制经过更换路径点位的机器人更换路径配置为使更换后的新路径不经过所述障碍点位。

在其中一个实施例中,多车互锁检测模块用于从所有点位中查找入度为零的点位和出度为零的点位;删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;根据所述第一点位集合中点位的数量确定是否存在多车互相锁死。

在其中一个实施例中,多车互锁检测模块用于在根据所述第一点位集合中点位的数量确定是否存在多车互锁之前,判断所述第一点位集合中是否存在所述入度为零的点位,以及是否存在所述出度为零的点位,若存在,继续删除所述入度为零的点位和所述出度为零的点位,直至所述第一点位集合既不包括入度为零的点位也不包括出度为零的点位。

在其中一个实施例中,多车互锁确定模块用于根据所述第一点位集合中点位的数量确定是否存在多车互锁,包括,若所述第一点位集合中存在点位,则存在多车互相锁死情形;若所述第一点位集合中不存在点位,则不存在多车互相锁死情形。

在其中一个实施例中,数据获取模块,用于获取机器人车辆数;获取入度为零的点位,获取初度为零的点位,删除所述入度为零的点位和所述出度为零的点位,得到第一点位集合;根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位;控制经过等待点位的机器人在所述等待点位等待,或者控制至少一个机器人更换路径避开障碍点,直至不存在多车互相锁死情形。

在其中一个实施例中,解锁模块用于确定第一弧集合、第二弧集合以及第三弧集合;删除以所述入度为零的点位为始点的边,删除以所述出度为零的点位为终点的边,得到第一弧集合;从所述第一弧集合中确定所有成对的正向边和反向边作为第二弧集合;从所述第一弧集合中删除第二弧集合得到第三弧集合。

在其中一个实施例中,解锁模块用于根据所述机器人车辆数和第一点位集合中的点位数,确定等待点位或者障碍点位,包括,若所述机器人车辆数大于第一点位集合中的点位数,则从组成第三弧集合的点位中确定至少一个出度和入度均为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。

若所述机器人车辆数大于第一点位集合中的点位数且所述组成第三弧集合的点位不存在出度和入度均为1的点位,或者,若所述机器人车辆数小于或等于第一点位集合中的点位数;

则从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,控制经过该等待点位的机器人在该等待点位等待,直至不存在多车互相锁死情形。

所述从所有点位中确定至少一个入度为0且出度为1的点位作为等待点位,包括,若所有点位中不存在入度为0且出度为1的点位,则从第一点位集合中确定入度最小的点位作为更换路径点位,控制经过更换路径点位的机器人更换路径,直至不存在多车互相锁死情形。

所述控制经过更换路径点位的机器人更换路径,包括,将构成第二弧集合的点位确定为障碍点位,控制经过更换路径点位的机器人更换路径配置为使更换后的新路径不经过所述障碍点位。

上述机器人多车互锁检测及解锁装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储机器人任务分组数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种机器人任务分组方法。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 一种控制机器人多轴运动的方法、装置及系统
  • 洗扫车吸入粒度检测方法及实现该方法的检测装置
  • 机器人避障功能的检测装置和检测方法
  • 声源分离信息检测装置、机器人、声源分离信息检测方法和存储介质
  • AGV调度系统中多车互锁解锁的方法、装置及设备
  • AGV调度系统中多车互锁解锁的方法、装置及设备
技术分类

06120115599861