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

机器人、机器人的队列调度方法和计算机可读存储介质

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


机器人、机器人的队列调度方法和计算机可读存储介质

技术领域

本申请涉及机器人技术领域,特别是涉及一种机器人的队列调度方法、机器人和计算机可读存储介质。

背景技术

多个机器人在同一场地内同时执行任务时,常常存在资源冲突的问题。在这些场景中,当某一个机器人执行某种操作时,会产生相应的资源冲突,会存在多个机器人想去同一个资源点的情况。

传统技术中,基于中央处理系统对机器人排队的方式,该方式是按照机器人“先到先得”的顺序,依次将资源点的资源分配到各个机器人。然而,中央处理系统分别与申请资源的各机器人进行通信,并进行虚拟的“排队”,这一处理过程的通信量过大,存在通信延迟严重、通信不稳定等问题。

发明内容

基于此,有必要针对上述技术问题,提供一种能够减少通信量的机器人的队列调度方法、装置、机器人、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种机器人,所述机器人包括移动底盘、通信模块以及存储器和处理器,所述移动底盘用于带动所述机器人自主移动,所述通信模块用于实现所述机器人与其他机器人之间的通信,所述存储器用于存储可在所述处理器上运行的计算机可读指令,所述处理器用于执行所述计算机可读指令时实现如下步骤:

从所述机器人存储的环境地图中确定资源点及对应的排队点队列;所述机器人存储的环境地图与所述其他机器人各自存储的环境地图是相对应的;

当所述机器人前往所述资源点时,控制所述机器人向所述排队点队列移动;

当所述机器人移动至所述排队点队列中的排队点时,基于排队效率和所述机器人的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人占据的目标点;

控制所述机器人前往所述目标点,直至所述目标点为所述资源点。

在其中一个实施例中,所述从所述机器人存储的环境地图中确定资源点及对应的排队点队列,包括:

基于所述机器人的资源请求,在所述环境地图中的物理位置中确定资源点;

确定所述资源点对应的排队点队列。

在其中一个实施例中,所述确定所述资源点对应的排队点队列,包括:

基于所述资源点对应的资源需求量,确定排队点数量;

从所述物理位置中,按照所述排队点数量选取位于所述资源点的预设距离内的物理位置;

为选取的所述物理位置设定相应顺序,得到排队点队列。

在其中一个实施例中,所述控制所述机器人向所述排队点队列移动,包括:

确定所述机器人所要到达的目标点,以及所述其他机器人所要到达的目标点;

根据所述机器人所要到达的目标点和所述其他机器人所要到达的目标点进行路径规划,得到路径规划结果;

基于所述路径规划结果,确定所述机器人的前行顺序,按照所述前行顺序向所述排队点队列移动。

在其中一个实施例中,所述基于排队效率和所述机器人的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人占据的目标点,包括:

在所述机器人的通信范围内与所述其他机器人进行通信,得到通信结果;

基于所述通信结果,确定所述机器人与所述其他机器人所要到达的位置是否冲突;所述所要到达的位置属于所述排队点队列中的排队点;

若不冲突,根据所述所要到达的位置确定所述机器人的目标点。

在其中一个实施例中,所述根据所要到达的位置确定所述机器人的目标点,包括:

判断所述机器人所要到达的位置与所述机器人占据的排队点之间是否存在预设候选点;所述预设候选点是所述机器人进位过程的候选排队点;

若存在,则基于所述机器人所要到达的位置、所述预设候选点与所述机器人占据的排队点,确定所述机器人的进位次数及各次进位的目标点;

若不存在,则基于所述机器人所要到达的位置与所述机器人占据的排队点确定所述机器人的进位次数及各次进位的目标点。

在其中一个实施例中,所述基于排队效率和所述机器人的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人占据的目标点,包括:

当所述机器人在所述排队点队列中,且所述机器人的通信范围覆盖所述排队点队列时,基于排队效率确定所述机器人的目标点;

当所述机器人在所述排队点队列中,且所述机器人的通信范围无法覆盖所述排队点队列时,基于所述机器人占据排队点的相邻点,确定所述机器人的目标点。

在其中一个实施例中,所述处理器还用于执行所述计算机可读指令时实现如下步骤:

当所述机器人到达所述资源点后,执行所述资源点对应的任务操作;

在完成所述任务操作后,控制所述机器人远离所述资源点及所述排队点队列。

第二方面,本申请提供了一种机器人的队列调度方法。所述方法包括:

从所述机器人存储的环境地图中确定资源点及对应的排队点队列;所述机器人存储的环境地图与其他机器人各自存储的环境地图是相对应的;

当所述机器人前往所述资源点时,控制所述机器人向所述排队点队列移动;

当所述机器人移动至所述排队点队列中的排队点时,基于排队效率和所述机器人的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人占据的目标点;

控制所述机器人前往所述目标点,直至所述目标点为所述资源点。

第三方面,本申请还提供了一种机器人的队列调度装置。所述装置包括:

物理位置处理模块,用于从所述机器人存储的环境地图中确定资源点及对应的排队点队列;所述机器人存储的环境地图与其他机器人各自存储的环境地图是相对应的;

第一控制模块,用于当所述机器人前往所述资源点时,控制所述机器人向所述排队点队列移动;

排序模块,用于当所述机器人移动至所述排队点队列中的排队点时,基于排队效率和所述机器人的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人占据的目标点;

第二控制模块,用于控制所述机器人前往所述目标点,直至所述目标点为所述资源点。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例中机器人所实现的步骤。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例中机器人所实现的步骤。

上述机器人及机器人的队列调度方法、装置、存储介质和计算机程序产品,机器人存储的环境地图与其他机器人各自存储的环境地图是相对应的,上述机器人基于环境地图选取资源点,并确定资源点对应的排队点队列,由于上述机器人和其他机器人实际是分布式的,且各机器人在物理空间中进行排队,不可能出现“多个机器人在同一个位置”的情况,因而在减少通信量的情况下避免了排队中的冲突,进而基于排队效率和通信范围中的至少一项选取目标点,可以通过较小的通信量保证排队过程无冲突,以准确而高效地抵达资源点。由此,可以不部署中央处理系统,没有额外的部署、维护代价,不存在大通信延迟、通信不稳定等问题,也不存在单点故障的问题。

附图说明

图1为一个实施例中机器人的队列调度方法的应用环境图;

图2为一个实施例中机器人的队列调度方法的流程示意图;

图3为一个实施例中机器人的排队策略的流程示意图;

图4为另一个实施例中机器人的队列调度方法的流程示意图;

图5为一个实施例中机器人的队列调度装置的结构框图;

图6为一个实施例中机器人的内部结构图。

具体实施方式

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

本申请实施例提供的机器人的队列调度方法,可以应用于如图1所示的应用环境中。其中,机器人102包括移动底盘、通信模块以及存储器和处理器,所述移动底盘用于带动机器人102自主移动,所述通信模块用于实现所述机器人102与其他机器人104进行通信。机器人102从所述机器人102存储的环境地图中确定资源点及对应的排队点队列;所述机器人102存储的环境地图与所述其他机器人104各自存储的环境地图是相对应的;当所述机器人102前往所述资源点时,控制所述机器人102向所述排队点队列移动;当所述机器人102移动至所述排队点队列中的排队点时,基于排队效率和所述机器人102的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人104占据的目标点;控制所述机器人102前往所述目标点,直至所述目标点为所述资源点。

其中,机器人102与其他机器人104用相同且各自存储的环境地图,各机器人具备自主移动能力,可以在环境地图中移动或前往环境地图中的各个物理位置,各机器人具备避障运动能力,不会在运动过程中与其他机器人相撞,各机器人的通信能力有限,可以与一定范围内的其他机器人进行通信;其中,通信内容包括机器人将要前往的目标点位置,称作“目标位置”,目标点位置所采用的坐标系方式是多种多样的,一种坐标系设定方式是:以机器人建图定位的初始点为(0,0)点,以正东方向为x轴正方向,以正北方向为y轴正方向,构建得到的笛卡尔坐标系;另一种坐标系的方式是,根据工具坐标系或世界坐标系确定机器人的坐标系。

在一个实施例中,如图2所示,提供了一种机器人,所述机器人包括移动底盘、通信模块以及存储器和处理器,所述移动底盘用于带动所述机器人自主移动,所述通信模块用于实现所述机器人与其他机器人之间的通信,所述存储器用于存储可在所述处理器上运行的计算机可读指令,所述处理器用于执行所述计算机可读指令时实现如下步骤:

步骤202,从机器人存储的环境地图中确定资源点及对应的排队点队列;该机器人存储的环境地图与其他机器人各自存储的环境地图是相对应的。

环境地图是上述机器人及其他机器人使用的地图内容相同,且该地图由各机器人分别存储。在该地图中存在多个物理位置,这些物理位置是实际存在于某场景中且在环境地图中具有唯一性的,使得执行本实施例方案的机器人与其他机器人所认知的物理位置是相同的。多个物理位置中的至少一个位置是资源点,通过资源点这一物理位置奠定了机器人路径规划的基础,且资源点也提供了机器人的某种任务操作的前提条件。资源点是通过虚拟资源定义的,虚拟资源是运用数据库或程序编辑所得到的信息资源;当机器人所确定的资源点是A操作的虚拟资源对应的资源点,则机器人到达A操作的资源点时,机器人满足执行A操作的相应操作的资源条件。其中,A操作可以是环境中的取餐、充电、乘梯等操作中的一项或多项,对应的,A操作的资源点可以是环境中的取餐点、充电点、乘梯点等资源点类型中的一种或多种。

资源点对应的排队点队列,包括与资源点对应的至少一个排队点,各排队点是按照某种顺序排列后的。通过排队点队列中排队点顺序,提供了机器人基于资源点进行路径规划的至少部分基础路径,以基于资源点进行机器人的控制。

由于物理位置在环境地图中是具有唯一性的,从物理位置中确定的资源点在环境地图中是具有唯一性的,而资源点的排队点队列规定了其中各排队点的顺序,机器人无需对这些位置进行通信,即可确定各种与其他机器之间的排队顺序信息,有利于通过环境地图生成机器人的控制策略,以期望减少机器人在相应场景中的通信量。

在一个实施例中,步骤202具体可以包括:基于机器人的资源请求,在环境地图中的物理位置中确定资源点;确定资源点对应的排队点队列。

由于机器人基于资源请求确定对应的操作,基于该操作确定机器人所前往的某个资源点,再基于该资源点周围的部分物理位置确定相应的排队点队列,充分发挥了物理位置的用途,利用排队点队列中各排队点的物理位置唯一性,进一步降低了排队过程中机器人与其他机器人冲突的可能性。例如:当机器人需要请求资源时,该机器人先前往该资源对应的排队点队列中的队尾点,由于该队尾点属于唯一的物理位置,在机器人自身拥有避障运动能力时,可以保证机器人在排队时,不会出现与其他机器人同时出现在队尾点,进而保证排队过程中的机器人之间不会发生冲突。

在一个实施例中,确定资源点对应的排队点队列,包括:基于资源点对应的资源需求量,确定排队点数量;从物理位置中,按照排队点数量选取位于资源点的预设距离内的物理位置;为选取的物理位置设定相应顺序,得到排队点队列。

资源点是各个机器人分别进行某种操作的前提。当机器人的目标点是某资源点,且移动至该资源点时,判断机器人可以执行对应的操作。

对于确定排队点数量的过程,其是基于资源点在实际场景中设置的资源需求量而设定的,资源需求量会随着实际场景变化而使得需求该虚拟资源的机器人数量发生改变,而改变的机器人数量构成了阈值,限定了排队点数量的最小值。

例如:在一个2层餐厅的场景中,在1、2楼都有餐桌,在1楼有1个出餐点,1、2楼之间有1个电梯,现购置5个机器。需要分配的资源点有:出餐点的资源点、电梯的资源点;对应的,存在至少两种为资源点分配排队点的方式:电梯的排队点数量的一种分配方式是:所有的机器人都可以去所有的出餐点,也都可以负责1、2楼的送餐任务,那么需要出餐点的机器人数量是5,需要电梯的机器人数量是5,则需要出餐点与电梯的排队点数量均不少于5;另一种分配方式是:部署人员专门指定某机器人负责2楼的送餐任务,此时,需要出餐点的机器人数量是5,但需要电梯的机器人数量是1,则需要出餐点的排队点数量不少于5,而需求电梯的排队点数量均不少于1。

在确定排队点数量后,从多个物理位置中,按照排队点数量选取位于资源点的预设距离内的物理位置,以确定出资源点附近的物理位置。再按照资源点附近的物理位置与资源点之间的距离设定相应顺序,得到排队点组成的排队点队列;在排队点队列中,与资源点间距越小的排队点的顺序越靠前。

步骤204,当上述机器人前往资源点时,控制该机器人向排队点队列移动。

可选地,在移动过程中通过机器人的避障特性进行避障,以避免移动过程中与其他机器人碰撞。对于机器人的避障特性进行避障的策略,其可以是多种多样的。例如:其可以是机器人暂停运动;其可以是基于Bug1算法实现的,机器人首先完全地围绕障碍物,然后从距目标最短距离的点离开;其可以是基于Bug2算法实现的开始时会跟踪障碍物的轮廓,当机器人可以直接移动至目标时,直接从障碍分离,以减少机器人运动路径;其也可以是通过向量场直方图(VFH)建立机器人极坐标的局部地图,生成向量场直方图,在向量场直方图中,x轴是以机器人为中心感知到的障碍物的角度,y轴表示在该方向存在障碍物的概率大小p。实际应用的过程中会根据这个直方图首先辨识出允许机器人通过的足够大的所有空隙,然后对所有这些空隙计算其代价函数,最终选择具有最低代价函数的通路通过;其中,代价函数受三个因素影响:目标方向、机器人当前方向、之前选择的方向,最终生成的代价是这三个因素的加权值,通过调节不同的权重可以调整机器人的选择偏好。

当机器人前往资源点时,该机器人将其他机器人视为障碍,并基于自身的避障特性进行避障,由于排队点队列中的各排队点存在相应的顺序,使得挤出来的机器人可以选择排队点队列中的某一排队点。其中,当排队点队列队尾具有物理位置唯一性时,利用机器人自身的避障特性,不会出现与其他机器人同时出现在队尾的情况,进而避免与其他机器人因为排队而发生冲突。

在一个实施例中,控制机器人向排队点队列移动,包括:机器人确定机器人所要到达的目标点,以及其他机器人所要到达的目标点;根据机器人所要到达的目标点和其他机器人所要到达的目标点进行路径规划,得到路径规划结果;基于路径规划结果,确定机器人的前行顺序,按照前行顺序向排队点队列移动。

按照前行顺序是指,执行上述过程的机器人与其他机器人通信所达成的顺序,用于在排队场景下,规范上述机器人与其他机器前往排队点的顺序。可选地,排队点队列中的排队点分别有各自的排列顺序。可选地,在排队点队列中,与资源点之间的排队点数量最少的排队点是队首点;在排队点队列中,与资源点之间的排队点数量最多的排队点是队尾点。

在机器人将资源点的排队点队列中的队尾点作为目标点时,机器人依靠自身的避障特性进行避障,其所规避的障碍不但可以是其他机器人所在位置,还可以涉及其他机器人到达的目标点,较优地进行路径规划,得到路径规划结果,路径规划结果可以是机器人暂停运动,可以是机器人绕行障碍物。由此,可以省略甚至取消机器人间进行通信,从而减少避障过程中的通信量。

步骤206,当上述机器人移动至排队点队列中的排队点时,基于排队效率和上述机器人的通信范围中的至少一项,从资源点和排队点队列中选取未被其他机器人占据的目标点。

排队效率可通过机器人在排队点进行排队规划的次数表征,排队效率与机器人在排队点进行排队规划的次数正相关;进行排队规划的次数可以是进位次数。在机器人前往资源点的过程中,机器人暂停的排队点越多,其所进行排队规划的次数越多,排队效率越低,在排队效率最低时,机器人会按照排队点队列依次进位,行进路线较长,用时较多。而在按照最高排队效率对应的排队算法进行排队时,机器人直接走到目标点。而通信范围这一特征,来基于机器人本身的通信特性,基于机器人本身的位置及对应的通信范围内依次选取目标点。目标点是资源点或排队点队列中的未被其他机器人占据的任意一个物理位置。

对于选取未被其他机器人占据的目标点这一过程,其是基于排队效率和机器人的通信范围中的至少一项确定排队方式,再基于排队方式选择相应的排队点,以选取未被其他机器人占据的目标点,避免排队中的冲突。而且因为排队点队列中每个机器人可以选择的未被占用的排队点都是不相交的,因此不需要等待所有机器人都确认,进而减少通信量。举例而言,10个排队点和对应的资源点队列形成了11个依序排列的号码位置,当资源点位于0号位置,且排队点3号位置、排队点4号位置、排队点10号位置有机器人时,那么当前在排队点3号位置的机器人可以选择排队点1号位置、排队点2号位置及资源点0号位置中的一个号码位置作为目标点;在排队点4号位置的机器人没有目标点;在排队点10号位置的机器人可以选择排队点5-9号位置中的一个号码位置作为目标点。

在一个实施例中,基于排队效率和机器人的通信范围中的至少一项,从资源点和排队点队列中选取未被其他机器人占据的目标点,包括:当机器人在排队点队列中,且机器人的通信范围覆盖排队点队列时,基于排队效率确定机器人的目标点。由此,对通信要求最高效率最高,在该机器人是排队点队列中队尾点的机器人,且该机器人的前方没有其他机器人,可以直接前往队头。

当机器人在排队点队列中与相邻点的其他机器人间的通信正常,且与部分点的其他机器人通信异常时,基于机器人在排队点队列中占据排队点的相邻点,确定该机器人各自对应的目标点;其中,相邻点是排队点队列中与机器人在排队点队列中占据排队点相邻的排队点。对通信要求最低(仅相邻两个间可通信);效率最低,如果有10个排队点,即使前方没有其他机器人,在排队点10号位置的机器人也要依次前往排队点9号位置、8号位置、7号位置,以此类推,直至到达排队点1号位置。

步骤208,控制上述机器人前往目标点,直至目标点为资源点。

控制机器人前往目标点的过程,称为“进位过程”,机器人会通过至少一次控制自身前往目标点的方式控制自身完成进位过程,直至机器人前往的最后一个目标点是该资源点,以使机器人到达资源点并在资源点执行相应业务操作。其中,当前方所有排队点都未被占用,且资源点也未被占用时,可控制机器人直接前往资源点;当机器人相邻的前方排队点被占用时,控制机器人停在原地;当机器人前方有多个未占据的排队点时,前往被选取出的排队点。当该机器人的目标点为资源点时,该机器人控制自身前往资源点,以完成该机器人的排队调度过程。

在一个实施例中,处理器还用于执行计算机可读指令时实现如下步骤:当机器人到达资源点后,执行资源点对应的任务操作;在完成任务操作后,控制机器人远离资源点及排队点队列。

当机器人到达资源点后,基于任务操作对应的业务逻辑,完成资源点对应的任务操作,而控制机器人远离资源点及排队点队列,也有利于其他机器人前往资源点来完成相应的任务操作,以进一步通过较小的通信量保证排队过程无冲突,以使得其他机器人能够准确而高效地抵到达资源点。可以理解,控制机器人远离资源点及排队点队列的过程,还可以涉及机器人前往下一个资源点的相关步骤。

上述机器人的排队调度过程中,基于环境地图中的物理位置选取资源点,并确定资源点对应的排队点队列,由于机器人实际在物理空间中进行排队,而物理位置本身是唯一的,本身就不可能出现“多个机器人在同一个位置”的情况,并在移动过程中通过机器人的避障特性进行避障,以避免移动过程中与其他机器人碰撞,在减少通信量的情况下避免了排队中的冲突,进而基于排队效率和通信范围中的至少一项选取目标点,也可以通过较小的通信量保证排队过程无冲突,以准确而高效地抵到达资源点。由此,可以不部署中央处理系统,没有额外的部署、维护代价,不存在大通信延迟、通信不稳定等问题,也不存在单点故障的问题。

此外,相比于基于分布式一致性算法的方案,本方案的排队进位过程不需要利用分布式一致性算法,机器人选择更靠前的排队点时,不需要等待所有机器人都确认此操作后才能前进,这减少了机器人间的通信量,也降低了对通信网络的要求,对机器人的通信能力依赖较小,比现有方法更适合餐饮等场景下的移动服务机器人。

在一个实施例中,对于从排队点队列中选取目标点的过程,其用于通过较小的通信量保证排队过程无冲突,以准确而高效地抵到达资源点。而在多中可用的排队方式中,不同的排队方式分别对应有不同的应用条件及相应的效果。

在一个实施例中,当某机器人认为“前方无机器人”时,可能该机器人前方存在其他机器人,只是该机器人与其他机器人之间的距离较远,彼此间通信不畅,此时如果直接采用最高的排队效率的方法,则会造成冲突——即多个机器人前往同一个排队点、资源点;对应的,基于排队效率和机器人的通信范围中的至少一项,从资源点和排队点队列中选取未被其他机器人占据的目标点,其如图3所示,包括:

步骤302,在机器人的通信范围内与其他机器人进行通信,得到通信结果。

在该机器人的通信范围内与其他机器人进行通信的过程中,该机器人基于通信范围选取排序顺序最靠近资源点的排队点,从最靠近资源点的排队点开始逐个对各个排队点进行通信,得到通信结果。通信结果用于表征上述机器人进行通信内容所反映的结果,其可以是并无其他机器人占用靠近资源点的排队点,其可以是其他机器人持续或预计占用某排队点。

步骤304,基于通信结果,确定机器人与其他机器人所要到达的位置是否冲突;所要到达的位置属于排队点队列中的排队点。

步骤306,若不冲突,根据所要到达的位置确定机器人的目标点。

所要到达的位置,是排队点队列中的任意点,其可以是机器人将持续占据的某点,其也可以是机器人将前往的更靠近资源点的排队点。在无其他机器人占据靠近资源点的排队点时,确定机器人与其他机器人所要到达的位置是不冲突的,可在通信范围中选取排序顺序最靠近资源点的排队点作为目标点;在其他机器人持续或将占用靠近资源点的排队点时,确定机器人与其他机器人所要到达的位置是冲突的,需要机器人重新选择目标点。

本实施例中,基于通信范围的排队策略可以适用于多种场景,且保障多种场景下的高效排队。在通信要求最高的场景中,任意两个排队点间的机器人通信正常,其效率接近于直接前往最靠近资源点的排队点的方案;在通信要求最低的场景中,仅相邻的两个排队点间的机器人通信正常,其效率高于依次进位的技术方案。由此,只需要选择保守的通信范围,即使两个机器人距离较远,彼此间通信不畅,也不会造成冲突进而实现高效排队。

在一个实施例中,在实际场景中,墙壁、拐角都可能使机器的通信范围大幅下降,此时,如果选择保守的通信距离参数,通信范围过小,基于通信范围的排队效率太低,如果选择不保守的通信距离,则通信范围过大,基于通信范围的排队方式存在于其他冲突的风险。因此,根据所要到达的位置确定机器人的目标点,包括:

判断机器人所要到达的位置与机器人占据的排队点之间是否存在预设候选点;预设候选点是机器人进位过程的候选排队点;若存在,则基于机器人所要到达的位置、预设候选点与机器人占据的排队点,确定机器人的进位次数及各次进位的目标点;若不存在,则基于机器人所要到达的位置与机器人占据的排队点确定机器人的进位次数及各次进位的目标点。

预设候选点是在环境地图中具有可跳过属性,可跳过属性用于确定排队点是“不可跳过点”或“可跳过点”。在某机器人进位的过程中,在该机器人所要到达的位置与机器人占据的排队点之间存在“不可跳过点”时,将各个“不可跳过点”分别作为该机器人必须进位的,各“不可跳过点”分别对应于一次进位,该机器人可以选择排队点队列的排序顺序最接近当前排队点的“不可跳过”的预设候选点;使用此方法时,需保证任意前后两个“不可跳过”的预设候选点之间的机器人可以正常通信。由此,通过让部署人员人工设置哪些预设候选点必须前往,可以使进位次数降低,最大化的提高排队的效率。

进一步地,在异常情况下,如机器人被人为中止任务,或机器人因内部状态出现异常时,机器人通过将目标点重置为空,实现退出排队的功能。只需要将目标点改为不在排队点、资源点即可。当执行业务逻辑,如送餐时,目标点按业务进行修改,如改为餐桌的位置;当出现异常时,可改为“无穷大”,“无穷大”可以是一个程序上约定的不在地图范围内的坐标值。

为了更清晰地展示本申请的整体方案,如图4所示,通过一个较为具体的实施例阐述本方案相应的过程,该过程包括:请求执行任务操作的机器人从环境地图的物理位置中,确定资源点及对应的排队点队列,前往排队点队列的队尾点,其中,排队点队列的一个队尾点最多由一个机器人占据;当某机器人移动至排队点队列中的队尾点,将该机器人视为在排队点队列中;判断在排队点队列中的该机器人是否移动至资源点;当该机器人向资源点的排队点队列移动时,先检测该机器人是否出现异常,若出现异常则更改目标点以离开当前的排队点队列,若未出现异常则基于排队效率和机器人的通信范围中的至少一项,从资源点和排队点队列中选取未被其他机器人占据的目标点,前往目标点,直至目标点为这一排队点队列的资源点。在该机器人到达资源点后,通过该机器人在资源点执行相应业务操作的逻辑;在执行业务操作后,更改目标点以离开当前的排队点队列。

在另一个实施例中,对本申请的整体流程进行阐述:基于虚拟资源设置环境地图中的资源点;每个资源点附近有若干排队点,排队点有顺序,申请资源的机器人利用机器人的避障保证只有一个机器人能到达排队点中的队尾点,再从队尾点向前下一目标点进位,最终到达资源点;机器人之间可以通信,通信内容包括机器人要前往的目标点,而在机器人的进位过程中,可以选择多种策略,从当前可以选择的排队点中选择排队点进行进位。机器人的进位过程中,具体的包括如下过程:当某个排队点是其他机器人的目标点,则不能选择该排队点进位;如果存在某个顺序在该排队点之后,当前排队点之前的排队点被其他机器人选择,则也不能选择该排队点。

在一个实施例中,对从资源点和排队点队列中选取的目标点进行综合论述,以描述排队点对应的策略,其可以是如下的任意一种策略,其具体包括:

1、一种策略是选择顺序最靠前的排队点;此时需保证在设置环境地图时,任意两个排队点之间机器人通信稳定,适用于排队点在一起的情况。对应的,执行该策略的过程中,处理器用于执行计算机可读指令时实现如下步骤:当机器人在排队点队列中,且机器人的通信范围覆盖排队点队列时,基于排队效率确定机器人的目标点。

2、一种策略是选择机器人当前位置的前一个排队点;此时需保证在设置环境地图时,任意一个排队点与其之后的排队点间机器通信正常,这适用于排队点较少、较为分散的情况。对应的,执行该策略的过程中,处理器用于执行计算机可读指令时实现如下步骤:当机器人在排队点队列中,且机器人的通信范围无法覆盖排队点队列时,基于机器人占据排队点的相邻点,确定机器人的目标点。

3、一种策略是利用通信距离限制进行选择,即选择与当前位置距离小于当前机器人通信范围的、排序顺序最靠前的排队点;此时对环境地图的设置要求与策略2中的要求一致;由于实际环境场景中通信距离并不一致,使用此方法需采用较为保守的通信距离。对应的,执行该策略的过程中,处理器用于执行计算机可读指令时实现如下步骤:在机器人的通信范围内与其他机器人进行通信,得到通信结果;基于通信结果,确定机器人与其他机器人所要到达的位置是否冲突;所要到达的位置属于排队点队列中的排队点;若不冲突,根据所要到达的位置确定机器人的目标点。

4、一种策略是在设置环境地图时,对每个排队点赋予额外属性的属性:可跳过、不可跳过,此时,在“进位”时,机器可以选择排序顺序最接近当前排队点的“不可跳过”的排队点;使用此方法时,需保证任意前后两个“不可跳过”的排队点之间,机器都可以正常通信。对应的,执行该策略的过程中,处理器用于执行计算机可读指令时实现如下步骤:判断机器人所要到达的位置与机器人占据的排队点之间是否存在预设候选点;预设候选点是机器人进位过程的候选排队点;若存在,则基于机器人所要到达的位置、预设候选点与机器人占据的排队点,确定机器人的进位次数及各次进位的目标点;若不存在,则基于机器人所要到达的位置与机器人占据的排队点确定机器人的进位次数及各次进位的目标点。

由此,本申请针对多移动机器人的资源竞争、冲突问题,提出了一种基于物理特征信息的多机器人队列调度方式。相比于基于中央处理系统的方案,本方法是完全分布式的,没有额外的部署、维护代价,也不存在单点故障的问题。相比于基于分布式一致性算法的方案,本申请的排队进位过程不需要利用分布式一致性算法,机器人选择更靠前的排队点时,不需要等待所有机器人都确认此操作后才能前进,这减少了机器人间的通信量,也降低了对通信网络的要求。于此同时,由于本申请利用了物理位置的唯一性,虽然采用的方法更为简单,通信量更少,比现有方法更适合餐饮等场景下的移动服务机器人。本申请仍可以保证排队过程是无冲突的:即不会存在两个机器人同时选择资源点为目标点的情况。

应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以是以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

本申请提供了一种机器人的队列调度方法,该机器人包括移动底盘和通信模块,移动底盘用于带动所述机器人自主移动,通信模块用于实现机器人与其他机器人之间的通信。该方法包括:

从机器人存储的环境地图中确定资源点及对应的排队点队列;机器人存储的环境地图与所述其他机器人各自存储的环境地图是相对应的;

当机器人前往资源点时,控制机器人向排队点队列移动;

当机器人移动至排队点队列中的排队点时,基于排队效率和机器人的通信范围中的至少一项,从资源点和排队点队列中选取未被其他机器人占据的目标点;

控制机器人前往目标点,直至目标点为资源点。

在其中一个实施例中,所述从所述机器人存储的环境地图中确定资源点及对应的排队点队列,包括:

基于所述机器人的资源请求,在所述环境地图中的物理位置中确定资源点;

确定所述资源点对应的排队点队列。

在其中一个实施例中,所述确定所述资源点对应的排队点队列,包括:

基于所述资源点对应的资源需求量,确定排队点数量;

从所述物理位置中,按照所述排队点数量选取位于所述资源点的预设距离内的物理位置;

为选取的所述物理位置设定相应顺序,得到排队点队列。

在其中一个实施例中,所述控制所述机器人向所述排队点队列移动,包括:

确定所述机器人所要到达的目标点,以及所述其他机器人所要到达的目标点;

根据所述机器人所要到达的目标点和所述其他机器人所要到达的目标点进行路径规划,得到路径规划结果;

基于所述路径规划结果,确定所述机器人的前行顺序,按照所述前行顺序向所述排队点队列移动。

在其中一个实施例中,所述基于排队效率和所述机器人的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人占据的目标点,包括:

在所述机器人的通信范围内与所述其他机器人进行通信,得到通信结果;

基于所述通信结果,确定所述机器人与所述其他机器人所要到达的位置是否冲突;所述所要到达的位置属于所述排队点队列中的排队点;

若不冲突,根据所要到达的位置确定所述机器人的目标点。

在其中一个实施例中,所述根据所要到达的位置确定所述机器人的目标点,包括:

判断所述机器人所要到达的位置与所述机器人占据的排队点之间是否存在预设候选点;所述预设候选点是所述机器人进位过程的候选排队点;

若存在,则基于所述机器人所要到达的位置、所述预设候选点与所述机器人占据的排队点,确定所述机器人的进位次数及各次进位的目标点;

若不存在,则基于所述机器人所要到达的位置与所述机器人占据的排队点确定所述机器人的进位次数及各次进位的目标点。

在其中一个实施例中,所述基于排队效率和所述机器人的通信范围中的至少一项,从所述资源点和所述排队点队列中选取未被所述其他机器人占据的目标点,包括:

当所述机器人在所述排队点队列中,且所述机器人的通信范围覆盖所述排队点队列时,基于排队效率确定所述机器人的目标点;

当所述机器人在所述排队点队列中,且所述机器人的通信范围无法覆盖所述排队点队列时,基于所述机器人占据排队点的相邻点,确定所述机器人的目标点。

在其中一个实施例中,所述方法还包括:

当所述机器人到达所述资源点后,执行所述资源点对应的任务操作;

在完成所述任务操作后,控制所述机器人远离所述资源点及所述排队点队列。

上述队列调度方法的具体步骤可以参考步骤202-步骤208,以及,步骤302-步骤306。

本方法的优势一方面在于:相对于采用现场部署的中央处理系统的方案(如布置一个小的中控电脑),会降低部署、维护的难度,降低系统的整体成本;如果采用基于云的远程中央处理系统方案,则又存在大通信延迟、通信不稳定等问题。本方法的优势另一方面在于:相对于基于分布式一致性算法的方案,由于进行每种操作都不需要运行多轮的分布式一致性算法(直至算法收敛),这种方法的主要优势在于通信量降低、效率增高,以及对机器间通信网络的依赖削弱。在处理简单的排队任务时过于复杂、效率不高,对通信网络的依赖性弱又提高了其适用范围——在一些多墙壁、多拐角的室内环境中,由于墙壁阻隔、通信不畅的情况下,也可以基于这种方法进行直接部署。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的机器人的队列调度方法的机器人的队列调度装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个机器人的队列调度装置实施例中的具体限定可以参见上文中对于机器人的队列调度方法的限定,在此不再赘述。

在一个实施例中,如图5所示,提供了一种机器人的队列调度装置,包括:物理位置处理模块502、第一控制模块504、排序模块506和第二控制模块508,其中:

物理位置处理模块502,用于从机器人存储的环境地图中确定资源点及对应的排队点队列;机器人存储的环境地图与所述其他机器人各自存储的环境地图是相对应的;

第一控制模块504,用于当机器人前往资源点时,控制机器人向排队点队列移动;

排序模块506,用于当机器人移动至排队点队列中的排队点时,基于排队效率和机器人的通信范围中的至少一项,从资源点和排队点队列中选取未被所述其他机器人占据的目标点;

第二控制模块508,用于控制机器人前往目标点,直至目标点为资源点。

在其中一个实施例中,所述物理位置处理模块502,包括:

资源点确定单元,用于基于所述机器人的资源请求,在所述环境地图中的物理位置中确定资源点;

队列确定单元,用于确定所述资源点对应的排队点队列。

在其中一个实施例中,所述排队点队列确定单元,包括:

数量确定子单元,用于基于所述资源点对应的资源需求量,确定排队点数量;

距离确定子单元,用于从所述物理位置中,按照所述排队点数量选取位于所述资源点的预设距离内的物理位置;

顺序确定子单元,用于为选取的所述物理位置设定相应顺序,得到排队点队列。

在其中一个实施例中,所述第一控制模块504,包括:

目标点避障单元,用于确定所述机器人所要到达的目标点,以及所述其他机器人所要到达的目标点;

路径规划单元,用于根据所述机器人所要到达的目标点和所述其他机器人所要到达的目标点进行路径规划,得到路径规划结果;

前行顺序确定单元,用于基于所述路径规划结果,确定所述机器人的前行顺序。

在其中一个实施例中,所述排序模块506,包括:

通信结果确定单元,用于在所述机器人的通信范围内与所述其他机器人进行通信,得到通信结果;

冲突避免确定单元,用于基于所述通信结果,确定所述机器人与所述其他机器人所要到达的位置是否冲突;所述所要到达的位置属于所述排队点队列中的排队点;

目标点确定单元,用于若不冲突,根据所要到达的位置确定所述机器人的目标点。

在其中一个实施例中,所述装置还包括如下模块:

候选点确定模块,用于判断所述机器人所要到达的位置与所述机器人占据的排队点之间是否存在预设候选点;所述预设候选点是所述机器人进位过程的候选排队点;

第一进位次数确定模块,用于存在预设候选点时,基于所述机器人所要到达的位置、所述预设候选点与所述机器人占据的排队点,确定所述机器人的进位次数及各次进位的目标点;

第二进位次数确定模块,用于不存在预设候选点时,基于所述机器人所要到达的位置与所述机器人占据的排队点,确定所述机器人的进位次数及各次进位的目标点。

在其中一个实施例中,所述排序模块506,包括:

第一排序单元,用于当所述机器人在所述排队点队列中,且所述机器人的通信范围覆盖所述排队点队列时,基于排队效率确定所述机器人的目标点;

第二排序单元,用于当所述机器人在所述排队点队列中,且所述机器人的通信范围无法覆盖所述排队点队列时,基于所述机器人占据排队点的相邻点,确定所述机器人的目标点。

在其中一个实施例中,所述装置还包括:

任务操作模块,用于当所述机器人到达所述资源点后,执行所述资源点对应的任务操作;

排队终止模块,用于在完成所述任务操作后,控制所述机器人远离所述资源点及所述排队点队列。

上述机器人的队列调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于机器人中的处理器中,也可以是以软件形式存储于机器人中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种机器人,其内部结构图可以如图6所示。该机器人包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该机器人的处理器用于提供计算和控制能力。该机器人的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该机器人的输入/输出接口用于处理器与外部设备之间交换信息。该机器人的通信接口用于与外部的机器人进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种机器人的队列调度方法。该机器人的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该机器人的输入装置可以是显示屏上覆盖的触摸层,也可以是机器人外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

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

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

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

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

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

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

技术分类

06120115687205