首页 > 范文大全 > 正文

某火箭炮装填车学习系统的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇某火箭炮装填车学习系统的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:针对因缺少实装使新装备教学受到制约的现状,提出了支持网络浏览的基于VRML的某火箭炮装填学习系统的总体设计。采用Creator和UG建模软件构造了系统实体模型,使用VRML的Script节点结合JavaScript实现了系统的交互功能,运用Access搭建了系统数据库并通过ASP技术了实现了数据库的连接。系统为学员提供了一个形象逼真、交互性强的学习环境,提升了新装备教学效果。

关键词:火箭炮装填车;虚拟现实;VRML;交互;学习

中图分类号:TP391文献标识码:A文章编号:1009-3044(2009)24-6725-03

The Design and Realization of Learning System for Certain Rocket Launcher Loading Vehicle

LI Hui-xiang, YANG Qing-wen, YAN Yan, DONG Fei

(Fifth Department, Artillery Academy of PLA, Hefei 230031, China)

Abstract: The new equipments teaching is limited by the lack of real equipments. According to this situation , the learning system based on VRML for certain rocket laucher loading vehicle which can be browsed by network is designed. Creator and UG are used to make the solid model. The Script code in the VRML and JavaScript are combined to realize the interactive function. The database is constructed by Access and ASP is used to contract the database. This system supplies a vivid learning environment for students and improves the teaching effect.

Key words: rocket laucher loading vehicle; virtual reality; VRML; interaction; learning

某火箭炮装填车是某新型火箭炮的重要保障装备,该装备科技含量高、操作复杂、对操作手的协同和熟练程度要求较高。然而院校在新装备教学过程中存在实装少、受训人员多,挂图演示等传统的教学手段难以达到预期效果等诸多制约因素。

随着网络技术和虚拟现实技术的发展,支持网络浏览的学习系统越来越多的应用于教学。学习系统凭借其形象逼真的展示和良好的交互,极大的提高了教学效率取得了良好的效果。

本文拟用虚拟现实技术和网络技术开发某火箭炮装填车学习系统,以解决新装备教学过程中的存在的问题,提高教学效果。

1 系统设计

1.1 系统功能

根据新装备教学的内容和要求,学习系统应让学员熟悉装备和重要部件的构造,明白武器系统工作原理,清楚操作武器系统的动作步骤、要领和所使用的工具,并能根据教学的需要对系统中的资源进行实时的更新。因此,学习系统应具有以下功能:

1)系统漫游功能:能够对装填车三维模型进行漫游并通过模型中的连接实现重要部件的单体查看和学习。

2)智能拆装功能:能够对重要部件进行虚拟拆装,在拆装过程中实现拆装部件和使用工具的匹配检测。

3)查询学习功能:能够依据使用者的选择或三维场景中的交互实时的显示相关的学习内容。

4)流程学习功能:能够通过三维演示结合训练视频形象展示操作训练的流程。

5)系统管理功能:能够对系统资源进行实时的更新并对系统用户进行管理。

1.2 系统组成

系统采用B/S结构,浏览器分为教员浏览器和学员浏览器,在服务器中建立部件模型库、工具模型库和相应的数据库。系统构成如图1所示。

1.3 系统操作页面

使用软件Dreamweaver为系统搭建操作页面,页面分为四个区域,顶部为导航区,左侧为选择栏和公告栏,右侧载入三维场景。其效果如图2所示。

2 关键技术

2.1 实体模型的建立

构建VRML的实体模型有两种方法:一种是通过VRML语言直接编写。这种方法不直观、步骤繁琐,适合建立简单的模型。另一种是通过建模软件建模,再导入VRML。由于装填车部件多,构造复杂,本系统采用第二种方式构造系统实体模型。采用Creator建立装填车的整体模型,并通过纹理贴图和渲染,增强模型的真实感。对于需要拆装的部件,对其实体模型要求较高,故采用UG建立实体模型。为满足智能拆装的需要,首先建立单个部件的模型然后在UG组装模式下对模型进行组装,以保持单个部件间的独立性。

2.2 实体模型动态载入的实现

实体模型的动态载入分为部件实体模型的动态载入和拆装工具实体模型的动态载入两种。为实现实体模型的动态载入,提高系统的可操作性,建立部件模型库和工具模型库。采用Access为系统创建数据库“db1”和“db2”,建立“bujian”表和“gongju”表分别用来存储部件模型和工具模型的相关信息。“bujian”表有5个字段:ID、名称、地址、功能和备注;“gongju”表有4个字段:ID、名称、功能和备注。两个表都将ID设为主键作为系统查询数据库的标识。

2.2.1 部件模型动态载入的实现

部件模型的动态载入的实现分由VRML文件的嵌入和VRML文件的动态生成两部分组成,后者用于根据用户的选择查询数据库动态生成VRML文件,前者将生成的VRML文件嵌入到当前页面中。

本系统采用HTML的标签将VRML文件嵌入在当前页面中。标签的缺省属性有:src,width和height,还有一些可选的参数、插件用来控制嵌入的数据类型。使用其中的src属性调用动态生成VRML文件的ASP页面,以实现VRML文件的动态载入。

VRML文件的动态生成需使用VRML中的Inline节点,通过其中的url域值指定一个VRML文件的Url地址列表,便可以将这个VRML文件插入到当前的虚拟场景中。因此,通过改变url域值即将需要的Url地址列表放入其中,便可实现VRML文件的动态生成。

系统中,利用ASP提供的request函数接收调用页面提供的url参数,并以此构造查询条件查询数据库。最后将查询结果载入VRML的Inline节点中的url域中。默认情况下,WEB服务器不能够识别VRML内容并生成正确的VRML文件。因此,必须在被调用ASP页面开始生成一个合适的扩展MIME类型,并声明常用的VRML头信息。其关键代码如下:

Set conn1=

server.CreateObject("ADODB.Connection")

str1="Provider=Microsoft.Jet.OLEDB.4.0;

Data Source="& Server.MapPath("db1.mdb")

conn1.ConnectionString=str1

conn1.Open

Dim no

no= Request.QueryString ("url")

Set rs=conn1.Execute ("SELECT 地址 from bujian WHERE ID=" && no)

Set conn1=nothing

%>

Inline {

url ""

}

2.2.2 工具模型动态载入的实现

工具的模型的载入必须保证拆装的连续性,不能打乱原有拆装的步骤。为避免因页面的重新载入导致拆装的不连贯,使用脚本语言JavaScript在VRML 的Script节点中编写脚本函数完成工具模型在场景中的动态载入。

为方便用户操作,场景中使用Billboard(布告牌)节点建立工具载入开关,并为此节点添加TouchSensor(触摸传感器)节点和Anchor(锚)节点。用户点击载入开关的鼠标操作被TouchSensor节点检测后,该节点通过路由ROUTE向Script节点传递一个BOOL值TRUE以调用相应的脚本函数。在脚本函数中,将场景中需要的工具模型地址存储在MFString类型变量中。函数被调用后,通过变量间的值传递将地址赋予VRML文件中Inline节点的url域,实现工具的载入。同时Anchor节点检测到鼠标点击动作后,通过url域调用ASP页面查询数据库将该工具的相关属性和操作信息显示在新建页面中。当使用完工具后,点击工具模型再次调用Script节点中脚本函数,将空值赋予Inline节点的url域实现工具的消失。

2.3 智能拆装的实现

智能拆装包括部件的顺序拆装和工具匹配两个方面。在拆装练习中,当用户按真实的拆装顺序用鼠标点击相应的部件时,部件会按照设定好的路径依次移动。当点击的顺序不对时不能完成移动,并通过VRML控制台给出相应的提示。对于需要专门工具的拆装,为了增加操作的真实感,拆装中需要对拆装工具和零部件进行匹配。当把正确的工具移至相对应的零件时,启动约束解除(安装)动画后才能进行下一步的分解(结合)。

2.3.1 顺序拆装的实现

顺序拆装的实现需要VRML的多个节点和路由共同构建完成。TouchSensor节点用于感知用户控制输入操作,实现系统的交互性;Script节点用于实现自定义运算功能,相当于一个智能插值器;TimeSensor(时间传感器)节点用于实现定时和时间分度功能;PositionInterpolator(位置插补器)节点和OrientationInterpolator(方位插补器)节点分别用于与设定时刻关键值相对应的空间位置关键值和空间旋转关键值,实现模型移动的轨迹控制;Transform(转换)节点用于完成模型的移动。其原理如图3所示。

其中Script节点的创建是实现顺序拆装的关键。使用TouchSensor节点调用相应的脚本函数时,除传递BOOL类型的参数外,还会传递SFTime类型的参数timestamp。参数timestamp中记录了鼠标点击操作的时间,操作没有发生时其初始值为0。在程序中,通过对其是否为零和数值大小的比较实现对拆装顺序进行判断。顺序正确时,将timestamp的值传递给TimeSensor(时间传感器)节点的startTime域,开始执行部件位置变化动画。顺序不正确时,使用JavaScript自带的print(' ') 函数,将正确的拆装顺序显示在VRML控制台上,给操作用户以提示。

2.3.2 工具匹配的实现

VRML自带的节点不能检测虚拟空间中模型间的碰撞,为了达到既定效果需要借助虚拟空间中的坐标。通过TouchSensor节点的hitPoint_changed域可以获取工具模型、部件模型中心点的三维坐标,从而获得两者之间的坐标差;通过PlaneSensor(平面传感器)节点的translation_changed域可以获取工具模型在随鼠标拖动过程中三维坐标的偏移值。在此基础上,在Script节点中建立相应的函数实时计算工具模型和相应部件模型之间的距离,当两者之间的距离小于设定值时,启动约束解除(安装)动画。

为了提高真实性,需将工具模型和部件模型的PositionInterpolator节点和OrientationInterpolator节点中的时间关键值设定为一样,以确保两者运动的一致性。由于PlaneSensor节点只能在平面中拖动模型,所以在编写Script函数时只需要拖动平面的两维坐标即可。部分实现函数代码如下:

function bool6(value,timestamp) {

if(bool6)

{x=((gongju.translation_changed.x)-180);

# -180=(gongju.hitPoint_changed.x)-

(bujian.hitPoint_changed.x)

y=((gongju.translation_changed.y)+120);

# 120=( gongju. hitPoint_changed.y) C

(bujian. hitPoint_changed.y)

if((x*x+y*y)

{gongju.enabled=false;

touch6.enabled=true;

banshou.url=str;

tartTime3 =timestamp;

startTime6=timestamp; }

}

}

2.4 其它功能的实现

装填车整体模型构建完成后,通过VRML中的NavigationInfo(航行信息)节点设置浏览者替身在虚拟空间的宽度参数、身高参数和步高参数,通过Collision(碰撞感知器)节点进行浏览者替身和实体模型间的碰撞检测。在需要链接的部件模型VRML文件中添加Anchor节点调用ASP页面查询数据库以载入单个部件的实体模型,实现系统的漫游功能。流程学习功能的实现和顺序拆装的实现基本类似,顺序拆装以鼠标点击的时间作为模型动作的激发时间,而在流程学习中动作的激发时间为设定值。按照实装操作的内容设定每个部件的动作路径和顺序,并按顺序依次设定每次动作的激发时间即设置TimeSensor节点的startTime域,以实现操作流程的自动演示。

3 结束语

根据新装备教学的内容和要求,运用虚拟现实技术和网络技术开发了某火箭炮装填车学习系统,实现了系统漫游、智能拆装和流程学习等功能。该系统增强了教学的交互性、提高了教学的效果为虚拟现实技术应用于教学进行了有益的尝试。

参考文献:

[1] 杨红.基于VRML的虚拟拆装实验技术研究[J].武汉工程大学学报,2007,29(1):58-61.

[2] 文龙.Access 2003数据库程序设计基础教程与上机指导[M].北京:清华大学出版社,2006.

[3] 阳化冰.虚拟现实构造语言[M].北京:北京航空航天大学出版社,2000.

[4] 陈会安.JavaScript基础与实例教程[M].北京:中国电力出版社,2007.

[5] 刘好增.ASP动态网站开发实践教程[M].北京:清华大学出版社,2007.

[6] 何海霞.Dreamweaver8完美网页设计[M].北京:清华大学出版社,2006.