首页> 中国专利> 一种多机器人系统的控制方法及多机器人系统

一种多机器人系统的控制方法及多机器人系统

摘要

本发明适用于机器人技术领域,提供了一种多机器人系统的控制方法及多机器人系统,所述多机器人系统包括一台中央控制器和至少两台机器人,所述方法包括:第一机器人每隔预设时间向所述中央控制器和第二机器人发送心跳包,所述第二机器人为所述系统中除所述第一机器人之外的机器人;监控所述中央控制器和所述第二机器人对心跳包的接收情况;根据监控结果对所述系统中的机器人进行任务调度。本发明基于心跳包发送机制,通过设置中央控制器,来对配置于同一局域网内的多机器人进行任务的整体调度,从而实现多机器人系统的容错控制,避免了因机器人故障导致的任务执行失败以及避免了任务的重复执行。

著录项

  • 公开/公告号CN105807734A

    专利类型发明专利

  • 公开/公告日2016-07-27

    原文格式PDF

  • 申请/专利权人 中国科学院深圳先进技术研究院;

    申请/专利号CN201410853366.3

  • 申请日2014-12-30

  • 分类号G05B19/418(20060101);

  • 代理机构44237 深圳中一专利商标事务所;

  • 代理人张全文

  • 地址 518000 广东省深圳市南山区西丽大学城学苑大道1068号

  • 入库时间 2023-06-19 00:12:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-10

    专利权的转移 IPC(主分类):G05B19/418 登记生效日:20200623 变更前: 变更后: 申请日:20141230

    专利申请权、专利权的转移

  • 2018-11-20

    授权

    授权

  • 2016-08-24

    实质审查的生效 IPC(主分类):G05B19/418 申请日:20141230

    实质审查的生效

  • 2016-07-27

    公开

    公开

说明书

技术领域

本发明属于机器人技术领域,尤其涉及一种多机器人系统的控制方法及多机器人系统。

背景技术

随着机器人技术在各个领域被广泛应用,多机器人系统在军事、工业生产、交通控制等领域拥有了良好的应用前景,其在时间、空间、功能、信息和资源上均具备分布特性,通过多机器人协作,可以弥补单个机器人在复杂环境或是机器人故障情况下所产生的缺陷,例如,多机器人系统中的每个机器人可以各自执行不同的任务,又例如,多机器人可以分布工作在各个区域,实现工作区域的全覆盖。

然而,由于采用了多机器人并行执行任务,常常会出现机器人之间未协调好从而导致任务无法顺利完成的情况,例如,机器人之间发生碰撞从而产生机械故障,导致机器人无法正常工作;或者,不同机器人执行了相同的任务,导致任务重复完成,目前,尚没有一种有效的控制方法来避免上述情况的发生。

发明内容

本发明实施例提供一种多机器人系统的控制方法及多机器人系统,旨在实现对多机器人系统的容错控制。

本发明实施例是这样实现的,一种多机器人系统的控制方法,所述多机器人系统包括一台中央控制器和至少两台机器人,所述方法包括:

第一机器人每隔第一预设时间向所述中央控制器和第二机器人发送心跳包,所述第二机器人为所述系统中除所述第一机器人之外的机器人;

监控所述中央控制器和所述第二机器人对心跳包的接收情况;

根据监控结果对所述系统中的机器人进行任务调度:

若所述中央控制器和所述第二机器人均定时接收到来自所述第一机器人的心跳包,所述中央控制器对所述第一机器人维持当前的任务调度;

若所述中央控制器和所述第二机器人均未定时接收到来自第一所述机器人的心跳包,所述中央控制器终止对所述第一机器人的任务调度,并基于所述第二机器人重新进行任务调度;

若所述中央控制器定时接收到来自所述第一机器人的心跳包,且所述第二机器人未定时接收到来自所述第一机器人的心跳包,所述中央控制器为所述第一机器人配置与所述第二机器人无关的任务;

若所述中央控制器未定时接收到来自所述第一机器人的心跳包,且所述第二机器人定时接收到来自所述第一机器人的心跳包,所述第一机器人经由所述第二机器人向所述中央控制器发送当前完成的任务数据。

本发明实施例的另一目的在于提供一种多机器人系统,所述多机器人系统包括一台中央控制器和至少两台机器人,所述系统包括:

心跳包发送单元,用于第一机器人每隔第一预设时间向所述中央控制器和第二机器人发送心跳包,所述第二机器人为所述系统中除所述第一机器人之外的机器人;

监控单元,用于监控所述中央控制器和所述第二机器人对心跳包的接收情况;

任务调度单元,用于根据监控结果对所述系统中的机器人进行任务调度:

若所述中央控制器和所述第二机器人均定时接收到来自所述第一机器人的心跳包,所述中央控制器对所述第一机器人维持当前的任务调度;

若所述中央控制器和所述第二机器人均未定时接收到来自第一所述机器人的心跳包,所述中央控制器终止对所述第一机器人的任务调度,并基于所述第二机器人重新进行任务调度;

若所述中央控制器定时接收到来自所述第一机器人的心跳包,且所述第二机器人未定时接收到来自所述第一机器人的心跳包,所述中央控制器为所述第一机器人配置与所述第二机器人无关的任务;

若所述中央控制器未定时接收到来自所述第一机器人的心跳包,且所述第二机器人定时接收到来自所述第一机器人的心跳包,所述第一机器人经由所述第二机器人向所述中央控制器发送当前完成的任务数据。

本发明实施例基于心跳包发送机制,通过设置中央控制器,来对配置于同一局域网内的多机器人进行任务的整体调度,从而实现多机器人系统的容错控制,避免了因机器人故障导致的任务执行失败以及避免了任务的重复执行。

附图说明

图1是本发明实施例提供的多机器人系统的系统架构图;

图2是本发明实施例提供的多机器人系统的控制方法的实现流程图;

图3是本发明实施例提供的多机器人系统的结构框图。

具体实施方式

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

本发明实施例基于心跳包发送机制,通过设置中央控制器,来对配置于同一局域网内的多机器人进行任务的整体调度,从而实现多机器人系统的容错控制,避免了因机器人故障导致的任务执行失败以及避免了任务的重复执行。

图1示出了本发明实施例提供的多机器人系统的架构图,为了便于说明,仅示出了与本实施例相关的部分。

参照图1,该系统包括一台中央控制器11和至少两台机器人12,中央控制器11和所有机器人12均被配置于同一局域网内,且该局域网可以为无线局域网。中央控制器11和所有机器人12均配置有网卡模块,以保证相互之间的正常通信。

其中,中央控制器11负责对所有机器人12的工作任务进行整体调度,为了避免单点故障导致整个系统不可用,中央控制器11可以配置为主机和备机各一台。

每台机器人12在执行任务的过程中,需要将任务数据通过局域网上传给中央控制器11,以使中央控制器11能够实时了解任务的执行情况。同时,为了保证整个系统的可容错性,每个机器人12需要定时向中央控制器11和其他机器人12发送心跳包,以告知自己的存活状态,使得中央控制器11可以在某个机器人12出现异常时,及时获取到异常状态并重新进行任务调度,保证系统的正常运行。

基于图1所示的多机器人系统的架构,图2示出了本发明实施例提供的多机器人系统的控制方法实现流程,详述如下:

在S201中,第一机器人每隔第一预设时间向所述中央控制器和第二机器人发送心跳包,所述第二机器人为所述系统中除所述第一机器人之外的机器人。

在本实施例中,机器人一旦接入了多机器人控制系统,即通过心跳包线程来向该系统中的中央控制器及其他机器人发送心跳包,且心跳包的发送为定时发送,可以为每隔第一预设时间进行发送。作为本发明的一个实现示例,第一预设时间可以为2秒。

在本实施例中,心跳包可以包括以下字段:Head、Cmd、Uin、Tail,其中,Head为包头,其作为心跳包开始的标志;Cmd表示心跳包的发送方向,包括由中央控制器发送给机器人,以及由机器人发送给中央控制器,在本实施例中,心跳包是由第一机器人发送给中央控制器,而根据设计需求,中央控制器也可以发送相同格式的心跳包给系统中的机器人,以告知中央控制器的在线状态;Uin表示机器人的网络地址,可以为该机器人接入在局域网中的IP地址;Tail为包尾,其作为心跳包结束的标志。采用以上格式的心跳包短小简洁,仅仅占用了非常小的一部分带宽,从而不会影响到中央控制器及机器人之间的正常数据通信。此外,以上格式的心跳包也具备了较好的可扩展性,可以根据系统的实现需求,在包头和包尾之间加入其他字段,以传递更多的数据信息。

心跳包在中央控制器与机器人之间、机器人与机器人之间进行传递,每当接收到来自系统中机器人的心跳包时,中央控制器以及系统中的其他机器人即将发送该心跳包的机器人的网络地址和当前的系统时间关联存储。具体地,中央控制器和机器人均可以采用“键名-键值”的数据结构来存储接收到的心跳包,其中,键名可以为机器人在局域网中被分配的网络地址,而该键名对应的键值可以为中央控制器或者系统中的其他机器人接收到该机器人发送的心跳包的系统时间,且一个键名可以对应多个键值,用于反映对来自某一机器人的心跳包的接收情况。每当接收到一个心跳包,中央控制器或者机器人便会从心跳包数据中获取到发送该心跳包的机器人的网络地址,将该网络地址作为键名存储,同时,获取到当前的系统时间,并将该系统时间作为对应的键值存储。

在S202中,监控所述中央控制器和所述第二机器人对心跳包的接收情况。

中央控制器和机器人均通过定时遍历自身用于存储上述“键名-键值”的列表,监控自身对心跳包的接收情况,判断自身是否定时接收到了来自某一机器人的心跳包,与此同时,系统内的每个机器人也需要定期将自身用于存储上述“键名-键值”的列表上传至中央控制器中,以使中央控制器能够实时掌握第二机器人对心跳包的接收情况。在本实施例中,对于“定时接收”的判断,可以通过分析同一键名所对应的键值来实现,具体地,通过分析同一键名下的每两个相邻键值的时间差是否均小于预定的时间间隔来进行判断,若同一键名下的每两个相邻键值的时间差小于预定的时间间隔,则表示定时接收到了来自同一机器人连续发送的心跳包,否则,表示对该机器人的心跳包接收异常。其中,所述预定的时间间隔不小于系统中机器人发送心跳包的第一时间间隔。

作为本发明的一个实施例,S202具体为:

判断在所述当前系统时间之后的第二预设时间之内,是否接收到来自与所述当前系统时间关联存储的网络地址的心跳包,所述第二预设时间长于所述第一预设时间。

即,对于同一键名下最新存储的一个键值,读取该键值对应的系统时间,并判断在该系统时间之后的第二预设时间之内,是否接收到来自于同一机器人的心跳包,是则表示当前对该机器人的心跳包接收正常,否则表示当前对该机器人的心跳包接收异常。其中,考虑到系统处理延时,第二预设时间的设置需要长于第一预设时间,例如,在第一预设时间为2秒的情况下,第二预设时间可以设置为3秒。

在S203中,根据监控结果对所述系统中的机器人进行任务调度。

S203包括以下四种情况:

1、若所述中央控制器和所述第二机器人均定时接收到来自所述第一机器人的心跳包,所述中央控制器对所述第一机器人维持当前的任务调度。

在该情况下,中央控制器和系统内的其他机器人均定时接收到了来自系统内某一机器人定时发送的心跳包,则表明该机器人当前处于正常工作状态,中央控制器可以对该机器人进行正常的任务调度。

2、若所述中央控制器和所述第二机器人均未定时接收到来自第一所述机器人的心跳包,所述中央控制器终止对所述第一机器人的任务调度,并基于所述第二机器人重新进行任务调度。

在该情况下,中央控制器和系统内的其他机器人均未定时接收到来自系统内某一机器人定时发送的心跳包,则表明该机器人当前与系统内的任一通信实体均通信失败,该机器人处于非正常工作状态(该机器人可能出现了机械故障或者软件故障),中央控制器需要终止对该机器人的任务调度,该机器人从系统内被移除,与此同时,中央控制器需要将原先分配给该机器人的任务进行重新调度。

3、若所述中央控制器定时接收到来自所述第一机器人的心跳包,且所述第二机器人未定时接收到来自所述第一机器人的心跳包,所述中央控制器为所述第一机器人配置与所述第二机器人无关的任务。

该情况表明系统内的某一机器人可以与中央控制器实现正常通信,但不能和系统内的其他机器人实现正常通信,则中央控制器还是能够对该机器人进行任务调度,但由于该机器人无法与系统内的其他机器人进行相互通信,因此需要为该机器人分配与其他机器人无关的任务,避免该机器人在执行任务过程中与其他机器人的数据交互。

4、若所述中央控制器未定时接收到来自所述第一机器人的心跳包,且所述第二机器人定时接收到来自所述第一机器人的心跳包,所述第一机器人经由所述第二机器人向所述中央控制器发送当前完成的任务数据。

该情况表明系统内的某一机器人无法与中央控制器实现正常通信,但可以和系统内的其他机器人实现正常通信,则此时,该机器人仍然能够执行任务,但中央控制器为该机器人分配的任务需要由系统内的其他机器人转发给该机器人,且该机器人完成的任务数据也需要由系统内的其他机器人转发给中央控制器,以使中央控制器根据任务的完成情况再次进行任务调度。其中,中央控制器通过第二机器人上报的对第一机器人的心跳包的接收情况,可以获知第二机器人定时接收到了来自第一机器人的心跳包,则中央控制器可以通过第二机器人向第一机器人发送指令,以使第一机器人根据该指令,将当前完成的任务数据发送给第二机器人,第二机器人在接收到第一机器人发送的任务数据之后,将任务数据转发给中央控制器。

在本发明实施例中,当有新的机器人加入系统时,该机器人会在接入系统的第一时间即开启心跳包发送线程,因此,当中央控制器接收到来自新的网络地址的心跳包时,则也需要对系统内的机器人重新进行任务调度,以实现对新加入的机器人的任务分配。

图3示出了本发明实施例提供的多机器人系统的结构框图,需要说明的是,本实施例中提及的单元或者模块根据其实际功能分布于多机器人系统的中央控制器和/或机器人中,可以为位于这些通信实体中的硬件单元、软件单元或者软硬件结合的单元,以用于实现本发明图2所示的多机器人系统的控制方法。为了便于说明,仅示出了与本实施例相关的部分。

参照图3,该系统包括:

心跳包发送单元31,第一机器人每隔第一预设时间向所述中央控制器和第二机器人发送心跳包,所述第二机器人为所述系统中除所述第一机器人之外的其他机器人。

监控单元32,监控所述中央控制器和所述第二机器人对心跳包的接收情况。

任务调度单元33,根据监控结果对所述系统中的机器人进行任务调度:

若所述中央控制器和所述第二机器人均定时接收到来自所述第一机器人的心跳包,所述中央控制器对所述第一机器人维持当前的任务调度;

若所述中央控制器和所述第二机器人均未定时接收到来自第一所述机器人的心跳包,所述中央控制器终止对所述第一机器人的任务调度,并基于所述第二机器人重新进行任务调度;

若所述中央控制器定时接收到来自所述第一机器人的心跳包,且所述第二机器人未定时接收到来自所述第一机器人的心跳包,所述中央控制器为所述第一机器人配置与所述第二机器人无关的任务;

若所述中央控制器未定时接收到来自所述第一机器人的心跳包,且所述第二机器人定时接收到来自所述第一机器人的心跳包,所述第一机器人经由所述第二机器人向所述中央控制器发送当前完成的任务数据。

可选地,所述系统还包括;

存储单元,用于当接收到来自所述第一机器人的心跳包时,所述中央控制器和所述第二机器人将所述第一机器人的网络地址和当前系统时间关联存储。

可选地,所述监控单元32具体用于:

判断在所述当前系统时间之后的第二预设时间之内,是否接收到来自与所述当前系统时间关联存储的网络地址的心跳包,是则表示定时接收到了来自所述第一机器人的心跳包,所述第二预设时间长于所述第一预设时间。

可选地,所述任务调度单元33还用于:

当所述中央控制器接收到来自新的网络地址的心跳包时,对所述系统中的机器人重新进行任务调度。

可选地,所述心跳包依次包括第一字段、第二字段、第三字段和第四字段,

所述第一字段为包头;

所述第二字段表示心跳包的发送方向;

所述第三字段表示发送该心跳包的机器人的网络地址;

所述第四字段为包尾。

将所述当前扫描到的文件夹及其所有子文件夹记录在所述第一列表中;

将所述当前扫描到的文件夹下的所有文件及其特征值记录在所述第二列表中。

本发明实施例基于心跳包发送机制,通过设置中央控制器,来对配置于同一局域网内的多机器人进行任务的整体调度,从而实现多机器人系统的容错控制,避免了因机器人故障导致的任务执行失败以及避免了任务的重复执行。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号