本发明涉及巡检机器人控制,具体涉及一种用于巡检机器人的自主任务编排调度系统及方法。
背景技术:
1、巡检机器人作为一种自动化设备,广泛应用于工业生产、环境监测等领域。目前机器人巡检有几类常用的模式:全站巡检、例行巡检和特殊巡检等。全站巡检是指对检测场地内所有已录入的有效测点进行周期性的全量巡检,也是一种较为常见的巡检方式,不需要人工干预,每天定时定点的重复执行;例行巡检是指通过人工方式选择指定的某些测点加入巡检任务,周期性的执行例行巡检操作;而特殊巡检是指针对某些可能存在隐患的测点,选择测点让机器人执行一次性的巡检任务。
2、传统的巡检机器人控制方法存在着复杂性高、可扩展性差等问题。在一些电力、煤矿等无人巡检场景下,需要巡检的各种设备是基于场内(变电站、煤炭厂)固定的电力设备,前期部署配置后后期很少变更,其执行过程也很少需要人参与,完全自主化进行巡检。
3、目前给巡检机器人下发巡检任务一般是通过上层集控平台等进行任务配置和选择,传统的派发方式,是上层系统通过http传输json格式的任务数据给机器人任务系统,然后由调度系统进行对任务进行分解处理,分解后的各种任务数据再传递给任务执行模块,最后任务执行模块将各个任务传递给机器人各种传感器,并接收传感器数据进行汇总巡检数据,其原理如图1所示。
4、采用上述传统的巡检任务派发机制,发现会有如下缺点:
5、问题1:使用上述流程派发任务,每新增一个巡检任务或者修改一个巡检任务,需要在上层系统中进行编辑修改,人工参与度高,灵活性差;
6、问题2:上述流程执行期间,对于业务处理大量使用状态机机制,当执行内容需要在多个状态中执行时,各个状态下都需要放置执行内容的逻辑,当业务逻辑代码分散在各处时就不太好维护了,特别是对于复杂的机器人系统,并且状态机难以脚本化和可视化;
7、问题3:巡检任务需求千变万化,巡检需求也百花齐放,不同场景下的巡检任务往往需要重新开发与适配,对上层系统的兼容性和复用性有很大限制;
8、问题4:上层系统在编辑修改各种巡检任务的时候,可视化程度不高,没法直观的进行编辑修改,几乎完全是文字形式进行处理,容易出错。
技术实现思路
1、发明目的:本发明目的在于针对现有技术的不足,提供一种用于巡检机器人的自主任务编排调度系统及方法,高稳定性、高性能、高扩展性和高度可视化的巡检任务编排、调度过程人机交互方式,解决了巡检任务可视化和交互的高度自由。
2、技术方案:本发明所述用于巡检机器人的自主任务编排调度系统,应用层,运行有集控平台和可视化工具,所述集控平台用于下发巡检任务,所述可视化工具包括任务编排工具和调度引擎工具;
3、业务层,运行有任务编排模块和调度系统,且分别通过所述任务编排工具、调度引擎工具进行可视化操作,所述任务编排模块用于接收所述集控平台下发的巡检任务,通过所述任务编排工具将巡检任务转换为所述调度系统能够处理的编排文件;所述调度系统包括编排解析模块、任务分解模块、调度引擎模块和数据收集模块,所述编排解析模块获取所述任务编排模块转换后的编排文件,将编排文件解析为用于描述多个巡检任务的动作树,然后传输至所述任务分解模块;所述任务分解模块按照巡检任务拆分动作树,生成每个巡检任务的树结构并传递给所述调度引擎模块;所述调度引擎模块用于遍历每个巡检任务的树结构,控制巡检机器人按照树结构执行动作;
4、硬件层,包括巡检机器人搭载的传感器,经所述数据收集模块将传感器采集的数据传输至所述调度引擎模块,所述调度引擎模块上传至所述可视化工具进行展示。
5、进一步完善上述技术方案,所述巡检任务为json格式数据结构,所述任务编排模块将json格式数据结构转换为xml格式的编排文件,所述xml格式的编排文件通过树形结构数据进行表达。
6、进一步地,所述树形结构数据包含n个巡检任务对应的树结构,每个树结构包括任务根节点、动作组节点、动作叶子节点,所述任务根节点对应巡检任务设置,每个任务根节点下级包含一个或若干个动作组节点,每个动作组节点下级包含一个或若干个动作叶子节点,所述动作叶子节点用于生成控制指令以控制巡检机器人执行动作,接收巡检机器人执行动作后的反馈数据。
7、进一步地,所述调度引擎模块编排巡检任务的过程包括:依次编排n个巡检任务的树结构,按照编排顺序执行巡检任务;或在依次编排的基础上,通过优先级设定,插入优先级更高的巡检任务,暂停当前正在执行的巡检任务,执行优先级更高的巡检任务。
8、进一步地,所述动作组节点嵌套有若干个子动作组节点,所述子动作组节点包含一个或若干个动作叶子节点。
9、进一步地,每个动作组节点或子动作组节点下级的所述动作叶子节点具有串行或并行的动作属性,所述子动作组节点的动作属性能够继承父级的动作组节点,或采用自定义的动作属性。
10、进一步地,在所述树结构中,采用深度优先原则,查询当前优先级最高的动作组节点,与当前正在执行的动作组节点比较优先级,若相同,执行当前动作组节点下级的动作叶子节点,若不同,则将当前动作组节点修改为查询到的动作组节点,执行查询到的动作组节点下级的动作叶子节点。
11、进一步地,每组动作组的执行过程中,按照调度引擎、任务根节点、动作组节点、动作叶子节点进行遍历后再依次返回到上层的调度引擎,其中,根据动作组节点属性确定动作叶子节点的遍历方式,若动作属性为串行,该动作组节点下级的第一个动作叶子节点遍历完成后,依次返回动作组节点、任务跟节点、调度引擎,再进行该动作组节点下级第二个动作叶子节点的遍历,若动作属性为并行,遍历完该动作组节点下级所有的动作叶子节点后,再返回动作组节点、任务跟节点、调度引擎。
12、进一步地,每个动作叶子节点的执行过程均采用有限状态机模型,动作叶子节点的状态机能够自定义若干个状态,每个状态对应有处理函数,状态之间根据定义的业务逻辑切换,在每个巡检任务中,根据定义的逻辑,多次遍历进入状态机,每次遍历切换不同状态,直到最终状态为执行完成。
13、采用上述用于巡检机器人的自主任务编排调度系统进行巡检机器人自主任务编排调度的方法,包括如下步骤:
14、接收集控平台下发的格式的巡检任务信息;
15、将接收到的巡检任务信息解析成xml格式编排文件,形成包含n个巡检任务的树形结构数据,所述树形结构数据包括:xml根节点actiontree,其属性有id和name,id代表节点唯一编号,name代表该节点名称;任务根节点task,其属性有id和name,id代表节点唯一编号,name代表该节点名;动作组节点item,其属性有id、 name和parallel,id代表节点唯一编号,name代表该节点名,parallel属性代表其下的动作叶子节点是同步执行还是异步执行;动作叶子节点action,其属性有id、action和param,id代表节点唯一编号,action属性代表执行动作的类名,param属性代表执行该动作需要传入的参数列表;
16、读取树形结构数据,按照巡检任务进行拆分,构建每个巡检任务对应的动作树,包括任务根节点、动作组节点和动作叶子节点;
17、依次遍历n个巡检任务对应的动作树,每个动作树的遍历过程按照调度引擎、任务根节点、动作组节点进行,根据动作组节点的动作属性对其下级的动作叶子节点进行遍历后再依次返回到上层的调度引擎,若动作属性为串行,该动作组节点下级的第一个动作叶子节点遍历完成后,返回到上层的调度引擎,再进行该动作组节点下级第二个动作叶子节点的遍历;若动作属性为并行,遍历完该动作组节点下级所有的动作叶子节点后,再返回到上层的调度引擎;
18、根据动作叶子节点生成的控制指令控制巡检机器人执行动作,接收巡检机器人执行动作后的反馈数据。
19、进一步地,每个动作叶子节点均采用有限状态机模型,每次遍历都会返回一种状态,最终状态为执行完成,执行过程中能够自定义若干个状态,每个状态对应有处理函数,状态之间切换根据定义的业务逻辑。
20、有益效果:与现有技术相比,本发明的优点在于:本发明基于动作树的树性结构组织业务逻辑处理单元,具有稳定可靠、扩展性强、可视化清晰等优点,任务编排模块和调度系统分别通过所述任务编排工具、调度引擎工具进行可视化操作,解决了巡检任务可视化和交互的高度自由;采用xml格式的编排文件,任务编排或者新增任务只需要编辑编排文件即可,主体代码无需改动,扩展性、灵活性高,对于各种巡检场景兼容性极高;编排文件格式完全自定义,能提高解析稳定性和安全性。所有任务的编排和调度可在不修改代码情况进行全部展示,可视化程度高。调度引擎工具的可视化方便人机交互,能够全局掌控机器人巡检的自动化过程。创新性的将树结构和状态机有机的结合起来了,使得各自的优先发挥到最大。