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

一种基于云边端计算的机器人规则实时计算方法和装置

文献发布时间:2024-04-18 19:59:31


一种基于云边端计算的机器人规则实时计算方法和装置

技术领域

本发明涉及机器人自动化控制技术领域,具体涉及一种基于云边端计算的机器人规则实时计算方法和装置。

背景技术

机器人(Robot)是一种能够半自主或全自主工作的智能机器。机器人能够通过编程和自动控制来执行诸如作业或移动等任务,被广泛应用于医疗行业、教育行业、地铁巡检以及生产生活各方面。

机器人行为控制是指通过计算机程序控制机器人做出不同的反应或动作。机器人行为控制需要根据机器人感知到的环境信息,决定机器人下一步应该采取的行动,这些行动包括运动、抓取物体等。机器人行为控制的发展,正朝着更加灵活和高效的方向发展。现在,一些机器人已经可以进行自主性决策,并能够在复杂环境中进行任务执行。例如,在医疗领域中,机器人可以执行手术操作,或协助医生进行病情诊断等。

在机器人行为控制领域,近年来的一个重要发展方向是深度强化学习。深度强化学习是指通过深度神经网络结合强化学习算法,进行智能机器人的控制,这种方法能够帮助机器人更好地适应复杂环境,并能更加高效地执行各种任务。

目前机器人行为控制还多依赖于规则约束进行控制,但是机器人的行为受到各种动态变化的环境、状态、逻辑控制因素引导,这样会导致冗余复杂的系统,和反复的机器人设计逻辑。因此,对于一种机器人设计系统,需要针对这些问题设计一种能够与机器人决策系统独立的机器人功能子系统。该方法的先进性在于:能够实现通过伪代码的方式表达复杂的规则,提供实时、响应式的规则计算、提供长期的规则计算记录系统和线上追踪系统。

机器人系统是一个复合多种功能模块的总体工程,每个模块中均涉及到条件、阈值判断以及逻辑分支的选择问题。目前,规则计算放置在各个模块中独自处理,但根据目前机器人云脑端的研发过程来看,这样处理具有以下问题:计算散乱无约束;存在权限和安全隐患;大量重复计算的规则;规则计算不够直观,问题难以追踪。

发明内容

本发明的目的是提供一种基于云边端计算的机器人规则实时计算方法和装置,能够实现机器人整体系统的高效传输和发送,实现实时机器人运行状态与规则的监控,实现机器人的高效信息处理。

为实现上述发明目的,实施例还提供了一种基于云边端计算的机器人规则实时计算装置,包括可视化模块、计算模块、事件模块以及存储模块;

所述可视化模块用于提供规则和事件的编辑功能,并将编辑的规则数据和事件数据于存储模块中存储,还用于展示规则计算结果和事件发送结果;

所述存储模块用于存储规则数据、事件数据以及规则计算结果;

所述计算模块用于从存储模块中读取规则数据,并通过实时获取的特征数据进行规则计算得到规则计算结果;

所述事件模块用于从存储模块中读取事件数据,并确定事件的发送信道,在获得规则计算完成时且达到发送事件的条件时,被计算模块触发后依据事件的发送通道发送事件,该事件携带规则计算结果。

优选地,所述事情是一种规则通知机制,每个事件与规则绑定,一个规则绑定至少一个事件,事件按照默认绑定次序,在被规则触发后发出,每个事件被定义为包括事件名称、存储了触发规则的机器人实时数据的数据表和发送信道。

优选地,所述事件通过基于信道的事件传输机制进行事件发送,其中,事件传输机制包括:

同一规则触发的事件队列只能在一个信道中传输,外接机器人仅对应一个信道,且在对应的信道上监听传输事件;

在传输时,事件ID作为唯一的规则标志符,由外接机器人和规则简述构成,且还包括事件参数,该事件参数携带规则计算结果。

优选地,规则数据包括一个规则树列表和规则节点列表,所述规则树为嵌套结构,表示当前规则应用了其他规则,规则树拥有逻辑符号表示规则计算结果的组合逻辑;

每个规则树还拥有规则节点,每个规则节点对应一个规则,且用于存放规则的计算表达式,每个规则用于唯一的名称和ID,通过逻辑符号连接不同规则的ID形成规则树。

优选地,所述机器人规则实时计算装置基于规则引擎实现,所述规则引擎包括服务接口层、规则与事件map,数据库、管理模块、调度器、线程池与通信协议模块;

所述服务接口层用于前端调用或主动调用,包括:事件与规则的查询、修改、创建、删除,主动触发规则计算,获取实时规则计算结果,获取事件的发送记录,切换规则的计算状态;

所述规则与事件map内存有规则事件实例并相互引用;

所述数据库用于长期存储规则、事件、日志、计算备份;

所述管理模块用于提供权限访问约束,控制引擎中规则的运行和暂停,增删改查规则和事件;

所述调度器用于调度规则的计算时机;

所述线程池用于抽象CPU的计算资源并进行规则计算;

所述通信协议模块用于将绑定的事件发送到使用方或者将规则计算结果同步到特征管理平台。

优选地,所述实时计算装置基于规则引擎实现的规则计算与事件调用通知的流程包括:

录入事件:按照事件定义注册事件,注册的事件被保存到存储模块的数据库中,并形成事件队列;

录入规则:按照规则定义注册规则,注册的规则被保存到存储模块的数据库中;

规则引擎监听特征平台的特征数据更新;

按照规则的轮询周期依次从规则队列中提取规则,或在监测特征数据更新时从规则队列中提取规则;

对获得规则进行判断,并在从特征平台读取特征数据时,进行规则计算得到计算结果,存储该计算结果到存储模块或者特征平台;

当规则绑定事件时,在满足绑定规则的触发条件后将数据表打包,并将事件进入事件队列;

监听方从事件队列中获得时间后执行事件对应规则的响应策略。

优选地,在规则计算时,按照不同规则轮训时间,将规则分组,每组设定定时器,当定时器到期后触发一组规则的实时更新计算。

优选地,对于规则计算,在限定深度的情况下,使用深度遍历方式遍历转化为规则树并记录。

优选地,所述规则树被存储为json数据结构。

为实现上述发明目的,实施例还提供了一种基于云边端计算的机器人规则实时计算方法,所述方法采用基于云边端计算的机器人规则实时计算装置,包括以下步骤:

利用可视化模块编辑规则和事件,并将编辑的规则数据和事件数据于存储模块中存储,还展示计算结果和事件发送结果;

利用存储模块存储规则数据和事件数据;

利用计算模块从存储模块中读取规则数据,并通过实时获取的特征数据进行规则计算得到计算结果;

利用事件模块从存储模块中读取事件数据,并确定事件的发送信道,在获得规则计算完成时且达到发送事件的条件时,被计算模块触发后依据事件的发送通道发送事件,该事件携带规则计算结果。

与现有技术相比,本发明具有的有益效果至少包括:

基于定义的规则和事件,实时调整、可见、快速响应的规则计算体系,以及自主可用事件广播通道,将机机器人复杂感知、判定、行为树分支等需求从现有的机器人控制和决策理论体系中分离出来,实现高效、智能的系统决策。

附图说明

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

图1是实施例提供的基于云边端计算的机器人规则实时计算装置的结构示意图;

图2是实施例提供的规则引擎的功能示意图;

图3是实施例提供的事件定义示意图;

图4是实施例提供的规则定义示意图;

图5是实施例提供的规则引擎执行流程图;

图6是实施例提供的规则计算过程;

图7是实施例提供的复合规则的计算过程;

图8是实施例提供的基于云边端计算的机器人规则实时计算方法的流程图。

具体实施方式

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

本发明的发明构思为:针对现有机器人系统中,各模块的规则计算单独处理,存在计算散乱无约束,规则计算不够直观,问题难以追踪的技术问题,本发明提供了一种基于云边端计算的机器人规则实时计算方法和装置,为现有的机器人控制和决策理论体系,将机器人复杂感知、判定、行为树分支等需求从中分离出来,实现能够实时调整、可见、快速响应的规则计算体系,提供自主可用事件广播通道。还能够实现快速响应行为树判决分支决策,作为一种能够替代行为树数据交换背板。

基于上述发明构思,实施例提供的一种基于云边端计算的机器人规则实时计算装置如图1所示,包括可视化模块、计算模块、事件模块以及存储模块,其中,可视化模块提供规则在线观测、配置和管理功能,具体提供规则和事件的编辑功能,即用户可以通过可视化模块编写、查看以及修改规则数据和事件数据,并将编辑的规则数据和事件数据于存储模块和/或内存缓存中存储,还用于展示规则计算结果和事件发送结果。

存储模块用于存储规则数据和事件数据,还用于存储缓存部分时间内的规则实时计算结果,其包含一个数据库,基于数据库存储这些数据,同时还存储整个系统的日志数据。

计算模块用于从存储模块中读取规则数据,并通过实时获取的特征数据进行规则计算得到规则计算结果。具体地,可以定时或周期性规则计算,还可以基于特征数据更新的触发规则计算。

事件模块用于从存储模块中读取事件数据,并确定事件的发送信道,在获得规则计算完成时且达到发送事件的条件时,被计算模块触发后依据事件的发送通道向规则监听方发送事件,该事件携带规则计算结果。

上述实施例提供的机器人规则实时计算装置基于规则引擎实现,该规则引擎可以使用java语言开发,使用spring框架作为网络通信引擎,如图2所示,包括服务接口层、规则与事件map,数据库、管理模块、调度器、线程池与通信协议模块。

服务接口层提供restful模式的引擎访问机制,用于前端调用或主动调用,包括:事件与规则的查询、修改、创建、删除,主动触发规则计算,获取实时规则计算结果,获取事件的发送记录,切换规则的计算状态,该计算状态包括运行、暂停以及调用。

规则与事件map内存有规则事件实例并相互引用,映射举例包括:A规则触发的事件由e1、e2、e3组成,E事件被绑定的规则由A、E、F组成,规则A即将触发的事件有e1、e3,打包参数为params1。

数据库用于长期存储规则、事件、日志、计算备份。在存储模块的数据库中,规则和事件通过设定的数据结构存储,该结构直接按照字符模式保存。每次规则计算独立保留计算参数、状态日志,保存为文件记录再本地。计算备份保存在内存中,对于每个规则保留近n次的规则计算结果,其中,n可以取10。

管理模块用于提供权限访问约束,控制引擎中规则的运行和暂停,增删改查规则和事件。具体包括引擎使用用户权限约束,对于用户而言,只能修改自己创建的规则、事件,只能主动触发自己创建的规则。

调度器用于调度规则的计算时机。具体负责每个规则计算的时机,分为触发式、轮询式、休眠式,休眠时规则无论如何不被计算;触发式是当与规则计算有关的参数发生变更时计算一次规则,轮询式是每隔一段时间,定期触发规则计算,每个规则的轮询时间不同(可以是5毫秒、10毫秒、20毫秒、50毫秒、100毫秒、1秒这些区间)。

线程池用于抽象CPU的计算资源并进行规则计算。实施例中,默认使用核心线程大于20的计算机支撑计算,线程池占用计算机50~80%的计算资源。

通信协议模块用于将绑定的事件发送到使用方或者将规则计算结果同步到特征管理平台。其中,通信协议属于信令消息协议,单次发送数据量小于10KB;通信协议包含但不限于任何Lot物联网通信协议与互联网协议,例如mqtt、rabbitMq、websocket等;通信协议中参数传递由机器人ID、参数ID和参数实体构成;通信协议中事件参数传递由机器人ID、事件ID、事件信道和事件实体构成。

实施例中,为每个机器人定义一个事件,该事件的格式包括事件名称、数据表和发送信道。每个事件是一种规则通知机制,事件会携带关键信息给监听者,用来在第一时间知晓规则的执行情况。为了方便规则引擎使用方快速使用事件,避免重复创建事件,规则引擎提供若干基础事件(例如电量通知、机器人状态切换等),可直接引用。事件需要绑定到规则才可以被触发,即每个事件与规则绑定,一个规则绑定至少一个事件,事件按照默认绑定次序,在被规则触发后发出,对于接收端提供保证事件发送顺序的通信服务和不保证事件发送顺序的服务。

实施例中,事件通过基于信道的事件传输机制进行事件发送,其中,事件传输机制包括:同一规则触发的事件队列只能在一个信道中传输,避免多信道造成的事件重复接收;外接机器人仅对应一个信道,且在对应的信道上监听传输事件,这样可以保证事件传输隔离的机制下,高效传输;在传输时,事件ID作为唯一的规则标志符,由外接机器人和规则简述构成;且还包括事件参数Event Content,表示一个事件生成实例并发送时携带的数据,具体该事件参数包括机器人ID、事件ID、事件信道和事件实体,事件实体中包括规则计算结果。

图3给出了事件定义示意图,举例说明,一个触发主动迎宾的事件ID定义为event_activive_welcome,信道为/welcome,特征列表features为,humans、robotPos、gazeNum,事件实体为{type:’fast’},表示快速迎宾。

实施例中,定义的规则通过数据结构存储,可以使用json数据结构,并不限于任意一种能够表达树形结构的数据类型。每个规则数据结构中,JSON参数表示规则ID、运行状态、绑定的机器人ID,用来区分不同机器人。

规则数据结构包括一个规则树列表ruleTrees和规则节点列表condList,如图4所示,规则树为一个嵌套结构,表示当前规则应用了其他规则,规则树拥有逻辑符号表示规则计算结果的组合逻辑。每个规则树还拥有规则节点,每个规则节点对应一个规则,且用于存放规则的计算表达式,每个规则用于唯一的名称和ID,通过逻辑符号连接不同规则的ID形成规则树。

规则树按照json的格式存储到数据库中,用作备份,当规则引擎启动时,读取规则树到内存中按照键值对存储,形成一个规则队列,按照规则定义的刷新频率读取每条规则,计算服务会通过规则树的遍历访问规则树每个计算表达式,根据计算表达式计算出结果,再通过逻辑符号合并计算结果,逐层向树的上层传递计算结果,实现快速的判断和计算。其中,计算表达式包括条件表达式,条件表达式用于某个遍历的条件判断。每个规则具有一个机器人列表robotIds,表示规则能够支持的所有机器人编号,在规则判断时,只有列表中的机器人发出的参数或触发的规则才回生效。

为了能够清晰的表达规则引擎的运行方式,实施例还提供了规则计算与事件调用通知的流程,如图5所示,具体包括:

(1)录入事件:按照事件定义注册事件,例如注册一个机器人行为树事件,使用事件ID为event_btree,注册的事件被保存到存储模块的数据库中,并形成事件队列;

(2)录入规则:按照规则定义注册规则,例如注册规则为rule_hello(说你好),规则表达式设计为特征human.size(机器人看到的人数量)大于1时触发规则,注册的规则被保存到存储模块的数据库中;

(3)规则引擎监听特征平台的特征数据更新,例如规则引擎收到特征human.size发生变化,判断是否大于1,不满足条件时跳过,满足条件则触发事件event_btree;

(4)按照规则的轮询周期依次从规则队列中提取规则,或在监测特征数据更新时从规则队列中提取规则;这个过程表示了规则引擎按照规则计算间隔获取各个规则实例.

(5)对获得规则进行判断,如果规则作为叶子节点,则进行递归式规则计算与合并,并在从特征平台读取特征数据时,进行规则计算得到计算结果,存储该计算结果到存储模块或者特征平台;例如规则rule_hello,计算结果为true,存储到特征平台。

(6)当规则绑定事件时,在满足绑定规则的触发条件后将数据表打包,并将事件进入事件队列;

并将事件进入事件队列,准备在信道/welcome实时发送;

(7)监听方机器人从事件队列中获得时间后执行事件对应规则的响应策略。对于规则rule_hello,满足条件触发事件event_btree,并由事件处理模块接收,机器人说话“hello”。

需要说明的是,特征平台是一个在线的数据记录和缓存服务,提供实时动态的数据存取服务。

实施例中,还定义流规则计算方法。目前承载业务使用单机计算,使用CPU密集计算的服务器承载规则引擎计算服务。该服务创建线程池对每条规则进行独立计算,充分使用计算资源。如图6所示,按照不同规则轮训时间,将规则分组,每组设定定时器,当定时器到期后触发一组规则的实时更新计算。对于规则计算,在限定深度的情况下,使用深度遍历的方式遍历转化为json的规则树,将结果进行记录,如图7所示。

基于同样的发明构思,实施例还提供了一种基于云边端计算的机器人规则实时计算方法,方法采用上述基于云边端计算的机器人规则实时计算装置,如图8所示,包括以下步骤:

步骤1,利用可视化模块编辑规则和事件,并将编辑的规则数据和事件数据于存储模块中存储,还展示计算结果和事件发送结果;

步骤2,利用存储模块存储规则数据和事件数据;

步骤3,利用计算模块从存储模块中读取规则数据,并通过实时获取的特征数据进行规则计算得到计算结果;

步骤4,利用事件模块从存储模块中读取事件数据,并确定事件的发送信道,在获得规则计算完成时且达到发送事件的条件时,被计算模块触发后依据事件的发送通道发送事件,该事件携带规则计算结果。

上述实施例提供的一种基于云边端计算的机器人规则实时计算方法和装置,拥有自主决策与行为树,任务管理与调度,提供事件触发机制,具备统一的权限管理,统一的计算平台,高效实时的计算处理能力,可视化的结果呈现和日志追踪,能够实现机器人整体系统的高效传输和发送,实现实时机器人运行状态与规则的监控,实现机器人的高效信息处理。

以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

相关技术
  • 一种用于提高粒子植入针轴向精度的限位装置
  • 一种造纸毛毯针刺机用高精度的针梁与针板结构
  • 一种双修饰微针电极及其制备方法和血糖微针电化学传感器电极
  • 一种高精度脑机接口微针植入装置
  • 一种植入式微针的辅助装置及微针植入系统
技术分类

06120116523946