在线工博会

基于X3D实现机械创新设计虚拟实境系统的构建
陈敏 刘晓秋 伍胜男
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
工程设计的全过程就是不断建立各种模型,并进行分析的过程,即反复地创造模型和评价模型的过程。要设计就要创新,而创新正是设计人员进行创造性思维的结果,通过打破习惯性思维,变换角度,开拓视野,使创造力得到更充分的发挥。机械创新设计是使设计者的创造能力得到充分发挥并设计出更具竞争力的机械新产品的设计实践活动,创新是它的灵魂。机械创新设计实验就为了加强学生机械系统方案创新设计概念,培养学生综合设计能力、创新意识和实践动手能力,提高对专业的认识和学习兴趣,树立工程设计的观点,激发创新精神。实验本身就是一个具有创造性的活动过程,能培养学生主动学习的能力、独立工作思考能力和创新能力。使用虚拟实验室来表述创新设计,使其直观形象,并可对方案进行评价和优化。虚拟实验室具有传统仪器实验和传统电子实验无法比拟的优势,彻底打破空间、时间的限制,有利于构建以学生为主体的教学模式和创新能力的培养。
传统虚拟试验是在虚拟环境中建立机械系统数学模型的试验,根据所建立的模型对机械系统进行虚拟运动和虚拟动力学分析。这种试验对其结构合理性问题考虑不足,不能取代实物试验,缺乏真实性,学生在分析时认知性不够,对知识的掌握不全面,进行试验时积极性普遍不高,只适用于设计初始阶段方案的论证。普通的、纯粹的2D显示由于其固有的缺陷,已不能满足需要。
传统意义的机械设计仿真多用基于Matlab的机械设计仿真,而Matlab不适合面向对象的编程,虽可对执行机构和它们的组件如构件、约束等建模并进行仿真分析,但主要用于动力学和运动学仿真,所建立的模型是不继承分析模型,不能对设计的布局合理性、干涉性、运动空间的协调性等进行分析评估,因此具有局限性。目前,计算机网络技术快速发展,通过网络来构建虚拟实验室已经成为可能。将X3D和机械设计实验教学结合起来,使平面结构变成栩栩如生的真实立体机械构造,可以提供良好的VR体验,从而加速和巩固学生学习知识的过程,使学生能够通过网络完成实验教学任务,提高了学生的学习效率与积极性。这为培养学生的思维能力、动手能力、创新能力和工程意识提供了极大的便利。
1 X3D概述
X3D(Extensible3D,可扩展3D)是一个软件标准(ISO/IEC 19775,19776,19777),定义了如何在多媒体中整合基于网络传播的交互三维内容。X3D将可以在不同的硬件设备中使用,并可用于不同的应用领域中。如工程设计、科学可视化、多媒体再现、娱乐、教育、网页和共享虚拟世界等方面。X3D致力于建立一个3D图形与多媒体统一的交换格式。X3D是一种描述三维图形的标准语言,采用XML语法,成为未来三维图形的标准语言,更具有跨平台、应用方便等优点。X3D是VRML的继承。VRML(Virtual Reality Modeling Language一虚拟现实建模语言)是原来网络3D图形的ISO标准(ISO/IEC 14772)。X3D相对VRML进行改进,提供了更先进的应用程序界面,新添的数据编码格式,严格的一致性,组件化结构(用来允许模块化的支持标准的各部分)。X3D内容的用户可以建立并管理场景、渲染、行为以及媒体资源的存取,可以控制存取或结合作者创建的扩展,也可写入X3D或支持C++、Java、ECMAScript等外部语言,依内容定义的扩展能力被包括在概貌中,以支持原型(PROT0)机制。
1.1 X3D的优点
1)可兼容VRML,能够表现静态和动态的3D和多媒体对象。
X3D采用XMI.编码,引入基于组件的结构,更具有通用性、兼容性和可扩展性,X3D中只需要对场景做很小的改动,就可以用这个编码来播放不包含脚本的VRML场景。能连接文本,声音、电影和图象等超链接,可广泛地用于各种平台。
2)制作简化,适应各种播放器,可和其它应用程序平滑地整合。
X3D场景创作界面(SAD为所有脚本语言的内部和外部交互提供了一致的功能。而VRML中的Java和ECMAScript使用差别很大的编程模型。X3D通过指定一个统一的可以影射到任何编程/脚本语言的抽象服务集来解决这些问题,因而不管使用哪种编程语言都可以使用一致的播放环境,可以更简单地管理、控制、校验和交换信息。XML已成为整合并管理数据库中信息的必选。
3)模块化的结构,特性更丰富。
3D允许针对特定的市场来分割相应的概貌规格(in CAD、Medical、Visualization)。大量VRML中所欠缺的特性在X3D中以被整合到X3D架构的方式被提供,也就是说被标准化了。
4)X3D二进制格式可提供加密和压缩。
X3D环境可使用一个安全形式的加密和高压缩比(比VRML的gzip格式更高的压缩比)。场景中的编码模式可以由浏览器所支持的不同编码模式混合而成。
1.2 X3D与VRML的区别
VRML的一个主要问题是在开发VRML环境时要在所有的浏览器/播放器上取得一致的效果。X3D相对于VRML进行了改进,提供了更先进的应用程序界面,新添数据编码格式。与VRME相比,有一个统一的应用程序界面,其统一的API可以建立更强劲更可靠的执行方式;支持多种文件编码,支持更大的数据吞吐量,所有的数据编码都支持完整的X3D特性集;3个独立的规格,即抽象的概念和结构、文件格式编码和程序语言存取,允许规格在不同时间线上改动。
2基于XD技术的虚拟机械创新实验室场景建模
2.1 X3D建模机制
X3D技术将基于图象建模和基于图形建模2种方式结合构建虚拟实验室。虚拟实验室场景与用户交互有3种方式:感应节点交互、Script节点交互(含SAI Script Authoring Interface)和EAI(Extenreal Authoring Interface)方法交互。场景交互可以分为表态行为和动态行为,场景中对象的改变并不需要程序来实现,只需对象节点与一个语句的结合来实现这种动作。动态行为是通过一段逻辑程序来决定事件的产生,它具有询问对象状态的能力,再基于这些状态做出相应决定,并改变场景的状态。X3D场景的行为机制,无论静态行为还是动态行为,都是基于事件和路由2个基本特征来实现的。场景节点通过事件入口(Eventln)发出事件,来接受事件,通过事件出口(Even Out)发出事件,节点问的事件通过路由关键字Route指定。浏览器自动检测场景中产生的事件,并将新的字段值沿路由传送到宿主(Evendn Field)。这种事件机制驱动了虚拟场景中对象状态的变化界。动态行为不仅依靠事件和路由,还利用需要程序(Script、Java)作为执行引擎来实现。场景中一个给定节点(几何节点、感应器、脚本)的出事件(Even Out)可以被路由(Route)或执行引擎到另一个节点的人事件(Eventln)。以箭头方向作为事件出入方向,当出事件对象产生了一个事件,人事件对象就会得到通知,并处理接收到的事件。结合X3D场景和执行过程的事件流程如图1所示。

(图片)

图1 基于X3D的机械虚拟设计实验建模流程

2.2 X3D的对象模型
X3D系统由抽象的独立实体即对象构成。
ISO/IEC 19775-1:200x定义了每种对象类型的功能性规格,但并不规定这些对象的执行方法。X3DField对象称为域,描述了数据存储和数据操作之类的轻量级概念。X3DNode对象称为节点,描述更完整的空间和时间处理概念。节点包含一个或多个域,这些域保存数据值,并用来为此节点发送或接受事件。此外,X3D还定义了用来存取场景图信息的不存储在域或节点中对象类型,包括路由、原型声明、组件/概貌信息和元数据。域可能包含一个给定类型的值或一个此类型的数组。当使用SFNode和MFNode域类型的时候,域包含1个或多个节点。节点可以通过文件中的DEF声明或运行时的API服务调用来进行命名。命名能用来让其它声明引用指定的节点的实例,也能用来定位指定文件在场景图中的位置。
3 基于X3D机械设计虚拟实验室构建
3.1 机械创新设计虚拟实验室的建立原理
基于X3D的机械创新设计实验室的设计是利用组合创新原理,即利用已建好的机构基本组件,在一定约束下将动作重新排列组合,在一定条件下可以产生可行的动作结构变形,通过对不同机构分析,搭建不同的运动组合来实现目标要求,再根据设计进行合理的搭配组合,利用串联组合法(构件固接式串联、轨迹点串联)和并联组合法(如连杆之间的串联、曲柄摇杆机构与轮系之间的并联、蜗杆蜗轮机构的组合等)创新设计出一种与原机构特点不同的新的复合机构。一般选择变异设计、提高性能设计类进行结构的选择、比较和评价,如对原连接方式、支承方式改进变化来改善支承的强度和刚度等。由于学生所学习的知识还不够全面,因此实验机构的设计不建议采用全新设计。
3.2 基于机构创新设计虚拟实验室的总体设计步骤
X3D的虚拟机械设计实验流程见图2。

(图片)

图2 X3D的虚拟机械设计实验流程

3.3机械创新设计虚拟实验室的设计
虚拟实验室所建立的是反映功能载体的性能模型,实验室由装配平台、创新部件库组成。部件组件由凸轮、齿轮、齿条、带键主动轴、无键从动轴、连杆、转动滑块、压紧螺母、皮带轮、主动滑块、主动滑块座、转动副轴以及电机等构成。模型库按照稳定性、精确性建立并预估虚拟实验方案的运动和力学性能,可以简便地组成功能载体。虚拟实验为用户提供各种传动、支承零部件,提供组装机械系统的虚拟平台。实验过程中选择执行机构并不是简单的选择和拼装,而是包含创新。要得到合理的、优良的运动方案,学生必须要先行思考,积极进行创造性思维,构造出新颖、灵巧的机构。学生可以灵活地应用所提供的机构构型,创造性地设计、拼装机构或机械系统,并对设计目标所涉及的功能、原理、形态、布局和结构进行分析评估。
在线虚拟实验室程序设计分为3个层次:数据与存储层、计算逻辑层和用户界面层。
3.4运行环境
X3D运行时环境维持了场景图的当前状态,渲染需要的场景,从不同传感器接受输入的信息,按照行为系统的指导模式改变场景图。X3D运行时,环境管理对象的生存周期包括内建对象、用户定义的对象和程序化脚本。X3D运行时,环境安排事件的处理主要通过行为生成。运行时环境也管理协调X3D浏览器和主机间的文件传输、超链接、页面整合和外部程序存取。X3D支持很多类型的内建对象,这些对象包括运行时环境通常使用的功能。用这些内建对象来呈现诸如SFVec3f三维矢量值、几何节点(例如Cylinder)和节点之间路由之类的数据结构。每一个节点包括零个或多个域,用来存储数据值,多个事件可在对象间传输或接受。节点是文件中相应声明实例,用户可以使用原型机制创建新的节点类型。这些节点成为运行时环境的一部分,并像内建节点一样运作。新的节点的创建可以使用文件内的原型和原型声明以及使用外部原型并参考外部文件的声明等。事件是X3D运行时环境产生行为的主要方法,用于驱动基于时间的动画、处理对象选取、监测用户的移动和碰撞以及改变场景图层级。运行时环境管理事件在系统中传播并按照规格设置的顺序计算。
3.5 建立虚拟空间的方法和所需要的软件工具
由于实验系统的结构和外形的复杂性,直接用X3D建模难度大。所以采用了第三方的造型软件3DS MAX来生成制造单元。然后再通过3DS MAX为X3D语言提供接口,把在3DS MAX生成的模型单元"导出"(export)为X3D格式的文件。再通过编辑VRML源程序的相关部分,编辑它们在虚拟现实世界的位置关系来实现虚拟实验的场景。X3D的节点编组是使用Group节点进行的,由多个节点构成一组,以便构造出更复杂的几何造型,见图3和图4。

(图片)

系统使用X3D、FrontPage 2003、3DS MAX8.0和Photoshop cs8.0等作为制作工具。
4 虚拟实验场景的设计
X3D提供Transform节点来进行造型的几何变换。在每个X3D文件中可以声明1个节点集和此节点集的域的初始状态以及被称作路由(Routes)的域之间的联系。由于X3D的动画涉及到时间触发器、插值器、事件和路由等,采用发送到输入域的事件和输出域发送的事件。X3D在运行时使用一个事件传播或用数据流(dataflow)模型来改变域值。节点的行为可抽象地描述为:当事件发送到节点时节点产生回应,当节点满足给定条件时节点的域会发送事件。这样,这种事件传播模型就可以用运行时行为来建立场景。
机械创新设计虚拟实验室中的虚拟场景包括真实的实验背景和虚拟模型2个部分。
虚拟建模方法有基于3D和基于图像的方法。前者利用计算机图形学的技术进行虚拟环境的建模和渲染,主要用于实验室中需要与实验人员进行交互的虚拟模型构建,生成的模型质量较好,场景的现实感较真,但建模较复杂。后者利用多视、全景的图像来产生虚拟场景,交互性差,主要用于虚拟实验的背景制作 。
4.1模型的构建
采用3DS MAX 8.o(支持VRML97标准)建立3D模型可以提高模型的真实感。按一般制作三维动画的方法,对要创建的虚拟现实对象建模赋予材质及贴图,指定动画。动画采用"export"导出命令,使模型成为一个以"*.wrl"结尾的X3D网页文件。为减小文件大小,使结构清晰,采用分离的模块设计。先制作单个物体,然后制作出整个实验室的构架,包括机构搭接框架、各种平面副和杆件等。利用此套模型,加上电动机即可实现平面机构的组合实验和创新实验。在X3D场景空间中,每一个造型都有其空间坐标,通过修改空间坐标系就可以实现该造型在场景空间中移动、旋转和缩放等功能,见图5。

(图片)

4.2网站的结构设计
网站由若干个HTML页面与若干个X3D节点组成。首页以按钮超链接或文本超链接的形式与其它各页面链接。每个实验内容都是一个虚拟空间与HTML内容的组合。
4.3浏览器的选取
X3D浏览器使用户可以通过场景图层级中的传感器节点和境界产生交互。传感器回应用户和境界中几何对象的交互,或用户在境界中的移动。X3D SAI(Scene Access Interface一场景存取界面)提供了用户输入、取得或设置用户的视点,X3D的导航一般通过使用SAI执行导航。取景器使用SAI以提供用户的导航能力,并提高了兼容性。此外,结合SAI用户可以使用程序或脚本语言来执行自定的导航模式。建立动态的X3D场景可选择的浏览器有3种:可以独立应用的程序,如Xj3D,Plugin;无法独立执行需要嵌入WWW浏览器内,如BSContact v6.2和Flux Playerl.1;无需安装,使用Java的技术,安装了JRE就可通过WWW浏览器观看X3D的文件,如Virtual Globe。由于X3D-Ed it3.0是跨平台的操作平台,因此系统选用X3分Ed it3.0作为X3D的开发工具。
4.4虚拟实验室交互功能的实现
X3D的交互实现也是通过类似Virtual C++消息映射的映射机制。在X3D中,通过使用程序化的节点来嵌入脚本程序。它支持ECMAScript/JavaSeript或Java语言。通过所加上的脚本程序,我们可以构造出不一般的场景,实现虚拟场景的交互性,实现用户对场景的修改、调整和重新组合。交互和查询功能等用户事件的产生是通过相应的传感器产生的。在X3D中,用户事件的交互实现是通过类似消息映射的映射机制来实现的。传感器是靠着感应观看者的物人装置而产生反应,最常见的输入装置是鼠标。用户事件是通过相应传感器产生的。触摸传感器(TouchSensor):从指定设备的输入产生相应事件,表明用户何时何处触及定位设备;PlaneSensor传感器:用于指点设备在平等于Z一0平面上的动作,只要用户点按、拖动该传感器的几何体,产生局部XY平面上的交换;TimeSensor时间传感器,用来控制动画或者当某一时间段进行活动时产生事件:Anchor,将某一实体作热点,当被点击时,取出网上所指定的文件;LOD允许浏览器在物体表示的不同层次细节间自动切换。
除了上述传感器外,X3D还有键盘传感器、旋转传感器、字符串传感器以及VisibilitySensor、ProximitySensor感知传感器等。虚拟实验在场景中设置6个视点:"前视"、"俯视"、"右视"、"左视"、"后视"和"仰视",以提高交互性。以"前视"为场景中默认值。进入实验室后可以实现声音的交互。通过在浏览器中不断按"View"按钮,场景将不断地切换到不同的视点观看。最后仍可以采用"Inline"节点,调入已经制作完成的各种模型及返回主页的超级链接物体。X3D提供了一个应用程序界面(API-Appli-cation Programming Interface)扩展集,以便在运行时动态的存取场景。通过使用这些API,读取或设置节点的域值,游历场景图,控制浏览器的操作。在三维虚拟空间中,用户既能以鸟瞰、客观方式,观看整个三维场景,也能以参与者主观体验方式(即互方式)进行实验。用户可以利用键盘或鼠标来控制三维试验机构在虚拟场景中运动,实现从静态界面对虚拟场景的调用及虚拟场景中虚拟机械机构、工具及其事件的交互,从而控制虚拟模型的动作进行实验。通过该系统,展现在使用者面前的是一个可以自由漫游、并可以像现实世界一样的"触碰"与"行走"的境界。同时可以根据需要向虚拟空间添加所需的任何实验内容。
在虚拟实验平台上进行模型的拼装应注意根据给定的运动学尺寸分层进行,以避免干涉。
5 结语
虚拟实验室以其独特的优势成为今后教学改革的重要方向,有利于教学模式多元化,更为重要的是提供了教学建设中一种可行的模式和途径,为数字化校园的建设打下良好的基础。同时促进教学观念、教学内容和教学场所的变化,节省教育投资,提高教学效果,有利于学生创新精神、创新能力、协作意识的培养,优越性显而易见。
虚拟实验室具有传统仪器、传统实验无法比拟的优势,为学生创造良好的实验环境,彻底打破空间、时间的限制,有利于构建以学生为主体的教学模式,有利于学生知识的建构和创新能力协作意识的培养。可促进学生对专业课程知识的掌握,激发学习和创造的积极性,推进素质教育。这是平常的CAI软件难以达到的。基于X3D的虚拟实验室非常有利于工科远程教育教学,促进了远程教育的发展。
虚拟现实技术在教育教学中有令人鼓舞的应用前景。此外,虚拟实验与有实物参与的实验相比,还具有经济性,实验过程参数是实时的,可以方便快捷进行多种设计方案的比较,使得设计人员不仅可以编辑静态世界,还可以定义虚拟世界中各个物体的交互实现,非常适用于项目开发论证方案可行性、可靠度研究。 12/16/2008


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站