APP下载

虚拟维修训练系统中数据库的应用

2010-09-25常高祥徐晓刚王建国

图学学报 2010年5期
关键词:结构设计装备数据库

常高祥, 徐晓刚, 王建国

(1. 海军大连舰艇学院装备系统与自动化系,辽宁 大连 116018 ;2. 浙江大学CAD&CG国家重点实验室,浙江 杭州 310058)

虚拟维修训练系统中数据库的应用

常高祥1,2, 徐晓刚1,2, 王建国1,2

(1. 海军大连舰艇学院装备系统与自动化系,辽宁 大连 116018 ;2. 浙江大学CAD&CG国家重点实验室,浙江 杭州 310058)

数据库技术在虚拟维修训练系统中起着重要的作用。文章以MySQL数据库为例简述了数据库特点,分析了应用数据库的虚拟维修训练系统的优势,介绍了虚拟维修训练系统中数据库设计的基本方法,结合Torque Game Engine三维引擎开发了具有较好可移植性的虚拟维修训练系统。实验结果表明,将数据库技术应用到虚拟维修训练系统,可以有效提高系统开发的效率。

计算机应用;数据库设计;虚拟维修;可移植性

虚拟维修(Virtual Maintenance)是以计算机技术与虚拟现实技术为依托,在由计算机生成的包含了产品数字样机与维修人员 3D(三维)人体模型的虚拟场景中,通过驱动人体模型(包括采用人在回路的方式)来完成整个维修过程仿真的综合性应用技术[1]。 国内外许多研究机构对维修训练系统进行了大量研究,如日本京都大学新加坡国立大学以及国内的石家庄军械工程学院[2]等。将虚拟维修技术用于维修训练,有助于提前训练的开始时间点,甚至在没有实物对象时就可以开展部分的训练工作提高训练工作的灵活性,可以针对训练中的关键点与难点合理方便地安排训练内容,突破了以往训练工作中对地点、时机等条件的限制。

在虚拟维修训练系统中,数据的管理及数据与系统的通信问题,一直是开发人员要解决的难点和重点。在虚拟维修训练系统中主要通过数据库技术以及读取文本文件的方式来管理数据,不同方法的应用环境不同。因此,要合理选用数据管理方式才能达到最优的效果。SQL数据库技术是专业的数据管理技术,数据库的设计、优化、管理相对较为麻烦,但在数据量较多且数据类型复杂时无疑是最好的工具;用文本文件来管理数据是非常局限的一种方法,因为它管理的数据类型较为单一、数据量较小。在虚拟维修训练系统中,要用到的数据量很大,包括模型、图片、维修序列、用户信息、模拟故障的数据等,数据类型也是相当复杂,所以要选用数据库技术来管理数据。

文章将MySQL数据库应用到虚拟维修训练系统的开发中,并提出了一套数据库设计和优化的方案,有效解决了大量数据管理和传输的难题,实现了具有较好可移植性的虚拟维修训练系统,大大加快了不同装备的虚拟维修训练系统的开发进程。

1 虚拟维修训练系统中数据库的需求性分析

虚拟维修训练是利用虚拟现实技术,在计算机上建立起虚拟装备和相应的交互方式,从而实现装备的维修训练过程。虚拟维修训练系统必须要体现出真实训练的重点,这些重点主要通过下面的特性来实现:维修序列的正确性、交互操作的方便性、故障模拟的合理性、零件模型的逼真性、维修训练的可评估性等等。这些重点的实现过程中会有大量数据的传输和管理问题,这些问题的解决需要数据库的参与。

1.1 系统可移植性思想需要数据库支撑

系统的可移植性即通用性,指同一套虚拟维修训练系统可以对不同的装备进行虚拟维修操作,而不对系统内部进行修改,要求系统与不同的虚拟装备之间必须有一个接口,存储装备的各项数据。开发一套虚拟维修训练系统,要花费大量的时间和人力资源。大部分的维修训练系统只是针对某一型装备进行开发的,如果开发的系统具有较好的通用性,其应用价值将会大大提高。装备的改变不能影响到系统的应用,如果系统只与数据库连接,而数据库与模型、维修序列、评估标准等外部因素连接,就可以解决通用性的问题。

1.2 数据库可以简化系统开发流程

系统开发过程中有较多重复性工作,比如定义场景中的维修对象,它由许多零件构成,要将这些零件分类,同类的零件可能会有很多。如果在开发过程中逐个实例化维修对象,会有很大的工作量。将零件的属性写入到数据库的一个表中,用 SQL语句将要用到的字段调出来,在系统的底层代码中用循环语句实例化同类的零件。用这样的方法将会大大节省开发时间。数据库给系统的开发提供了很多的便利性,系统开发人员可以灵活运用数据库,使开发过程简单化。

系统开发的整体过程如图1所示,开发者根据装备的特点开发出适合该装备的数据库,并将不同虚拟装备的各种信息写入数据库中;在开发平台中编程实现对数据库的调用;测试人员将对开发出的维修操作平台的测试意见反馈给开发者,以此来完善系统的各项功能。

2 虚拟维修训练系统中数据库的设计

数据库设计不是设计一个完整的数据库管理系统(DBMS),而是根据一个给定的应用环境,构造最优的数据模型。数据库设计包括结构设计和行为设计,结构设计是按照应用要求确定一个合理的数据模型,行为设计是指应用程序的设计。在虚拟维修训练系统中,结构设计是指按照系统要求将所用到的数据分类并建立合理的数据模型,而行为设计是在脚本里实现对数据的存取和应用[4]。

图1 系统开发流程图

数据库设计过程可分为以下6个阶段:

· 需求分析;

· 概念结构设计;

· 逻辑结构设计;

· 物理结构设计;

· 数据库实施;

· 数据库运行和维护。

下面介绍各个阶段的工作。

2.1 需求分析

需求分析阶段的工作是详细准确地了解数据库应用系统的运行环境和用户要求。

虚拟维修训练系统是这个数据库的用户,考察用户需求重点是“数据”和“处理”,用户需求的信息主要包括:维修对象、维修规则、维修工具、故障模拟、碰撞检测。这5种数据流包含很多的数据项,例如,维修对象中的数据项有:零件 ID号、零件名称、材质、零件类型、零件动画序列、零件坐标、零件个数等,这些数据项都要合理定义其数据类型及长度。

2.2 概念结构设计

概念结构设计主要实现由现实世界到信息世界的抽象,建立概念模型。概念模型的表示方法很多,最著名的是采用实体—联系方法即E-R模型法,用E-R图描述概念模型,从而确定实体、属性和实体间的关系,便于进行逻辑结构设计。

图 2是一虚拟维修训练系统数据库的 E-R图。在图2中清晰地描述了5个实体之间的关系,以及各个实体的属性,给下面的数据库设计工作提供了很好的思路。

2.3 逻辑结构设计

逻辑结构设计的内容简单地说,就是将概念结构设计结果——E-R图转换为某一种DBMS支持的数据模型。

建立数据模型首先要确定关系模式,关系模式实际是实体与其属性的另一中表现方式,但还应包括联系与其属性。图2所示的虚拟维修训练系统的关系模式可以表示为:

操作人员(人员 ID,姓名,密码,单位,职务)

维修任务(任务ID,任务名称,装备名称,故障提示,模型名称,任务描述)

故障(故障ID,故障名称,故障类型)

零件(零件ID,任务ID,名称,零件类型,图片名称,三维坐标,零件介绍)

工具(工具ID,零件ID,名称,图片名称,动画序列)

维修(任务ID,人员ID ,维修日志)

其中,维修是联系与其属性的关系模式,其它关系模式是实体与其属性的关系模式,带下划线的数据项为主键。

2.4 物理结构设计

物理结构设计阶段要完成的工作主要是确定数据库表的结构,并进行优化,为数据模型选择合理的存储结构和存取方法,决定存取路径和分配存取空间等。

对于记录的存取格式应考虑如何节省存取空间,尽量用占用字节比较少的数据类型,例如,用户的单位可以用0、1、2、3、…来代替用汉字来描述,还有故障类型和零件类型等也可用这种方式来表示,就可以节省大量的空间。

2.5 数据库实施

数据库实施是运用 DBMS建立数据库,创建各种对象(表、窗体、查询等),编制与调试应用程序,录入数据,进行试运行。

建立表时要参考逻辑结构设计中的关系模式,一个关系模式就是一个数据表,而关系模式内的每一个数据项将成为表中的一个字段。确定了表中包括哪些字段后,还应确定每一个字段的类型及数据长度。

从图2可容易得出,对应该E-R图的数据库要包含5个表分别是:用户信息表、维修任务表、故障表、零件表、工具表,相应表的字段即为每个实体的属性。

图2 虚拟维修训练系统中数据库的E-R图

2.6 数据库运行与维护

数据库正式投入使用后,还应不断进行评价、修改与调整。这一时期的工作就是数据库的运行和维护。

上述数据库的设计过程可用图3表示。数据库设计的基本思想是过程迭代和逐步求精,每完成一个设计阶段,就进行评价,根据评价结果,决定是进行下一阶段或是重新进行这一阶段的工作,甚至更前一阶段的工作。因此,整个设计过程往往是上述6个阶段的不断反复。

3 基于MySQL数据库的虚拟维修训练系统的实现

目前,市面上的数据库产品多种多样,MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库。

总体来说,MySQL数据库具有以下主要特点:

(1) 可以保存超过50,000,000条记录;

(2) 是目前市场上现有产品中运行速度最快的数据库系统;

(3) 用户权限设置简单、有效。

开发平台TGE支持MySQL数据库,开发者不用过多修改 TGE的底层代码,就可以应用该数据库,实现对数据的查询、写入和读取。考虑到MySQL的种种优点,文章以MySQL数据库为例,介绍在虚拟维修训练系统的开发过程中如何管理和传输数据。

图3 数据库设计流程图

为了使用户和开发人员更方便地操作MySQL数据库,要采用Apache作为MySQL的服务器,用Web上最流行的一种服务器脚本编程语言PHP(Personal Home Page)为MySQL数据库编写PMA,直接在Web页面中对MySQL数据库进行各种维护[5]。

3.1 数据库的开发

根据上述的数据库设计方法,得出在这个数据库中需要的最基本的表有任务表、任务内容表、零件表、维修序列表、工具表、维修操作评分表、维修日志表、用户信息表,对不同表的描述如下:

· 任务表 存储不同的维修任务ID号、任务名称、维修序列编号。

· 工具表 存储工具模型名称、工具ID号、对应的手型动画ID。

· 零件表 存储零件类型、零件模型名称、零件对应的工具 ID和维修动画 ID等零件的属性。

· 任务内容表 存储不同任务中的虚拟装备以及装备个模块之间的相对位置关系。· 维修序列表 描述不同装备的维修序列。· 维修操作评分表 存储不同零件对应的不同分数。

· 维修动画表 用不同的ID标识不同的维修动画。

· 维修日志表 存储每次训练的日期、操作者和得分等信息。

· 用户信息表 保存可以使用本系统的所有用户信息。

3.2 故障模拟过程中系统与数据库的通信

实际的装备哪个零件出现故障的概率有较大的随机性,故障的外在表现形式也是千差万别。故障设定的合理性与故障模拟的真实性,直接影响到受训者对故障的判断。

故障模拟主要通过变换纹理、粒子系统、播放动画、3D音效等来实现。

变换纹理和3D音效来进行故障模拟,要用到很多纹理、动画、声音以及要加粒子的模型的源文件。这些源文件与脚本之间的通信过程较为简单,数据库里存储了系统所需源文件的名字,脚本里指定了源文件的路径,通过基于索引的查询就可以找到源文件,从而实现了脚本与数据库的通信。

粒子系统和播放动画实现故障模拟,要确定哪个模型要添加粒子、哪个模型要播放动画。在数据库里定义每个模型的类型,用一个字段来存储。不同字段值的零件用不同的方法进行故障模拟。

3.3 维修操作过程中虚拟场景与数据源的数据通信

3.3.1 装备的拆卸操作过程中的数据通信

向场景中加载模型过程中,要在脚本中读取数据库中模型的各种数据。而开发的数据库是基于名字的索引,要在脚本中指定模型存储的路径,通过这条路径查找模型源文件,完成场景与模型数据源的通信。

场景中模型的定位,必须要有一个基准点,即场景中的装备诞生点。场景中模型的坐标就是诞生点的坐标加上数据库中模型的坐标。为了使虚拟装备的维修操作过程更贴近实际,拥有同一父零件的零件设为一个Group,在移动过程中可以对整个Group进行移动,这些Group可以进行更深入的拆卸操作。

图4 模型加载流程图

加载模型的实现过程如图 4所示,用 SQL查询语句,找到所有符合条件的记录,将这些记录对应的零件信息传递到代码中,然后定义数据块和实例化模型对象,用任务对象的句柄调用Add函数让模型在场景中显示。

3.3.2 维修动作合法性判断过程中的数据通信

判断维修动作是否合法在虚拟维修训练中的重要性是不言而喻的,维修序列从实质上讲就是判断语句:if A then B,只要建立零件之间的相互约束关系就能够解决设定维修序列的问题。

用数据库中某字段代表零件不同的状态,如表1所示,字段ContentID表示操作时选中的物体的ID号,AccessoryState代表零件的初始状态,rState表示操作后的状态,ConditionId 表示拆卸ContentID 所标识的物体时的条件物体,ConditionState表示条件物体的状态。以表 1中ContentID为1的零件为例进行具体介绍零件拆装过程中维修序列的判定过程:选中物体($selectShape)的ID(ContentID)为1,若要对1进行拆卸操作,要满足1处于安装完毕的状态;若要对1进行安装操作,要满足3和24已经安装完毕。可以参考此例,设置其它零件拆装和更换的约束条件,实现对维修动作的合法性判断。

表1 维修序列表中的部分记录

4 结 论

数据库在整个虚拟维修训练系统的开发过程中都扮演着重要的角色,灵活运用数据库不但可以给开发工作带来很多便利条件,而且让系统通用性得到很大提高。本文解决的主要问题包括:在使用TGE进行开发虚拟维修训练系统时,怎样设计数据库、怎样实现基于 TGE的虚拟维修训练系统与MySQL数据库的通信,并将该系统分别应用到了某雷达装备和某火炮的虚拟维修训练中,取得了较好的效果。

[1]杨宇航, 李志忠, 等. 虚拟维修研究综述[J]. 系统仿真学报, 2005, 17(9):2191-2195.

[2]马 麟. 虚拟维修技术的探讨[J]. 计算机辅助设计与图形学学报, 2005, 17(12):2729-2733.

[3]Kenneth C Finney. Advanced 3D game programming all in one [M]. Thomson Learning, 2006. 367-392.

[4]张俊玲. 数据库原理与应用[M]. 北京:清华大学出版社, 2005. 10-30, 40-50.

[5]唐汉明, 翟振兴, 兰丽华, 等. 深入浅出MySQL[M].北京:人民邮电出版社, 2008. 3-103, 111-116.

Application of Database to Virtual Maintenance Training System

CHANG Gao-xiang1,2, XU Xiao-gang1,2, WANG Jian-guo1,2
( 1. Department of Equipment System and Automatization, Dalian Naval Academy, Dalian Liaoning 116018, China;2. State Key Lab of CAD&CG, Zhejiang University, Hangzhou Zhejiang 310058, China )

Database technology is very important in the Virtual Maintenance Training System.This article gives a brief description of the characteristics of MySQL database, analyzes the dominance of using database in Virtual Maintenance Training System, and introduces the basic means of designing database in it. An Virtual Maintenance Training System with preferable and transplantable property is developed combining with the Torque Game Engine. The experimental result indicates that applying database technology to the Virtual Maintenance Training System helps improve the system development efficiency.

computer application; database design; virtual maintenance; transplantable property

TP 391

A

1003-0158(2010)05-0157-06

2008-12-25

辽宁省自然科学基金资助项目(20082176);“浙江大学CAD&CG国家重点实验室”开放课题资助项目(A0906)

常高祥(1986-),男,河南汝阳人,硕士研究生,主要研究方向为虚拟维修。

猜你喜欢

结构设计装备数据库
这些精锐与装备驰援泸定
超限高层建筑结构设计与优化思考
港警新装备
结构设计优化在房屋建筑结构设计中的应用
防晒装备折起来
数据库
数据库
数据库
BIM结构设计应用
数据库