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

多机器人通信方法、多机器人系统及机器人

文献发布时间:2023-06-19 13:26:15


多机器人通信方法、多机器人系统及机器人

技术领域

本申请涉及机器人领域,可以实现一种多机器人通信方法、多机器人系统及机器人。

背景技术

随着机器人的发展,机器人执行任务的复杂性不断增加,单个机器人已经难以通过自身完成复杂且繁琐的任务,基于此,多机器人系统逐渐成为机器人发展的趋势之一。在多机器人系统中,多机器人通过信息的交流和处理进行多机器人之间的交互和协调,从而实现多机器人联合执行任务,即通信是了解其它机器人的状态、位置和环境等信息的基本条件,是各机器人之间进行交互、协调的基础,合理的通信方式可以在很大程度上提高多机器人的工作效率。

现有技术中,多机器人的通信方式可以为集中式结构。其中,集中式结构包括一个主控单元和多个从机器人,主控单元可以分别与多个从机器人进行通信,而多个从机器人之间无法直接通信。主控单元具有完全的控制权,可以分别获取并集中处理多个从机器人的信息,完成任务的动态分配和调度,实现多机器人联合执行任务。

但是,上述集中式结构中只有主控单元具有信息处理能力,同时处理大量信息,可能会出现宕机,致使多机器人之间通信瘫痪。

发明内容

本申请实施例提供了一种多机器人通信方法、多机器人系统及机器人,可以降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。所述技术方案如下:

第一方面,提供了一种多机器人通信方法,应用于多机器人系统,所述多机器人系统包括多个机器人和主控单元,所述多个机器人分别与所述主控单元连接,所述方法包括:

第一机器人若确定需要与第二机器人进行通信,则确定所述第一机器人的第一位置信息和通信范围,以及通过所述主控单元获取所述第二机器人的第二位置信息,所述第一机器人和所述第二机器人为所述多个机器人中的任意两个;

所述第一机器人若根据所述第一位置信息、所述第二位置信息以及所述第一机器人的通信范围,确定所述第二机器人不位于所述第一机器人的通信范围内,则从所述第一机器人和所述第二机器人之外的剩余机器人中确定至少一个中继机器人,根据所述第一机器人的标识、所述至少一个中继机器人的标识、以及所述第二机器人的标识,生成目标通信链路;

所述第一机器人若根据所述第一位置信息、所述第二位置信息以及所述第一机器人的通信范围,确定所述第二机器人位于所述第一机器人的通信范围内,则根据所述第一机器人的标识和所述第二机器人的标识,生成所述第一机器人与所述第二机器人之间的目标通信链路;

所述第一机器人根据所述目标通信链路,与所述第二机器人进行通信。

在一个实施例中,所述从所述第一机器人和所述第二机器人之外的剩余机器人中确定至少一个中继机器人,包括:

从位于所述第一机器人的通信范围内的机器人中选择一个机器人;

确定所述第二机器人是否位于选择的机器人的通信范围内;

若确定所述第二机器人不位于选择的机器人的通信范围内,则将选择的机器人作为目标机器人,从位于所述目标机器人的通信范围内的机器人中选择一个机器人,并返回确定所述第二机器人是否位于选择的机器人的通信范围内的步骤及后续步骤;

若确定所述第二机器人位于选择的机器人的通信范围内,则将已选择的所有机器人均确定为中继机器人,得到所述至少一个中继机器人。

在一个实施例中,所述从位于所述第一机器人的通信范围内的机器人中选择一个机器人,包括:

从位于所述第一机器人的通信范围内的机器人中,选择距离所述第二机器人最近的机器人。

在一个实施例中,所述从所述第一机器人和所述第二机器人之外的剩余机器人中确定至少一个中继机器人,包括:

通过所述主控单元从所述第一机器人和所述第二机器人之外的剩余机器人中选择一个机器人,将选择的机器人运动至所述第一机器人与所述第二机器人之间且位于所述第一机器人的通信范围内的位置;

确定所述第二机器人是否位于选择的机器人的通信范围内;

若确定所述第二机器人不位于选择的机器人的通信范围内,则通过所述主控单元从所述第一机器人、所述第二机器人以及已选择的机器人之外的机器人中继续选择一个机器人,控制选择的机器人运动至所述第一机器人与所述第二机器人之间且位于上次选择的机器人的通信范围内的位置,并返回确定所述第二机器人是否位于选择的机器人的通信范围内的步骤及后续步骤;

若确定所述第二机器人位于选择的机器人的通信范围内,则将已选择的所有机器人均确定为中继机器人,得到所述至少一个中继机器人。

在一个实施例中,所述通过所述主控单元从所述第一机器人和所述第二机器人之外的剩余机器人中选择一个机器人,将选择的机器人运动至所述第一机器人与所述第二机器人之间且位于所述第一机器人的通信范围内的位置,包括:

所述第一机器人向所述主控单元发送控制请求,所述控制请求携带所述第一机器人的第一位置信息和通信范围,以及所述第二机器人的标识;

所述主控单元接收所述控制请求,根据所述第二机器人的标识确定所述第二机器人的第二位置信息;

所述主控单元根据所述第一位置信息、所述第二位置信息以及所述第一机器人的通信范围,从所述第一机器人和所述第二机器人之外的剩余机器人中选择一个机器人,将选择的机器人运动至所述第一机器人与所述第二机器人之间且位于所述第一机器人的通信范围内的位置。

在一个实施例中,所述从所述第一机器人和所述第二机器人之外的剩余机器人中确定至少一个中继机器人,包括:

从位于所述第一机器人的通信范围内的机器人中选择一个机器人;

确定所述第二机器人是否位于选择的器人的通信范围内;

若确定所述第二机器人不位于选择的机器人的通信范围内,且已选择的机器人的数量小于预设数量,则将选择的机器人作为目标机器人,从位于所述目标机器人的通信范围内的机器人中选择一个机器人,并返回确定所述第二机器人是否位于选择的机器人的通信范围内的步骤及后续步骤;

若确定所述第二机器人不位于选择的机器人的通信范围内,且已选择的机器人的数量大于或等于预设数量,若已选择的机器人的数量大于或等于预设数量,则通过所述主控单元从所述第一机器人、所述第二机器人以及已选择的机器人之外的机器人中选择一个机器人,控制选择的机器人运动至所述第一机器人与所述第二机器人之间且位于上次选择的机器人的通信范围内的位置,并返回确定所述第二机器人是否位于选择的机器人的通信范围内的步骤及后续步骤;

若确定所述第二机器人位于选择的机器人的通信范围内,则将已选择的所有机器人均确定为中继机器人,得到所述至少一个中继机器人。

在一个实施例中,所述第一机器人根据所述目标通信链路,与所述第二机器人进行通信,包括:

所述第一机器人根据所述目标通信链路,确定所述第一机器人的下一个通信节点;

所述第一机器人向所述机器人的下一个通信节点发送传输数据包,所述传输数据包包括所述目标通信链路、发送标识、接收标识和主体数据,所述发送标识用于指示所述第一机器人,所述接收标识用于指示所述第二机器人,所述主体数据为所述第一机器人待发送给所述第二机器人的数据;

所述第一机器人通过发送的所述传输数据包,将所述主体数据发送给所述第二机器人。

在一个实施例中,所述第一机器人通过发送的所述传输数据包,将所述主体数据发送给所述第二机器人,包括:

对于所述目标通信链路中的第一通信节点,若所述第一通信节点为中继机器人,则所述中继机器人接收所述中继机器人的上一个通信节点发送的所述传输数据包,根据所述目标通信链路,确定所述中继机器人的下一个通信节点,将所述传输数据包发送给所述中继机器人节点的下一个通信节点,所述第一通信节点为所述目标通信链路中除所述第一机器人之外的通信节点;

若所述第一通信节点为所述第二机器人,则所述第二机器人接收所述第二机器人的上一个通信节点发送的所述传输数据包,对所述主体数据进行响应。

在一个实施例中,所述通过所述主控单元获取所述第二机器人的第二位置信息,包括:

所述第一机器人向所述主控单元发送位置信息获取请求,所述位置信息获取请求携带所述第二机器人的标识;

所述主控单元接收所述位置信息获取请求,根据所述第二机器人的标识,从存储的所述多个机器人的位置信息中获取所述第二机器人的第二位置信息,将所述第二位置信息发送给所述第一机器人;

所述第一机器人接收所述第二位置信息。

在一个实施例中,所述根据所述第二机器人的标识,从存储的所述多个机器人的位置信息中获取所述第二机器人的第二位置信息之前,还包括:

第三机器人确定自身的位置信息,将确定的位置信息发送给主控单元,所述第三机器人为所述多个机器人中的任一个;

所述主控单元接收所述第三机器人发送的位置信息,将接收的位置信息与所述第三机器人的标识对应存储。

第二方面,提供了一种多机器人系统,所述多机器人系统包括多个机器人和主控单元,所述多个机器人分别与所述主控单元连接;

第一机器人,用于若确定需要与第二机器人进行通信,则确定所述第一机器人的第一位置信息和通信范围,以及向所述主控单元发送位置信息获取请求,所述位置信息获取请求携带所述第二机器人的标识;

所述主控单元,用于接收所述位置信息获取请求,根据所述第二机器人的标识,从存储的所述多个机器人的位置信息中获取所述第二机器人的第二位置信息,将所述第二位置信息发送给所述第一机器人;

所述第一机器人,用于接收所述主控单元发送的所述第二位置信息;

所述第一机器人若根据所述第一位置信息、所述第二位置信息以及所述第一机器人的通信范围,确定所述第二机器人不位于所述第一机器人的通信范围内,则从所述第一机器人和所述第二机器人之外的剩余机器人中确定至少一个中继机器人,根据所述第一机器人的标识、所述至少一个中继机器人的标识、以及所述第二机器人的标识,生成目标通信链路;

所述第一机器人,用于若根据所述第一位置信息、所述第二位置信息以及所述第一机器人的通信范围,确定所述第二机器人位于所述第一机器人的通信范围内,则根据所述第一机器人的标识和所述第二机器人的标识,生成所述第一机器人与所述第二机器人之间的目标通信链路;

所述第一机器人,用于根据所述目标通信链路,与所述第二机器人进行通信。

第三方面,提供了一种机器人,包括通信接口、存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述通信接口用于与其它个体进行通信,所述处理器执行所述计算机程序时,以实现上述多机器人通信方法的步骤。

本申请实施例提供的技术方案带来的有益效果是:

本申请实施例中的多机器人系统包括主控单元和多个机器人,对于多个机器人中的任一机器人即第一机器人,若其需要与另一机器人即第二机器人进行通信,可以先从主控单元获取第二机器人的位置信息,根据第二机器人的位置信息确定第二机器人是否位于第一机器人的通信范围内。若位于第一机器人的通信范围内,则生成包括第一机器人和第二机器人的标识的目标通信链路。若不位于第一机器人的通信范围内,则从第一机器人和第二机器人之外的剩余机器人中确定至少一个中继机器人,生成包括第一机器人、至少一个中继机器人和第二机器人的标识的目标通信链路。之后,第一机器人根据目标通信链路与第二机器人进行通信。如此,可以根据两个机器人的位置灵活确定这两个机器人之间的通信链路,且确定的通信链路仅包括机器人节点,因此在这两个机器人根据确定的通信链路进行通信的过程中,也就不需要经过主控单元的传输和处理,可降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。另外,由于可以根据机器人的位置,以及结合从机器人之间选择中继机器人的方式灵活确定任意两个机器人之间的通信链路,因此多机器人通信的灵活性也较高。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种多机器人系统的结构框图;

图2是本申请实施例提供的另一种多机器人系统的结构框图;

图3是本申请实施例提供的一种多机器人通信方法的流程图;

图4是本申请实施例提供的一种确定至少一个中继机器人的方法的流程图;

图5是本申请实施例提供的另一种确定至少一个中继机器人的方法的流程图;

图6是本申请实施例提供的再一种确定至少一个中继机器人的方法的流程图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。

本申请提供的多机器人通信方法可以应用于工业领域、军事领域和航天领域等的多机器人系统中,本申请实施例对该多机器人通信方法的应用场景不做限定。

例如,在工业领域,多机器人系统可以在组织物料运输、成产加工等场景中代替人类自主完成繁琐复杂的作业。在军事领域,多机器人系统可以在侦察、巡逻和排雷等场景中代替人类完成危险性较高的工作。在航天领域,多机器人系统可以在卫星和空间站等场景中代替人类完成建设、维护等工作。

请参考图1-图2,图1是本申请实施例提供的一种多机器人系统的结构框图,图2是本申请实施例提供的另一种多机器人系统的结构框图。本申请提供的多机器人通信方法可以应用于图1-图2所示的多机器人系统中。

如图1-图2所示,多机器人系统包括主控单元101和多个机器人。

其中,主控单元101分别与多个机器人进行连接,用于分别与多个机器人进行通信。

作为一个示例,主控单元101通过无线通信网络分别与多个机器人连接,通过无线方式分别与多个机器人通信。例如,如图1所示,多机器人系统还包括无线接入点105。多个机器人中的每个机器人包括无线网卡,多个机器人中的每个机器人可以通过无线网卡,结合无线接入点105与主控单元101进行通信。其中,无线接入点105可以包括一个或多个,本申请实施例对此不做限定。

另外,主控单元101可以获取、存储或转发机器人的位置信息。此外,主控单元101也可以对机器人进行控制,比如控制机器人运动至特定位置。

作为一个示例,主控单元101可以为云服务器或机器人等,本申请实施例对此不做限定。图1-图2仅是以主控单元101为云服务器为例进行说明。

其中,多机器人中的任一机器人可以与主控单元101进行通信,也可以与位于其通信范围内的其他机器人进行通信。

例如,如图1所示,多机器人系统包括无线接入点105,机器人102包括有无线网卡,机器人102通过无线网卡,结合无线接入点105与主控单元101进行通信。另外,多机器人中的任一机器人可以通过其它方式与主控单元101进行通信,本申请实施例对此不做限定。

例如,如图1所示,机器人102包括具有通信能力的硬件设备,机器人102的通信范围由该具有通信能力的硬件设备决定,也受周围干扰源影响,机器人102可以与处于其通信范围内的机器人103进行通信。比如,该具有通信能力的硬件设备可以为无线路由器,无线路由器覆盖的范围即为机器人的通信范围。另外,无线路由器的覆盖范围受周围干扰源的影响,比如受微波炉产生的无线信号的影响。

另外,多机器人中的任一机器人可以通过主控单元101获取另一个机器人的位置信息,再结合自身的位置和通信范围,以及另一个机器人的位置,确定这两个机器人之间的通信链路。例如,可以从这两个机器人之外的剩余机器人中选择至少一个中继机器人,根据这两个机器人以及至少一个中继机器人确定通信链路。

作为一个示例,多个机器人中的任一机器人包括位置确定单元,可以通过位置确定单元确定自身的位置信息。其中,位置确定单元为具有定位能力的模块,比如位置确定单元可以通过北斗导航系统或全球定位系统(Global Positioning System,GPS)等进行定位,来获取自身的位置信息。当然,多机器人中的任一机器人也可以通过其他方式获取自身的位置信息,本申请实施例对此不做限定。

其中,通信范围用于指示多机器人中的任一机器人的通信能力能够覆盖的范围,任一机器人能够与位于其通信范围内的机器人进行通信。

作为一个示例,多个机器人中的任一机器人包括具有通信能力的硬件设备,多个机器人中的任一机器人的通信范围由该具有通信能力的硬件设备决定,也受周围干扰源影响。

此外,多机器人中的任一机器人还可以根据确定的通信链路,与另一个机器人进行通信。比如,可以通过沿着通信链路的各个节点发送传输数据包的方式,来与另一个机器人进行通信。其中,传输数据包可以包括发送机器人的标识、通信链路、接收机器人的标识和主体数据。

作为一个示例,如图1所示,多机器人系统包括主控单元101、机器人102、机器人103和其它机器人,可以根据机器人102和机器人103确定目标通信链路。另外,将机器人102称为第一机器人102,机器人103称为第二机器人103。

作为另一个示例,如图2所示,多机器人系统包括主控单元101、机器人102、机器人103、中继机器人104和其它机器人,可以根据机器人102、机器人103和中继机器人104确定目标通信链路。另外,将机器人102称为第一机器人102,机器人103称为第二机器人103。

其中,第一机器人102,用于若确定需要与第二机器人103进行通信,则确定第一机器人102的第一位置信息和通信范围,以及向主控单元101发送位置信息获取请求,位置信息获取请求包括第二机器人103的标识。

主控单元101,用于接收位置信息获取请求,根据第二机器人103的标识,从存储的多个机器人的位置信息中获取第二机器人103的第二位置信息,将第二位置信息发送给第一机器人102。

第一机器人102,用于接收主控单元101发送的第二位置信息。

第一机器人102,用于若根据第一位置信息、第二位置信息以及第一机器人102的通信范围,确定第二机器人103不位于第一机器人102的通信范围内,如图2所示,则从第一机器人102和第二机器人103之外的剩余机器人中确定至少一个中继机器人104,根据第一机器人102的标识、至少一个中继机器人104的标识、以及第二机器人103的标识,生成目标通信链路106。

第一机器人102,用于若根据第一位置信息、第二位置信息以及第一机器人102的通信范围,确定第二机器人103位于第一机器人102的通信范围内,如图1所示,则根据第一机器人102的标识和第二机器人103的标识,生成第一机器人102与第二机器人103之间的目标通信链路106。

第一机器人102,用于根据目标通信链路106,与第二机器人103进行通信。

接下来,对本申请实施例提供的多机器人通信方法予以说明。

请参考图3,图3是本申请实施例提供一种多机器人通信方法的流程图,该方法可以应用于上述图1-图2所示的多机器人系统中,多机器人系统包括主控单元和多个机器人,主控单元分别与多个机器人连接。该方法包括如下步骤:

步骤301,第一机器人若确定需要与第二机器人进行通信,则确定第一机器人的第一位置信息和通信范围,以及通过主控单元获取第二机器人的第二位置信息。

其中,第一机器人和第二机器人为多个机器人中的任意两个。

比如,第一机器人可以在接收到与第二机器人进行通信的通信指令时,确定需要与第二机器人进行通信。该通信指令可以由第一机器人自动触发,可以由用户触发,也可以由其他设备通过向第一机器人发送命令的方式触发,本申请实施例对此不做限定。

其中,多个机器人中的每个机器人具有标识,标识用于唯一标识对应机器人,标识可以为机器人的名称、ID(Identity document)或物理地址等。另外,每个机器人的标识可以存储于对应机器人中。

其中,第一机器人可以确定自身的位置信息即第一位置信息,以及确定自身的通信范围。

作为一个示例,第一机器人可以通过位置确定单元确定第一机器人的第一位置信息,也可以通过其它方式确定第一机器人的第一位置信息,本申请实施例对此不做限定。

另外,主控单元可以预先存储多个机器人的位置信息,多个机器人的位置信息和多个机器人的标识一一对应。例如,多个机器人中的第三机器人可以确定自身的位置信息,将确定的位置信息发送给主控单元。主控单元接收到第三机器人发送的位置信息后,将接收的位置信息与第三机器人的标识对应存储,其中,第三机器人为多个机器人中的任一个。

作为一个示例,第一机器人可以向主控单元发送包括第二机器人的标识的位置信息获取请求,通过该位置信息获取请求获取第二机器人的第二位置信息。

其中,主控单元接收到该位置信息获取请求后,可以根据第二机器人的标识,从存储的多个机器人的位置信息中获取第二机器人的第二位置信息,然后将第二位置信息发送给第一机器人。

此外,在主控单元接收到位置信息获取请求后,若主控单元未存储第二机器人的第二位置信息,还可以通过第二机器人获取第二位置信息。例如,主控单元根据第二机器人的标识,向第二机器人发送位置请求。第二机器人接收该请求,确定自身的位置信息即第二位置信息,将第二位置信息发送给主控单元。主控单元接收第二机器人发送的第二位置信息,将第二位置信息发送给第一机器人。

需要说明的是,在上述示例中,主控单元用于获取、存储或转发机器人的位置信息,但不对位置信息进行处理,如此,可以降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。

其中,通信范围用于指示机器人的通信能力能够覆盖的范围,例如,机器人能够与其他机器人稳定通信的覆盖范围。

作为一个示例,第一机器人可以基于具有通信能力的硬件设备和周围干扰源确定第一机器人的通信范围。其中,通信范围是第一机器人的通信能力能够覆盖的范围,该范围对应的区域可以是圆形区域或其它形状的区域,本申请实施例对此不做限定。另外,该区域内的位置均是机器人能够通信的位置。

作为一个示例,第一机器人的通信范围可以为固定范围,也可以是可变化范围。例如,通信范围作为固定范围存储在机器人中,或者根据具有通信能力的硬件设备和周围干扰源的情况,实时确定机器人的通信范围。

另外,主控单元也可以预先存储多个机器人的通信范围,多个机器人的通信范围和多个机器人的标识一一对应。比如,多个机器人中的第三机器人可以确定自身的通信范围,将确定的通信范围发送给主控单元。主控单元接收到第三机器人发送的通信范围后,将接收的通信范围与第三机器人的标识对应存储,其中,第三机器人为多个机器人中的任一个。

作为一个示例,第一机器人可以向主控单元发送包括第二机器人的标识的通信范围获取请求,通过该通信范围获取请求获取第二机器人的通信范围。

其中,主控单元接收到该通信范围获取请求后,可以根据第二机器人的标识,从存储的多个机器人的通信范围中获取第二机器人的通信范围,然后将第二机器人的通信范围发送给第一机器人。

另外,在主控单元接收到通信范围获取请求后,若主控单元未存储第二机器人的通信范围,还可以通过第二机器人获取通信范围。例如,主控单元根据第二机器人的标识,向第二机器人发送请求。第二机器人接收该请求,确定自身的通信范围,将自身的通信范围发送给主控单元。主控单元接收第二机器人发送的第二机器人的通信范围,将第二机器人的通信范围发送给第一机器人。

需要说明的是,在上述示例中,主控单元用于获取、存储或转发机器人的通信范围,如此,可以降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。

步骤302,第一机器人根据第一位置信息、第二位置信息以及第一机器人的通信范围,确定第二机器人是否位于第一机器人的通信范围内。

作为一个示例,第一机器人可以根据第二位置信息,确定第二机器人的位置是否落入第一机器人的通信范围对应的区域内。

若第二机器人的位置落入第一机器人的通信范围对应的区域内,则确定第二机器人位于第一机器人的通信范围内。例如,如图1所示,第二机器人(机器人103)位于第一机器人(机器人102)的通信范围内。

若第二机器人的位置没有落入第一机器人的通信范围对应的区域内,则确定为第二机器人不位于第一机器人的通信范围内。例如,如图2所示,第二机器人(机器人103)不位于第一机器人(机器人102)的通信范围内。

步骤303,第一机器人若确定第二机器人不位于第一机器人的通信范围内,则从第一机器人和第二机器人之外的剩余机器人中确定至少一个中继机器人,根据第一机器人的标识、至少一个中继机器人的标识、以及第二机器人的标识,生成目标通信链路。

其中,中继机器人用于扩大第一机器人的通信范围,使得第一机器人能够与第二机器人进行通信。中继机器人是指第一机器人和第二机器人之间的中间通信节点,用于对第一机器人与第二机器人之间的传输数据进行转发。

其中,目标通信链路为第一机器人与第二机器人进行通信时通信信息的传输路径。其中,目标通信链路由第一机器人的标识、至少一个中继机器人的标识、第二机器人的标识组成,也即是,第一机器人、至少一个中继机器人和第二机器人为目标通信链路中的通信节点,通信节点为通信信息的发送、转发或响应的节点。

另外,组成目标通信链路的通信节点的标识是有先后顺序的,比如,第一机器人的标识一定位于组成目标通信链路的通信节点的标识的第一位,第二机器人的标识一定位于组成目标通信链路的通信节点的标识的最后一位。

作为一个示例,从第一机器人和第二机器人之外的剩余机器人中确定至少一个中继机器人的方法可以包括三种实现方式,具体实现方式将在下述图4-图6实施例中进行详细说明,这里先不做赘述。

其中,至少一个中继机器人中的一个中继机器人位于第一机器人的通信范围内,且第二机器人位于至少一个中继机器人中的一个中继机器人的通信范围内,如此,当第二机器人不处于第一机器人的通信范围内时,可以通过至少一个中继机器人实现第一机器人和第二机器人的通信。

需要说明的是,由于可以根据第一位置信息、第二位置信息和第一机器人的通信范围,灵活地确定第一机器人和第二机器人之间的目标通信链路,且确定的目标通信链路是仅包括第一机器人、至少一个中继机器人和第二机器人的通信节点,因此在第一机器人和第二机器人根据确定的目标通信链路进行通信的过程中,也就不需要经过主控单元的传输和处理,如此,可降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。

另外,由于第一机器人和第二机器人根据确定的目标通信链路进行通信,不需要经过主控单元的传输和处理,也即是,第一机器人和第二机器人之间的传输数据包只经过目标通信链路中的通信节点,而不经过主控单元,因此可以加强传输数据包的安全性。

步骤304,第一机器人若确定第二机器人位于第一机器人的通信范围内,则根据第一机器人的标识和第二机器人的标识,生成第一机器人与第二机器人之间的目标通信链路。

其中,目标通信链路由第一机器人的标识和第二机器人的标识组成,即第一机器人和第二机器人为目标通信链路的通信节点。

需要说明的是,由于确定的目标通信链路是仅包括第一机器人和第二机器人的通信节点,因此在第一机器人和第二机器人根据确定的目标通信链路进行通信的过程中,也就不需要经过主控单元的传输和处理,如此,可降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。

步骤305,第一机器人根据目标通信链路,与第二机器人进行通信。

其中,多个机器人中任意两个机器人进行通信时,都执行上述步骤301-步骤304,确定两个机器人之间的目标通信链路,之后这两个机器人基于目标通信链路进行通信。

作为一个示例,第一机器人根据目标通信链路,与第二机器人进行通信,可以包括如下步骤:

1)第一机器人根据目标通信链路,确定第一机器人的下一个通信节点。

其中,当第二机器人位于第一机器人的通信范围内时,第一机器人的下一个通信节点为第二机器人。另外,当第二机器人不位于第一机器人的通信范围内时,第一机器人的下一个通信节点为至少一个中继机器人中的处于第一机器人的通信范围内的机器人。

其中,目标通信链路由通信节点的标识组成,通信节点可以为第一机器人、第二机器人或中继机器人。

作为一个示例,第一机器人可以将目标通信链路中的通信节点的标识与第一机器人的标识进行比对,查找到与第一机器人的标识匹配的通信节点的标识,再确定在目标通信链路中该通信节点的下一通信节点。

2)第一机器人向机器人的下一个通信节点发送传输数据包。

其中,第一机器人先构建传输数据包,传输数据包是第一机器人与第二机器人进行通信的通信信息。

其中,传输数据包可以包括目标通信链路、发送标识、接收标识和主体数据。发送标识用于指示发送机器人,发送标识可以为发送机器人的标识。接收标识用于指示接收机器人,接收标识可以为接收机器人的标识。主体数据为两个机器人之间的通信数据。比如,发送标识为第一机器人的标识,接收标识为第二机器人的标识。

另外,传输数据还可以包括检测位和传输方向。

其中,检测位用于指示接收传输数据包的通信节点,可以为通信节点的标识。比如,检测位可以为目标通信链路中通信节点为第一机器人的下一通信节点的标识,检测位可以为中继机器人的标识或第二机器人的标识。

其中,传输方向用于指示传输数据包在目标通信链路中的传输方向,传输方向可以表示第一机器人向第二机器人传输数据包,或者第二机器人向第一机器人传输数据包。传输方向可以用数字表示,也可以使用其它方式表示,本申请实施例对比不做限定。比如,传输方向为0表示第一机器人向第二机器人传输数据包,传输方向为1表示第二机器人向第一机器人传输数据包。

3)对于目标通信链路中的第一通信节点,若第一通信节点为中继机器人,则中继机器人接收中继机器人的上一个通信节点发送的传输数据包,根据目标通信链路,确定中继机器人的下一个通信节点,将传输数据包发送给中继机器人的下一个通信节点。

其中,第一通信节点为目标通信链路中除第一机器人之外的通信节点,比如,第一通信节点可以中继机器人或第二机器人。

作为一个示例,可以根据传输数据包中的目标通信链路的接收标识判断第一通信节点是否为中继机器人。若接收标识与第一通信节点的标识不匹配,则确认第一通信节点为中继机器人。若接收标识与第一通信节点的标识匹配,则确认第一通信节点为第二机器人。

其中,若第一通信节点为中继机器人,则中继机器人接收中继机器人的上一个通信节点发送的传输数据包,其中,中继机器人的上一个通信节点可以为第一机器人或另一中继机器人。中继机器人根据目标通信链路,确定中继机器人的下一个通信节点,之后继续将传输数据包发送给中继机器人的下一个通信节点。

比如,中继机器人可以将传输数据包中的目标通信链路的通信节点的标识与中继机器人的标识进行比对,查找到与中继机器人的标识匹配的通信节点的标识,确定在目标通信链路中查找到的通信节点的下一通信节点,将查找到的通信节点的下一通信节点作为中继机器人的下一个通信节点。

作为一个示例,若传输数据包还包括检测位和传输方向,则中继机器人在确定下一通信节点之后,还包括对传输数据包的更新,然后将更新后的传输数据包发送给下一通信节点。

比如,中继机器人先根据传输数据包中的目标通信链路和传输方向,以及中继机器人的标识,确定中继机器人的下一通信节点,再将中继机器人的下一通信节点的标识写入传输数据包的检测位,更新传输数据包。

需要说明的是,在第一通信节点为中继机器人时,中继机器人只接收传输数据包,确定中继机器人的下一个通信节点,将传输数据包发送给中继机器人的下一个通信节点。也即是,中继机器人用于对第一机器人与第二机器人之间的传输数据进行转发。

4)若第一通信节点为第二机器人,则第二机器人接收第二机器人的上一个通信节点发送的传输数据包,对主体数据进行响应。

其中,第二机器人是上一个通信节点可以为第一机器人或中继机器人。

其中,第二机器人接收到传输数据包后,可以根据主体数据进行响应。例如,主体数据指示第二机器人完成监控环境功能,则第二机器人根据主体数据,对周围环境进行监控。

作为一个示例,第二机器人对主体数据进行响应之后,还包括根据目标通信链路向第一机器人发送确认响应。第一机器人接收到该确认响应后,确定第二机器人已接收到传输数据包。

需要说明的是,在本申请实施例中,第一机器人或中继机器人可以定向地向下一通信节点发送传输数据包,也可以非定向地发送传输数据包,比如采用广播的传输数据包的方式向第一通信节点发送传输数据包。

作为一个示例,第一机器人根据目标通信链路,与第二机器人进行通信可以包括如下步骤:

1)第一机器人广播传输数据包。

其中,广播传输数据包指通过非定向的方式发送传输数据包。

第一机器人先构建传输数据包,将传输数据包通过广播的方式发送。

其中,传输数据包可以包括目标通信链路、发送标识、接收标识和主体数据。发送标识为第一机器人的标识,接收标识为第二机器人的标识,主体数据为第一机器人和第二机器人的通信数据。

另外,传输数据还可以包括检测位和传输方向。检测位可以为目标通信链路中通信节点为第一机器人的下一通信节点的标识,检测位可以为中继机器人标识或第二机器人标识。传输方向用于指示传输数据包在目标通信链路中的传输方向,比如,传输方向可以为0,表示第一机器人向第二机器人传输数据包。

2)第四机器人根据传输数据包确定是否接收传输数据包。

其中,第四机器人为除第一机器人之外的多个机器人中的任一个机器人。

作为一个示例,第四机器人可以根据发送该传输数据包的通信节点和传输数据包中的目标通信链路,确定是否接收该传输数据包。

比如,第四机器人先根据发送该传输数据包的通信节点和传输数据包中的目标通信链路,确定发送该传输数据包的通信节点的下一通信节点,若发送该传输数据包的通信节点的下一通信节点所对应的标识与第四机器人的标识匹配,则确定接收传输数据包。若发送该传输数据包的通信节点的下一通信节点所对应的标识与第四机器人的标识不匹配,则不接收传输数据包。

作为一个示例,第一机器人发送传输数据包。第四机器人先确定目标通信链路中通信节点为第一机器人的下一通信节点,确定第一机器人的下一通信节点的标识与第四机器人的标识是否匹配。若第一机器人的下一通信节点的标识与第四机器人匹配,则第四机器人接收传输数据包。若第一机器人的下一通信节点的标识与第四机器人不匹配,则第四机器人不接收传输数据包。

作为另一个示例,第四机器人若确定传输数据包中的检测位中的标识与第四机器人的标识匹配,则确定接收传输数据包。若传输数据包中的检测位的标识与第四机器人的标识不匹配,则不接收传输数据包。

3)第四机器人若确定接收传输数据包,则确定是否对主体数据进行响应。

其中,这种情况下,第四机器人为中继机器人或第二机器人。

作为一个示例,第四机器人根据传输数据包中的接收标识,确定是否对主体数据进行响应。比如,若确定接收标识与第四机器人的标识不匹配,则确定不对主体数据进行响应,这种情况下,第四机器人为中继机器人,中继机器人广播传输数据包,中继机器人不响应传输数据包。若确定接收标识与第四机器人的标识匹配,则第四机器人为第二机器人,则第二机器人响应传输数据包。

4)第四机器人若确定接收传输数据包,且确定不对主体数据进行响应,则广播传输数据包,跳转步骤2)。

其中,这种情况下,第四机器人为中继机器人,中继机器人用于转发通过广播的方式转发传输数据包。

作为一个示例,若传输数据包还包括检测位和传输方向,则第四机器人在广播传输数据之前,还更新传输数据包,之后广播更新后的传输数据包。

比如,第四机器人根据传输数据包中的目标通信链路和传输方向,以及第四机器人的标识,确定第四机器人的下一通信节点,将第四机器人的下一通信节点的标识写入传输数据包的检测位,更新传输数据包。

作为一个示例,在广播传输数据包之后,多机器人中的任一机器人继续根据传输数据包确定是否接收传输数据包。若确定接收传输数据包,则再次确定是否对主体数据进行响应。若不对主体数据进行响应,则继续广播传输数据包,如此循环往复,直至多机器人中的第二机器人确定接收传输数据包,且对主体数据进行响应为止。

5)第四机器人若确定接收传输数据包,且确定对主体数据进行响应,则进行响应。

其中,这种情况下,第四机器人为第二机器人,第二机器人根据主体数据进行响应。

例如,主体数据指示第二机器人完成监控环境功能,则第二机器人根据主体数据,对周围环境进行监控。

作为一个示例,第一机器人、至少一个中继机器人和第二机器人中均存储有目标通信链路。如此,多个机器人中的任意两个机器人若需要进行通信时,先确定该两个机器人之间是否存在目标通信链路。若确定该两个机器人之间已经存在目标通信链路,则直接根据目标通信链路进行通信。若确定该两个机器人之间不存在目标通信链路,则执行上述步骤301-步骤305,根据目标通信链路进行通信。

例如,至少一个中继机器人的一个中继机器人需要与第二机器人进行通信。该中继机器人确定其与第二机器人之间存在目标通信链路,则该中继机器人直接基于目标通信链路与第二机器人进行通信。

需要说明的是,本申请实施例中的多机器人系统包括主控单元和多个机器人,对于多个机器人中的任一机器人即第一机器人,若其需要与另一机器人即第二机器人进行通信,可以先从主控单元获取第二机器人的位置信息,根据第二机器人的位置信息确定第二机器人是否位于第一机器人的通信范围内。若位于第一机器人的通信范围内,则生成包括第一机器人和第二机器人的标识的目标通信链路。若不位于第一机器人的通信范围内,则从第一机器人和第二机器人之外的剩余机器人中确定至少一个中继机器人,生成包括第一机器人、至少一个中继机器人和第二机器人的标识的目标通信链路。之后,第一机器人根据目标通信链路与第二机器人进行通信。如此,可以根据两个机器人的位置灵活确定这两个机器人之间的通信链路,且确定的通信链路仅包括机器人节点,因此在这两个机器人根据确定的通信链路进行通信的过程中,也就不需要经过主控单元的传输和处理,可降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。另外,由于可以根据机器人的位置,以及结合从机器人之间选择中继机器人的方式灵活确定任意两个机器人之间的通信链路,因此多机器人通信的灵活性也较高。

另外,由于第一机器人和第二机器人根据确定的目标通信链路进行通信,不需要经过主控单元的传输和处理,也即是,第一机器人和第二机器人之间的传输数据包只经过目标通信链路中的通信节点,而不经过主控单元,因此可以加强传输数据包的安全性。

在上述图3实施例的步骤303中,当第二机器人不位于第一机器人的通信范围内,则需要从第一机器人和第二机器人之外的剩余机器人中确定至少一个中继机器人。接下来,对从第一机器人和第二机器人之外的剩余机器人中确定至少一个中继机器人的实现方式进行详细说明。

请参考图4,图4是本申请实施例提供的一种确定至少一个中继机器人的方法的流程图,该方法包括如下步骤:

步骤401,从位于第一机器人的通信范围内的机器人中选择一个机器人。

作为一个示例,第一机器人可以通过主控单元获取位于第一机器人的通信范围内的机器人,然后从位于第一机器人的通信范围内的机器人中选择一个机器人。

其中,第一机器人的通信范围内的机器人可以为一个或多个。

比如,第一机器人向主控单元发送获取机器人请求,获取机器人请求携带第一机器人的通信范围和第一机器人的标识,获取机器人请求用于指示获取第一机器人通信范围内的机器人。

主控单元接收获取机器人请求,根据第一机器人的标识,从存储的多个机器人的位置信息中获取第一机器人的第一位置信息。主控单元根据第一位置信息和第一机器人通信范围,从存储的多个机器人的位置信息中选择落入通信范围对应区域的至少一个机器人,至少一个机器人为除第一机器人和第二机器人之外的多个机器人中的至少一个,且至少一个机器人位于第一机器人的通信范围内。主控单元将选择的至少一个机器人的标识、至少一个机器人的位置信息和至少一个机器人的通信范围发送给第一机器人。

第一机器人接收主控单元发送的至少一个机器人的标识、至少一个机器人的位置信息和至少一个机器人的通信范围。

需要说明的是,在本申请实施例中,主控单元只用于获取、存储或转发机器人位置信息,但不对机器人的位置信息进行处理,从而可以降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。

作为一个示例,可以从位于第一机器人的通信范围内的机器人中,选择与第二机器人距离最近的机器人。比如,第一机器人的通信范围内包括至少一个机器人,可以根据至少一个机器人的位置信息和第二位置信息,计算至少一个机器人和第二机器人之间的至少一个长度,选择至少一个长度中最短的长度所对应的机器人。

当然,也可以采用其它方式从位于第一机器人的通信范围内的机器人中选择一个机器人,本申请实施例对此不做限定。

步骤402,确定第二机器人是否位于选择的机器人的通信范围内。

其中,第一机器人可以根据选择的机器人的通信范围和第二位置信息,确定第二机器人是否处于选择的机器人的通信范围内。

比如,第一机器人根据第二位置信息,确定第二机器人的位置是否落入选择的机器人的通信范围对应的区域内。若第二机器人的位置没有落入选择的机器人的通信范围对应的区域内,则确定为第二机器人不位于选择的机器人的通信范围内。若第二机器人的位置落入选择的机器人的通信范围对应的区域内,则确定为第二机器人位于选择的机器人的通信范围内。

作为一个示例,步骤402也可以由选择的机器人执行,如选择的机器人根据其通信范围和第二位置信息,确定第二机器人是否处于其通信范围内。

步骤403,若确定第二机器人不位于选择的机器人的通信范围内,则将选择的机器人作为目标机器人,从位于目标机器人的通信范围内的机器人中选择一个机器人,并返回步骤402及后续步骤。

比如,可以将第一次选择的机器人作为第一中继机器人,第一机器人若确定第二机器人不位于第一中继机器人的通信范围内,则继续从第一中继机器人的通信范围内继续选择一个机器人作为第二中继机器人,并确定第二机器人是否位于第二中继机器人的通信范围内。

若第二机器人位于第二中继机器人的通信范围内,则将第一中继机器人和第二中继机器人确定为最终选择的至少一个中继机器人,这里对这种情况先不做赘述,具体参见下述步骤404。

若第二机器人不位于第二中继机器人的通信范围内,则继续从第二中继机器人的通信范围内选择一个机器人作为第三中继机器人,并确定第二机器人是否位于第三中继机器人的通信范围内,如此循环往复,直至选择出通信范围包括第二机器人的中继机器人为止,即直至第二机器人位于选择的机器人的通信范围内为止。

作为一个示例,步骤403也可以由选择的机器人执行。比如,将第一次选择的机器人作为第一中继机器人,第一中继机器人若确定第二机器人不位于其通信范围内,则通过主控单元继续从其通信范围内继续选择一个机器人作为第二中继机器人。第二中继机器人确定第二机器人是否位于其通信范围内。

第二中继机器人若确定第二机器人位于其通信范围内,则向第一中继机器人发送反馈信息,反馈信息携带第二中继机器人的标识。第一中继机器人接收反馈信息,将反馈信息更新为携带第二中继机器人的标识和第一中继机器人的标识,将更新后的反馈信息发送给第一机器人。第一机器人接收反馈信息,根据第二中继机器人的标识和第一中继机器人的标识,将第一中继机器人和第二中继机器人确定为最终选择的至少一个中继机器人。

第二中继机器人若确定第二机器人不位于其通信范围内,则继续从其通信范围内选择一个机器人作为第三中继机器人,如此循环往复,直至选择出通信范围包括第二机器人的中继机器人为止。

步骤404,若确定第二机器人位于选择的机器人的通信范围内,则将已选择的所有机器人均确定为中继机器人,得到至少一个中继机器人。

比如,可以将第一次选择的机器人作为第一中继机器人,第一机器人若确定第二机器人位于第一中继机器人的通信范围内,则将第一中继机器人确定为最终选择的至少一个中继机器人。

作为一个示例,步骤404也可以由选择的机器人执行。比如,将第一次选择的机器人作为第一中继机器人,当第一中继机器人确定第二机器人的位置落入其通信范围的区域内,则第一中继机器人向第一机器人发送反馈信息,反馈信息携带第一中继机器人的标识,反馈信息用于指示第一机器人确定中继机器人。之后第一机器人接收反馈信息,根据第一中继机器人的标识,确定第一中继机器人为最终选择的至少一个中继机器人。

需要说明的是,在本申请实施例中,主控单元只用于获取、存储和转发机器人的位置信息,但不对位置信息进行处理,从而可以降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率。

另外,本申请实施例可以根据机器人的位置信息和通信范围,在从第一机器人和第二机器人之外的剩余机器人中灵活地确定至少一个中继机器人,至少一个中继机器人中一个中继机器人位于第一机器人的通信范围内,且第二机器人位于至少一个中继机器人中的一个中继机器人的通信范围内,如此,当第二机器人不处于第一机器人的通信范围内时,可以通过至少一个中继机器人实现第一机器人和第二机器人的通信。

请参考图5,图5是本申请实施例提供的另一种确定至少一个中继机器人的方法的流程图,该方法包括如下步骤:

步骤501,通过主控单元从第一机器人和第二机器人之外的剩余机器人中选择一个机器人,将选择的机器人运动至第一机器人与第二机器人之间且位于第一机器人的通信范围内的位置。

当第一机器人的通信范围内无可进行选择的机器人时,可以采用本申请实施例提供的实现方法确定至少一个中继机器人。

例如,第一机器人的通信范围无其它机器人存在,或者第一机器人的通信范围内存在的至少一个机器人业务繁忙,无法作为中继机器人即通信节点进行信息的转发。

其中,第一机器人可以根据第一位置信息、第二位置信息和第一机器人的通信范围,确定选择的机器人运动至特定的位置。

例如,第一机器人可以先确定第一位置信息和第二位置信息的直线距离,再确定直线距离与第一机器人的通信范围对应的区域的边界处的相交位置,之后将选择的机器人运动至该相交位置。

作为一个示例,第一机器人可以向主控单元发送控制请求,控制请求携带第一机器人的第一位置信息、第一机器人的通信范围以及第二机器人的标识。主控单元接收控制请求,根据第二机器人的标识确定第二位置信息。主控单元根据第一位置信息、第二位置信息以及第一机器人的通信范围,从第一机器人和第二机器人之外的剩余机器人中选择一个机器人,将选择的机器人运动至第一机器人与第二机器人之间且位于第一机器人的通信范围内的位置。

另外,主控单元可以从第一机器人和第二机器人之外的剩余机器人中选择处于空闲状态且最靠近相交位置的机器人。或者,通过其它方式从剩余的机器人中选择一个机器人,本申请实施例对此不做限定。

需要说明的是,本申请实施例中,主控单元只有在获取到机器人的控制请求时,才将选择的机器人运动至特定位置,而并不是对获取到的所有机器人的信息进行处理和响应。比如,只有在确定至少一个中继机器人时,第一机器人才对控制请求进行处理和响应,之后,再根据至少一个中继机器人确定第一机器人和第二机器人之间的目标通信链路之后,在这两个机器人根据确目标通信链路进行通信的过程中,也不需要经过主控单元的传输和处理,也可降低主控单元的处理量,减少出现宕机的次数,降低多机器人之间通信瘫痪的概率步骤502,确定第二机器人是否位于选择的机器人的通信范围内。

步骤502可以参考图4实施例中的步骤402,这里不再赘述。

步骤503,若确定第二机器人不位于选择的机器人的通信范围内,则通过主控单元从第一机器人、第二机器人以及已选择的机器人之外的机器人中继续选择一个机器人,控制选择的机器人运动至第一机器人与第二机器人之间且位于选择的机器人的通信范围内的位置,并返回步骤502及后续步骤。

比如,可以将第一次选择的机器人作为第一中继机器人,即是将第一中继机器人运动至第一机器人与第二机器人之间且位于第一机器人的通信范围内的位置。第一中继机器人若确定第二机器人不位于第一中继机器人的通信范围内,则继续从第一机器人、第二机器人以及第一中继机器人之外的机器人中继续选择一个机器人作为第二中继机器人,将第二中继机器人运动至第一机器人与第二机器人之间且位于第一中继机器人的通信范围内的位置,并确定第二机器人是否位于第二中继机器人的通信范围内。

若第二机器人位于第二中继机器人的通信范围内,则将第一中继机器人和第二中继机器人确定为最终选择的至少一个中继机器人。

若第二机器人不位于第二中继机器人的通信范围内,则继续从第一机器人、第二机器人、第一中继机器人以及第二中继机器人之外的机器人中继续选择一个机器人作为第三中继机器人,将第三中继机器人运动至第一机器人与第二机器人之间且位于第二中继机器人的通信范围内的位置,并确定第二机器人是否位于第三中继机器人的通信范围内,如此循环往复,直至选择出通信范围包括第二机器人的中继机器人为止。

当然,步骤503也可以由选择的机器人执行。具体的实现方法可以参考上述图4实施例中的步骤403,这里不再赘述。

步骤504,若确定第二机器人位于选择的机器人的通信范围内,则将已选择的所有机器人均确定为中继机器人,得到至少一个中继机器人。

步骤504可以参考图4实施例中的步骤404,这里不再赘述。

需要说明的是,本申请实施例可以根据机器人的位置信息和通信范围,在从第一机器人和第二机器人之外的剩余机器人中灵活地确定至少一个中继机器人,至少一个中继机器人中一个中继机器人位于第一机器人的通信范围内,且第二机器人位于至少一个中继机器人中的一个中继机器人的通信范围内,如此,当第二机器人不处于第一机器人的通信范围内时,可以通过至少一个中继机器人实现第一机器人和第二机器人的通信。

请参考图6,图6是本申请实施例提供的再一种确定至少一个中继机器人的方法的流程图,该方法结合上述图4实施例和上述图5实施例的方法,具体包括如下步骤:

步骤601,从位于第一机器人的通信范围内的机器人中选择一个机器人。

步骤602,确定第二机器人是否位于选择的器人的通信范围内。

步骤603,若确定第二机器人不位于选择的机器人的通信范围内,则再次确定已选择的机器人的数量是否小于预设数量。

其中,预设数量是预先设置的可以选择的机器人的数量。

当第二机器人的周围,没有存在一个机器人,也即是第一机器人没有可能找到一个机器人,使得第二机器人位于其的通信范围内。这种情况下,若按照上述图4实施例的方法,会使得第一机器人不断的选择机器人,可能会导致第一机器人出现宕机。为避免这种情况发生,可以预先设置可以选择的机器人数量。之后,先按照上述图4实施例的方法不断的选择机器人,当选择的机器人的数量等于预设数数量时,则通过上述图5实施例的方式,选择一个机器人运动至第一机器人与第二机器人之间且位于上次选择的机器人的通信范围内的位置。之后,继续通过上述图5实施例的方法不断的选择一个机器人,直至第二机器人位于选择的机器人的通信范围内为止。

步骤604,若确定第二机器人不位于选择的机器人的通信范围内,且已选择的机器人的数量小于预设数量,则将选择的机器人作为目标机器人,从位于目标机器人的通信范围内的机器人中选择一个机器人,并返回步骤602及后续步骤。

步骤605,若确定第二机器人不位于选择的机器人的通信范围内,且已选择的机器人的数量大于或等于预设数量,则通过主控单元从第一机器人、第二机器人以及已选择的机器人之外的机器人中选择一个机器人,控制选择的机器人运动至第一机器人与第二机器人之间且位于上次选择的机器人的通信范围内的位置,并返回步骤602及后续步骤。

根据已选择的所有机器人确定至少一个中继机器人。

步骤606,若确定第二机器人位于选择的机器人的通信范围内,则将已选择的所有机器人均确定为中继机器人,得到至少一个中继机器人。

上述步骤601-步骤606可以参考上述图4实施例和上述图5实施例,这里不再赘述。

需要说明的是,本申请实施例可以根据机器人的位置信息和通信范围,在从第一机器人和第二机器人之外的剩余机器人中灵活地确定至少一个中继机器人,至少一个中继机器人中一个中继机器人位于第一机器人的通信范围内,且第二机器人位于至少一个中继机器人中的一个中继机器人的通信范围内,如此,当第二机器人不处于第一机器人的通信范围内时,可以通过至少一个中继机器人实现第一机器人和第二机器人的通信。

在一个实施例中,还提供了一种机器人,包括通信接口、存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,通信接口用于与其它个体进行通信,处理器执行计算机程序时,以实现上述实施例中的多机器人通信方法和确定至少一个中继机器人的方法中的步骤。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

相关技术
  • 多机器人通信方法、多机器人系统及机器人
  • 一种多机器人系统的控制方法及多机器人系统
技术分类

06120113675033