摘 要:职业教育要高素质的劳动者和技能型人才,实验教学是必不可少的教学环节,应用虚拟现实技术创建的基于Web的虚拟实验教学系统能够实现学习者与虚拟实验环境中各种设备器件的交互操作,在低投入、无风险的情况下实现较好的职业技能教学效果。
关键词:虚拟现实;职业教育;虚拟实验教学系统
作者简介:任健,山东政法学院教师。
中图分类号:G712 文献标识码:A 文章编号:1001-7518(2006)22-0054-03
与普通教育相比,职业教育(包括中职和高职教育)更注重对学生动手操作和实践技能的培养,因此实验教学是职业技能培训中至关重要的教学环节,在很大程度上体现着职业教育的水平。但在实际教学过程中,实验造价、毁坏性操作和高危实验等因素的普遍存在往往会制约着职业教育实验教学的展开。
随着多媒体计算机技术、网络技术,特别是虚拟现实技术的发展,构建虚拟的实验教学系统成为现实。通过在虚拟实验系统(虚拟厂房、虚拟车间、虚拟矿井、虚拟超市等)中的漫游,有助于学习者对实际生产操作系统整体概念的建立,了解生产操作系统的各个环节,避免初学者对真实生产带来的影响和破坏。通过虚拟系统提供的交互功能,能够培养学习者基本的操作技能.并为学习者带来真实的操作体验。
一、虚拟现实与虚拟实验教学系统
1.虚拟现实的概念和技术特征
虚拟现实(Virtual Reality.简称VR)是在计算机图形学、计算机仿真技术、人机接口技术、多媒体技术以及传感技术的基础上发展起来的交叉学科,对该技术的研究始于20世纪60年代.进入90年代,虚拟现实技术开始作为一门较完整的体系受到人们极大的关注。
虚拟现实,就是利用计算机、通过自然技能、使用传感设备生成一个逼真的三维虚拟环境的新技术。它与传统的模拟技术完全不同,是模拟环境、视景系统和仿真系统三者的有机结合。目前,虚拟现实技术已广泛应用于军事、航空航天、工程建筑、城市规划、医学、机械制造、教育、科研、金融、娱乐等领域。
虚拟现实最本质的特征是用户对虚拟场景的沉浸,它要创建一个酷似客观环境又超越客观时空、能沉浸其中又能驾驭其中的和谐人机环境,也就是由多维信息所构成的可操纵的空间。能够达到或者部分达到这样的目标的系统,包括一切与之有关的具有自然模拟、逼真体验的技术与方法,统一起来就称为虚拟现实系统。
虚拟现实技术在职业教育实验教学中具有其他媒体不可比拟的优势,主要由于其具有以下几个特征:沉浸性,指虚拟现实系统可以是参与的学习者完全沉浸在由虚拟现实系统所创建的环境中;交互性,指学习者在虚拟现实环境中可以和周围的物体发生互动,比如对机床进行操作:多感知性,指为学习者提供诸如视觉、听觉、触觉、味觉等各种直观而又自然的实时感知交互手段,以获得身临其境的感受;实体自主性.指虚拟现实系统中物体运动的设计依据物理运动定律。
2.虚拟实验教学系统
将虚拟现实技术与实验教学相结合,能建造职业技能培训所需的虚拟实验教学系统。虚拟实验教学系统主要由检测模块、反馈模块、传感器模块、控制模块、3D建模库和建模模块构成。主要设备包括高性能的计算机软硬件及各类传感设备、跟踪设备、控制球、三维立体声耳机.以及一些作用器件,如摄像机、压力传感器、视觉跟踪器、惯性仪、语音识别设备等,以便将学习者的操作转换为施加到虚拟系统中的物体上的作用信息,并将虚拟系统中物体形象、动作、声音进行转换,通过反馈使人能获得视觉、听觉、触觉等方面的感觉。
职业教育中应用虚拟实验教学系统具有很多优点,表现在:(1)优化和功能全(虚拟设备和设施易于升级和优化);(2)低成本(对元器件和设备库,可以无限复制和组合,减少人为损坏,弥补实际教学不足);(3)无危险(有毒的化学实验.高压强电的实验,虚拟实验系统的建造可以免除人身伤害的风险。);(4)网络化(利用Web提供的协同虚拟技术,可以实现多人合作、远程实验和协同操作)。
二、基于WEB的虚拟现实技术
在基于WEB的虚拟实验教学系统开发过程中,虚拟实验环境中设备的造型、生产设备的交互性操作、虚拟环境的仿真是关键的环节。要解决这几个问题,可以采用目前在网络化虚拟现实技术中应用广泛的3DMAX、VRML和JAVA。
1.VRML
VRML (Virtual Reality Modeling Language——虚拟现实建模语言)是一种用于建设虚拟三维世界的场景建模语言,具有平台无关性,是目前Internet上基于WWW的三维互动场景制作的主流语言。用VRML制作虚拟设备有以下特点:具有3D动画、音效、传感器触发、事件输入输出、行为控制、支持多种脚本与多重使用者等功能,能在Web上实现动态页面,具有加强的交互功能。
2.VRML与3DMAX
用VRML建立复杂的三维模型是相当繁难的,而3D Studio Max因其强大的三维建模功能恰好可弥补VRML这方面的不足,并且VRML具有与3D Studio Max模型的无缝接口。因此在虚拟实验系统的场景和仪器设备制作时,一般是先利用3DMAX制作出复杂逼真的场景,然后利用VRML语言进行位置、动作、空间背景、视点、传感效果等设置,使虚拟实验教学系统既具有逼真的漫游效果,又具有可交互可操作的特点。
3.VRML与JAVA
VRML创建的虚拟空间本身提供了空间与协作者之间的简单交互,这包括事件和路由以及简单的用户需求处理,但是它与外部交互的能力比较弱,也很难实现普通程序设计中的转折、分支、循环等基本操作。为了在虚拟场景中增加和删除对象,或者定义动画和对象的行为功能,VRML提供了一个与场景外程序相结合的节点—— Script节点,这样就可以通过Script节点来将 VRML程序和JAVA程序相连接,用JAVA程序更加灵活的控制VRML中的交互行为,解决虚拟环境中复杂的仿真问题。
三、虚拟实验室创建的关键技术
1.虚拟实验设备造型
职业技能培训中的实验设备通常包括诸如机床、模具、生产设备和仪器设备等,这些对象的外部造型可通过两种方式实现:(1)直接使用 VRML创建造型,这种方法简单、代码量小,但是造型逼真程度差;(2)采用3DMAX建立VRML模型,在进入3DMAX界面后,按一般制作三维模型的方法对要创建的虚拟实验对象建模,赋予材质及贴图,建模工作完成后,导出wrl文件。
3DSMAX的VRML97面板只提供了12个节点。在导出时会自动转换一些建模结构节点,但仍不能完全包括VRML97中的54个节点。因此构建思路是先用3DSMAX建模导出wrl文件.然后用记事本或写字板来修改该文件,之后用原名保存。以VRML浏览器检查结果,并用VRML添加3DSMAX不支持的节点。
2.仪器设备及交互性操作
虚拟实验中涉及到的设备、设施分成两类:一类是不需要交互操作的普通设施,另一类是可进行交互性操作的仪器设备。前者用3DMAX或 VRML的Shape节点建模后置于场景中即可。后一类仪器设备则应在创造一个逼真的外部模型的基础上,对虚拟仪器仪表的各种开关、旋钮的三维操作,以及与各操作相关的数字或模拟量的显示进行编程处理,这也是创建虚拟矿井的关键性技术。一般情况下用户对虚拟仪器面板上各种按键、旋钮的单击、旋转或拖动等操作,可通过VRML提供的路由机制、脚本功能以及JAVA程序实现。
(1)仪器设备的外观造型。虚拟仪器设备的外观包括面板、数据显示屏幕、各种开关按钮等部分。外观造型可用Shape节点,Shape包括两个域:描述外观的appearance域和描述形状的geometry域。其中geometry的域值是一种几何造型节点.可以用Extrusion挤压造型节点。Extrusion节点为描述各种形状的形体提供了一种有效而直接的方式,那些可以用2D截面图形经过空间沿某一路径而形成的形体均可采用这种方式。其中cross— Section域用来定义二维折线,包括一系列二维坐标,依次相连二维坐标点就得到一条分段线性折线。spine域用来定义龙骨折线包括一系列三维点,依次相连就得到一条折线。Crease Angle域用来影响浏览器对几何相邻表面之间棱的处理。正因为Extrusion节点有创建特殊造型的能力,所以虚拟仪器的大部分几何形体都可以由它来创建。
(2)仪器设备的各种按钮。仪器设备面板上的各种按钮分为开关按钮和旋转按钮,两类按钮都由造型部分和传感器部分组成,开关按钮使用的多是平面移动传感器Touch Sensor,旋转按钮使用的传感器是柱面旋转传感器Cylinder Sensor。
开关按钮需要在浏览者点击它时产生一个位置移动动画,表示已经将其按下,需要时间传感器和插补器来实现。插补器是一类特殊的节点,它们使用关键时刻和关键值的列表来描述每一个动画。关键时刻列表作为插补器节点的key域的值给出,关键值列表作为节点的key Value域的值给出。可以在这两个域中提供任意数目的关键时刻和关键值,但是它们两个的数目必须一样。当需要创建一个动画时就必须把插补器绑定到一个动画线路上去,将时间传感器的fraction- changed域路由至插补器的set-fraction域,这样每次时间传感器输出一个新的key值时,插补器就使用输入的时刻计算一个新的key Value值,然后通过value-changed域输出。
(3)旋钮及其值的显示。旋钮的旋转通过Cylinder Sensor节点实现。Cylinder Sensor节点规定用户的动作围绕Y轴旋转,如果需要旋钮绕Z或X轴旋转,可以修改旋钮所在的Transform节点的ratation域值实现。一般情况下通过旋钮的旋转角度的变化来模拟某种。
量的变化,其变化值的显示输出可分为数字输出和模拟输出。用Text节点以及VRML的路由机制来实现旋钮变化量的数字输出;用底部半径 (bottom Radius)很小,高(height)长的Cone节点模拟某种表头的指针,当旋钮转动时,旋钮的旋转变化量转换为指针Cone节点以底部为中心旋转的弧度,从而实现旋钮变化量的模拟输出。
(4)虚拟仪器的交互性操作
经VRML创建的虚拟仪器可以进行与协作者之间的简单交互,但是由于VRML缺少普遍程序设计中的转折、分支、循环等基本结构,必须加入JAVA程序才能真正实现虚拟环境中复杂的交互性操作。要使JAVA能处理VRML数据类型.必须引入几个类“import vrml *;import vrml firld.*; import vrml.node.*;”。
在JAVA程序控制VRML事件时,有两个不可缺少的方法:initialize( )和ProcessEvent( )。在对从Scdpt节点读取出的值进行处理后, 可能需要将其结果写回到Script节点中。为了达到这个目的,必须在Script节点和JAVA程序之间建立一个映射,同时初始化指向VRML场景的程序变量,这就是在initialize( )方法中完成的。而processEvent( )是所有传递事件的公共输入点。在这个方法中,可以设计各种逻辑关系来控制VRML。另外还可以直接在JAVA中读取出VRML程序中节点的域并且重新设定它的域值。这是通过 VRML中的SFNode类来完成的。在这里,SFNode是作为节点指针的一个宇段类型。一个SFNode字段可以指向场景中的任意一个节点。
在职业教育的实验教学环节中应用虚拟现实技术,采用3DMAX、VRML和JAVA技术开发的虚拟实验教学系统,对于计算机硬件环境要求较低,在有限的实验投入条件下能实现较好的技能培训效果,系统构建的三维场景能够真实再现各种行业实践的各个生产环节,设备器件可进行交互性操作,且操作提示信息准确,操作方法简单、灵活、有效,基于Web的环境使学习者不受时间、地点的限制,整个系统具有真实感强、可交互、协作方便等众多特点,是当前职业教育领域中一种值得推广的新型的实验教学模式。
参考文献
[1]邱进冬等.基于Web 的虚拟现实的开发与应用[J],计算机应用研究,2003(3).
[2]梁宇涛.虚拟现实技术及其在实验教学中的应用[J],实验技术与管理,2006(3).