第8卷第5期 智能系统学报 VoL.8 No.5 2013年10月 CAAI Transactions on Intelligent Systems 0ct.2013 D0:10.3969/j.issn.1673-4785.201210067 网络出版地址:http://www.cnki.net/kcms/detail/23.1538.TP.20130929.1042.002.html 水下机器人任务流程建模与管理 张鸿皓,姜大鹏,庞永杰,李金龙 (哈尔滨工程大学智能水下机器人技术国防科技重点实验室,黑龙江哈尔滨150001) 摘要:为实现水下机器人任务流程的快速建模与自动管理,通过改进传统的工作流理论,提出了一种实用的任务 流程模型一任务工作流.介绍了作为任务工作流理论基础的传统Ptm网及工作流模型,指出了原有理论的缺陷并 介绍了任务工作流的基本理论.以任务工作流模型为基础,实现了一款任务流程管理系统,为其定义了完善的图形化 建模手段与标准的文本化的描述语言,并建立了一套担负着运行时任务管理工作的核心应用程序,能够实现任务的 描述与建模、自动运行与管理,以及任务流程的动态更改实践表明,任务工作流建模简单快捷、方便编程实现,是机 器人任务建模与管理的理想工具. 关键词:工作流:任务工作流;任务流程管理:Ptri网:水下机器人 中图分类号:TP301.1文献标志码:A文章编号:1673-4785(2013)05-0433-06 中文引用格式:张鸿皓,姜大鹏,庞永杰,等.水下机器人任务流程建模与管理[J].智能系统学报,2013,8(5):433-438. 英文引用格式:ZHANG Honghao,JIANG Dapeng,PANG Yongjie,etal.Workflow modeling and management on AUV[J].CAAl Transactions on Intelligent Systems,2013,8(5):433-438. Workflow modeling and management on AUV ZHANG Honghao,JIANG Dapeng,PANG Yongjie,LI Jinlong (State Key Laboratory of Autonomous Underwater Vehicle,Harbin Engineering University,Harbin 150001,China) Abstract:In order to implement fast modeling and automatic management of the task flow for the autonomous under- water vehicle (AUV),a practical task flow model named "task workflow",has been proposed to improve the tradi- tional workflow theory.In this paper,the traditional Petri net and workflow model as the theoretical basis of the task workflow are briefly introduced,the defects of the original theory are pointed out and the basic theory of the task workflow is introduced;with the task workflow model as the basis,a task flow management system is realized,the perfect graph modeling means and standard text description language are defined,and a set of core application pro- grams undertaking the task management in the operation are established.The programs may realize task description and modeling,automatic operation and management and the dynamic amendment of task flow.Past experience has shown that task workflow is easy for modeling and programming,and it is an ideal tool for task modeling and man- agement. Keywords:workflow;task workflow;task flow management;Petri net;AUV 自主机器人的作业流程总是可以在某一层次上实现,但针对体现高度智能的宏观任务流程的描述 划分成多个子过程.宏观的过程可以由子过程、子过 与自动管理,尚缺乏成熟的理论和实例, 程的发生次序以及决定这种次序的条件构成.人们 自治式水下机器人由于工作环境与人隔绝,特 创造了各式各样的规则,用来描述和管理自然发生 别需要一套能完整表述任务规划者意愿,并能交由 或人为控制的过程.应用在机器人上的作业流程主 计算机自动执行管理的理论模型及实用化的方法: 要体现人的智能(操控者或机器本身的智能).在机 传统的Petri网和工作流模型虽能部分解决上述问 器人相关领域内,对机器细微动作的精确控制早已 题,但多少存在建模困难、编程实现复杂及描述能力 受限等问题),尚未出现一套成功而方便实用的解 收稿日期:2012-10-31.网络出版日期:2013-09-29 基金项目:国家自然科学基金资助项目(51209051):中国博士后科学 决方案 基金资助项目(2012M520708):中央高校基本科研业务费 任务工作流模型较大幅度地改进了传统的工作 专项基金资助项目(HEUCFR1203). 通信作者:张鸿皓.E-mail:zhh094@126.com. 流理论,在增强了模型描述能力的同时,也大幅简化
第 8 卷第 5 期 智 能 系 统 学 报 Vol.8 №.5 2013 年 10 月 CAAI Transactions on Intelligent Systems Oct. 2013 DOI:10.3969 / j.issn.1673 ̄4785.201210067 网络出版地址:http: / / www.cnki.net / kcms/ detail / 23.1538.TP.20130929.1042.002.html 水下机器人任务流程建模与管理 张鸿皓ꎬ姜大鹏ꎬ庞永杰ꎬ李金龙 (哈尔滨工程大学 智能水下机器人技术国防科技重点实验室ꎬ黑龙江 哈尔滨 150001) 摘 要:为实现水下机器人任务流程的快速建模与自动管理ꎬ通过改进传统的工作流理论ꎬ提出了一种实用的任务 流程模型———任务工作流.介绍了作为任务工作流理论基础的传统 Petri 网及工作流模型ꎬ指出了原有理论的缺陷并 介绍了任务工作流的基本理论.以任务工作流模型为基础ꎬ实现了一款任务流程管理系统ꎬ为其定义了完善的图形化 建模手段与标准的文本化的描述语言ꎬ并建立了一套担负着运行时任务管理工作的核心应用程序ꎬ能够实现任务的 描述与建模、自动运行与管理ꎬ以及任务流程的动态更改.实践表明ꎬ任务工作流建模简单快捷、方便编程实现ꎬ是机 器人任务建模与管理的理想工具. 关键词:工作流ꎻ任务工作流ꎻ任务流程管理ꎻPetri 网ꎻ水下机器人 中图分类号:TP301.1 文献标志码:A 文章编号:1673 ̄4785(2013)05 ̄0433 ̄06 中文引用格式:张鸿皓ꎬ姜大鹏ꎬ庞永杰ꎬ等.水下机器人任务流程建模与管理[J]. 智能系统学报ꎬ 2013ꎬ 8(5): 433 ̄438. 英文引用格式:ZHANG Honghaoꎬ JIANG Dapengꎬ PANG Yongjieꎬ et al. Workflow modeling and management on AUV[J]. CAAI Transactions on Intelligent Systemsꎬ 2013ꎬ 8(5): 433 ̄438. Workflow modeling and management on AUV ZHANG Honghaoꎬ JIANG Dapengꎬ PANG Yongjieꎬ LI Jinlong (State Key Laboratory of Autonomous Underwater Vehicleꎬ Harbin Engineering Universityꎬ Harbin 150001ꎬ China) Abstract:In order to implement fast modeling and automatic management of the task flow for the autonomous under ̄ water vehicle (AUV)ꎬ a practical task flow model named “task workflow”ꎬ has been proposed to improve the tradi ̄ tional workflow theory. In this paperꎬ the traditional Petri net and workflow model as the theoretical basis of the task workflow are briefly introducedꎬ the defects of the original theory are pointed out and the basic theory of the task workflow is introducedꎻ with the task workflow model as the basisꎬ a task flow management system is realizedꎬ the perfect graph modeling means and standard text description language are definedꎬ and a set of core application pro ̄ grams undertaking the task management in the operation are established. The programs may realize task description and modelingꎬ automatic operation and management and the dynamic amendment of task flow. Past experience has shown that task workflow is easy for modeling and programmingꎬ and it is an ideal tool for task modeling and man ̄ agement. Keywords:workflowꎻ task workflowꎻ task flow managementꎻ Petri netꎻ AUV 收稿日期:2012 ̄10 ̄31. 网络出版日期:2013 ̄09 ̄29. 基金项目:国家自然科学基金资助项目(51209051)ꎻ中国博士后科学 基金资助项目(2012M520708)ꎻ中央高校基本科研业务费 专项基金资助项目(HEUCFR1203). 通信作者:张鸿皓. E ̄mail: zhh094@ 126.com. 自主机器人的作业流程总是可以在某一层次上 划分成多个子过程.宏观的过程可以由子过程、子过 程的发生次序以及决定这种次序的条件构成.人们 创造了各式各样的规则ꎬ用来描述和管理自然发生 或人为控制的过程.应用在机器人上的作业流程主 要体现人的智能(操控者或机器本身的智能).在机 器人相关领域内ꎬ对机器细微动作的精确控制早已 实现ꎬ但针对体现高度智能的宏观任务流程的描述 与自动管理ꎬ尚缺乏成熟的理论和实例. 自治式水下机器人由于工作环境与人隔绝ꎬ特 别需要一套能完整表述任务规划者意愿ꎬ并能交由 计算机自动执行管理的理论模型及实用化的方法. 传统的 Petri 网和工作流模型虽能部分解决上述问 题ꎬ但多少存在建模困难、编程实现复杂及描述能力 受限等问题[1] ꎬ尚未出现一套成功而方便实用的解 决方案. 任务工作流模型较大幅度地改进了传统的工作 流理论ꎬ在增强了模型描述能力的同时ꎬ也大幅简化
·434· 智能系统学报 第8卷 了模型的复杂度,能以图形化方式建模并方便地转 定了任务路由的一些重要条件实际是无法在Petri 换为计算机可以理解的文本描述方式,为理论模型 网中直接表示的,它需要对Ptmi网进行扩展,使标 的编程实现提供了良好的条件.在此理论基础上构 记和网路能够携带和处理更多的环境信息.环境信 建的水下机器人任务建模与管理系统已经过实践检 息的获取和处理往往相当抽象和复杂,通常只能由 验,能为复杂逻辑流程的快速建模与自动管理提供 高级程序语言编程实现.如果要用Petri网来描述, 极大的便利. 由于Petri网过于严谨和形式化,将不得不增加一系 列的扩展,增加了网系统的复杂程度,使得建模和理 1 Petri网 解都变得更加困难。 Petri网由表示状态的元素“库所”(place)和表 Petri网只描述事物间的依赖关系,没有更高层 示变化的元素“变迁”(transition)组成.联系S和T 的控制流程和其他的人为因素影响,更适合用来描 的是两者间的流关系,用F表示.库所可以容纳标记 述符合自然规律的自然过程.然而水下机器人作为 (token),标记代表网路中流动的资源,资源的流动 人类智能乃至机器智能的执行者,其作业过程无疑 由流关系规定.Petri网结构是固定的,而库所中标记 更接近人为过程.故虽然有人将Petri网引入水下机 的分布是可变的,标记因变迁而形成的不同分布表 器人的任务管理,但描述和理解困难,不易编程实 征了Petri网的不同状态, 现,不适合作为抽象任务的建模工具 水下机器人的任务建模并不困难,只需用到 Petri网的基本概念[3】,如图1及表1中的例子 2工作流模型 所示 工作流模型是对工作业务过程的抽象表示.工 作流的应用通常需要完成业务过程的计算机化,其 模型不仅要让人(不仅是专家,还包括普通用户)容 易读懂,也必须让计算机能够理解。 在库所与变迁的基础上,为了定义出顺序、并 行、选择、循环等常用的过程逻辑,工作流网构造了 相应的结构化组件,为其规定了特殊的符号,供用户 在建模时直接使用[.每一组件均可给出对应的 Peti网建模方法:1)顺序:2)并行,它需要2个基本 图1水下机器人任务示例(Petri网) 的工作流执行原语:“与分支”(AND_split)和“与连 Fig.1 An example of AUV task flow (Petri net) 接”(AND_join),也可将其当做特殊的任务. AND_split能同时发起多个任务,而AND_join能对多 表1库所与变迁的含义 个并行的流程进行同步:3)选择,根据具体的执行情 Table 1 Meanings of places and transition 况进行“多选一”或“多选多”,构造选择路由需要“或 库所含义 变迁含义 分支”(OR_split)和“或连接”(OR_join):4)循环. S:任务开始 T,:AUV布放 对于AND_split、AND_join、OR_split、OR_join这 S2:布放结束 T2:(成功)驶向目标区域 样经常使用的结构,采用图2中特定的符号来表示. S:向目标航行结束 T3:(失败)返回回收位置 S4:重规划成功 T,:(成功)执行作业任务 S:作业任务结束 T,:目标点改变,重新规划 S。:到达回收位置 T。:无法到达目标区,返航 S,:回收完成 T,:作业任务重规划 T,:作业结束,返航 T,:正常回收 T。:回收出现问题或长时间未 反应,紧急上浮 T:加载新的任务指令 图1中的一些库所会产生冲突,例如当S,得到 图2工作流逻辑构件 一个标记时,T2、T,不能同时发生.解决冲突的办法 Fig.2 Logical components of workflow 是由环境提供信息,决定由谁来占用资源所以,决
了模型的复杂度ꎬ能以图形化方式建模并方便地转 换为计算机可以理解的文本描述方式ꎬ为理论模型 的编程实现提供了良好的条件.在此理论基础上构 建的水下机器人任务建模与管理系统已经过实践检 验ꎬ能为复杂逻辑流程的快速建模与自动管理提供 极大的便利. 1 Petri 网 Petri 网由表示状态的元素“库所” (place)和表 示变化的元素“变迁” ( transition) 组成.联系 S 和 T 的是两者间的流关系ꎬ用 F 表示.库所可以容纳标记 (token)ꎬ标记代表网路中流动的资源ꎬ资源的流动 由流关系规定.Petri 网结构是固定的ꎬ而库所中标记 的分布是可变的ꎬ标记因变迁而形成的不同分布表 征了 Petri 网的不同状态. 水下机器人的任务建模并不困难ꎬ只需用到 Petri 网的基本概念[2 ̄3] ꎬ如图 1 及表 1 中的例子 所示. 图 1 水下机器人任务示例(Petri 网) Fig.1 An example of AUV task flow (Petri net) 表 1 库所与变迁的含义 Table 1 Meanings of places and transition 库所含义 变迁含义 S1 :任务开始 T1 :AUV 布放 S2 :布放结束 T2 :(成功)驶向目标区域 S3 :向目标航行结束 T3 :(失败)返回回收位置 S4 :重规划成功 T4 :(成功)执行作业任务 S5 :作业任务结束 T5 :目标点改变ꎬ重新规划 S6 :到达回收位置 T6 :无法到达目标区ꎬ返航 S7 :回收完成 T7 :作业任务重规划 — T8 :作业结束ꎬ返航 — T9 :正常回收 — T10 :回收出现问题或长时间未 反应ꎬ紧急上浮 — T11 :加载新的任务指令 图 1 中的一些库所会产生冲突ꎬ例如当 S2得到 一个标记时ꎬT2 、T3不能同时发生.解决冲突的办法 是由环境提供信息ꎬ决定由谁来占用资源.所以ꎬ决 定了任务路由的一些重要条件实际是无法在 Petri 网中直接表示的ꎬ它需要对 Petri 网进行扩展ꎬ使标 记和网路能够携带和处理更多的环境信息.环境信 息的获取和处理往往相当抽象和复杂ꎬ通常只能由 高级程序语言编程实现.如果要用 Petri 网来描述ꎬ 由于 Petri 网过于严谨和形式化ꎬ将不得不增加一系 列的扩展ꎬ增加了网系统的复杂程度ꎬ使得建模和理 解都变得更加困难. Petri 网只描述事物间的依赖关系ꎬ没有更高层 的控制流程和其他的人为因素影响ꎬ更适合用来描 述符合自然规律的自然过程.然而水下机器人作为 人类智能乃至机器智能的执行者ꎬ其作业过程无疑 更接近人为过程.故虽然有人将 Petri 网引入水下机 器人的任务管理ꎬ但描述和理解困难ꎬ不易编程实 现ꎬ不适合作为抽象任务的建模工具. 2 工作流模型 工作流模型是对工作业务过程的抽象表示.工 作流的应用通常需要完成业务过程的计算机化ꎬ其 模型不仅要让人(不仅是专家ꎬ还包括普通用户)容 易读懂ꎬ也必须让计算机能够理解. 在库所与变迁的基础上ꎬ为了定义出顺序、并 行、选择、循环等常用的过程逻辑ꎬ工作流网构造了 相应的结构化组件ꎬ为其规定了特殊的符号ꎬ供用户 在建模时直接使用[4] . 每一组件均可给出对应的 Petri网建模方法:1)顺序ꎻ2)并行ꎬ它需要 2 个基本 的工作流执行原语:“与分支” (AND_split)和“与连 接” ( AND _ join )ꎬ 也 可 将 其 当 做 特 殊 的 任 务. AND_split能同时发起多个任务ꎬ而 AND_join 能对多 个并行的流程进行同步ꎻ3)选择ꎬ根据具体的执行情 况进行“多选一”或“多选多”ꎬ构造选择路由需要“或 分支”(OR_split)和“或连接”(OR_join)ꎻ4)循环. 对于 AND_split、AND_join、OR_split、OR_join 这 样经常使用的结构ꎬ采用图 2 中特定的符号来表示. 图 2 工作流逻辑构件 Fig.2 Logical components of workflow 434 智 能 系 统 学 报 第 8 卷
第5期 张鸿皓,等:水下机器人任务流程建模与管理 ·435· 图3中的例子与图1中的流程大体相似s.尽 态之一,2种状态可分别指向不同的后继任务: 管保留了库所、标记等元素,但它并不使用复杂的路 4)任务间的依赖关系F可分为2类:发起一个 径、资源的冲突等技巧来表达逻辑上的意义,而是用 尚未执行的任务,或终止一个正在执行的任务 固有的逻辑组件来构造路由,将Petri网构造的逻辑 模型中只存在任务极其依赖的关系,虽然没有 结构隐藏在逻辑组件之下. 库所和标记这样的元素,但类似的功能已被整合到 任务中默认情况下任何任务必须等到所有前驱任 开始 结束 务全部结束才能执行,相当于AND_join型:任务结 航行到目标区 紧急 束后其对应的所有后继流程也都会被执行,相当于 上浮 回收 AND_split型.其他的逻辑关系,如OR_split和OR_ 到达目标区 长时间 join,将由特殊的任务来实现.不同之处在于区分出 未到达 AND_split未反应 了“成功”和“失败”2种互斥的结束状态,且流关系 目标区 也包括“发起”和“终止”2种.对任务首尾逻辑结构 返航 的处理不像Petri网那样显式地建模表示,而是用一 开始 采集 个“工作流管理程序”来进行管理,这在编程实现时 作业 数据 更加方便, 任务工作流有自己的图形语言,如图4所示,所 OR join 有任务采用相同的图形样式.任务图形的头部可接 作业 作业 纳多个前驱任务:图形的尾部分成2个区域,空白的 完成 ☑AND join 一半表示执行成功,带叉的一半表示执行失败,从2 个区域流出的箭头分别代表了2种状态下任务工作 流网不同的路径.水下机器人任务流程中最为常见 的成功或失败的分支流程在这里成为任务的内置属 图3任务示例(工作流模型) 性实箭头表示发起一个尚未运行的任务,虚箭头表 Fig.3 Example of AUV task flow workflow) 示终止一个正在运行的任务.网络中的每个任务都 虽然Petri网能够构造出一些精妙而准确的逻 有惟一的名称(称之为标号,以“#”开头),同类型的 辑结构,但在多数时候,这种极其苛求洞察力和智力 不同任务的名称也必须不重复.每个任务都有内置 的建模方式并不适合面向普通人的、需要迅速作出 的超时值,默认情况下其值为无穷大,超时后任务会 灵活更改的任务建模.与经典的Petri网相比,工作 被判定为失败,网路流程转向其失败后的路由. 流模型更灵活,更接近人类语言和人抽象的思维方 式.但同时,由于缺乏标准、精确和成熟的理论基础, 虽然市面上的工作流模型及基于工作流的应用软件 任务采用 实线箭头 统一的图 表示发起 种类繁多,但每种模型都或多或少存在明显的缺陷, 形样式 一个任务 例如OR_join任务同步时出现的逻辑问题等,尚 虚线箭头 成功 失败 表示终止 未见到理论上完美的解决方案[).然而总的说来,在 一个任务 适当的改进和处理之后,工作流模型能够更好地服 务于机器人抽象任务建模。 终止一个任 3任务工作流 务,指向任 发起一个任 务中部 务,指向任 任务工作流由工作流模型改进而来.定义任务 务头部 工作流网为有向网N=(T,F),其中T为任务,F为 流关系,且需满足: 图4任务工作流图形描述方式 Fig.4 Graphic description of task workflow 1)存在惟一的起始任务T∈T作为网路的起 始点,其前驱为空: 每个任务都是不可分割的原子任务,要扩展某 2)每个任务t∈T都位于连接到T的一条通 一任务,只能在相应的流程处插入子网.任务的具体 路上,不存在孤立的任务: 内容由高级编程语言编写,任务获取环境信息、判断 3)每一任务结束时必处于成功或失败2种状 任务成功执行或失败的代码都在其实现代码中.任
图 3 中的例子与图 1 中的流程大体相似[5 ̄6] .尽 管保留了库所、标记等元素ꎬ但它并不使用复杂的路 径、资源的冲突等技巧来表达逻辑上的意义ꎬ而是用 固有的逻辑组件来构造路由ꎬ将 Petri 网构造的逻辑 结构隐藏在逻辑组件之下. 图 3 任务示例(工作流模型) Fig.3 Example of AUV task flow (workflow) 虽然 Petri 网能够构造出一些精妙而准确的逻 辑结构ꎬ但在多数时候ꎬ这种极其苛求洞察力和智力 的建模方式并不适合面向普通人的、需要迅速作出 灵活更改的任务建模.与经典的 Petri 网相比ꎬ工作 流模型更灵活ꎬ更接近人类语言和人抽象的思维方 式.但同时ꎬ由于缺乏标准、精确和成熟的理论基础ꎬ 虽然市面上的工作流模型及基于工作流的应用软件 种类繁多ꎬ但每种模型都或多或少存在明显的缺陷ꎬ 例如 OR_join 任务同步时出现的逻辑问题[1] 等ꎬ尚 未见到理论上完美的解决方案[7] .然而总的说来ꎬ在 适当的改进和处理之后ꎬ工作流模型能够更好地服 务于机器人抽象任务建模. 3 任务工作流 任务工作流由工作流模型改进而来.定义任务 工作流网为有向网 N = (TꎬF)ꎬ其中 T 为任务ꎬF 为 流关系ꎬ且需满足: 1)存在惟一的起始任务 Tstart∈T 作为网路的起 始点ꎬ其前驱为空ꎻ 2)每个任务 t∈T 都位于连接到 Tstart的一条通 路上ꎬ不存在孤立的任务ꎻ 3)每一任务结束时必处于成功或失败 2 种状 态之一ꎬ2 种状态可分别指向不同的后继任务ꎻ 4)任务间的依赖关系 F 可分为 2 类:发起一个 尚未执行的任务ꎬ或终止一个正在执行的任务. 模型中只存在任务极其依赖的关系ꎬ虽然没有 库所和标记这样的元素ꎬ但类似的功能已被整合到 任务中.默认情况下任何任务必须等到所有前驱任 务全部结束才能执行ꎬ相当于 AND_join 型ꎻ任务结 束后其对应的所有后继流程也都会被执行ꎬ相当于 AND_split 型.其他的逻辑关系ꎬ如 OR_split 和 OR_ joinꎬ将由特殊的任务来实现.不同之处在于区分出 了“成功”和“失败”2 种互斥的结束状态ꎬ且流关系 也包括“发起”和“终止”2 种.对任务首尾逻辑结构 的处理不像 Petri 网那样显式地建模表示ꎬ而是用一 个“工作流管理程序”来进行管理ꎬ这在编程实现时 更加方便. 任务工作流有自己的图形语言ꎬ如图 4 所示ꎬ所 有任务采用相同的图形样式.任务图形的头部可接 纳多个前驱任务ꎻ图形的尾部分成 2 个区域ꎬ空白的 一半表示执行成功ꎬ带叉的一半表示执行失败ꎬ从 2 个区域流出的箭头分别代表了 2 种状态下任务工作 流网不同的路径.水下机器人任务流程中最为常见 的成功或失败的分支流程在这里成为任务的内置属 性.实箭头表示发起一个尚未运行的任务ꎬ虚箭头表 示终止一个正在运行的任务.网络中的每个任务都 有惟一的名称(称之为标号ꎬ以“#”开头)ꎬ同类型的 不同任务的名称也必须不重复.每个任务都有内置 的超时值ꎬ默认情况下其值为无穷大ꎬ超时后任务会 被判定为失败ꎬ网路流程转向其失败后的路由. 图 4 任务工作流图形描述方式 Fig.4 Graphic description of task workflow 每个任务都是不可分割的原子任务ꎬ要扩展某 一任务ꎬ只能在相应的流程处插入子网.任务的具体 内容由高级编程语言编写ꎬ任务获取环境信息、判断 任务成功执行或失败的代码都在其实现代码中.任 第 5 期 张鸿皓ꎬ等:水下机器人任务流程建模与管理 435
·436· 智能系统学报 第8卷 务工作流模型只关注任务网络及流关系,并不规定 6中,若T3、T结束,T成功,工作流管理程序应将其 任务的细节及具体实现方式. 直接的前驱T2、T、T,一并删除(删除即令运行中的 OR_split结构的实现有2种方式[].其一如图5 任务停止,不考虑这些任务的任何后续影响) 所示,在T4、T,前添加T2、T,2个起着开关作用的判 然而OR_join运行时的前驱条件并不,总是如此 断任务,如果T,执行的条件满足而T的条件不满 简单,上例中,0R_join任务的标记中还有另一串参 足,则T,任务成功而T任务失败,于是T执行而T, 数,显式指定给工作流管理程序并将其删除.于是T 不执行.另一种方式与具体的编程实现有关.在任务 结束后会将图6中所有6个前驱任务全部删除(默 内部,可以访问并更改指向后继任务的流程.在上例 认删除T2、T3、T4,显式删除T、T6、T,)这种方式强 中,T内部本来保留有T2、T的名称作为后继,如果 调对建模者意图的直接表述和利用,就模型本身而 在某种条件下删除其中T,的名称,那么T完成后就 言并不严谨然而在相关理论尚不完善之时,不失为 只能执行T.这2种方式皆可在后继中任选数个任 一种简便有效的方案,相比更改或限制模型,以及用 务来执行。 复杂的算法计算路径可达性的方法[9o],往往有着 更好的实现效果」 循环结构的建模方式如图7所示,只需在其前 方加入一个OR_join任务 OR join(1) 图5任务工作流中OR_split结构 图7任务工作流循环结构 Fig.5 OR split structure in task workflow Fig.7 Circulation structure in task workflow 图6中T是一个OR_join任务,这是任务工作 在精简了逻辑元素,整合了冗余的逻辑结构后, 流模型中惟一特殊的任务,注意OR_join后面的参 任务工作流能以更简洁的方式实现与其他任务模型 数,第1个参数2表示T的前驱任务中任有2个结 相似的功能;而一些新特性的增加,如内置的成功或 束后,T就能以成功的状态执行完毕.为了避免无止 失败2种完成状态和超时值的应用,以及对OR_join 境的等待,OR_join任务也有超时值.当第1个前驱 结构逻辑问题的解决方案,不仅增加了模型的功能, 任务结束时,OR_join任务就被激活,处于等待状态. 也使得模型更加完善,更适合于水下机器人任务的 如果超过时限后,前驱条件仍未完全达成,此 建模 OR_join会被当作失败. 4任务工作流的建模流程 首先以图形化的方式对任务进行描述,如图8 所示.对照图8可直接写出任务模型的文字描述: #START StartMission();#ToTarget;NULL; NULL:NEVER 30 #ToTarget ToTarget ()#START;#Join1,#Re- OR join(2.(T5,T%,T》 cord;#Join2; Joinl OrJoin 1 )ToTarget,Rearrange: #Work;; #Rearrange Rearrange();#Work;#Joinl; 图6任务工作流中OR joi血结构 Fig.6 OR_join structure in task workflow #Record Record();#ToTarget; #Work Work();#Joinl #Join2;#Record;#Re- 为避免OR_join结构可能产生的逻辑错误, arrange; OR_join任务在执行结束后会将其所有可能导致重 #Join2 OrJoin(1);#Work,#ToTarget;#Return; 复执行的前驱任务全部删除,以达到同步的效果图 ;;;}
务工作流模型只关注任务网络及流关系ꎬ并不规定 任务的细节及具体实现方式. OR_split 结构的实现有 2 种方式[8] .其一如图 5 所示ꎬ在 T4 、T5前添加 T2 、T3 2 个起着开关作用的判 断任务ꎬ如果 T4执行的条件满足而 T5 的条件不满 足ꎬ则 T2任务成功而 T3任务失败ꎬ于是 T4执行而 T5 不执行.另一种方式与具体的编程实现有关.在任务 内部ꎬ可以访问并更改指向后继任务的流程.在上例 中ꎬT1内部本来保留有 T2 、T3的名称作为后继ꎬ如果 在某种条件下删除其中 T3的名称ꎬ那么 T1完成后就 只能执行 T2 .这 2 种方式皆可在后继中任选数个任 务来执行. 图 5 任务工作流中 OR_split 结构 Fig.5 OR_split structure in task workflow 图 6 中 T1是一个 OR_join 任务ꎬ这是任务工作 流模型中惟一特殊的任务ꎬ注意 OR_join 后面的参 数ꎬ第 1 个参数 2 表示 T1的前驱任务中任有 2 个结 束后ꎬT1就能以成功的状态执行完毕.为了避免无止 境的等待ꎬOR_join 任务也有超时值.当第 1 个前驱 任务结束时ꎬOR_join 任务就被激活ꎬ处于等待状态. 如果 超 过 时 限 后ꎬ 前 驱 条 件 仍 未 完 全 达 成ꎬ 此 OR_join会被当作失败. 图 6 任务工作流中 OR_join 结构 Fig.6 OR_join structure in task workflow 为避免 OR_ join 结构可能产生的逻辑错误ꎬ OR_join任务在执行结束后会将其所有可能导致重 复执行的前驱任务全部删除ꎬ以达到同步的效果.图 6 中ꎬ若 T3 、T4结束ꎬT1成功ꎬ工作流管理程序应将其 直接的前驱 T2 、T3 、T4一并删除(删除即令运行中的 任务停止ꎬ不考虑这些任务的任何后续影响). 然而 OR_join 运行时的前驱条件并不总是如此 简单ꎬ上例中ꎬOR_join 任务的标记中还有另一串参 数ꎬ显式指定给工作流管理程序并将其删除.于是 T1 结束后会将图 6 中所有 6 个前驱任务全部删除(默 认删除 T2 、T3 、T4 ꎬ显式删除 T5 、T6 、T7 ).这种方式强 调对建模者意图的直接表述和利用ꎬ就模型本身而 言并不严谨.然而在相关理论尚不完善之时ꎬ不失为 一种简便有效的方案ꎬ相比更改或限制模型ꎬ以及用 复杂的算法计算路径可达性的方法[9 ̄10] ꎬ往往有着 更好的实现效果. 循环结构的建模方式如图 7 所示ꎬ只需在其前 方加入一个 OR_join 任务. 图 7 任务工作流循环结构 Fig.7 Circulation structure in task workflow 在精简了逻辑元素ꎬ整合了冗余的逻辑结构后ꎬ 任务工作流能以更简洁的方式实现与其他任务模型 相似的功能ꎻ而一些新特性的增加ꎬ如内置的成功或 失败 2 种完成状态和超时值的应用ꎬ以及对 OR_join 结构逻辑问题的解决方案ꎬ不仅增加了模型的功能ꎬ 也使得模型更加完善ꎬ更适合于水下机器人任务的 建模. 4 任务工作流的建模流程 首先以图形化的方式对任务进行描述ꎬ如图 8 所示.对照图 8 可直接写出任务模型的文字描述: #START { StartMission ( )ꎻꎻ # ToTargetꎻꎻ NULLꎻ NULLꎻNEVER} #ToTarget { ToTarget ( )ꎻ # STARTꎻ # Join1ꎬ #Re ̄ cordꎻꎻ#Join2ꎻ ꎻ} # Join1 { OrJoin ( 1 )ꎻ # ToTargetꎬ # Rearrangeꎻ #Workꎻ ꎻ ꎻ ꎻ } #Rearrange{Rearrange( )ꎻ #Workꎻ #Join1ꎻ ꎻ ꎻ ꎻ} #Record{Record()ꎻ #ToTargetꎻ ꎻ ꎻ ꎻ ꎻ } #Work{Work( )ꎻ#Join1ꎻ#Join2ꎻ #Recordꎻ #Re ̄ arrangeꎻ ꎻ } #Join2{OrJoin(1)ꎻ #Workꎬ#ToTargetꎻ #Returnꎻ ꎻ ꎻ ꎻ } 436 智 能 系 统 学 报 第 8 卷
第5期 张鸿皓,等:水下机器人任务流程建模与管理 .437. #Return Return()#Join2:#TakeBack:#Move- 每一条描述语句的格式是相同的: Up;3600l 任务标号{任务类型及参数:前驱任务标号:成 #TakeBackTakeBack();#Return;#Join3;; 功执行后发起的任务标号:成功后终止的任务标号: ;1 失败后发起的任务标号:失败后终止的任务标号;超 #MoveUp MoveUp();#Return;#Join3; 时值} Join3 OrJoin (1);MoveUp,TakeBack; 描述语句中各项用分号隔开,若某一项任务标 #END;;;;} 号为空,可以不写或写上“NULL”:若在超时值处为 #END EndMission();#Join3; 空或写上“NEVER”,则超时值为无穷. #START #END #Join3 OR_join(1) 紧急 #ToTarget 上浮 航行到目标区 回收 #MoveUp #Take Back 返航 #Join1 OR join(1) 3600 #Record #Retum #Rearrang 采集 数据 #Work 作业 #Join2 ☒ OR_join(1) 图8任务示例(任务工作流) Fig.8 An example of AUV task flow (task workflow) 网路中任一表示流程的箭头,将既被发起它的 实现 前驱任务描述,又被接纳它的后继任务描述,任务间 5任务管理程序的实现 的依赖关系便由此衔接起来.对单个任务的简单叠 加就得到了整个任务网.每一条语句就是对模型中 作为实验室水下机器人模块化软件系统的一部 一个任务及其外延的流关系的直接描述,故图中任 分,基于上述原理与实现方式的水下机器人任务建 务方框的个数与描述语句数相同.描述语句没有先 模与管理系统已经成功开发,并在仿真平台和陆地 后顺序可言,任务流程描述文件的格式是相当灵活 机器人实验中得到了验证.这里仅简述此系统的几 的规定这样的描述语言,是为了计算机能直接读取 个特点: 任务文本,自动按流程发起任务并对任务进行操作 1)所有的任务类型需提前编写(用C++语言) 和管理.由于此描述语言格式规范,因此完全可以开 并编译完成.任务流程的描述由文本化的任务描述 发相应的应用软件,让建模者直接以图形方式建模, 文件提供,系统读取文本中的任务类型名,自动生成 而由程序自动生成模型的文本描述 对应的C++类的实例并执行此任务.任务只有在需 在程序实现中,每个任务类对应一个C++类, 要时才动态生成,执行完成后销毁,以节约内存空 且每个任务类都继承统一的基类,在其中定义通用 间这涉及到C+中用字符串动态生成对象的技巧. 的数据类型和方法,包括对结束状态的判断,以及与 2)此系统提供任务流程更改的全套接口.无论 外界通信的手段.如上例中,#Joinl、#Join2、#Join3都 任务位于文本描述文件中,还是正在内存中执行,都 属于OrJoin类型,它们都会采用一份相同的代码来 有标准的接口用于更改任务的流关系及类型,以便
#Return{Return( )ꎻ#Join2ꎻ#TakeBackꎻꎻ#Move ̄ Upꎻꎻ3 600} #TakeBack{TakeBack( )ꎻ #Returnꎻ #Join3ꎻ ꎻ ꎻ ꎻ } #MoveUp{MoveUp()ꎻ #Returnꎻ #Join3ꎻ ꎻ ꎻ ꎻ } # Join3 { OrJoin ( 1 )ꎻ # MoveUpꎬ # TakeBackꎻ #ENDꎻ ꎻ ꎻ ꎻ } #END{EndMission()ꎻ #Join3ꎻ ꎻ ꎻ ꎻ ꎻ } 每一条描述语句的格式是相同的: 任务标号{任务类型及参数ꎻ前驱任务标号ꎻ成 功执行后发起的任务标号ꎻ成功后终止的任务标号ꎻ 失败后发起的任务标号ꎻ失败后终止的任务标号ꎻ超 时值}. 描述语句中各项用分号隔开ꎬ若某一项任务标 号为空ꎬ可以不写或写上“NULL”ꎻ若在超时值处为 空或写上“NEVER”ꎬ则超时值为无穷. 图 8 任务示例(任务工作流) Fig.8 An example of AUV task flow (task workflow) 网路中任一表示流程的箭头ꎬ将既被发起它的 前驱任务描述ꎬ又被接纳它的后继任务描述ꎬ任务间 的依赖关系便由此衔接起来.对单个任务的简单叠 加就得到了整个任务网.每一条语句就是对模型中 一个任务及其外延的流关系的直接描述ꎬ故图中任 务方框的个数与描述语句数相同.描述语句没有先 后顺序可言ꎬ任务流程描述文件的格式是相当灵活 的.规定这样的描述语言ꎬ是为了计算机能直接读取 任务文本ꎬ自动按流程发起任务并对任务进行操作 和管理.由于此描述语言格式规范ꎬ因此完全可以开 发相应的应用软件ꎬ让建模者直接以图形方式建模ꎬ 而由程序自动生成模型的文本描述. 在程序实现中ꎬ每个任务类对应一个 C++类ꎬ 且每个任务类都继承统一的基类ꎬ在其中定义通用 的数据类型和方法ꎬ包括对结束状态的判断ꎬ以及与 外界通信的手段.如上例中ꎬ#Join1、#Join2、#Join3 都 属于 OrJoin 类型ꎬ它们都会采用一份相同的代码来 实现. 5 任务管理程序的实现 作为实验室水下机器人模块化软件系统的一部 分ꎬ基于上述原理与实现方式的水下机器人任务建 模与管理系统已经成功开发ꎬ并在仿真平台和陆地 机器人实验中得到了验证.这里仅简述此系统的几 个特点: 1)所有的任务类型需提前编写(用 C++语言) 并编译完成.任务流程的描述由文本化的任务描述 文件提供ꎬ系统读取文本中的任务类型名ꎬ自动生成 对应的 C++类的实例并执行此任务.任务只有在需 要时才动态生成ꎬ执行完成后销毁ꎬ以节约内存空 间.这涉及到 C++中用字符串动态生成对象的技巧. 2)此系统提供任务流程更改的全套接口.无论 任务位于文本描述文件中ꎬ还是正在内存中执行ꎬ都 有标准的接口用于更改任务的流关系及类型ꎬ以便 第 5 期 张鸿皓ꎬ等:水下机器人任务流程建模与管理 437
·438. 智能系统学报 第8卷 在不更换描述文件的情况下更改任务流程, WANG Bin,ZHANG Yun,WANG Xiaohong.Modeling re- 3)除起始任务、OR_join任务等少数内置任务 search and application of workflow patterns based on Petri 外,所有任务类型都由用户定义并编写,任务管理系 nets[J].Computer Engineering and Application,2008,44 统只是按照前文所述的方式自动读取并管理任务的 (13):238-241. 执行流程同一任务类型可以被多次使用,也可以给 [7]VAN DER AALST W M P,TER HOFSTEDE A H M. 任务传递参数,使同一份任务代码完成不同的工作. YAWL:yet another workflow language R].Brisbane, 由于任务可重用,故已经存在的任务越完善,建模的 Australia:Queensland University of Technology,2003. [8]陈荣辉,陈新度,陈新基AND_OR图深度优先搜索的工 过程就越方便快捷。 作流模型验证[J].机电工程技术,2008,37(6):56-71. 4)基于任务工作流的系统只关注任务间的流 CHEN Ronghui,CHEN Xindu,CHEN Xin.Workflow mod- 程关系,对系统的应用范围并不做规定.但相对而 el verification based on AND_OR graph depth-first searching 言,此模型更适合宏观抽象的任务流程建模,在机器 [J].Mechanical Electrical Engineering Technology, 人的自主智能尚不完善之时,将人类设计的抽象任 2008,37(6):56-71. 务转换为机器可以理解的方式。 [9]孙玲芳,方锦烽,汲铮,等.YAWL中OR_join任务使能判 断的改进及形式化说明[J刀.江苏科技大学学报:自然科 6结束语 学版,2007,21(5):64-68. 通过引入并改进工作流的相关理论,基于任务 SUN Lingfang,FANG Jinfeng,JI Zheng,et al.Improve- 工作流的模型不仅建模简单(可完全依赖图形描 ment in enabling of OR-join in yet another workflow lan- 述)、容易理解,更重要的是模型能直接转化为规范 guage[J].Journal of Jiangsu University of Science and 的文本描述供计算机读取,利于计算机编程实现.任 Technology:Natural Science Edition,2007,21(5):64-68. [10]曹国荣,谭庆平,吴浩,等.规范流网中0R-join任务的语 务工作流对传统的工作流模型做了较多改进,在减 义及使能判定算法[J].计算机科学与探索,2010,4 少了模型组成元素的同时增强了模型的表述能力, (6):542-551. 并以合理的方式弥补了理论上的不足.在此基础上 CAO Guorong,TAN Qingping,WU Hao,et al.Semantics 开发的水下机器人任务建模与管理系统已有实际使 and implementation of the OR-join in regular flow nets[J]. 用的实例,其性能稳定可靠.随着机器人任务流程进 Journal of Frontiers of Computer Science and Technology, 一步复杂化,专用的任务建模及管理系统必将发挥 2010,4(6):542-551. 愈发重要的作用. 作者简介: 张鸿皓,男,1988年生,顶士研究 参考文献: 生,主要研究方向为水下机器人控制软 [1]袁崇义.Peti网原理与应用[M].北京:电子工业出版社, 件系统设计 2005 [2]邹海,边信黔,熊华胜.AUV控制系统规划层使命与任务 协调方法研究[J]机器人,2006,28(6):651-655, ZOU Hai,BIAN Xingian,XIONG Huasheng.Research on the mission and task coordination method of AUV control 姜大鹏,男,1981年生,讲师,硕士 system at planning layer[J].Robot,2006,28(6):651- 生导师,博士,主要研究方向为多水下 655. 机器人协同作业技术、智能水下机器人 [3]韩丽洁水下机器人任务规划技术研究[D].哈尔滨:哈 技术 尔滨工程大学,2010:36-56. [4]VAN DER AALST W,VAN HEE K M.Workflow manage- ment:models,methods,and systems[M].Cambridge, USA:The MIT Press,2002. 庞永杰,男,1955年生,教授,博士 [5]张亮,姚淑珍.基于Petri网的工作流模式研究[J].计算 生导师,主要研究方向为智能水下机器 机集成制造系统,2006,12(1):54-58. 人技术、船舶操纵与控制技术.主持和 ZHANG Liang,YAO Shuzhen.Research on workflow pat- 参与省部级以上科研项目多项,曾获国 terns based on Petri netsJ.Computer Integrated Manufac- 家科技进步二等奖1次,国防科学技术 turing Systems,2006,12(1):54-58. 一、二、三等奖各1次,发表学术论文50 [6]王斌,章云,王晓红.基于Pti网的工作流模式建模及应 余篇 用[J].计算机工程与应用,2008,44(13):238-241
在不更换描述文件的情况下更改任务流程. 3)除起始任务、OR_join 任务等少数内置任务 外ꎬ所有任务类型都由用户定义并编写ꎬ任务管理系 统只是按照前文所述的方式自动读取并管理任务的 执行流程.同一任务类型可以被多次使用ꎬ也可以给 任务传递参数ꎬ使同一份任务代码完成不同的工作. 由于任务可重用ꎬ故已经存在的任务越完善ꎬ建模的 过程就越方便快捷. 4)基于任务工作流的系统只关注任务间的流 程关系ꎬ对系统的应用范围并不做规定.但相对而 言ꎬ此模型更适合宏观抽象的任务流程建模ꎬ在机器 人的自主智能尚不完善之时ꎬ将人类设计的抽象任 务转换为机器可以理解的方式. 6 结束语 通过引入并改进工作流的相关理论ꎬ基于任务 工作流的模型不仅建模简单(可完全依赖图形描 述)、容易理解ꎬ更重要的是模型能直接转化为规范 的文本描述供计算机读取ꎬ利于计算机编程实现.任 务工作流对传统的工作流模型做了较多改进ꎬ在减 少了模型组成元素的同时增强了模型的表述能力ꎬ 并以合理的方式弥补了理论上的不足.在此基础上 开发的水下机器人任务建模与管理系统已有实际使 用的实例ꎬ其性能稳定可靠.随着机器人任务流程进 一步复杂化ꎬ专用的任务建模及管理系统必将发挥 愈发重要的作用. 参考文献: [1]袁崇义.Petri 网原理与应用[M].北京:电子工业出版社ꎬ 2005. [2]邹海ꎬ边信黔ꎬ熊华胜.AUV 控制系统规划层使命与任务 协调方法研究[J].机器人ꎬ 2006ꎬ 28(6): 651 ̄655. ZOU Haiꎬ BIAN Xinqianꎬ XIONG Huasheng. Research on the mission and task coordination method of AUV control system at planning layer [ J]. Robotꎬ 2006ꎬ 28 ( 6): 651 ̄ 655. [3]韩丽洁.水下机器人任务规划技术研究[D].哈尔滨:哈 尔滨工程大学ꎬ 2010: 36 ̄56. [4]VAN DER AALST Wꎬ VAN HEE K M. Workflow manage ̄ ment: modelsꎬ methodsꎬ and systems [ M]. Cambridgeꎬ USA: The MIT Pressꎬ 2002. [5]张亮ꎬ姚淑珍.基于 Petri 网的工作流模式研究[ J].计算 机集成制造系统ꎬ 2006ꎬ 12(1): 54 ̄58. ZHANG Liangꎬ YAO Shuzhen. Research on workflow pat ̄ terns based on Petri nets[J]. Computer Integrated Manufac ̄ turing Systemsꎬ 2006ꎬ 12(1): 54 ̄58. [6]王斌ꎬ章云ꎬ王晓红.基于 Petri 网的工作流模式建模及应 用[J].计算机工程与应用ꎬ 2008ꎬ 44(13): 238 ̄241. WANG Binꎬ ZHANG Yunꎬ WANG Xiaohong. Modeling re ̄ search and application of workflow patterns based on Petri nets[J]. Computer Engineering and Applicationꎬ 2008ꎬ 44 (13): 238 ̄241. [7] VAN DER AALST W M Pꎬ TER HOFSTEDE A H M. YAWL: yet another workflow language [ R]. Brisbaneꎬ Australia: Queensland University of Technologyꎬ 2003. [8]陈荣辉ꎬ陈新度ꎬ陈新.基 AND_OR 图深度优先搜索的工 作流模型验证[J].机电工程技术ꎬ 2008ꎬ 37(6): 56 ̄71. CHEN Ronghuiꎬ CHEN Xinduꎬ CHEN Xin. Workflow mod ̄ el verification based on AND_OR graph depth ̄first searching [ J ]. Mechanical & Electrical Engineering Technologyꎬ 2008ꎬ 37(6): 56 ̄71. [9]孙玲芳ꎬ方锦烽ꎬ汲铮ꎬ等.YAWL 中 OR_join 任务使能判 断的改进及形式化说明[ J].江苏科技大学学报:自然科 学版ꎬ 2007ꎬ 21(5): 64 ̄68. SUN Lingfangꎬ FANG Jinfengꎬ JI Zhengꎬ et al. Improve ̄ ment in enabling of OR ̄join in yet another workflow lan ̄ guage [ J ]. Journal of Jiangsu University of Science and Technology: Natural Science Editionꎬ 2007ꎬ 21(5): 64 ̄68. [10]曹国荣ꎬ谭庆平ꎬ吴浩ꎬ等.规范流网中 OR ̄join 任务的语 义及使能判定算法[ J]. 计算机科学与探索ꎬ 2010ꎬ 4 (6): 542 ̄551. CAO Guorongꎬ TAN Qingpingꎬ WU Haoꎬ et al. Semantics and implementation of the OR ̄join in regular flow nets[J]. Journal of Frontiers of Computer Science and Technologyꎬ 2010ꎬ 4(6): 542 ̄551. 作者简介: 张鸿皓ꎬ男ꎬ1988 年生ꎬ硕士研究 生ꎬ主要研究方向为水下机器人控制软 件系统设计. 姜大鹏ꎬ男ꎬ1981 年生ꎬ讲师ꎬ硕士 生导师ꎬ博士ꎬ主要研究方向为多水下 机器人协同作业技术、智能水下机器人 技术. 庞永杰ꎬ男ꎬ1955 年生ꎬ教授ꎬ博士 生导师ꎬ主要研究方向为智能水下机器 人技术、船舶操纵与控制技术.主持和 参与省部级以上科研项目多项ꎬ曾获国 家科技进步二等奖 1 次ꎬ国防科学技术 一、二、三等奖各 1 次ꎬ发表学术论文 50 余篇. 438 智 能 系 统 学 报 第 8 卷