法律声明
招聘信息
购买说明
云网媒体淘宝专营店
售后服务
联系我们
有啊专营店

基于VRML的虚拟制造
发表时间:2008-12-17 15:15:49     文章来源:网络
    浏览次数:1245
 
双击自动滚屏
 
一、VRML概述

  VRML(virtual reality modeling language)即虚拟现实建模语言,是在Internet、Intranet或本地构造3D对象的语言,提供完整的3D图形和多媒体的交互功能。它采用SGI(silicon graphyicsinc)公司的 OPen Inventer ASCll文件格式作为语言的基础。1994年2月设计完成了VRML初始例程,1995年5月发布了VRMLI.0规程说明,在VRML1.0的基础上加入了大量的交互特性。VRML2.0第一版于1996年8月在新奥尔良举行的SIGGRAPH‘96会议上颁布。1997年12月,将VRML97,即VRML2.0经编辑性修订和少量功能性调整后的结果作为国际标准正式公布,并于1998年1月正式获得ISO批准(国际标准号ISO/IEC 14772-l:1997)[1],创立了标准化进程仅18个月的 ISO/IEC纪录,同时它还是第一个用HTML发布的国际标准,VRML被称为第二代WEB语言。

  二、VRML特点及在虚拟制造中的应用

  VRML的主要目的是为了在计算机网络中建造一个虚拟的三维世界,使信息的表现形式更加生动,给人以身临其境的感觉。其最新版本VRML 2.0增加了支持动画虚拟世界的功能,其结构与 1.0版本有较大区别,现在使用的都是VRML 2.0版本.

  1.VRML特点

  (1)语句结构化、层次化,可灵活高效地创建三维模型。

  (2)文件占有的存储空间小,大的场景被分解为许多单个的小文件,只在使用时实时去取,并且VRML生成的图形元素可被重复使用,适合于在计算机网络上进行传播。

  (3)对各种机器有统一的运行机制,适合在Internet上进行信息交互,具有平台独立性。

  (4)VRML允许用户的行为能够实时作用于场景,交互性强;为Javas cript、Java等语言提供了调用的接口,易扩展。

  2.VRML技术在虚拟制造中的应用

   虚拟制造是以信息技术、仿真技术、虚拟现实技术为支持的一种新的制造技术,在产品设计或制造系统的物理实现之前就能使人体会或感受到未来产品的性能或状态,从而做出前瞻性的决策和优化实施方案。虚拟制造为企业带来好处很多:在实际生产前,生成的软产品原型(Soft Prototype)代替传统的硬样品(Hard Prototype)进行试验,对其性能和可制造性进行预测和评价,在不消耗资源和能量的情况下,验证生产方案;工程技术人员可以直接对设计出的产品进行试加工,进行各项实验,检查产品各方面的技术性能是否达标;对生产的组织和进度安排进行实验,建立合理的进度表等。虚拟制造大大降低了生产成本,减少了新产品开发的投资,缩短了产品开发周期,提高了系统快速响应市场变化的能力,因此受到了广泛的重视。虚拟制造技术将从根本上改变设计、试制、修改、规模生产的传统制造模式,使制造业步入更经济,更快捷,更高效的发展模式。虚拟制造不仅是制造业发展的一次革新,而且也是建模与仿真技术自身的一次飞跃。

  VRML技术应用于虚拟制造的实现过程主要可分为以下两部分:1构建三维静态模型建模;2根据实际工作状况实现事件的虚拟仿真。

  1)构建三维静态模型
  建立三维场景模型时,采用由小到大的做法,先将整个系统规划成若干个部分,按照规划存入不同的文件中,最后根据各运动部件的连接关系。在一个主文件里将组成系统的简单部分直接编程实现,复杂部分用Inline节点组合在一起,就可以成为整体的虚拟三维模型。

  VRML场景中机械部件的三维造型由一个Shape节点定义,这些特征定义了放置在虚拟空间中的造型。一个造型的确切几何尺寸和外观由给定节点和节点域的选择值控制。造型的外观由Appearance和Material节点来描述。VRML提供四种原始几何造型,它们是Sphere、Box、cylinder和Cone节点。任何复杂的机械部件通过Box、Cylinder、Sphere、Cone基本形体节点和Extrusion、IndexedFaceSet等生成复杂形体的节点实现特殊形状的部件,还可以用3D成型软件如UG、3DSMAX、Maya、Pro/E、SolidWorks先进行三维建模,通过Export输出VRML文件(.wrl),再调入VRML编辑器进行编程,经过处理后参与整体的组合,这样可大大方便了VRML编程。

  2)针对虚拟模型的虚拟现实仿真技术

  利用虚拟现实建模语言VRML构建复杂系统的三维场景后,可以通过PlaneSensor 、CylinderSensor 、SphereSensor等节点确定各部分机构的运动自由度和范围,通过位置插补器节点PositionInterpolator、方向插补器节点Orientatationlnterpolator和坐标插补器节点Coordinatelnterpolator进行线性插值来设计动态过程。还可以利用Java语言与s cript脚本节点结合来扩充VRML的功能,实现复杂动作虚拟。其中,仿真过程的触发行为以及事件之间的连接回路是通过触摸传感器节点TouchSensor、时间传感器节点TimeSensor和ROUTE语句实现的,ROUTE语句对出事件和入事件进行了有机的连接,保证了节点与节点之间的联系。为扩展动态交互功能,可利用VRML为Javas cript、Java等语言提供的接口与Javas cript、Java集成,共同完成动态交互仿真功能。

  3)应用实例

点此在新窗口浏览图片


  图1.石油固井添加剂分配系统的虚拟制造效果图

  如图1,是应用VRML实现的石油固井添加剂分配系统的虚拟制造效果图。

  这个系统的三维仿真场景中实现的造型主要有:电机、搅拌器、贮藏罐、电磁伺服阀、过滤器、计量泵、针阀、管道等,其三维模型先由UG完成,再输出为VRML文件,然后对各个设备进行详细的渲染,最后按要求分别定义颜色和材质。

  对该系统的的虚拟现实仿真包括电机的加速减速、搅拌器的拆卸、工作指示灯的开关、设备的工作声响等,篇幅所限,下面仅就电机的加速减速为例简述其实现过程。

实现电机的转动用到TimeSensor 节点,其VRML语法如下:
    DEF time TimeSensor {cycleInterval A
       loop True }
    cycleInterval的值指定了一个时间长度A,即传感器从0.0到1.0时刻的间隔。改变A的大小可以改变电机转动的快慢。Loop域是一个开关量,指转动循环的状态,True 指无限的循环,False指只循环一次。
    实现电机转子转动要定义的另一个节点是OrientationInterpolator,即朝向插补器。
    DEF path OrientationInterpolator {key [ ]
                            keyValue [ ]}
    key和keyValue定义了电机转子转动的关键值和关键位置。产生事件和接收事件节点由ROUTE指令连接在一起。
    ROUTE time.fraction_changed TO path.set_fraction
    ROUTE   path.value_changed TO zhuanzi.set_rotation

点此在新窗口浏览图片

图2.Java和VRML动态仿真的程序流程图
    第一个路由在TimeSensor节点的fraction_changed eventOut和OrientationInterpolator节点的set_fraction eventIn之间建立连接。第二个路由在OrientationInterpolato节点的Value_changed eventOut事件和TimeSensor节点的set_translation 之间建立连接。在虚拟场景中电机一旦开启,时间传感器被击发而不断输出时刻值,插补器OrientationInterpolator收到这些值后,用来计算一个新的旋转,新的旋转数据输出给Transform节点,使得节点坐标以一个新的角度旋转。要实现在虚拟场景中对转速的加减进行控制,可运用s cript节点对应的Java类来完成,使用Java对VRML的s cript节点编程、封装属性和建立场景图内部消息通道能够实现虚拟实体丰富的动态交互功能。其程序流程如图2示。Java程序对虚拟场景中电机的转速控制的流程为:设计者在虚拟场景中输入一个转速值,该事件经路由传入s cript节点;Java程序从s cript节点处获取的事件进一步加工,再将在Java程序中实现的操作者的加速或减速的逻辑信息反馈到s cript节点中,实现对虚拟现实场景中电机转子的速度控制。

  三、VRML技术在虚拟制造中应用的关键技术

  1.模型建立

  根据部件尺寸、形状、位置、运动关系建立机构模型,尤其是复杂模型,可利用3D成型软件如UG、3DSMAX、Maya、Pro/E、SolidWorks先进行三维建模,通过Export输出VRML文件(.wrl),再调入VRML编辑器进行编辑处理,,这样可提高VRML编程效率。对于机械模型的不规则外形和不同的运动形式,可用位置插补器(position interplolator)来进行更精确描述。对需要细节展现的机械部件可运用LOD算法,它的功能为:一个复杂的模型在距离观察者很远时,它的大多数细节都不能被观察者看见,因而可忽略,只有当观察者足够接近模型时这些细节才体现出来。这样既可满足设计需要,又可节省资源。VRML的颜色插补器、法线插补器、坐标插补器、位置插补器等能更真实地建立模型和场景,更准确地定位模型、描述其运动,达到很好的仿真效果,并且文件所占空间很小(一般为几十KB)。


  2.VRML文件与HTML文件的超级链接

  基于VRML的虚拟制造很大程度上是通过网上的动态交互功能来实现的,而VRML适合通过网络进行信息传输,于是VRML文件与HTML文件通过网络进行相互超级链接显得十分重要。
    HTML文件格式的标准并不支持对VRML文档的嵌入,但非标准HTML提供<EMBED>标记可实现VRML文档的嵌入[2]。如:
    <EMBED NAME=bodyvrml SRC=”example1.wrl” HEIGHT=300 WIDTH=400 ALIGN=LEFT>实现了VRML文档“example1.wrl”在HTML文件中的嵌入。
   
    应用组节点 Anchor在VRML文件中也可实现对HTML文件的超链接,只要用户在 Anchor的几何子节点上点击,即触发这一链接。如:
    Anchor {des cription ’link to example.wrl’    #对Anchor的链接对象进行描述
        url ’example2.html’                #设定链接的HTML文件名称
     children Shape {geometry
    Sphere {}#定义一个球体,一旦点击该球,则打开example2.html文档0
              }
   }
    VRML文件之间的跳转也可以由Anchor实现。另外,Inline节点也可以实现VRML文件之间的连接,但它并不触发超链接,而是用网络上某个VRML程序作为它的子节点,如果点击则会触发一个VRML程序。
    3.虚拟制造系统内的交互
    实现虚拟制造交互性操作的具体位置有HTML页面的控件以及VRML页面的节点。前者一般是在二维网页上进行超级链接,后者是单纯地在VRML页面上实现的用VRML父节点控制其它VRML节点的活动。
    VRML交互功能一般是通过一系列检测器来实现的,触动监测器是用来检测用户的触动动作,其中包括TouchSensor节点、PlaneSensor节点、CylinderSensor节点和SphereSensor节点。除触动检测器外,能产生交互功能的节点还有感知检测器,它是用来感知用户与造型的接近程度,包括VisbilitySensor节点、ProximititySensor节点 和Collision节点。检测传感器的选择必须考虑相关的动作类型,如果要获取观察者的位置和可见度的信息,可以使用Proximitysensor和VisibilitySensor;要滚动、转动、拖动几何体,可以使用Spheresensor,Cylindersensor和PlaneSensor;TouchSensor可获得非常丰富的关于鼠标的信息,作为输入驱动产生若于事件;VRML为Javas cript、Java等语言提供了调用的接口,他的主要作用是提供灵活的编程嵌入接口。URL域可以直接编写描述性质的程序,也可以将程序部分分离出来,单独存放在一个文件中,然后在URL域指定它的资源地址。在VRML2.0标准中也没有具体规定编程语言,用户可以根据情况,灵活地选择 Vrmls cript,Javas cript或Java。
    4.系统导航与视点的变换
    为了防止在复杂的虚拟制造VRML场景中迷失航向,应设置作用明显突出的导航控件或者节点,为了可以细致地观察某些现象,应适当地设置观察位置和观察方向(即视点)。如在场景的设计中,应设置正视图、侧视图、俯视图以及全局图的视点,以方便用户随时切换观察方式,必要时,可以提供自动浏览的功能。
    设置视点要采用Viewpoint节点,其语法如下:
    Viewpoint {des cription ’view1’  #des cription定义视点名称;
    position  0 1 0       #定义在虚拟场景中观察者的坐标位置;
    orientation 0 1 0 1.57 }  #orientation定义了虚拟场景中观察者观察者的空间朝向,前三(0 0 1)位确定了视点的方向,即与z轴的负方向对齐,最后一位指出了旋转角度;
   
    fieldOfView 0.785398   #fieldOfView给出了一个以弧度为单位的视点的视宽角的大小,在0.0~3.14选取,默认值为0.785398,即45°角;
   
    jump FALSE } #jump是个开关值,TRUE表示是跳跃视点,FALSE表示是非跳跃视点;
    5、结合Java的数据信息传输
    虚拟制造设计者可在虚拟场景中把机械模型的参数、存取的数据、优化的数学模型和可靠性分析数据结合Java编程和数据库,将优化解直接传送给Java Applet,Java Applet与VRML文件及页面数据进行通信并使之实时显示[3,4]。基于网络的虚拟制造系统都会涉及到这个问题。VRML文件中定义s cript接口和其他节点名称、属性,在s cript节点与Java程序间建立一个映射,同时初始化指向VRML场景的程序变量,这可在initialize()方法中完成。在映射并初始化后,可用Value()赋值,同时将该值传递给VRML中某一字段,当VRML中的传感器如TouchSensor检测到触发事件后,使VRML即时更新,实现实时显示虚拟制造过程和结果。
    6.其他关键技术
    基于VRML技术实现虚拟制造是涵盖了自动化控制、计算机图形学、机械设计、人机工程学、网络技术、计算机应用及虚拟现实(VR)等多门学科,具有较大的难度,进行虚拟制造过程中要综合考虑各学科的特点[5]。
    目前,关于数字虚拟机械的研究主要集中在有关广义力学的静态模型方面(性能、设备及工艺参数等),而在动态模型的研究方面开展得较少,故建立虚拟机械动态模型是关键技术。

此外,VRML2.0是单纯的文本编辑语言,它不提供可视化编写环境,实物虚拟模型的建立完全依赖于坐标的定位、旋转和放缩,这给模型的建立带来了很大的难度。动态虚拟仿真场景的建立以及最后建立的三维监控系统需要三维模型与仿真的数学数据动态交互,VRML不提供数学运算,这需要借助于其他语言,多种语言的混合运用也是关键技术[6],同时也给编程带来了一些难度。
    四、结语
    虚拟制造是一种通过计算机虚拟模型来模拟和预估产品功能、性能及可加工性等方面可能存在的问题的技术。虚拟制造为工程师们提供了从产品概念的形成、设计到制造全过程的三维可视及交互的环境,使得制造技术从经验模式发展到整体预报的新模式。
    VRML作为国内外虚拟现实技术新的研究点,因其文件长度小、节点功能丰富、适于网络三维信息动态交互等优点,通过与Javas cript和Java相结合所具有的强大的动态交互操作能力使得基于它的虚拟制造能够得以实现。随着VRML用于虚拟制造,相关技术也在进一步完善,VRML与各种新技术的融合将会有力的拓展VRML的应用领域。相信随着工程技术人员对VRML的认识的加深,VRML在虚拟制造领域会得到广泛深入的应用。

苏ICP备15033099号
 点击这里给我发消息
备案号:苏ICP备15033099号-1
版权说明 隐私保护 网站地图 支付宝 扬州市互联网报警处置中心 百度 阿里巴巴淘宝网阿里云