一种基于群角色的异构群体无人系统协同任务管理系统

文档序号:25541647发布日期:2021-06-18 20:37阅读:315来源:国知局
一种基于群角色的异构群体无人系统协同任务管理系统

本发明涉及群体无人系统任务管理与控制领域,尤其涉及一种基于群角色的异构群体无人系统协同任务管理系统。



背景技术:

群体智能是广泛存在于生物界和人类社会的一种重要的智能形式,是智能领域的国际研究前沿和热点。群体智能无人系统融合了群体集成智能、自主智能、有人/无人协同智能等技术,是引领未来的战略性、颠覆性技术。目前,群体智能无人系统已经成为世界各国竞争的制高点,中国在《新一代人工智能发展规划》中,也将群体集成智能列为重要发展方向和突破点。欧盟swarmnoid项目首次构建地面机器人footbot和飞行机器人eyebot组成的异构群体系统,实现了在复杂环境下自适应最短路径搜索;swarm-bots项目构建了一组能够自主组装的机器人,完成协同搬运、攀爬小山、穿过崎岖地带等复杂任务;replicator项目主要研究“认知系统和机器人”,其开发的系统由大量自主可靠、感知能力很强的微型机器人组成,它们能自我组装成具有移动、攀爬等运动能力的人工生物体;smavnet项目针对灾区救援需求,开发了一个临时通信网络——群飞式微型空中通信网络,基于仿真进化算法进行控制,能够快速、便捷地组成救援通信网络,能适应复杂地形。哈佛大学的kilobot项目采用1024个建造成本低廉的微型机器人,以去中心化、无领导、点对点、网络特征的(大规模)合作,通过三条简单规则(贴边运动、梯度队形、定位)在完全分布式控制条件下能够自发形成比较复杂的宏观图形。尼桑公司的eporo项目采用类似鱼群的简单交互规则(避免碰撞、同向运动、靠近同伴等)模仿鱼类的游动实现避免堵塞和碰撞,为未来无人汽车自动驾驶提供技术基础。

机器人操作系统作为机器人和无人系统的共性基础软件,运行于机器人和无人系统中,为机器人和无人系统的智能实现提供支撑。目前,影响力最大机器人操作系统是来自于斯坦福大学人工智能实验室与google公司联合发起的开源机器人软件框架项目——ros(robotoperatingsystems),即“机器人操作系统”。但是,当前机器人操作系统的发展还处在非常初级的阶段,以当前影响力最大的ros系统为例,ros被设计为主要解决机器人研发过程中的“软件重用”问题,没有针对机器人和无人系统的智能行为管理与群体自主协作提供模型、框架和支撑。



技术实现要素:

为了解决现有技术中针对机器人和无人系统的智能行为管理与群体自主协作提供模型、框架和支撑的问题,本发明提供一种基于群角色的异构群体无人系统协同任务管理系统,包括:群角色执行引擎、群角色资源管理器、群角色通信管理及消息收发模块;

群角色资源管理器:用于管理平台角色资源需求、资源约束信息;还用于基于所述平台角色资源需求和资源约束进行角色动态匹配;

群角色通信管理及消息收发模块:用于基于群角色定义群内通信域,创建各群使用的通信通道,对同一通信域内不同通信通道间消息进行转发,并提供消息收发接口;

群角色执行引擎:用于基于参与的任务、所述群角色资源管理器提供匹配结果,完成群角色的分配派发和维护;还用于基于所述群角色通信管理及消息收发模块提供的通信通道和通信域分配子群角色通信通道和通信域;

其中,所述任务包括整体任务和多个子任务;所述群角色支持多级群结构,包括:基础群角色和子群角色;所述基础群角色执行整体群任务;所述子群角色执行子任务。

进一步的,所述群角色执行引擎,包括:

群角色派发模块,用于周期性从群任务事件队列中接收最高优先级的事件,并基于所述事件所需启动的角色信息和当前无人群体的资源约束进行群角色分配;

群角色管理器模块,用于维护无人平台群角色的信息,包括:群角色实例的创建、启动、暂停、继续和销毁。

进一步的,所述群角色派发模块包括:普通节点派发单元和群体主节点派发单元;

所述普通节点派发单元用于:当接收到平台角色算法插件发出的事件请求时,基于所述事件需要启动的角色调用群角色资源管理器生成角色动态匹配信息,并将所述角色动态匹配信息和事件请求上报给群体主节点,若事件产生新的子群,还将其所携带通信设备信息发送给群体主节点;还用于根据群体主节点发送的消息利用本平台处理过程修改本地事件状态;还用于基于群体主节点的群角色分配结果启动相应角色;

所述群体主节点派发单元用于:当群体主节点接收到的事件请求后,如果所述群体主节点为子群的群体主节点且所述事件需要产生新的子群时,将所述事件上报至基础群的群体主节点,基于基础群的群体主节点调用角色分配算法完成群角色的初始分配,然后启动子群生成算法,基于分配的群角色产生新的子群,并将所述分配结果发送至所述新的子群群体内所有节点;否则,所述群体主节点调用角色分配算法完成群角色分配,并将所述分配结果发送至群体内普通节点;

其中,执行群任务的基础群/子群包括群体主节点和普通节点;所述事件队列包括事件状态:所述事件状态包括全局事件状态和本地事件状态;所述群体主节点由分布式选举算法产生或在群体构建时直接指定。

进一步的,所述角色分配算法包括:

调用群内主节点算法启动主节点处理过程修改全局事件状态,同时向群体内普通节点发送所述事件的查询消息;并根据所述普通节点获取群体内所有无人平台在资源约束条件下可承担的平台角色列表及其所携带的通信设备信息,进而根据事件信息、群体内无人平台可承担角色列表信息基于角色匹配算法完成群角色的分配。

进一步的,所述角色匹配算法包括:

对于待启动角色列表中的每一个平台角色,计算无人平台执行该平台角色的权重;

基于所述权重采用广度优先匹配算法,选择执行所述任务的无人平台并指定所述平台所应承担的角色。

进一步的,所述子群生成算法包括:

基础群的群体主节点基于分配的群角色及所述群角色对应的平台组成通信网络的连通情况,

基于所述连通情况构建无向图,其中所述无向图的顶点即为无人平台节点,边即为平台间通信连接;

若已选出的所有平台在所述无向图中存在两两连接,则根据所述无向图的最小生成树得到连接各节点的边,确定各节点在该子任务群体中所使用的通信设备;

若存在不连通的平台,则针对基础群通信网络所对应的无向图求解可将事件处理所选择出的无人平台节点成功连接的steiner最小树问题,进一步得到中继无人平台节点,并得到各节点在该子任务群体中所使用的通信设备;

根据所述已选出的平台或者根据所述已选出的平台和中继无人平台节点确定产生的子群中的各平台节点,及其所使用的通信设备,并为所述子群设定通信域;

其中,各平台的通信设备包括多个,连接各平台的边为基于相同通信设备的通信连接。

进一步的,所述主节点处理过程包括:

收到事件请求后,将事件状态设置为正在处理状态;

经过设定时长后:如果所述事件处理成功后,则所述事件处于运行中状态;如果所述事件依然在处理,则将所述事件的状态修改为处理超时,等待其他事件结束后被激活,再次跳转为正在处理状态;如果所述事件处理失败,则将所述事件的状态修改为待处理,等待其他事件结束后被激活,再次跳转为正在处理状态;

当所述事件处于运行中状态时,经过设定时长后:如果所述事件处理结束,则所述事件的状态修改为运行结束,该事件处理完成;如果所述事件依然在运行,则所述事件的状态修改为运行超时,该事件处理完成;如果所述事件运行失败,则所述事件的状态修改为运行失败,该事件处理完成;

其中,所述全局事件状态包括:正在处理、待处理、处理超时、已处理、运行中、运行结束、运行超时和运行失败。

进一步的,所述利用本平台处理过程修改本地事件状态,包括:

收到任务引擎开始处理事件后,将事件状态设置为正在处理状态;

经过设定时长后:如果所述事件处理成功且本节点参与时,则所述事件处于运行中状态;如果所述事件处理成功且本节点不参与时,则所述事件处于已处理状态,所述事件处理完成;如果所述事件依然在处理,则将所述事件的状态修改为处理超时,等待其他事件结束后被激活,再次跳转为正在处理状态;如果所述事件处理失败,则将所述事件的状态修改为待处理,等待其他事件结束后被激活,再次跳转为正在处理状态;

当所述事件处于运行中状态时,经过设定时长后:如果所述事件被其他高优先级事件挂起时,则所述事件的状态修改为运行暂停,等待所述其他高优先级事件结束后被唤醒,返回正在处理状态;如果所述事件处理结束,则所述事件的状态修改为运行结束,该事件处理完成;如果所述事件依然在运行,则所述事件的状态修改为运行超时,该事件处理完成;如果所述事件运行失败,则所述事件的状态修改为运行失败,该事件处理完成;

其中,所述本地事件状态包括:正在处理、待处理、处理超时、已处理、运行中、运行结束、运行超时和运行失败。

进一步的,所述群角色实例包括:群角色名称、群角色所执行的任务/子任务名称、群角色当前状态、群角色通信域信息、群角色组织模式、群角色组织结构管理器和群角色中父群及子群关系信息;

其中,所述群角色当前状态包括:初始化状态、正常状态和睡眠状态,其中,无人平台上某一时刻最多只能有一个群角色处于正常状态;

所述群角色中父群及子群关系信息包括:基础群和子群。

进一步的,所述群角色资源管理器包括:平台角色资源需求的配置与解析模块、平台角色资源代理模块和资源管理模块;

平台角色资源需求的配置与解析模块,用于基于xml文件提供平台角色资源需求和平台资源规范描述方法;并基于所述平台角色资源需求和平台资源规范描述方法实现对平台角色资源需求和平台资源的解析;

所述资源管理模块,用于基于资源文件存储当前无人平台的资源约束信息;

平台角色资源代理模块,用于基于所述平台角色所需资源和本平台的资源约束进行匹配并存储匹配结果。

进一步的,所述资源管理模块,具体用于:

根据所述群角色派发模块分配结果启动相应平台角色所需的资源;

接收来自平台角色资源代理模块的查询请求,对当前资源状态进行查询;

根据平台角色资源代理模块用于根据角色派发模块提出的,管理的请求返回资源信息;

进一步的,所述资源信息包括:资源包括:传感器和控制器;所述资源约束包括:当前群体内各无人平台所具有的资源信息及角色对于资源的使用情况。

本发明的有益效果为:

(1)为了更贴近无人系统协同任务管理方法,本发明提供了一种基于群角色的异构群体无人系统协同任务管理系统,包括:群角色执行引擎、群角色资源管理器、群角色通信管理及消息收发模块;群角色资源管理器:用于管理平台角色资源需求、资源约束信息;还用于基于所述平台角色资源需求和资源约束进行角色动态匹配;群角色通信管理及消息收发模块:用于基于群角色定义群内通信域,创建各群使用的通信通道,对同一通信域内不同通信通道间消息进行转发,并提供消息收发接口;群角色执行引擎:用于基于参与的任务、所述群角色资源管理器提供匹配结果,完成群角色的分配派发和维护;还用于基于所述群角色通信管理及消息收发模块提供的通信通道和通信域分配子群角色通信通道和通信域;其中,所述任务包括整体任务和多个子任务;所述群角色支持多级群结构,包括:基础群角色和子群角色;所述基础群角色执行整体群任务;所述子群角色执行子任务;支持以群角色为单元进行群体协同任务的管理,使得子群也具有较强的自主性和独立任务执行能力,使操作系统具备同时管理多个执行不同子任务的自主异构群体无人系统的能力,提高异构群体无人系统的可拓展性和灵活性,提高群体协同任务开发的便利性和开发效率;

(2)提供一种基于群角色派发的群角色引擎,该机制面向用户提供事件驱动的群任务描述文件格式,并且能自动解析该描述文件,实现任务驱动的异构群体无人系统子群动态创建、启动和销毁等过程,支持群体无人系统不同层级的任务协同;

(3)提供平台角色资源需求与平台资源的描述和匹配机制,使得操作系统具备合理运用群体无人系统的有限异构资源完成任务的能力;

(4)提供面向群体进行通信资源分配的机制,使得操作系统用户可根据任务需求动态为不同群体选择不同通信资源、配置不同通信域,从而降低或消除群体之间的通信耦合,减少基础群与子群之间的非必要通信开销,增强异构群体无人系统在复杂通信条件下的适应性、鲁棒性和任务完成能力。

(5)提供基于通信域的消息接口方法,使得平台角色的开发无需面向特定的通信设备或通信接口,实现平台角色在不同群体内可重用。

附图说明

图1本发明提供的一种基于群角色的异构群体无人系统协同任务管理系统结构框图;

图2框架示意图;

图3两级群结构及运行时群角色列表;

图4基于xml文件格式的任务描述文件示例;

图5平台本机事件处理流程;

图6群体主节点事件处理过程;

图7本地事件状态转换关系图;

图8全局事件状态转换关系图;

图9平台角色算法插件资源需求配置示意图;

图10无人平台资源配置描述示意图;

其中,图3中实心菱形和实心圆形均表示无人平台,其中菱形表示主节点,圆形表示普通节点。

具体实施方式

针对如何实现机器人和无人系统的智能行为管理与群体自主协作提供模型、框架和支撑这个问题,提出基于群角色的异构群体无人系统协同任务管理系统。角色是micros的基本调度单元,可以采用现有技术将角色要实现的功能由插件进行定义,不同的角色可以绑定一个或多个不同的插件,形成插件组,运行不同的算法,从而实现不同的功能,利如:视觉传感器插件、距离传感器插件、触觉传感器插件(烟感)等,而无人平台则通过扮演不同的角色完成不同的任务。为了避免歧义,在之后的说明中由单个无人平台扮演的角色统一表述为“平台角色”。本发明专利将群体协同任务的执行行为进一步抽象为“群角色”,将群角色作为异构群体无人系统协同任务中调度和执行的单元,便于群体协同任务的管理和开发。

面向复杂任务环境,异构群体无人系统需要将群体协同任务动态分解为若干个同时进行的子任务,子任务的执行由子群(一个或多个无人平台)来完成,因此群体协同任务管理框架需要支持同时对多个子群的任务执行行为进行管理;不同群体协同任务对群体内无人平台的需求以及平台所带传感器载荷需求不同,携带不同传感器载荷的无人平台可以扮演的平台角色也不尽相同,因此需要根据不同无人平台的本体特性(携带传感器等载荷的情况)以及平台上传感器等载荷的运行状态,进行角色的合理分配;异构无人平台所携带的通信设备也有所不同,异构群体无人系统需要根据子任务需求及平台通信设备情况,进行群体通信资源管理,即为各子群分别分配不同的信道,实现子群内部各角色之间相互通信,以支持通信资源的高效利用和信息的高效传递。因此,设计异构群体无人系统在有限资源约束下的群体协同任务管理方法和框架,从而帮助机器人操作系统用户快速开发异构群体无人系统应用。

为了更好地理解本发明,下面结合说明书附图和实例对本发明的内容做进一步的说明。

实施例1:

面向异构群体无人系统自主协同执行多任务的需求,考虑不同群体协同任务对载荷能力的需求不同及群体无人系统传感器资源的异构性,考虑不同群体协同任务对通信能力需求不同及群体无人系统通信资源的异构性,以群体智能机器人操作系统micros的角色机制为基础,本发明提供一种基于群角色的异构群体无人系统协同任务管理系统,如图1所示,包括:群角色执行引擎、群角色资源管理器、群角色通信管理及消息收发模块;

群角色资源管理器:用于管理平台角色资源需求、资源约束信息;还用于基于所述平台角色资源需求和资源约束进行角色动态匹配;

群角色通信管理及消息收发模块:用于基于群角色定义群内通信域,创建各群使用的通信通道,对同一通信域内不同通信通道间消息进行转发,并提供消息收发接口;

群角色执行引擎:用于基于参与的任务、所述群角色资源管理器提供匹配结果,完成群角色的分配派发和维护;还用于基于所述群角色通信管理及消息收发模块提供的通信通道和通信域分配子群角色通信通道和通信域;

其中,所述任务包括整体群任务和多个子任务;所述群角色支持多级群结构,包括:基础群角色和子群角色;所述基础群角色执行整体群任务;所述子群角色执行子任务。

本发明提供的技术手段,如图2所示,主要由群角色派发模块、群角色管理器模块、资源管理模块、平台角色资源需求配置与解析模块、平台角色资源代理模块、群角色通信管理及消息收发模块六个模块组成。所提供的群体协同任务管理方法可以有效提高群体自主任务协同及组织时的灵活性,提高异构资源的管理效率和群体无人系统不同层级的任务协同能力。下面,首先介绍群角色概念及其在两级群结构的运用,然后从群角色执行引擎、面向群角色的资源管理和面向群角色的通信资源管理三个方面介绍本发明提供的技术方案。

(1)群角色概念及面向两级群结构的运用

本发明专利基于群体智能机器人操作系统micros,在平台角色的基础上,对异构群体无人系统的协同行为进一步抽象,设计群角色。对比平台角色,平台角色是无人平台任务执行的行为,群角色则是群体无人系统协同任务执行的行为。群角色也是群体无人系统协同任务中调度和执行的单元。换个角度,为了驱动一个无人平台参与群体协同任务,可以通过在该无人平台上创建相应的群角色来实现。一般情况下,无人平台在参与执行群体协同任务的过程中,仅有一个群角色处于运行状态,而群角色的类型可以是集中式、分布式或者混合式的。

面向复杂任务环境,异构群体无人系统需要将群体协同任务动态分解为若干个同时进行的子任务,子任务的执行由子群(一个或多个无人平台)来完成,因此群角色需要支持多级群结构。此处以两级群结构为例,包括基础群和子群。其中,基础群是指参与任务的所有无人平台构成的群。群体无人系统在接收到群体任务指令后在所有参与任务的无人平台上创建一个群角色来管理整个群体的协同,这个群角色也称为基础群角色。当基础群中某个无人平台被指派参与执行某个子任务时,该无人平台会自主完成由基础群角色向相应子任务对应的子群角色切换,之后由子群角色来管理该无人平台的群体协同行为。当子任务完成后,无人平台上运行的群角色可以由子群角色自主切换回基础群角色,从而实现由子群返回到基础群中,或者子群在任务完成后直接返回。两级群结构及运行时群角色列表如图3所示。

群角色的运行通过群角色执行引擎来驱动,而群角色执行引擎则通过解析群任务描述文件来获取群角色的组成,在事件触发下驱动群体协同任务的自主执行。群任务描述文件主要包含群任务执行过程中因外部环境感知、任务状态变化等因素触发的事件以及事件的处理方法。采用xml文件格式表述的任务描述文件如图4所示。

其中:

events标签中包含了群任务中需要处理的事件;

event标签标明事件名称(event_a)、事件优先级(1);

process标签标明事件处理方式,其中包括是否产生新的子群、是否需要子群各平台角色同步切换、事件处理超时时间、事件导致的子任务运行超时时间,其中actor标签标明所需启动的平台角色名称和数量(如示例图中需启动2个actor_a平台角色,1个actor_b平台角色)

postprocess标签标明事件所导致的子任务运行之后的处理方式,其中的finish、timerexpire及failure标签分别标明若子任务运行结束、超时及失败所需启动的平台角色(如示例图中子任务结束后启动actor_c平台角色,超时则启动actor_d平台角色而子任务失败则需启动actor_e平台角色)

可见,任务描述文件较为清晰而完整的表述了群体协同任务执行过程中各类事件的处理方法。

(2)群角色执行引擎

群角色执行引擎的基础模块包含群角色派发模块和群角色管理模块。群角色执行引擎可以在这两个模块基础上扩展其他控制结构,例如状态机、包容模型、行为树、规则引擎等,支持更为复杂的群体协同任务。

a.群角色派发模块

群角色派发模块处理群任务执行过程中所产生的事件,根据群任务描述和当前无人平台群体的资源约束进行群角色的分配。本发明专利提出了一种集中式的群角色派发方法,群角色派发采用主从式的工作方式,主节点由分布式选举算法产生或在群体构建时直接指定,主节点不会被所在群体派发新的群角色。由主节点的群角色派发模块发起群角色需求,由其他非主节点的群角色派发模块应答,非主节点的群角色派发模块并不直接处理触发群角色派发的事件,而是将该事件上报给主节点来完成。举例来说,无人平台群体中某一无人平台发现目标时,相应的平台角色算法插件会发出事件消息,给出目标标识等信息,该无人平台的群角色派发模块在收到事件消息后,会进行相应的预处理,然后将事件消息发送至群体内的主节点;主节点在收到事件消息后,通过群体内的一轮交互过程获取群体内所有无人平台在资源约束条件下可承担的平台角色列表及其所携带的通信设备信息,进而根据事件信息、群体内无人平台可承担角色列表等信息完成群角色的分配;之后主节点将处理结果发送至群体内其他相应无人平台的群角色派发模块,完成平台角色以及群角色的切换。这里资源约束包括:当前群体内各无人平台所具有的资源信息及角色对于资源的使用情况等。

1)一次事件处理过程

平台角色所包含的插件根据外部环境感知信息及任务状态信息等发出事件,群角色派发模块接收事件后,参照群任务描述文件,根据当前任务状态进行运行时处理。为区分可能存在的多个同类型事件,具体事件中还包含例如目标id等标识信息。一次事件处理过程可分为无人平台本机处理以及群体主节点处理两部分,由两端相互配合协调完成。

平台本机处理流程:平台本机接收到算法插件发出的事件后,针对事件所需要启动的角色调用角色资源代理模块进行动态资源匹配,将事件信息及角色资源匹配信息发送至群体主节点,角色资源匹配信息包含根据资源情况确定的该平台可承担哪些角色等信息,若事件需产生新的子群则所发送消息中还包含平台上可用的通信设备信息;之后平台节点等待主节点返回处理结果并根据该返回结果启动相应角色及修改事件处理状态。本机处理流程图如图5。

群体主节点处理流程:群体主节点接收到新的事件请求后进入其在主节点端的处理流程,主节点向群体内其他节点发送该事件相关查询消息,该查询消息包含事件名称、目标id等标识信息,其他节点收到查询消息后判断该事件是否已处理并回复,若是,则不再回复,若否,则按照本机处理过程进行处理。群体主节点接收到群体内所有平台的回复消息后,根据其中所包含的角色资源匹配信息进行角色匹配算法,以选择出执行子任务的各无人平台并指定其所应承担的角色,也即由此确定由何无人平台启动何平台角色,若事件不产生新的子群,则直接将事件处理结果(角色派发信息)发送至各平台。

前述角色匹配算法具体步骤如下:

i)对于待启动角色列表中的每一个平台角色,计算无人平台执行该平台角色的权重,权重计算方法如下:

weight=(1+matchedweight)*(isneedswitch?1:2)/无人平台正在执行的平台角色个数;

也就是说,如果无人平台需要切换其他平台角色,那么则降低该无人平台节点的分配权重;如果无人平台正在执行的平台角色越多,那么该无人平台节点的分配权重越小;

ii)采用广度优先匹配算法,对每个平台角色分配无人平台,优先分配执行该角色权重最大的无人平台节点;如果出现资源冲突,那么沿着冲突关系查找增广路径,然后调整匹配边。

若事件需产生新的子群,则需根据已选出的平台组成通信网络的连通情况决定是否需要为已选出的子群节点指定中继节点,进而确定子群内各节点通信所使用的通信设备并为其指定通信域。其方法为首先判断经前述角色匹配得到的无人平台组成的通信网络的连通性,为此将通信网络建模为无向图,图中顶点即为无人平台节点,边即为平台间通信连接,若两无人平台载有相同的通信设备则认为二者间存在一条通信连接,与之对应的边的权值与通信连接的可用带宽等因素相关,可用带宽越大则其权值越小。通信网络的连通性即为其对应无向图的连通性,若连通,则求解图的最小生成树得到连接各节点的边,也即得到各节点在该子任务群体中所使用的通信设备。若不连通,则针对基础群通信网络所对应的无向图求解可将事件处理所选择出的无人平台节点成功连接的steiner最小树问题,得到中继无人平台节点以及各节点(包含执行子任务无人平台节点及中继节点)在该子群中所使用的通信设备。执行任务无人平台及中继无人平台共同组成子群执行相关子任务。图的最小生成树问题较为简单,存在成熟的求解方法如prim算法及kruskal算法等,而steiner最小树问题为np难问题,但存在基于最小生成树算法思想的启发式求解方法,可实现较高的求解效率。自此,子群通信域中各平台节点及其所使用的通信设备已确定,最后为其指定唯一标识等属性信息。群体主节点事件处理过程如图6所示。

2)事件状态转移及事件队列

为有效管理和控制事件处理过程,为事件设置状态并根据事件处理流程设计其状态转移过程,事件状态名称及其含义如表1所示。对应于事件的平台本机处理过程及群体主节点处理过程,事件状态包含本地事件状态及全局事件状态,本地事件状态及全局事件状态的转换分别如图7、8所示。

表1事件状态及其含义

受群体无人系统资源及外部环境的不确定性等因素的约束和限制,使得事件处理可能失败或超时,或者有些子任务因高优先级事件而被暂时挂起。为此将待处理事件、因资源约束而未能成功处理事件、处理超时事件、挂起事件等加入到事件队列,群角色派发模块周期性从任务队列中取出最高优先级事件进行处理。

3)子群事件处理及上报过程

子群具有一定的独立性,具有自身单独的通信域、群组织结构及部分事件处理能力。按照事件所导致的子任务的独立性可将其分为需产生子群的事件和无需产生子群的事件,为避免多层次群体结果所导致的效率问题及通信压力,考虑群任务实际需求,设定在子群内只处理无需产生子群的事件,其处理方法和流程与前述群体内事件处理方式相同,只是限制在本子群内部。将因资源限制无法处理的事件及需产生子群的事件经由子群主节点上报至基础群主节点进行处理。

群角色派发模块是本发明专利所提方法和框架的核心模块,与平台角色资源代理模块、平台角色调度模块、群角色管理器模块及群角色通信管理及消息收发模块等均有交互。群角色派发模块通过与平台角色资源代理模块交互以获取角色资源匹配信息;通过与平台角色调度模块交互以实现无人平台所扮演的平台角色调度和切换;通过与群角色管理器模块交互以实现群角色的创建、启动、暂停、继续、销毁等功能并获取群体相关信息;通过与群角色通信管理及消息收发模块交互以实现通信通道、通信域的创建和管理以及相关消息的发送和接收。群角色派发模块通过与其他模块的相互协作以驱动复杂群体协同任务的自主执行。

b.群角色管理器模块

群角色管理器模块主要负责无人平台所属群角色的信息维护,提供群角色实例的创建、启动、暂停、继续、销毁等功能方法。群角色实例是群体在操作系统中的具体实现和表示,包括群角色名称、群角色所执行的群体任务(或子任务)名称、群角色当前状态、群角色通信域信息、群角色组织模式、群角色组织结构管理器、群角色中父群及子群关系信息等内容。其中群角色当前状态分为初始化状态、正常状态及睡眠状态,无人平台上某一时刻最多只能有一个群角色处于正常状态,表示无人平台正在执行的群体任务;群角色通信域信息包含群角色内信息传递所使用的通信域相关信息;群角色组织模式分为集中式和分布式两类;对应于群角色组织模式,群角色组织结构管理器也分为集中式和分布式两类,对于集中式群角色组织结构管理器,各无人平台通过发送和接收心跳数据以表明自己仍在群体内以及判断其他节点是否仍在群体内,通过选举方法选举出群体主节点进行群体管理并处理群体内的事件,而对于分布式群角色组织管理器,并不对群体进行严格管理;群角色父群及子群信息表明群体之间的层次关系,具体是指前述“基础群”和“子群”两层父子关系。

群角色管理器模块提供群角色实例的创建、启动、暂停、继续及销毁等功能,具体地,在群体任务开始执行前,群角色管理器创建群角色实例(包括其中所包含的各部分内容),启动其中群角色组织结构管理器,将群角色实例置为正常状态,群体任务开始执行。在群体任务执行过程中遇到某些事件产生子任务,则由群角色管理器模块创建子群,将子群的父群设置为之前所在的群体,启动子群的群角色组织结构管理器并暂停原来的群角色组织结构管理器,将子群角色实例置为正常状态,并将原来的父群角色实例置为睡眠状态,子任务开始执行。子任务执行结束后,暂停该子群角色的群角色组织结构管理器,继续父群的群角色组织结构管理器,将父群角色实例置为正常状态并销毁该子群。

群角色管理器模块为群角色派发模块提供群角色实例的创建、启动、暂停、继续及销毁等接口方法,群角色派发模块通过调用相应方法实现对于群角色实例的操作及其状态的更改。群角色管理器模块还向群角色派发模块提供群体信息查询接口方法以向群角色派发模块提供群体相关信息(如群角色状态、群角色组织管理器相关信息等)。群角色管理器模块通过群角色通信管理及消息收发模块提供的接口方法完成群组织管理相关消息的发送和接收。

(3)面向群角色的资源管理机制

群角色执行引擎在群角色派发过程中需要确定哪些平台可承担哪些角色等信息,为了确保这一过程能由无人平台自动完成,一方面设计角色资源需求和平台资源的规范描述方法,支持这些信息的程序自动解析,另一方面设计相应的模块支持两者的匹配。

a.平台角色资源需求的配置与解析模块

在开发平台角色算法插件的过程中,开发者通过插件的xml文件对不同平台角色算法插件的资源需求进行描述,如图9所示,代码中的<resource>标签部分,<sensor>为传感器标签,其中name为传感器名称,num为传感器所需传感器个数,weight为传感器需求重要性权重,exclusive为对传感器资源的占用方式,“true”为独占,表示平台角色独自占有此传感器,“false”为共享占用,表示此传感器可以被多个平台角色共享使用。

平台角色资源需求解析模块进而通过pluginloader获取插件xml的路径,从而可获取该xml文件并解析出自定义的标签,存储插件对传感器的需求信息。

b.无人平台资源管理模块

通过yaml文件对无人平台的传感器、控制器等资源配置情况进行描述,如图10所示,资源配置需要描述的信息包括传感器/控制器名称<name>、数量<num>以及数据消息的话题名称<topics>,由于一个平台可能会配置多个相同的传感器,因此我们提供了在程序中动态修改话题名称的支持。资源管理模块在启动之初,会解析yaml文件,存储无人平台资源列表情况,并根据群角色派发模块要求,启动相应平台角色所需的传感器或控制器。在任务执行的过程中,资源管理模块会根据任务和平台角色的切换,在维护的资源列表中注册/删除相应的平台角色。

同时,资源管理模块还会接收来自平台角色资源代理模块的查询请求,对当前资源状态进行查询,通信交互采用client-server机制,平台角色资源代理模块向资源总线请求服务,资源总线返回服务结果。当平台角色资源代理模块向资源管理模块请求资源状态等信息时,资源管理模块会返回资源名称、id、当前运行状态、占用id列表等信息。

c.平台角色资源代理模块

平台角色资源代理模块主要负责与平台角色插件、资源管理模块、群角色派发模块进行交互,获取并存储平台角色插件的资源需求、无人平台资源列表与状态,进行平台角色与资源匹配并存储匹配结果(无人平台可承担的平台角色列表)。

在与平台角色资源需求配置与解析模块的交互方面,平台角色资源代理模块获取并存储不同平台角色的资源需求列表;在与资源管理模块的交互方面,平台角色资源代理模块会通过client-server机制,向资源管理模块发送请求,对当前资源状态进行查询,并对查询结果进行相应的存储;在与群角色派发模块的交互方面,平台角色资源代理模块会向群角色派发模块提供当前无人平台可承担的平台角色列表,群角色派发模块根据任务和资源约束,进行群角色和平台角色的派发。

(4)面向群角色的通信资源管理机制

面向群角色的通信资源管理机制通过群角色通信管理及消息收发模块实现,主要负责群角色内通信资源管理并提供消息收发接口,包括创建通信域、通信通道、发布者和订阅者的接口方法、消息发布接口方法以及消息订阅回调函数方法。跨域异构群体无人系统中各平台由于所属类型及挂载能力的差异,通常搭载有一个或多个不同的通信设备,使得部分平台节点间难以直接通信。该模块实现对于异构通信设备及通信方式的统一封装,提供通信通道基类,拥有相同通信通道的无人平台可直接通信,通过将应用数据在不同通信通道间进行主动转发实现信息在异构群体中的传递。

例如,当需要新建由平台a、b、c、d构成的子群时,对于平台a搭载有通信设备t1和t2,平台b搭载有通信设备t2和t3,平台c搭载有通信设备t2和t4,平台d搭载有通信设备t5,那么平台a、b和c具有相同的通信通道t2,可以基于通信设备t2实现直接通信,但是平台d不能直接与a、b、c通信,因此可以借助基础群中的平台e(搭载有t2和t5)实现a、b、c、e基于t2通信,e、d基于t5进行通信,以实现群内应用数据在不同通信通道间进行主动转发实现信息在异构群体中的传递,因此新建的子群就由a、b、c、d和e构成。

群任务执行过程中通常需要多个无人平台组成小群体执行子任务,如前述的执行整个群任务的群体称为“基础群”,而将执行子任务的小群体称为“子群”,“群体”则泛指“基础群”或“子群”。群体内无人平台间大部分信息共享发生在该群体内部,为不同群体定义不同的通信域以表明该群体内部通信的逻辑边界。群角色通信管理及消息收发模块管理通信资源,为各通信域分配其所使用的通信通道,并且提供创建通信域的接口方法。

群角色通信管理及消息收发模块提供通信域内的消息收发功能,提供创建消息发布者、订阅者及消息发布的接口方法,消息发布者、订阅者与通信域相关联,用户(包括平台角色插件等)或其他模块通过调用创建发布者或订阅者的接口方法完成发布者或订阅者的创建,并通过调用消息发布接口方法实现消息的发布,通信域内的所有订阅者将可接收到该消息。平台角色的开发可基于本模块提供的前述接口方法,而无需面向特定的通信设备或通信接口,在简化平台角色开发的同时实现平台角色在不同群体中可重用。

群角色通信管理及消息收发模块为其他模块(群角色派发模块和群角色管理器模块)提供创建通信通道、通信域、发布者和订阅者的接口方法,接收群角色派发模块和群角色管理器模块的待发送数据,将其通过相应通信域的通信通道发送出去,接收到其他无人平台的通信消息后将信息反馈至群角色派发模块和群角色管理器模块。

群角色通信管理及消息收发模块中基于通信域和应用数据转发的方法与计算机网络中不同网络间以桥接方式进行数据转发的主要区别在于:通信域与群角色相关联,而群角色是由群任务产生,随着群任务的运行而改变,有着鲜明的群任务特点和动态特性,通信域内传递和共享的数据主要是与任务相关的应用数据,数据的转发则发生在应用层而非传统网络的链路层等更低层次,数据主动转发的选择性和目的性更强。主要优势在于通信域与群任务相关联,一方面使得操作系统用户可根据任务需求动态为不同群体选择不同通信资源、配置不同通信域,从而支持不同的群组织模式,另一方面可以根据任务需求降低或消除不同群体之间的通信耦合,从而增强异构群体无人系统在复杂通信条件下的适应性和任务完成能力。

现有技术中也有基于角色执行无人系统协同任务,但是,执行任务的角色一般为平台角色基于平台本身的事件执行任务,对角色的管理也是针对各平台进行的,没有基于群统一管理,即使有的现有技术中存在群管理的设定,但是也没有为群内各群角色建立专门的通信域和通信通道,例如申请号201911309557.2发明名称为:一种基于角色状态机的群体无人系统协同任务管理子系统,虽然也提供了角色,但是本发明的群角色引擎和该申请群组织管理器区别在于:本发明的子群可为集中式或分布式,子群可包含异构角色,子群可不回归父群;另外本发明接收事件进而根据资源匹配和子群需求选择哪些平台切换,而该专利则从接收状态机请求中判断哪些平台切换,同时由于本发明是基于群角色协同处理任务,因此本发明的事件的描述和后处理过程也与该专利状态机事件不同。因此本发明更贴近无人系统协同任务管理方法,而本发明提供的异构群体无人系统协同任务管理方法和框架,支持以群角色为单元进行群体协同任务的管理,使操作系统具备同时管理多个执行不同子任务的自主异构群体无人系统的能力,提高异构群体无人系统的可拓展性和灵活性,提高群体协同任务开发的便利性和开发效率。

显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。

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