一种基于角色状态机的群体无人系统协同任务管理子系统的制作方法

文档序号:20583735发布日期:2020-04-29 01:39阅读:478来源:国知局
一种基于角色状态机的群体无人系统协同任务管理子系统的制作方法

本发明属于群体无人系统控制技术领域,涉及一种基于角色状态机的群体无人系统协同任务管理子系统。



背景技术:

群体智能是一种在自然界生物群体所表现出的智能现象启发下提出的人工智能模式。群体智能的研究者往往以蚁群、鸟群、鱼群等生物群体为研究对象,构建感知、计算、通信等能力受限的机器人群体,研究由个体之间相对简单的局部自组织交互作用,在环境中表现出分布式、自适应、鲁棒性等智能特征,使系统在整体层面上涌现出单个个体不可能达成的智能机理,代表性研究有哈佛大学的kilobot、华盛顿大学自组织构型机器人、瑞士联邦工学院房屋建造等。

如何进行控制抽象,是大型基础软件的核心机理之一。在计算机操作系统发展的过程中,基于“进程/线程”控制抽象的提出具有划时代的意义,它是现代操作系统资源管理和程序执行的基本单元。机器人与计算机相比,在生存空间、管理对象、人机交互、编程开发等方面存在诸多本质不同,因此机器人操作系统需要全新的面向行为的控制抽象。

面向群体无人系统,基于ooda(即“观察-判断-决定-行动”)宏行为链,群体智能机器人操作系统(micros)将角色的理念运用到群体无人系统控制抽象中,设计的“角色”框架已成为群体智能机器人操作系统进行无人系统智能行为管理的基础。micros的角色(actor)是指机器人完成给定任务的一次执行的行为,也是micros的基本调度单元。基于角色的控制抽象,将角色与机器人算法模块相结合,实现了角色资源到角色能力的转换。不同角色在群体观察、群体判断、群体决定和群体行动等不同环节中,需要不同的资源,采用不同的算法,形成不同的能力。在针对不同的群体协同任务时,群体无人系统在时空维度上,需要根据本体状态和外部环境的变化,自主进行角色切换和执行,进行不同粒度的协同,实现群体无人系统的行为调度,体现无人系统的环境适应性。目前的任务管理方法中,主要针对特定的单个无人系统或集群、特定的应用进行垂直编程开发,在异构群体动态组织、群体任务动态配置、群体自主协同等方面缺乏灵活有效支撑,因此,需要设计实现适合群体无人系统进行高效协同任务管理的子系统,以角色为基本单位,实现群体无人系统间角色的协同调度和任务的协同执行,完成复杂群体任务全流程的执行和调度管理。



技术实现要素:

本发明的目的是克服现有技术的不足,针对群体无人系统在异构群体动态组织、群体任务动态配置、群体自主协同等方面缺乏灵活有效支撑的需求,提供一种基于角色状态机的群体无人系统协同任务管理子系统,在操作系统层面提供协同任务管理机制,解决群体无人系统根据任务动态组织、动态配置、自主协同实现任务的问题,提高群体无人系统智能性、自主性、以及异构群体无人系统组织时的便利性。

本发明的目的是通过以下技术方案实现的。

一种基于角色状态机的群体无人系统协同任务管理子系统,其特征在于,包括:角色状态机、角色调度器、群组织管理器和消息处理器;

所述角色状态机用于在无人平台启动时读入角色状态机文件并对其解析,根据角色状态机文件中的初始化配置初始化无人平台,监听消息处理器发来的消息,根据消息以及角色状态机文件中的角色切换规则配置和角色与插件信息配置向角色调度器发起角色调度请求或向群组织管理器发出群体协同请求;

所述角色调度器用于提供角色调度的接口,以实现角色激活、休眠或切换;

所述群组织管理器用于根据角色状态机的请求,基于群通信进行群体无人系统的群管理,并在满足群体协同条件下,向角色调度器发起角色调度请求;

所述消息处理器用于接收外部或无人平台产生的消息,并将消息转发给角色状态机处理,以触发角色状态机,催动群体任务的执行。

有益效果

本发明与现有技术相比,具有以下有益效果:

(1)基于xml语言对角色状态机文件进行描述,描述了群体角色信息以及角色之间转移和动作等行为的模型,并给出了角色与插件、平台与角色的相关初始化配置,为群体角色调度提供遵循和支撑;同时,对于不同的群体无人系统,只要通过重新定义角色状态机文件即可实现不同同构或异构群体任务的顺利切换。

(2)角色状态机通过预先读入并解析角色状态机文件,在任务执行过程中,接收相关事件触发消息,根据角色状态机文件描述请求角色切换和群体协同,完成复杂群体任务的管理。

(3)角色调度器基于插件的挂载/卸载机制,提供了无人群体内角色调度的相关接口,面向ooda循环的“观察(observe)、判断(orient)、决定(decide)、行动(act)”4个环节支持对角色的管理,为无人系统复杂群体行为的管理和调度提供支撑。

(4)群组织管理器考虑任务需求、资源约束、外部环境、自身状态等信息,进行群组织管理,支持群体的分裂与聚合、群角色的同步切换,提高了群体任务执行的便利性,为群体任务协同管理提供支撑。

(5)消息处理器通过对任务指令进行处理,根据角色状态机文件对触发事件的描述,统一了群角色切换和调度的触发接口,提高了群任务协同管理的便利性。

附图说明

图1为本发明系统的组成结构示意图;

图2为本发明方法的角色状态机文件任务描述框架示意图;

图3为本发明方法的角色状态机文件角色与插件信息配置描述示意图;

图4为本发明方法的角色状态机文件角色切换规则配置中有关a角色的事件处理描述示意图;

图5为本发明方法的角色状态机文件角色切换规则配置中有关a角色的同步事件处理描述示意图;

图6为本发明方法的角色状态机文件角色切换规则配置中有关a角色的同步分支、聚合事件处理描述示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

为了使本申请实例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实例可以相互结合。

本文中所述无人平台,适用于无人机、机器人、扫地机、无人驾驶汽车等任何能自动运行任务的人造机器设备。

实施例1

一种基于角色状态机的群体无人系统协同任务管理子系统:包括角色状态机、角色调度器、群组织管理器和消息处理器(如图1所示);

其中,角色状态机用于在无人平台启动时读入角色状态机文件(即群体角色信息以及角色之间转移和动作等行为的数学模型)并对其解析,然后根据角色状态机文件中的初始化配置初始化无人平台,监听消息处理器发来的消息,根据消息以及角色状态机文件中的角色切换规则配置和角色与插件信息配置向角色调度器发起角色调度请求或向群组织管理器发出群体协同请求;从而发起群体无人系统的角色激活、休眠、切换等调度行为;

角色调度器用于向其它模块提供角色调度的接口,以实现角色激活、休眠、切换等调度行为;

群组织管理器用于根据来自角色状态机的请求,基于群通信进行群体无人系统的群管理,包括群体成员的状态监控、群组织的维护(分群、聚合等)、群体任务的协调调度,即在满足群体协同条件下,群leader同时向所有群成员发出角色调度命令,群成员平台的群组织管理器分别向各自角色调度器发起角色调度请求进行角色切换;

消息处理器用于接收来自外部或者无人平台内部产生的消息,并将消息转发给角色状态机处理,以触发角色状态机,催动群体任务的执行。

较优的,所述角色状态机文件使用xml语言描述,当然,此处不限于xml文件,也可使用其它类型文件进行描述,如txt文件;角色状态机文件由角色与插件信息配置(<_actorsconfig>)、角色切换规则配置(<_taskconfig>)、平台与角色初始化配置(<_platformactorconfig>)三部分构成(如图2所示)。其中角色与插件信息配置,用于描述角色插件的相关配置,通过挂载不同的插件,赋予角色不同的算法和能力。角色切换规则配置,用于描述各类角色之间转移、动作等行为的规则。平台与角色初始化配置,用于描述群体内各无人平台在任务中所扮演角色的初始化配置。

进一步的,所述角色与插件信息配置由角色跟若干插件的对应关系进行描述,本例中,由于无人平台的智能过程可以归结于观察(observe)、判断(orient)、决定(decide)、行动(act),基于此,设计观察(observe)、判断(orient)、决定(decide)、行动(act)四类总线,使插件归属于不同总线,即,一个总线由多个插件构成,由不同总线上的1个或多个插件的运行匹配一个角色,即角色由插件定义,插件的运行就定义了一个角色。例如行动总线上的插件a(plugin_a)定义了角色a,由行动总线上的插件b(plugin_b)定义了角色b,当plugin_a被加载时,无人系统表现为角色a,plugin_b被加载时,无人系统表现为角色b;当然,此处只是一个示意,实际配置时,角色可能由多条总线上的多个插件定义,此多个插件的加载运行使无人系统表现为对应的角色。当然,本领域技术人员知道,插件的组织方式不限于上述总线方式,可以采取任何合适的方式进行组织,如,一个角色的所有功能均由一个插件进行定义;上述方式只是更有利于同一功能的重用,避免重复工作而已,如视觉传感器插件、距离传感器插件、触觉传感器插件(烟感)等,只要一次定义就可应用在不同的无人平台群中。

本例中,角色状态机文件的使用及预定义使得本系统作为操作系统的一部分可以灵活完成各类无人平台及其群体任务,如足球机器人、无人驾驶汽车、快递无人机、物流码货机器人等等,只要针对群体任务设计对应的角色与插件信息配置、角色切换规则配置和平台与角色初始化配置即可,提供了用户使用系统时灵活选择的多样性,使本发明系统具有广泛的适用性。

较优的,所述角色状态机文件中的角色切换规则配置,由不同的事件处理描述模块组成,以对不同事件处理时需要的每个角色的切换条件进行描述和设置,当按照事件处理描述的内容和条件进行了对应数目的角色切换后在群体外部表现上即实现了由事件触发的任务的执行。群体无人平台就从初始角色完成系统的初始任务开始,经由不断的来自内部和外部触发的事件处理过程实现多样化的任务的执行,对外表现为协同自治的群体任务执行。

较优的,所述角色切换规则配置,支持对事件触发角色切换描述、基于barrierkey的同步角色切换描述、基于事件触发的分支与聚合的描述等。

较优的,角色调度器通过对角色对应插件组的加载/卸载等,提供角色激活、休眠、切换等行为的接口。

较优的,群组织管理器接收来自角色状态机的群体协同请求,基于群组网通信,在群体成员状态共享的基础上,实现群组织的维护(如群体的分裂与聚合、群体角色的同步切换等),以支持群体任务的协调调度。

实施例2

图3给出了一个角色状态机文件中角色与插件信息的配置示例,主要对角色插件的相关配置进行了简单的描述,其中角色a(id为100100)所挂载的为观察总线(observe_bus)下的插件plugin_a1和插件plugin_a2以及行动总线(act_bus)下的插件plugin_a3和插件plugin_a4,角色b(id为100101)所挂载的为行动总线(act_bus)下的插件plugin_b1和插件plugin_b2,通过挂载不同的插件,会赋予角色不同的算法和能力。

实施例3

图4给出了一个角色状态机文件中a角色切换规则配置示例,主要由不同的事件切换模块组成,事件切换模块是角色切换规则配置模块的基本组成单元。如图4所示,第一个事件模块(atob_event,作为代号表述,可以理解为发现可疑目标事件)描述为“atob_event”事件将触发10个(susnum)a角色向b角色切换,如果60秒(timeout)超时,群体没有响应,则会发起a角色向c角色的切换;第二个事件模块(atod_event,作为代号表述,可以理解为针对目标位置进行打击事件)描述为“atod_event”事件将触发a角色向d角色的切换,对于d角色的参数配置(param),采用key-value的参数赋值形式,d角色的初始化参数为目标点(targetpoint)为“20020020”;第三个事件模块(pause_event)描述为“pause_event”将触发a角色的暂停,即向角色调度器请求角色休眠调度。

实施例4

角色状态机实现以下内容:

读入所述角色状态机文件并对其进行解析;

将所述角色状态机文件中的角色与插件信息配置读入内存作为角色插件数据结构;

将所述角色状态机文件中的角色切换规则配置读入内存作为事件响应数据结构;

根据所述角色状态机文件中的初始化配置规定的初始角色向所述角色调度器发起角色调度请求以初始化无人平台为预设角色,从而执行群体初始任务;

监听消息处理器发来的消息,并对消息事件进行如下处理:

根据消息的事件名称在所述事件响应数据结构中查找对应的事件响应配置,如果找到,按照对应的响应配置进行事件处理;如果没找到,在所述事件响应数据结构中查找是否存在已定义事件以外的缺省事件响应处理规则,如果有,按照缺省事件响应处理规则进行事件处理。

较优的,所述事件处理按照如下过程进行:

判断是否是群任务以及是否需要群体间同步、分支或聚合,如果是,向所述群组织管理器发出群体协同请求;

否则,按照所述响应配置中规定的角色转换向所述角色调度器发起角色调度请求进行角色切换。

下面以图4中的“atob_event”事件为例,给出本发明所述子系统的运转过程。

无人平台启动运行时,角色状态机读入编写好的角色状态机文件,将其中角色与插件信息配置读入内存作为角色插件数据结构;角色切换规则配置读入内存作为事件响应数据结构;根据初始化配置中预设的角色a请求角色调度器激活角色a,角色调度器查询角色插件数据结构找到a角色对应的插件并加载以激活角色a;

此后,角色状态机不停的在消息处理器接口监听其发来的消息;

角色a在执行插件对应的任务过程中,根据外界环境变化等因素,发现了可疑目标事件,即atob_event,遂将该消息发给消息处理器,消息处理器一方面不断在消息接收端口监听消息的到来并将其压入消息队列,一方面不断从消息队列中取出消息发给角色状态机,接收-处理消息过程既可以采用同步方式也可以采用异步方式,可以如上所述使用消息队列转存消息,也可以不使用消息队列而直接将消息转发给角色状态机;

角色状态机接收到atob_event,即在事件响应数据结构查找atob_event,找到并根据其配置:需要10个无人平台从a角色切换到b角色,如果60秒内无法完成a到b角色的切换,则启动失效处理,使a角色强制切换到c角色;判断本机具备从a角色到b角色切换条件,向群组织管理器请求群体协同;

群组织管理器接收到群体协同请求,向群leader汇报从a角色到b角色的切换请求,群leader查看针对atob_event事件的a角色到b角色的切换请求数量,尚未达到10个,批准该无人平台群组织管理器的切换请求,向该无人平台群组织管理器发出目标角色切换命令,并增加针对atob_event事件的a角色到b角色的切换请求数量;该无人平台群组织管理器接收到群leader发出的目标角色切换命令后,请求角色调度器进行a角色到b角色的切换,角色调度器根据角色插件数据结构查找b角色对应的插件描述,加载对应的插件,实现角色切换;如果群组织管理器在60秒内没有接收到角色调度器发来的a角色成功切换到b角色的消息,则请求角色调度器进行a角色到c角色的切换,强制切换到c角色,并向群leader发出针对atob_event事件a角色到b角色切换失败的消息,群leader接到消息后将针对atob_event事件的a角色到b角色的切换请求数量减少。

综上,进一步的,所述角色调度器实现以下内容:

接收角色调度请求;

如果角色调度请求为角色激活,则在角色对应插件组未加载情况下加载插件组,在角色休眠情况下唤醒角色继续运行;所述插件组包括一个或多个插件;

如果角色调度请求为角色休眠,则暂停角色对应插件组的运行,即可将对应的插件或插件组挂起;

如果角色调度请求为角色切换,则卸载当前角色对应的插件组,加载目标角色对应的插件组。

所述群组织管理器实现以下内容:

基于群通信推选群或子群leader,群或子群leader进行群体成员的状态监控;

子群回归母群后均成为母群的群体成员;

接收角色状态机发来的群体协同请求;

向群leader报告可以进行目标角色的切换;

群leader接收群体成员的目标角色切换请求报告,根据群体协同需要的无人平台数目、是否需要同步、是否是群分支或群聚合事件判断决定哪些群成员进行目标角色的切换,以及何时切换,并在条件成熟情况下向群成员发出目标切换命令;

接收群leader发来的目标角色切换命令,向所述角色调度器发起角色调度请求进行目标角色切换。

所述消息处理器实现以下内容:

接收外部或无人平台产生的事件消息,将事件消息压入消息队列;

按预定顺序从消息队列读出事件消息并转发给角色状态机处理。

实施例5

图5给出了角色状态机文件中基于barrierkey的同步角色切换描述示例,角色状态机在对“atob_event”事件的处理过程中,通过查询事件响应数据结构,看到该事件的处理需要同步,则向群组织管理器请求群体协同,该无人平台群组织管理器向群leader汇报由a角色到b角色的切换请求,群leader接收到该请求后得到该请求的同步字为3,则查看事件响应数据结构,看到共有2个事件“atob_event”和“ctod_event”15台无人平台需要进行同步切换,于是其等待,直到有至少10个具有同步字为3的无人平台请求进行a角色到b角色的切换和5个具有同步字为3的无人平台请求进行c角色到d角色的切换后,才向其中10个请求进行a角色到b角色切换和5个请求进行c角色到d角色切换的无人平台发出目标角色切换命令,各成员群组织管理器接到切换命令后分别请求各自平台的角色调度器进行角色切换,以实现群体的同步角色切换并执行角色切换后的任务。

实施例6

图6给出了角色状态机文件中分支与聚合机制的描述示例。角色a下的事件模块(atobc_branch_event)描述为10个(sysnum)a角色向2个(cnt)b角色和8个(cnt)c角色进行分支,分支过程基于barrierkey(值为4)同步执行。角色b下的事件模块(finish_event)与角色c下的事件模块(finish_event)具有相同的barrierkey同步字,会同步实现2个b角色和8个c角色向a角色的同步切换,实现群体聚合。也就是说,micros的群体无人系统协同管理模块通过预先读入角色状态机,在收到“atobc_branch_event”事件消息时,会根据规则,进行群体无人系统分支,实现群体的裂变,在收到“finish_event”事件消息后,会实现分裂子群的重新聚合。

在分支与聚合的过程中,角色状态机在收到分支或聚合事件后,都会向群组织管理器发送请求,类似实施例5中的流程,群组织管理器负责群体的状态监控和群组织管理,确保原有群体和新分裂子群的组织性,角色状态机发送的群体分支和聚合请求,在群体组织管理器确认后,向角色调度器发起调度。

因此,进一步的,所述群leader根据下述情况向群成员发出目标切换命令:

当需要的目标角色群体数量或分支目标角色群体数量或聚合目标角色群体数量未达标且目标角色的切换无需同步时向群成员发出目标角色切换命令;

当需要的目标角色群体数量达标且目标角色的切换需要同步时向所有群体成员发出目标切换命令;

当需要的各分支的目标角色群体数量达标且各分支目标角色的切换需要同步时向所有群体成员发出目标切换命令;

当需要聚合的目标群体数量达标且聚合需要同步时向所有群体成员发出目标切换命令。

综上所述,本发明通过角色状态机、角色调度器、群组织管理器和消息处理器四部分协同运作、各负其职,结合角色状态机文件即可实现群体内个体既能独立自治完成个体角色赋予其的任务,又能够协同合作,共同完成群体任务,在事件的驱动下不断往复循环工作,同时还能够接收外部指令,实现群体对人为命令的服从;从而解决群体无人系统根据任务动态组织、动态配置、自主协同实现任务的问题,提高群体无人系统智能性、自主性、以及异构群体无人系统组织时的便利性。特别是角色状态机文件的设计,使得本发明系统能够广泛适用于各类无人系统群体,对于不同类型的系统,只要定义对应系统的插件、角色插件的对应关系以及事件响应机制、初始化配置即可,使本发明具有广泛的通用性。

当然,本领域技术人员知道,上述四个功能模块(角色状态机、角色调度器、群组织管理器和消息处理器)以及角色状态机文件的划分只是一种逻辑划分而已,任何一种系统只要包含上述功能,即使逻辑划分不同,也应视为本发明的保护内容。

本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1