虚拟维修系统坐标变换与导航方法设计❋
2010-02-09李海军孙伟玮
李海军,孙伟玮
(1.海军航空工程学院兵器科学与技术系,山东烟台 264001;
2.海军航空工程学院研究生管理大队,山东烟台 264001)
0 引 言
大型、复杂装备由于造价昂贵、结构复杂,装备数量一般较少,且某些部件是不允许分解的,维修训练难以在实装上全面展开.同时,实装训练还容易造成装备不可避免的人为损坏,影响装备的战备水平.对于具有火工品和战斗部的装备或具有辐射源的装备,实装训练存在不安全的因素.因此,对于武器装备来说,运用虚拟现实技术,模拟装备真实的物理结构和维修训练环境,建立虚拟维修训练系统,可以不受时间、场地、培训规模及部件拆卸可达性等各种因素的制约,大大提高维修训练效率,是一种有效的维修训练辅助手段.
虚拟维修的应用研究目前主要集中在两个领域:产品开发与维修训练.在产品研制早期从维修性的角度改进产品功能和结构设计,在产品开发中发现维修性问题并改正,不必等到物理样机制造完成再实施.波音、洛克希德、普惠、BMW等工业巨头对虚拟维修技术非常重视,开展了多项在产品开发阶段对维修性进行研究的相关工作[1];国内外许多研究机构对维修训练系统也进行了大量研究,如日本京都大学[2]、新加坡国立大学[3]以及国内的清华大学、北京航空航天大学、浙江大学及有关军队院校都在研究将虚拟维修技术应用于维修训练中.
本文就虚拟维修训练系统中的坐标变换与导航技术进行分析研究.
1 坐标变换方法设计
为精确描述虚拟环境中各对象之间的装配关系、解除约束的运动关系,在构建虚拟维修环境时,需要为虚拟环境建立整体坐标系(亦即世界坐标系),为每个对象定义局部坐标系.当对象运动时,局部坐标系的位置根据运动方程在世界坐标中发生相应的变化,描述对象的图形元素如点、线、面等会随坐标系的变化而变化.视觉上,对象的运动是以相对于世界坐标系静止的对象为参照物而形成的运动效果.对象间的相对运动关系可以世界坐标系为过度坐标系,分别通过与世界坐标系的运动关系求得.因此,坐标变换技术是虚拟维修中精确描述对象运动的关键技术.
1.1 虚拟维修系统的坐标系
虚拟环境下,虚拟样机是基于层次结构的构造模型,零部件之间的层次结构决定了它们之间的父子关系.虚拟维修中,对象的拆卸和装配就是层次模型中节点的逻辑分离与结合,交互控制是解除对象间的几何约束,在运动约束条件下形成合理的运动视觉表示.层次结构中节点间坐标关系如图1所示.其中,Oxyz代表父节点坐标系;O1 x1 y1 z1表示子节点坐标系.
虚拟拆卸与装配需要解决如下技术问题:
1)节点运动独立性.拆卸时,节点分离后父节点与子节点的运动不能相互影响;装配操作时,子节点的运动具有隶属父节点运动的特性,子节点运动应跟随父节点形成整体的运动,即具有继承特性;
2)部件导航的合理性.根据配合及运动约束关系,分离节点可以采用螺旋、平移、旋转等运动方式与父节点实现脱离或结合.部件导航要根据对象的几何构造和交互设备的要求,能够方便地实现操作和观察,并且采用适当的碰撞检测和干涉剔出算法,使交互操作顺利、合理地进行.
1.2 变换矩阵设计
虚拟样机的建模是基于一定坐标系的,为了建模的方便,不同的零件可能选择了不同的坐标系.层次结构的装配关系反映了零部件之间的父子关系,为了描述零部件的运动关系,需要建立子节点与父节点之间的坐标转换关系.
实际上,只要知道任意两个坐标系各对应轴的相互方位,就可以用一个确定的变换矩阵给出它们之间的变换关系.
虚拟对象的拆卸和装配操作需要反映对象间的相对运动,为了表示子节点与父节点的相对运动关系,需要将子节点的运动投影至父节点坐标系.子节点的运动可以分解为相对父节点的平移运动和子节点坐标系的旋转运动,因此子节点对象的坐标变换到父节点坐标系的数学表示可以写成式(1)的形式.
图1 层次结构中节点间的坐标关系Fig.1 Relationship of nodes among h ierarch ical structure
图2 坐标系之间的关系Fig.2 Relationship between systems of coordinates
式中:L(h,p,r)为子节点到父节点的基元变换矩阵.为了得到变换矩阵,我们将子节点坐标系进行平移,使两个坐标系的原点重合,两坐标系三个轴之间的关系可以由 h,p,r来表示,如图2所示.
假定起始状态时,两个坐标系重合,当子节点对象相对父节点有相对运动时,用 h表示子节点坐标系绕 O1 y1轴的旋转角度,表示 O1 x1轴在 Oxz平面上的投影与 Ox轴之间的夹角;r表示子节点坐标系绕O1 x1轴的旋转角度,表示 O1 y1轴与 Oxy平面的夹角;p表示子节点坐标系绕 O1 z1轴的旋转角度,表示O1 x1轴与 Oxz平面的夹角.
可以得到:由子节点坐标系到父节点坐标系的变换矩阵为[4]
将式(2)得到的变换矩阵代入式(1)就可将子节点的坐标变换到父节点坐标系上.如果要想实现父节点坐标到子节点坐标系的变换,只需将平移坐标取反,式(2)所示的变换矩阵求逆即可.
这样,虚拟对象间的相对运动关系就可以通过上述的矩阵变换方法进行变换得到.假定对象 A到整体坐标系的变换矩阵为 L a,对象 B到整体坐标系的变换矩阵为 L b,则对象 A到对象 B的坐标变换矩阵可以由 Lab=La◦ L-b1求得;对象 B到对象 A的坐标变换矩阵可以由 Lba=Lb◦L-a1求得.
2 运动导航设计
运动导航包括场景漫游和拆卸部件的运动学及动力学描述.场景漫游主要是视点变化设计,在虚拟维修系统中就是设计虚拟摄像机控制模型,使得操作人员能够方便地观察场景中的任何对象;拆卸部件的运动学和动力学描述就是要建立一个真实的拆卸环境,能够模拟零部件拆卸过程,比如对象解除约束的过程,运动形式,重力、弹力等力学特性表示等.
运动导航包括场景视点变换、对象的分离与结合、运动行为的描述以及交互方法的设计等.
2.1 视点变换设计
视点变换的主要目的是在虚拟维修过程中如何获得最佳的视觉效果,能够直观、清楚地观察对象间解除约束的过程和分离及结合过程.视点变换设计就是获取视点坐标、改变视线方向的方法,能根据用户在虚拟装配环境中的视点位置和视线方向控制环境中的显示内容.虚拟现实仿真软件 EON采用透视投影的方法,将对象的三维空间坐标映射到位于摄像机的二维屏幕上,其原理如图3所示.
1)虚拟摄像机位于投影中心,由投影中心到三维物体各点的连线与视平面的交点就形成了物体的透视投影.三维物体投影定义为从一个投影中心发出的射线穿过物体上各点,并与视平面相交形成投影.
2)由于摄像机的视场角有限,需要在视平面定义一个二维矩形窗口,其高为 H,宽为 W,从而确定可视区域.为了建立与对象坐标系的联系,将坐标原点位于窗口中心的坐标系定义为观察坐标系.虚拟摄像机摄像时,投影平面应垂直于世界坐标系的 z轴,这样当虚拟摄像机在三维空间移动时,只要给定投影中心、窗口中心等相关参数,即可将世界坐标系中的位置转换到摄像机的观察坐标系位置,从而实现投影变换.假设在实际物体上取任意一点P,设它在世界坐标系中的坐标为(xw,yw,zw),如图4所示.
图3 虚拟摄像机透视投影原理Fig.3 Principle of camera perspective projection
图4 透视投影几何关系Fig.4 Geometrical relationship of perspective projection
令 (xp,yp,zp)为该三维物体在视平面上的二维投影透视图上对应的点坐标.由于 z永远为常数,根据世界坐标系的定义可知 zp=0,因此仅需要求出 xp和 yp.利用图4中的相似三角形可得
式中:d为世界坐标系与视平面之间的距离,它是一个缩放比例:加大 d值,透视图会随之加大,反之亦然.例如,如果 d增大了,则实物与视平面越来越靠近,透视图将增大.
EON的视点变换技术主要反映在 Camera和 View port功能节点上,Cam era节点本质上是一个框架(Frame)节点,只不过它被关联复制到了 View port节点下的 Camera文件夹内,从而能够对整个系统产生影响[7].
View port节点可以使模拟视窗呈现多窗口显示,方便用户在操作时全方位地对操作过程进行监控.此节点主要用来定义呈现的视野,以及模拟场景是如何显示在模拟视窗中的.但它必须与用来定义摄像机镜头位置的框架(Frame)节点互相连接使用.
基于以上的使用方法,可以在 Camera节点下添加关键帧(Key Frame)节点,在其中设置需要变换的视点位姿,定义 TPO(Tim e&Position&Orientation)函数来描述 Camera节点时刻的位置、姿态信息,也就是时刻的视点位置或视角,TPO函数形式如式(5)所示[7].
式中:t为相对于起始时刻的时间;x,y,z为 t时刻 Camera节点的相对于三个坐标轴(世界坐标系)的坐标;h,r,p为 t时刻的 Camera节点相对于三个坐标轴(世界坐标系)的夹角.
这样视点变换过程就表示为 Cam era节点时刻位置元的链表.
2.2 节点逻辑分离算法设计
维修过程不可避免地涉及到操作方向的变化以及分离节点的独立运动操作,当设备上的某一部件被拆卸下来后,该部件就与其它部件脱离了连接关系,操作人员对被拆卸部件以及拆卸装配体的操作均不会相互影响.但是,虚拟维修系统中,虚拟样机建立是基于一个装配坐标系的层次结构模型,对象间存在有隶属关系[6],即使零部件与装配体脱离了物理连接,但它们之间的父子关系并没有改变,在子坐标系下对子节点的操作不会影响父节点对象的状态,但由于节点的运动隶属性,父节点(如装配体)的运动会使子节点对象随动,这不符合现实的拆卸过程.如何改变这种现象呢?根据 EON软件的特点,我们的设计方法描述如下.
1)节点逻辑分离方法设计
所谓逻辑分离是不改变节点间的物理连接关系,通过一定的方法使得节点在形式上分离,达到视觉上完全分离的目的.
EON软件运行中不能改变节点间的隶属关系,我们采用节点复制的办法在其它节点下生成操作节点对象的一个副本,对象的拆卸装配操作在副本上进行,在运行中采用节点隐藏和显示的方法实现节点的逻辑分离.这种方法的关键是操作对象和副本之间的坐标传递,逻辑分离流程设计如图5所示.
图5中 Obj-Original代表操作对象,Obj-Copy代表操作对象的副本,装配操作的流程与之相反,坐标的传递可通过编写脚本语言实现,能够在运行中实时更新[9].
2)交互设备的局部与全局响应设计
虚拟对象的操作是靠交互设备实现的,交互设备的响应应与操作对象一致,比如要将装配体整体旋转或移动,交互设备则应响应全局对象,但是如果要对子对象进行操作,交互设备应仅对子对象响应.
以鼠标交互为例,说明交互响应的触发设计.EON软件中鼠标的响应是靠 Click Sensor节点来感应的,视具体操作和功能节点关联实现不同的操作.交互设备的响应主要应解决以下几个问题:①交互设备对当前对象响应激活;②交互设备对其它对象响应屏蔽;③两种响应的逻辑设计.响应的触发可由菜单或快捷键实现,响应设计流程如图6所示.
3 结 论
本文对虚拟维修系统中的坐标变换技术以及运动导航技术进行了研究,基于 EON Studio虚拟现实开发平台,开发了“某型飞机弹射救生装备虚拟维修训练系统”和“某型导弹通用测试系统模拟器”等应用系统.
图7(a)是某型弹射救生装备中央燃爆器撞针组件分解的一个场景,采用节逻辑分离算法,已分离部件(如放置于工作台上的拔销螺母、螺盖等)与装配体之间的运动互不干涉[9];图7(b)是采用不同视点观察某型导弹通用测试系统的场景.实际应用证明,我们提出的坐标变换方法和导航方法实用性强、交互效率高.
图7 应用实例Fig.7 Application instance
[1] 马麟,吕川.虚拟维修技术的探讨[J].计算机辅助设计与图形学学报,2005,17(12):2729-2733.
Ma Lin,Lu Chuan.Study on virtualmaintenance techno logy[J].Journal o f Computer2aided Design&Computer Graphics,2005,17(12):2729-2733.(in Chinese)
[2] Ishii H.Development ofmachine-maintenance training system using Petri net and virtua l reality[C].Proceedings of Cognitive Systems Engineering in Process Control.Kyoto.,1996,1:130-137.
[3] Lin Fuhua.Developing virtualenvironments for industrial training[J].Information Sciences,2002,140(1P2):153-170.
[4] 李相民,孙瑾,谢晓方.火力控制原理[M].北京:国防工业出版社,2007:16-42.
[5] 李世停,朱波,陈力生,等.基于 Script交互控制的船用核动力装置虚拟维修研究 [J].船海工程,2006,35(1):43-45.
Li Shiting,Zhu Bo,Chen Lisheng,etal.Study on the VRmaintenanceofmarine nuclear pow er p lan based on script language interaction contro l[J].Ship and sea engineering,2006,35(1):43-45.(in Chinese)
Sun Dongming,W ei Jingtao,Li Shan,et al.The subordination of parts in the virtua l p roduct design[J].Machinery design and manufacture,2004(2):31-32.(in Chinese)
[7] 北京易用伟业计算机应用技术有限公司.EON Studio快速入门指南[M],2007.
[8] 王松山,郝建平.基于交互特征的虚拟维修样机建模[J].计算机仿真,2004,21(12):139-142.
W ang Songsan,Hao Jianping.Interaction feature-based modeling for virtualmaintenance prototype[J].Computer Simulation,2004,21(12):139-142.(in Chinese)
[9] 李林,李海军.基于 EON Pro fessional 5.0的导弹虚拟维修训练系统[J].山东轻工业学院学报,2007,21(4):11-13.
Li Lin,Li Haijun.V irtualmaintenance o fm issile based on EON Professional 5.0[J].Journal o f Shandong Institute of Light Industry,2007,21(4):11-13.(in Chinese)