基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx

上传人:b****1 文档编号:13866291 上传时间:2023-06-18 格式:DOCX 页数:28 大小:35.04KB
下载 相关 举报
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第1页
第1页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第2页
第2页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第3页
第3页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第4页
第4页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第5页
第5页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第6页
第6页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第7页
第7页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第8页
第8页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第9页
第9页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第10页
第10页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第11页
第11页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第12页
第12页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第13页
第13页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第14页
第14页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第15页
第15页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第16页
第16页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第17页
第17页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第18页
第18页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第19页
第19页 / 共28页
基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx

《基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx》由会员分享,可在线阅读,更多相关《基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx(28页珍藏版)》请在冰点文库上搜索。

基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强.docx

基于VRMLJava的虚拟现实技术在可视化装配中的应用朱正强

基于VRML-Java的虚拟现实技术

在可视化装配中的应用

朱正强1 吴介一1 孔竞飞1 易 红2

(1东南大学CIMS中心,南京210096)

(2东南大学机械工程系,南京210096)

1)内部Script节点

Script节点的URL域可以包含一段JavaScript

程序或者是链接的一个Javaclass.当directOutput域

为FALSE时可以将Script节点理解为事件通路上

的一个智能节点,它接收事件输入对其处理后产生

事件输出,这条事件通路仍由ROUTE指定.当di-

rectOutput为TRUE时程序可以获得其他节点的引

用,并直接对其域进行赋值,而不必遵从ROUTE指

定的事件通路.

2)外部编程接口EAI(externalauthoringinter-

face)

Script节点从VRML场景内部提供了与Java的

连接,而EAI定义了与外部HTML页面中的Applet

通信的接口.它的基本思想是将JavaApplet与

VRML置于同一Web页面,在JavaApplet中建立

browser对象以标识一个唯一的VRML场景,并由

此获得对VRML场景中已定义节点的引用,它通过

直接指定引用节点的域值而达到动态效果.这样,

JavaApplet即可控制VRML场景,也能进行与HT-

ML等其他媒体的交互以及网络控制,从而可以实

现复杂的虚拟环境系统.EAI作为VRML标准的扩

充已经提交ISO,有望在将来正式成为国际标准的

一部分.

总之,很多功能既可通过Script节点也可利用

EAI实现,一般来说对于单一的VRML事件实现交

互及运算功能可选择内部的Script,若需集成多种

媒体,并进行复杂网络控制,则更宜于使用EAI,自

然其编程也要复杂一些.

在系统实现中需要进行大量与服务器的通信,

同时有比较复杂的用户界面控制,为此采用EAI作

为与VRML的交互手段.

1.5 动画演示的实现

用户根据装配CAPP系统推导得到的装配顺

序[3]进行可视化装配验证,当装配成功之后,一方

面可以对原来的装配顺序进行修改,同时也可将此

虚拟装配过程保存供其他用户通过网络回放,实现

虚拟装配的动画演示.一般在VRML中往往通过使

用插值器节点改变对象或者视点的移动轨迹来实

现动画效果,但这种方式需要手工编写VRML文件

内容,一旦改变了装配路径就需要重新改动源文

件,因此灵活性不高.采用基于动态模型的运动控

制,用户装配时保存零件运动的关键点,JavaApplet

在获得关键点信息后,根据用户指定的运动速率和

运动方式(如按直线或曲线移动),在定时器的控制

下得到下一时刻物体的位置并通过EAI发送到

VRML场景中从而达到动画效果.所有关于运动的

计算和控制均脱离VRML由Java实现,可以使用户

方便地对运动路径进行修改和控制,也有利于不同

场合下对运动信息进行共享.

1.6 碰撞检测算法在系统中的应用

碰撞检测是虚拟装配时对装配路径进行干涉

检测的核心技术.现在的VRML97标准中所提供的

collision节点仅能检测观察者视点和物体之间是否

发生碰撞,而不提供物体间的碰撞检测,这部分功

能需要另外扩展.一种解决方法是在VRML场景中

增加一个自定义的CollisionObject节点,把需要进

行碰撞检测的物体纳入其中,同时在VRML浏览器

中加入用于碰撞检测的函数库[5],而无论是对商业

公司提供的VRML浏览器进行扩展还是自己编写

符合需要的浏览器都会影响通用性.为此我们考虑

将碰撞检测的功能在服务器端实现,即由Applet获

得VRML物体的位置后将其作为参数传送给服务

器端的运算对象,并由其调用碰撞检测函数库对服

务器端与其相应的装配模型进行运算.Applet调用

服务器端对象有几种实现方式,如Socket,RMI,

CORBA以及基于HTTP协议的pplet-Servlet通信,

由于网络所需传输的流量不大,因此对于性能造成

的影响是可以忍受的,而它的益处在于不需要对浏

览器进行扩展,客户端的运算压力得到减轻,同时

可以在不影响客户端设置的情况下对核心运算模

块进行升级.

本文采用的SOLID2.0算法库[6]是GJK算法[7]

的一种实现,很适合于基于多边形表面描述的复杂

几何体的碰撞检测.

2 应用实例

系统基于Java技术构建,用户界面采用Swing

组件,出于实现的简单性和通用性考虑,采用Ap-

plet-Servlet通信实现客户端和服务器之间的位置传

递和结果返回.基于SOLID2.0的碰撞检测模块用

C++编写并编译成为动态链接库,由服务器上的Ja-

va程序通过JNI(Javanativeinterface)对其进行调

用.目前基于“堆叠”思路的装配验证方式已经完

成,VRML模型直接由CAD文件输出,装配模型为

类似的多边形表面描述辅以装配关系约束.用户在

客户端按照装配顺序依次拖动零件到合适的装配

位置,期间可以进行角度姿态调整,同时对装配时

的关键点位置进行记录并保存到服务器,装配完成

后可供动画回放,装配时是否发生干涉由碰撞检测

模块实时运算.

27第1期朱正强等:

基于VRML-Java的虚拟现实技术在可视化装配中的应用

图1 系统功能框图

形的模型表面描述,所采用的多边形数量越多,模

型越精确,但同时带来的渲染数据量也越大.VRML

中采用IndexedFaceSet节点描述面的形状并通过面

的拼接实现任意形状的几何体外观.当CAD模型

转换为VRML模型之后,将会丢失精确性和具体的

装配特征从而不利于装配时对其进行精确控制.为

了增强VRML环境下的控制和仿真功能,考虑在服

务器端建立一个与客户端VRML模型互为镜像的

模型,客户端发出的碰撞检测和精确控制等指令通

过网络传到服务器端进行运算并将结果传回,然后

由JavaApplet通过EAI控制VRML模型的运动以

反应仿真结果.同时这样的实现方式可以降低对客

户端软硬件环境的要求,无须额外安装定制的软

件,当对服务器端的核心功能库进行更新时也不用

对客户端进行改动,具有很好的扩展性和灵活性.

实现CAD环境下的信息提取有以下几种可能

的途径:

1)直接利用CAD软件的VRML导出功能

目前主流的CAD软件如ProE,SolidEdge都支

持VRML格式的输出,可以很方便地将其导入

VRML装配环境,但由于无法了解其转换细节,因

此无法控制转换精度也较难建立对应的镜像模型,

在功能的扩充上限制较大.

2)通过产品模型数据转换标准STEP

STEP作为国际标准得到了广泛的支持,对

CAD软件导出的STEP文件进行解析并由此得到

VRML模型和装配模型是一种可行的办法.文献

[4]对此进行了研究.

3)通过CAD软件的API

通过CAD软件提供的应用编程接口(API)是

一种更为安全的做法,由程序供应商提供的编程接

口可以保证在各版本之间的一致性以及信息的精

确性.PTC公司的DivisionMockup[5]采用了这种方

式将CAD数据转换到它自己的专用数据格式,同

样也可以通过这种方式建立VRML模型.但它需要

对不同CAD软件开发不同的接口,实现起来较为

复杂.

1.4 VRML和Java的结合

VRML的节点中定义了事件作为节点对外的

接口,分为代表输入接口的事件输入(eventIn)和代

表输出接口的事件输出(eventOut).事件模型如图2

所示.

图2 VRML事件模型

节点间的事件通路由关键字ROUTE指定,当

事件源有事件发生,就可以通过事件通路使相应的

节点发生变化,达到动态的效果.但仅仅通过这种

简单的事件模型还不能使VRML具备智能,无法在

各事件间建立复杂的联系,为了扩展VRML的交互

能力和处理能力需要程序语言的介入,VRML标准

本身没有指定编程语言,但在网络环境下,Java是

最具魅力的语言,它和VRML的结合显得相当自

然,当前的主流VRML浏览器也都对Java编程提供

了支持.

在VRML中使用Java有2种方式,即通过内部

Script节点和外部编程接口(EAI).

26东南大学学报(自然科学版)第32卷

L正日益拓宽其应用领域.

虚拟装配是虚拟现实技术在制造业中的一项

重要应用.传统的装配体设计采用自底向上的方

式,需要将零件制造出来后进行装配,往往会造成

装配体各部件的干涉以及与设计目标不符等缺陷.

如此反复,导致设计成本增加,开发周期延长.虚拟

装配借助虚拟现实技术可以在设计阶段进行装配

仿真,从而克服传统装配设计的缺陷.

敏捷制造是为了应对激烈的市场竞争而提出

的先进制造模式,以多种形式实现竞争环境下的敏

捷性,主要包括个性化需求满足、快速反应性、低成

本、生产系统的重组与资源的重用等.它强调各盟

员企业之间的信息和资源共享.敏捷制造模式中的

虚拟装配有其自身特点:

企业联盟动态形成,各企

业的设计开发环境不尽相同,因此构建的虚拟装配

系统需要不受软硬件平台和CAD环境的约束.同

时出于设备造价和易操作性方面的考虑,本文提出

建立CAPP生成系统,然后对其产生的装配工艺在

普通工作站上通过开放式三维技术仿真装配设计

过程,以此作为虚拟装配的一种简化形式,这种方

式可称之为可视化装配.

VRML作为一种开放的国际标准,可以用其构

建一个统一的三维交互式平台,并可与同样具有平

台无关性的Java语言相结合以满足复杂应用系统

的需求.但VRML作为一种通用建模语言,并不是

专为工程应用领域设计的,为了适应网络传输的需

要,其模型与CAD模型相比,在精确性和信息量方

面要相差很多,因此它在制造业中的应用受到了一

定限制.本文对基于VRML的可视化装配系统进行

了研究,提出一种装配模型与显示模型分离的功能

结构,即以BrowserServer为架构,装配模型与显示

模型互为镜像,装配模型在服务器端进行仿真运

算,而三维显示模型下载到客户端供用户浏览.这

样可以充分发挥VRML模型的三维显示、浏览功能

并通过仿真模型扩充系统功能.

1 系统结构和关键技术

1.1 研究背景

  如何增强VRML的3D浏览、交互能力并将其

应用于工程设计领域,国内外已进行了一定的研

究.MathiasNousch和BernhardJung[1]设计的BEA-

VER系统,采用基于Web的技术实现了网络环境

下家具的虚拟装配;密歇根大学的虚拟现实实验室

开展了一系列关于VRML在制造业中应用的研究

项目[2],如船体运动仿真,船体制造仿真,虚拟制造

中的机器人模型等;本文对VRML的模型特点、交

互控制进行了研究,提出了一种新型的应用结构,

并对其在敏捷制造环境下的虚拟装配中的应用进

行了探索.东南大学机械工程系先前开展的装配

CAPP和虚拟装配技术研究[3]中,采用寄生于CAD

环境的虚拟装配系统对装配CAPP系统生成的装

配工艺进行可视化装配验证.但由于不能脱离

CAD环境,对于在网络环境下进行虚拟装配验证

和装配顺序动画演示的发布带来了一定的困难,异

地的用户必须具备相同的CAD环境才能对虚拟装

配的过程进行再现,而这一点对于敏捷制造环境下

的企业来说通常不能保证.因此可以考虑采用

VRML和Java等完全基于Web的平台无关技术,这

样可在不同的硬件环境和软件平台上实现对装配

工艺的可视化验证,并且其结果可供管理、销售等

人员参考,而不仅仅限于工程技术人员,从而拓宽

了信息共享的范围.文献[1,2]中采用的方法对实

现以上目标均有不足,对此本文提出一种网络环境

下基于VRML的虚拟装配系统结构并对其中的

CAD环境下信息的提取和模型建立、VRML和Java

的交互、碰撞检测的实现、基于动态模型的网上动

画演示等关键技术进行了研究.

1.2 系统结构

采用3层BrowserServer结构,图1显示了系统

的功能框图.CAD客户端和装配客户端分别提供

基于浏览器的零件信息维护和可视化装配的用户

界面.应用层提供HTTP服务以及仿真运算和数据

库操作.资源层的数据库存储零件模型和相关信

息.客户层的三维显示与应用层的仿真运算分离,

不仅是增强VRML功能的有效途径,也有利于核心

运算模块的升级维护,提高系统的适应性和扩展

性.

1.3 CAD环境下的信息提取以及模型的建立

为使系统具备平台无关以及适于网络传输的

特性,需要将不同工作环境,不同CAD软件产生的

零部件信息和装配信息导入为一种中性的格式,并

由此产生用于客户端三维显示的VRML模型和用

于服务器端装配仿真的装配模型.CAD模型具有

非常精确的描述,包括用于制造或运算的尺寸描述

和材料数据,其表面往往由NURBS或Spline定义,

但当其用于实时交互时会带来相当大的渲染运算

量.VRML为了提高实时交互性能,采用基于多边

25第1期朱正强等:

基于VRML-Java的虚拟现实技术在可视化装配中的应用

摘要:

为实现建立在开放技术标准之上的可视化装配系统,本文对基于VRML-Java的虚拟现

实技术在工程设计领域的应用进行了研究,提出一种新型的Web环境下3D交互仿真结构.3D

模型下载到客户端显示,复杂的运算和仿真在服务器上进行,从而实现服务器端装配模型和客

户端显示模型的分离.在此基础之上可以完成VRML场景的动态生成、装配控制、碰撞检测以

及装配过程的动画回放等功能.该结构不仅可用于网络环境下的可视化装配,也适合于其他领

域基于Web的科学可视化.

关键词:

VRML;Java;装配;可视化;Web

中图分类号:

TP391.9  文献标识码:

A  文章编号:

1001-0505(2002)01-0024-05

VRML-Javabasedvirtualrealitytechnologyinassemblyvisualization

ZhuZhengqiang1 WuJieyi1 KongJingfei1 YiHong2

(1CIMSCenter,SoutheastUniversity,Nanjing210096,China)

(2DepartmentofMechanicalEngineering,SoutheastUniversity,Nanjing210096,China)

Abstract:

 Todevelopthevisualassemblysystembasedonopentechnology,theVRML-Javabasedvir-

tualrealitytechnologyisdiscussed.Thispaperpresentsanovelinteractive3DsimulationsystemforWeb

basedenvironment.3Dvisualizationisexecutedontheclientsideandcomplexcomputationandsimula-

tionontheserverside.Thus,thevisualizationmodelandtheassemblymodelaredistributed.Basedon

thistechnology,thedynamiccreationofVRMLscene,theassemblycontrol,thecollisiondetectionand

theanimationofassemblysequencearerealized.Thisarchitecturecanbeusedinvisualassemblysystem

andisalsosuitableforvisualizationinotherresearcharea.

Keywords:

 VRML;Java;assembly;visualization;Web

 收稿日期:

2001-04-16.

 基金项目:

国家自然科学基金资助项目(59889504).

 作者简介:

朱正强(1977—),男,硕士生;吴介一(联系人),

男,教授,博士生导师,yjw@.

  虚拟现实(virtualreality)最初指应用沉浸式技

术以提供真实体验的三维交互式可视化环境.通常

具有3个基本特征,即沉浸感(immersion),浏览性

(navigation)和多感官的交互(interaction).由于这样

的系统造价高昂,操作复杂,尚无法在普通的工作

环境中得到应用.因此目前虚拟现实的含义有所拓

宽,使用半沉浸和非沉浸式技术,通过显示器对三

维物体进行浏览同样可被称为虚拟现实系统,从而

在更大的范围中普及和应用虚拟现实技术.各种虚

拟现实系统的核心通常都是具有增强的功能和行

为表现的三维计算机模型.VRML(virtualreality

modelinglanguage)就是一种用于通过WorldWide

Web发布这种模型并允许用户使用带有插件的普

通浏览器对三维物体进行浏览的国际标准.虽然它

不具备沉浸感,但是由于其易于实现、适合网络传

输,对建立基于Web的三维可视化交互式应用提

供了一种很好的解决方案.随着网络带宽和计算机

硬件性能的不断提高,作为Web3D技术主流的

结 论

网络环境下的可视化装配是一个仍在不断发

展的课题,其中许多关键技术有待进一步深入研

究.为了获得更丰富的零件特征和装配信息,我们

准备对从STEP文件中提取几何特征和零件相对

位置进行研究.为了便于用户操作,需要研究零件

将要装配到位时的靠接技术.此外,如何减少网络

流量,提高实时性以及与Java3D技术的结合都是

值得研究的问题.本文提出的客户端完成三维浏览

显示和服务器端进行仿真运算的结构不仅可用于

网络环境下的可视化装配,也适合于其他领域基于

Web的科学可视化.

参考文献(References)

[1]NouschMathias,JungBernhard.CADontheWorldWide

Web:

virtualassemblyoffurniturewithBEAVER[A].In:

ProceedingsVRML99oftheFourthSymposiumontheVirtual

RealityModelingLanguage[C].Paderborn,Germany,

1999.113119.

[2]BeierLaus-Peter.Web-basedvirtualrealityindesignand

manufacturingapplications[A].In:

1stInternationalEuro

ConferenceonComputerApplicationsandInformationTechnol-

ogyintheMaritimeIndustries[C].http:

www-vrl.umich.

edubeierPaperscompit2000WebBasedVR.htm.200101

05.

[3]顾建钧.敏捷制造环境下装配CAPP和虚拟装配技术

研究[D].南京:

东南大学机械工程系,2000.3755.

GuJianjun.CAPPandvirtualassemblyinagilemanufactur-

ingenvironment[D].Nanjing:

DepartmentofMechanical

Engineering,SoutheastUniversity,2000.3755.(inChi-

nese)

[4]KimCheol-young,KimNamkug,KimYeongho,etal.Inter-

net-basedconcurrentengineering:

aninteractive3Dsystem

withmarkup[A].In:

ProceedingsofCIE1998ASME18th

ComputersinEngineeringConference:

DETC98CIE5522

[C].Atlanta,1998.5522

[5]任 浩,谭庆平.基于VRML和Java的物理建模方法与

实现[J].计算机工程与科学,2000,22

(2):

3639.

RenHao,TanQingping.Amethodofphysicalmodelingand

implementationbasedonVRMLandJava[J].Computer

EngineeringandScience,2000,22

(2):

3639.(inChinese)

[6]GinoVanDenBergen.AfastandrobustGJKimplementation

forcollisiondetectionofconvexobjects[J].http:

www.

win.tue.nlcsttginosolid.20000811.

[7]CameronS.EnhancingGJK:

computingminimumandpene-

trationdistancesbetweenconvexpolyhedra[J].Proceedings

ofIEEEIntConfonRoboticsandAutomation.1997,4:

3112

3117.

28东南大学学报(自然科学版)第32卷

1)内部Script节点

Script节点的URL域可以包含一段JavaScript

程序或者是链接的一个Javaclass.当directOutput域

为FALSE时可以将Script节点理解为事件通路上

的一个智能节点,它接收事件输入对其处理后产生

事件输出,这条事件通路仍由ROUTE指定.当di-

rectOutput为TRUE时程序可以获得其他节点的引

用,并直接对其域进行赋值,而不必遵从ROUTE指

定的事件通路.

2)外部编程接口EAI(externalauthoringinter-

face)

Script节点从VRML场景内部提供了与Java的

连接,而EAI定义了与外部HTML页面中的Applet

通信的接口.它的基本思想是将JavaApplet与

VRML置于同一Web页面,在JavaApplet中建立

browser对象以标识一个唯一的VRML场景,并由

此获得对VRML场景中已定义节点的引用,它通过

直接指定引用节点的域值而达到动态效果.这样,

JavaApplet即可控制VRML场景,也能进行与HT-

ML等其他媒体的交互以及网络控制,从而可以实

现复杂的虚拟环境系统.EAI作为VRML标准的扩

充已经提交ISO,有望在将来正式成为国际标准的

一部分.

总之,很多功能既可通过Script节点也可利用

EAI实现,一般来说对于单一的VR

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2