APP下载

水闸运行控制仿真及三维效果

2010-04-30肖建华

水利信息化 2010年3期
关键词:水工闸门部件

肖建华 ,朱 瑛

(1.石家庄市冶河灌区管理局,河北 石家庄 050000;2.河海大学 计算机与信息学院,江苏 南京 210098)

0 引言

面向通用任务的三维交互在国内外已经有了一定的研究基础,通常将交互任务分成 3 类:漫游、选择/操纵和系统控制。复杂的交互任务都可以由这3 个基本的子任务组合完成[1]。面向任务的交互主要考虑几何层面上的变换,语义与交互结合的应用将交互上升到语义层,并面向用户的意图。目前,国内外已经开展语义交互方面的研究,如文献 [2]、[3]为场景中的每个物体提供了一套规则,充分利用了物体之间的关联关系,如父子关系、兄弟关系,研究了物体的移动和动态成组的实现;文献 [3]实现了一个基于约束语义双手交互场景布局系统,通过语义识别和反馈实现物体的精确定位,实现快速、高效的场景布局。

以人为中心,自然、高效的交互特性将是发展新一代人机交互的主要目标[4]。语义交互是达到这个目标的有效手段,它为场景中的每个对象提供 1 套规则,当用户操纵这些对象时必须遵守这套规则[5]。

交互语义(IS)可以用 1 个 5 元组来表示[5]:IS =〈object,rule,action,task,feedback〉,object,rule,action,task,feedback 分别表示交互对象、规则、用户行为、任务和反馈信息,并将语义分为供给语义(AS)和关联语义(RS)。

文献 [6]定义了语义对象的概念,提出了通用领域中的语义交互体系结构和过程,语义对象由图形、行为、规则、交互和应用等构件构成。这些构件形成了通用领域的交互框架。

由于水利工程中的交互具有领域性,语义交互体系结构需要进一步改进。为保证水利工程中的水工建筑物正常、安全地运行,通过三维实时仿真有助于管理人员的培训和预演。目前水利工程三维仿真很少能为工作人员提供一个易于操作的交互界面,往往将简单的操作复杂化,虽然实现了控制水工建筑物运行的功能,却不能“理解”用户的操作意图。目前在文献中还没有水利工程中使用语义技术进行交互设计的先例。因此,将语义交互技术结合到水利工程仿真环境中具有很高的实用价值。

1 水利工程的语义交互体系结构

为了适应水利领域中语义对象的应用,需对现有语义交互体系结构作进一步改进。水利工程中的语义对象由外观、交互、规则、行为和任务等部件构成,交互体系结构如图 1 所示[7]。

图1 水利工程语义对象的交互体系结构

将语义对象看成 1 个黑盒,接收交互事件,部件之间通过调用和反馈完成一系列的变换后输出外观上的反馈信息。水利虚拟环境中的语义对象包括水工建筑物、设备、水流对象等。

外观部件描述了对象的外观信息,定义了对象的物理属性,包括水工建筑物的运行属性、设备的颜色和纹理属性等。交互部件接收交互事件,包括用户的操作事件和由关联语义描述的状态变化事件。规则部件描述了语义对象必须遵循的规则、约束条件等。行为部件描述了语义对象完成任务过程中的一系列行为(即状态的转化)。任务部件描述的是语义对象要完成的任务,即达到用户意图的中间步骤。

交互事件分发给特定的语义对象,交互部件负责接收交互事件和行为,并调用规则和任务部件解析交互事件,创建交互任务,最后将任务交付给行为部件执行。用户与虚拟环境进行交互时,系统执行用户的交互意图,完成 1 个交互应用。交互应用的实现需要若干相关联的语义对象协同完成。

水利工程场景中的语义对象用场景图组织和描述,场景图是有向非循环图,提供了一种面向对象的层级结构方式来描述和组织三维虚拟场景,广泛应用于交互式三维应用程序中。

2 水利虚拟环境中的语义交互建模

语义交互技术与具体应用领域密切关联,有必要对水利工程环境进行语义研究。语义交互模型描述交互的运作过程,提供了一个创建交互式系统的框架[8]。对水工建筑物的运行特点进行建模,为用户提供一个控制虚拟水工建筑物运行的交互环境。

2.1 水工建筑物的物理模型

从交互的角度出发,水工建筑物可分为 2 类:一类是固定的,如各种坝、堤、厂房、隧洞等;另一类是可以控制运行的,如闸门、水泵等。本文主要考虑水利工程虚拟环境中可运行的水工建筑物、操作设备及场景变化。闸门和水泵是水工建筑物的重要组成部分,可以是泄水和引水建筑物,在仿真环境中最为常见。

水工建筑物的结构为运行控制提供了重要的物质基础,物理特征往往是其他特征的载体。借鉴文献 [9]中对虚拟装配零件信息的描述方式,水利工程虚拟交互环境中水工建筑物的物理特征用 BNF 范式表示如下:

<物理特征>:: = <标识><名称><模型><位置属性>[<运行属性>]

<位置属性>:: = <位置><方向>

<运行属性>:: = <运行状态><运行类型><运行速度>

<运行状态>:: = <静止>|<运行>

<运行类型>:: = <直线类型><旋转类型>

<运动速度>:: = <平移线速度><旋转角速度>

可以利用 XML 文档描述语义对象的物理模型,易于在任何应用程序中读写数据,足以表示水工建筑物的物理特征,便于用户灵活配置和修改语义对象的属性。

2.2 交互对象的语义模型

交互对象是在交互过程中物理特征会发生变化的语义对象,变化的物理特征由外观部件体现。水利工程虚拟环境中,按钮是响应交互事件的语义对象,用户通过操作按钮触发三维交互过程。闸门的升降、水泵的开启关闭及引起的泄水和引水现象是最终的交互应用,体现了用户的交互意图。三维交互过程中每个交互对象完成各自的交互任务,这些交互任务共同构成 1 个交互应用。

水利工程环境中有关虚拟水工建筑物运行的语义对象主要有闸门、水泵、按钮设备及水流对象等。语义对象的交互部件调用规则和任务部件对交互事件进行解析,创建交互任务。这里的交互事件既包括用户的操作,也包括对象自身的状态变化事件,交互事件触发交互部件的运行。语义建模的工作是对以上解析过程进行描述,并对交互事件、规则及任务进行分析,最后完成交互任务的创建。交互任务本质上描述了语义交互对象状态的改变过程,由行为部件实现状态的转化。

2.2.1 按钮设备对象的语义建模

水利工程虚拟环境中用户不能直接操作水工建筑物,为了约束用户的交互,通过按钮设备触发对应的建筑物运行。用户通过操作按钮控制相应水工建筑物的运行,系统同时给用户相应的反馈,表明交互的进度和结果。按钮设备对象的交互任务可描述为:

1)改变按钮设备(操作箱和按钮)对象的状态;

2)按钮控制水工建筑物的运行。

用户的靠近、远离、push 和 release 等交互操作由系统转化为交互事件并传递给交互部件。交互部件调用按钮对象的规则部件(可激活的距离)查询按钮是否在可操作范围之内,并进行语义解析,确定要完成的任务,交互部件调用行为部件进行按钮状态的转化。

按钮设备语义模型的形式化表达如下:

公式左侧描述了交互事件和规则等,公式右侧是语义对象要完成的交互任务,一般是状态的改变。active 表示按钮设备的激活语义。设备包括操作箱和按钮 2 部分,active (d) 表示操作箱打开,按钮处于可操作状态。用户化身 a 与设备 b 的距离小于 x 时设备激活。交互过程为:用户在场景中漫游时,系统将漫游操作转化成交互事件,交互部件调用规则部件查询与化身的距离是否在可操作范围之内,规则部件返回设备的状态值。按钮未激活时用户对按钮的按下操作是无效的。当规则部件返回按钮可操作(激活)的信息时,交互部件调用行为部件完成按钮从未激活状态到激活状态的转化,行为部件进一步调用外观部件反映状态转化的可视反馈。这样就完成了 1 个按钮设备激活的任务。

inactive 表示按钮设备的未激活语义,a 与 d 的距离大于等于 x 时操作箱关闭,按钮不能操作。设备激活后用户就可以操作设备中的按钮,控制相应的水工建筑物运行。

假设设备 d 中有 n 个按钮,b ={b1,b2,…,bn},按钮弹出和按下状态的转换如式(3)所示:

在设备 d 被激活并且按钮 b 弹出的状态下,用户的 push 操作使按钮转化成按下状态;

式(4)中设备 d 被激活并且按钮 b 按下,用户的 release 操作使按钮弹出。

按钮控制水工建筑物的过程可描述为:设备被激活后,用户利用外部设备进行操作(鼠标点击、虚拟手或语音命令等),转化成按下或弹起事件后传递给交互部件。交互部件调用规则和任务部件并得到响应后,行为部件即调用外观部件实现按下和弹起状态之间的转换。

2.2.2 闸门对象的语义建模

闸门对象的任务部件描述的是闸门的运行情况,包括运行方式(上升或下降),开启和关闭的速度等,以及闸门与水流的关联语义。

可以将闸门看成 1 个语义对象,也可以将闸门的各个部件拆分成多个语义对象,描述各部件之间的关联语义,根据应用的要求选择不同的处理方式。在注重环境变化的应用中不需要过多的闸门细节,将闸门封装成 1 个对象即可;在检修培训系统的应用场合下则需要注重闸门各个部件的细节,以便为学员呈现 1 个闸门的详细结构模型。

按钮的控制事件由交互部件描述,交互部件调用规则部件查询闸门的运行状态,启闭速度等,并与任务部件完成对交互事件的解析,创建交互任务。交互任务描述了闸门(各个部件)状态的变化,行为部件调用外观部件实现闸门开度的变化和对水流、水位状态参数的设置。用户有手动和自动 2 种方式控制闸门的升降,手动控制有上升、下降和停止 3 个按钮,用户可随意控制闸门的开度;自动模式使闸门由当前状态自动运行到一个设定的高度。

闸门对象的语义模型:水工建筑物的状态变化由按钮的按下状态瞬间触发,按钮由按下到弹起状态的转换没有控制作用,水工建筑物永远按照最近的按钮按下事件和相应的规则运行。其交互语义可形式化表示如下:

若 F (b) :b 是使闸门上升的按钮;

按下控制闸门 g 的上升按钮,并且 g 的当前高度未达到上限时,闸门 g 上升。

若 F (b):b 是使闸门下降的按钮;

按下控制闸门 g 的“下降”按钮,并且闸门开度大于 0 时,闸门 g 下降。

若 F (b) :b 是使闸门停止的按钮;

闸门 g 的停止按钮被按下时,闸门停止运行。

若 F (b) :b 是使闸门按设定值运行的按钮;

“按设定值升/降”是自动模式下按钮,控制闸门运行至设定的高度 h。当前高度高于 h 时闸门下降,反之上升。

2.2.3 水流对象的语义建模

闸门的状态变化是引起水流对象状态变换的交互事件。水流对象的交互部件接收事件,通过规则部件查询引起水流水位的变化效果,并获得水流水位的各种参数,然后调用任务部件创建水流状态变化的交互任务,调用行为部件实现水流和水位相应的状态变化。行为部件则调用外观部件反馈给用户逼真的水流效果。

与闸门相关的水流对象语义交互的形式化表示:

relate (s, g ) 描述了闸门与水流的关联关系。当闸门关闭(即开度为 0)时,不会有水闸泄流的场景,水流对象未激活;闸门的闸位高于 0 时,水流对象被激活,场景中添加水流对象。交互部件通过规则部件获得各种参数后,行为部件调用外观部件反馈水闸泄流的场景,并且使上游水位降低,下游水位升高。从而完成一个水闸泄流及水位变化的任务。

3 水利工程虚拟环境中的语义交互实现

本文采用 OpenSceneGraph(简称 OSG)来组织环境中的语义对象。OSG 提供了多种类型的节点以执行各种各样的交互功能,用以实现每个叶子节点的空间属性、运动特性等变换,因此可以描述水利工程虚拟环境中的场景组织和语义交互对象的物理及语义特征。

3.1 用户交互控制的实现

用户利用按钮设备对水工建筑物进行控制,它是通过按钮语义对象的调用执行来实现的。

1)设备激活和未激活状态的转化实现

用户远离按钮设备时,操作箱的盖子合上表明设备未激活;靠近设备时,操作箱的盖子打开,告诉用户现在可以操作设备。

按钮设备包括外部的操作箱和内部的按钮,包围盒碰撞检测前将设备的按钮节点从遍历过程中删除[10]。设备未激活时删除按钮子节点,保留操作箱关闭状态的节点,使用户只能与外部的操作箱交互;设备激活时操作箱的盖子打开,并添加按钮节点。

2)按钮按下和弹出状态转化的实现

按钮对象被操作时需要给用户 1 个可视反馈。按钮外观显示红色表示某个功能按钮已被按下。

3)交互事件及关联语义的实现

按钮的作用是控制水工建筑物的运行。用户按下按钮时系统将接收到用户的操作(如鼠标点击、虚拟手触摸)转化成鼠标按下事件。这个过程的实现可以在 OSG 中重写 osgGA::GUIEventHandler handle 函数,程序运行时 Viewer 将调用每个 GUI 事件的 handle( ) 函数,直到其中 1 个的 handle ( ) 函数返回 true 为止。

3.2 水工建筑物交互对象的实现

语义对象通过各个部件的协同工作完成交互过程,外观部件反馈语义对象物理特征的变化。行为部件实现交互任务,完成水工建筑物状态的转化及关联语义的实现。

1)水工建筑物状态转化的实现

在场景图中为水工建筑物模型节点添加变换节点,交互信息根据规则部件设置变换节点的变换方式。规则部件主要描述水工建筑物的运动属性,包括运动类型和运行速度等,其中运动类型决定了对象平移或旋转的变换方式。每个水工建筑物都有 1 个变换和模型节点。

水工建筑物交互对象的物理信息由 XML 形式化描述,系统初始化时读取 XML 中的信息设定对象的属性。

2)关联语义的实现

水工建筑物状态的变化会引起水流的变化。水流的状态定义为开启和关闭,开启状态对应场景图中水流节点。闸门在上升或下降过程中会引起水流形态的变化,而水流的状态由闸门的开度决定:当开度为 0 时水流关闭,开度大于 0 时水流开启。

4 实验结果

以水库为例,主要建筑物有挡水坝、引水建筑物、电站厂房等,实验原型为坝上有闸控制泄洪,闸门形式为平板闸门。

大坝、地形、设备等使用 3DS MAX 建模,采用OSG 组织场景,在 Visual Studio 2005 集成开发环境下进行仿真控制和三维效果展示如图 2 所示。

图2 闸门运行的仿真控制和三维效果

图2 中,a 图表示按下第 2 个闸门的上升按钮,闸门上升并产生泄流现象。下降按钮控制闸门下降,如果闸门上升或下降过程中按下停止按钮,闸门停止,否则闸门会一直上升到上限或下降至闸门的下限。b 图表示第 2 个闸门上升到最大值,第 3 个闸门按设定值升/降时的运行效果。

当设备操作箱打开时,用户才可以操作设备。用户可以通过鼠标点击功能按钮,按钮接收交互事件后进行状态改变,并设置闸门的运行状态,然后启动闸门,水流根据闸门的高度展示泄流场景。

5 结语

自然、逼真、高效的三维交互已成为新一代人机交互技术,其技术关键是计算机对人的意图的理解。本文以水利工程建筑物中最常见的水闸为例,研究了闸门运行场景中的交互模型,采用形式化描述定义了闸门、控制柜、水流等交互对象的语义,并运用于仿真控制和三维效果展示之中,为三维交互技术开辟了一个新的研究领域。

[1]Chris Hand. A Survey of 3D Interaction Techniques[J]. Computer Graphics Forum(S0167-7055), 1997, 16(5): 269-281.

[2]G. Smith, W. Stuerzlinger. On the Utility of Semantic Constraints[C]// B. Froehlich, J. Deisinger, H.-J. Bullinger.Immersive Projection Technology and Virtual Environments.Springer(0946-2767), 2001: 41-50.

[3]W.Stuerzlinger, G.Smith. Efficient Manipulation of Object Groups in Virtual Environments[C]//Proceedings of the IEEE Virtual Reality 2002, Orlando, 2002: 251-260.

[4]王亮,付永刚,纪连恩,等.基于约束语义的双手交互场景布局系统[J]. 计算机辅助设计与图形学学报,2006,18(8): 1243-1249.

[5]董士海. 人机交互的进展及面临的挑战[J]. 计算机辅助设计与图形学学报,2004, 16(1): 1-13.

[6]纪连恩,张凤军,王亮,等. 基于场景语义的 3D 交互体系结构[J]. 计算机辅助设计与图形学学报,2006, 18(8):1236-1242.

[7]纪连恩,张凤军,付永刚,等. 虚拟环境下基于语义的三维交互技术[J]. 软件学报,2006, 17(07): 1535-1543.

[8]Michel Beaudouin-Lafon. Designing interaction, not interfaces[C]//Proceedings of the Working Conference on Advanced Visual Interfaces, Gallipoli, 2004: 15-22.

[9]程成. 虚拟环境人机交互技术研究[D]. 北京:中国科学院研究生院,2002, 12.

[10]李蔚清. 分布式仿真系统中的虚拟环境生成技术研究[D].南京:南京理工大学,2007,6.

猜你喜欢

水工闸门部件
一代“水工”也是“土工”
平面定轮钢闸门的制造工艺
一代“水工”也是“土工”
天下水工看淮安
基于Siemens NX和Sinumerik的铣头部件再制造
部件拆分与对外汉字部件教学
从“水工构筑物”到“水工建筑” 水利建筑设计实践与思考
把住医保基金水池闸门
找准入口,打开思路的闸门
水轮机过流部件改造与节能增效