李海軍,孫偉瑋
(1.海軍航空工程學(xué)院兵器科學(xué)與技術(shù)系,山東煙臺(tái) 264001;
2.海軍航空工程學(xué)院研究生管理大隊(duì),山東煙臺(tái) 264001)
大型、復(fù)雜裝備由于造價(jià)昂貴、結(jié)構(gòu)復(fù)雜,裝備數(shù)量一般較少,且某些部件是不允許分解的,維修訓(xùn)練難以在實(shí)裝上全面展開(kāi).同時(shí),實(shí)裝訓(xùn)練還容易造成裝備不可避免的人為損壞,影響裝備的戰(zhàn)備水平.對(duì)于具有火工品和戰(zhàn)斗部的裝備或具有輻射源的裝備,實(shí)裝訓(xùn)練存在不安全的因素.因此,對(duì)于武器裝備來(lái)說(shuō),運(yùn)用虛擬現(xiàn)實(shí)技術(shù),模擬裝備真實(shí)的物理結(jié)構(gòu)和維修訓(xùn)練環(huán)境,建立虛擬維修訓(xùn)練系統(tǒng),可以不受時(shí)間、場(chǎng)地、培訓(xùn)規(guī)模及部件拆卸可達(dá)性等各種因素的制約,大大提高維修訓(xùn)練效率,是一種有效的維修訓(xùn)練輔助手段.
虛擬維修的應(yīng)用研究目前主要集中在兩個(gè)領(lǐng)域:產(chǎn)品開(kāi)發(fā)與維修訓(xùn)練.在產(chǎn)品研制早期從維修性的角度改進(jìn)產(chǎn)品功能和結(jié)構(gòu)設(shè)計(jì),在產(chǎn)品開(kāi)發(fā)中發(fā)現(xiàn)維修性問(wèn)題并改正,不必等到物理樣機(jī)制造完成再實(shí)施.波音、洛克希德、普惠、BMW等工業(yè)巨頭對(duì)虛擬維修技術(shù)非常重視,開(kāi)展了多項(xiàng)在產(chǎn)品開(kāi)發(fā)階段對(duì)維修性進(jìn)行研究的相關(guān)工作[1];國(guó)內(nèi)外許多研究機(jī)構(gòu)對(duì)維修訓(xùn)練系統(tǒng)也進(jìn)行了大量研究,如日本京都大學(xué)[2]、新加坡國(guó)立大學(xué)[3]以及國(guó)內(nèi)的清華大學(xué)、北京航空航天大學(xué)、浙江大學(xué)及有關(guān)軍隊(duì)院校都在研究將虛擬維修技術(shù)應(yīng)用于維修訓(xùn)練中.
本文就虛擬維修訓(xùn)練系統(tǒng)中的坐標(biāo)變換與導(dǎo)航技術(shù)進(jìn)行分析研究.
為精確描述虛擬環(huán)境中各對(duì)象之間的裝配關(guān)系、解除約束的運(yùn)動(dòng)關(guān)系,在構(gòu)建虛擬維修環(huán)境時(shí),需要為虛擬環(huán)境建立整體坐標(biāo)系(亦即世界坐標(biāo)系),為每個(gè)對(duì)象定義局部坐標(biāo)系.當(dāng)對(duì)象運(yùn)動(dòng)時(shí),局部坐標(biāo)系的位置根據(jù)運(yùn)動(dòng)方程在世界坐標(biāo)中發(fā)生相應(yīng)的變化,描述對(duì)象的圖形元素如點(diǎn)、線、面等會(huì)隨坐標(biāo)系的變化而變化.視覺(jué)上,對(duì)象的運(yùn)動(dòng)是以相對(duì)于世界坐標(biāo)系靜止的對(duì)象為參照物而形成的運(yùn)動(dòng)效果.對(duì)象間的相對(duì)運(yùn)動(dòng)關(guān)系可以世界坐標(biāo)系為過(guò)度坐標(biāo)系,分別通過(guò)與世界坐標(biāo)系的運(yùn)動(dòng)關(guān)系求得.因此,坐標(biāo)變換技術(shù)是虛擬維修中精確描述對(duì)象運(yùn)動(dòng)的關(guān)鍵技術(shù).
虛擬環(huán)境下,虛擬樣機(jī)是基于層次結(jié)構(gòu)的構(gòu)造模型,零部件之間的層次結(jié)構(gòu)決定了它們之間的父子關(guān)系.虛擬維修中,對(duì)象的拆卸和裝配就是層次模型中節(jié)點(diǎn)的邏輯分離與結(jié)合,交互控制是解除對(duì)象間的幾何約束,在運(yùn)動(dòng)約束條件下形成合理的運(yùn)動(dòng)視覺(jué)表示.層次結(jié)構(gòu)中節(jié)點(diǎn)間坐標(biāo)關(guān)系如圖1所示.其中,Oxyz代表父節(jié)點(diǎn)坐標(biāo)系;O1 x1 y1 z1表示子節(jié)點(diǎn)坐標(biāo)系.
虛擬拆卸與裝配需要解決如下技術(shù)問(wèn)題:
1)節(jié)點(diǎn)運(yùn)動(dòng)獨(dú)立性.拆卸時(shí),節(jié)點(diǎn)分離后父節(jié)點(diǎn)與子節(jié)點(diǎn)的運(yùn)動(dòng)不能相互影響;裝配操作時(shí),子節(jié)點(diǎn)的運(yùn)動(dòng)具有隸屬父節(jié)點(diǎn)運(yùn)動(dòng)的特性,子節(jié)點(diǎn)運(yùn)動(dòng)應(yīng)跟隨父節(jié)點(diǎn)形成整體的運(yùn)動(dòng),即具有繼承特性;
2)部件導(dǎo)航的合理性.根據(jù)配合及運(yùn)動(dòng)約束關(guān)系,分離節(jié)點(diǎn)可以采用螺旋、平移、旋轉(zhuǎn)等運(yùn)動(dòng)方式與父節(jié)點(diǎn)實(shí)現(xiàn)脫離或結(jié)合.部件導(dǎo)航要根據(jù)對(duì)象的幾何構(gòu)造和交互設(shè)備的要求,能夠方便地實(shí)現(xiàn)操作和觀察,并且采用適當(dāng)?shù)呐鲎矙z測(cè)和干涉剔出算法,使交互操作順利、合理地進(jìn)行.
虛擬樣機(jī)的建模是基于一定坐標(biāo)系的,為了建模的方便,不同的零件可能選擇了不同的坐標(biāo)系.層次結(jié)構(gòu)的裝配關(guān)系反映了零部件之間的父子關(guān)系,為了描述零部件的運(yùn)動(dòng)關(guān)系,需要建立子節(jié)點(diǎn)與父節(jié)點(diǎn)之間的坐標(biāo)轉(zhuǎn)換關(guān)系.
實(shí)際上,只要知道任意兩個(gè)坐標(biāo)系各對(duì)應(yīng)軸的相互方位,就可以用一個(gè)確定的變換矩陣給出它們之間的變換關(guān)系.
虛擬對(duì)象的拆卸和裝配操作需要反映對(duì)象間的相對(duì)運(yùn)動(dòng),為了表示子節(jié)點(diǎn)與父節(jié)點(diǎn)的相對(duì)運(yùn)動(dòng)關(guān)系,需要將子節(jié)點(diǎn)的運(yùn)動(dòng)投影至父節(jié)點(diǎn)坐標(biāo)系.子節(jié)點(diǎn)的運(yùn)動(dòng)可以分解為相對(duì)父節(jié)點(diǎn)的平移運(yùn)動(dòng)和子節(jié)點(diǎn)坐標(biāo)系的旋轉(zhuǎn)運(yùn)動(dòng),因此子節(jié)點(diǎn)對(duì)象的坐標(biāo)變換到父節(jié)點(diǎn)坐標(biāo)系的數(shù)學(xué)表示可以寫(xiě)成式(1)的形式.
圖1 層次結(jié)構(gòu)中節(jié)點(diǎn)間的坐標(biāo)關(guān)系Fig.1 Relationship of nodes among h ierarch ical structure
圖2 坐標(biāo)系之間的關(guān)系Fig.2 Relationship between systems of coordinates
式中:L(h,p,r)為子節(jié)點(diǎn)到父節(jié)點(diǎn)的基元變換矩陣.為了得到變換矩陣,我們將子節(jié)點(diǎn)坐標(biāo)系進(jìn)行平移,使兩個(gè)坐標(biāo)系的原點(diǎn)重合,兩坐標(biāo)系三個(gè)軸之間的關(guān)系可以由 h,p,r來(lái)表示,如圖2所示.
假定起始狀態(tài)時(shí),兩個(gè)坐標(biāo)系重合,當(dāng)子節(jié)點(diǎn)對(duì)象相對(duì)父節(jié)點(diǎn)有相對(duì)運(yùn)動(dòng)時(shí),用 h表示子節(jié)點(diǎn)坐標(biāo)系繞 O1 y1軸的旋轉(zhuǎn)角度,表示 O1 x1軸在 Oxz平面上的投影與 Ox軸之間的夾角;r表示子節(jié)點(diǎn)坐標(biāo)系繞O1 x1軸的旋轉(zhuǎn)角度,表示 O1 y1軸與 Oxy平面的夾角;p表示子節(jié)點(diǎn)坐標(biāo)系繞 O1 z1軸的旋轉(zhuǎn)角度,表示O1 x1軸與 Oxz平面的夾角.
可以得到:由子節(jié)點(diǎn)坐標(biāo)系到父節(jié)點(diǎn)坐標(biāo)系的變換矩陣為[4]
將式(2)得到的變換矩陣代入式(1)就可將子節(jié)點(diǎn)的坐標(biāo)變換到父節(jié)點(diǎn)坐標(biāo)系上.如果要想實(shí)現(xiàn)父節(jié)點(diǎn)坐標(biāo)到子節(jié)點(diǎn)坐標(biāo)系的變換,只需將平移坐標(biāo)取反,式(2)所示的變換矩陣求逆即可.
這樣,虛擬對(duì)象間的相對(duì)運(yùn)動(dòng)關(guān)系就可以通過(guò)上述的矩陣變換方法進(jìn)行變換得到.假定對(duì)象 A到整體坐標(biāo)系的變換矩陣為 L a,對(duì)象 B到整體坐標(biāo)系的變換矩陣為 L b,則對(duì)象 A到對(duì)象 B的坐標(biāo)變換矩陣可以由 Lab=La? L-b1求得;對(duì)象 B到對(duì)象 A的坐標(biāo)變換矩陣可以由 Lba=Lb?L-a1求得.
運(yùn)動(dòng)導(dǎo)航包括場(chǎng)景漫游和拆卸部件的運(yùn)動(dòng)學(xué)及動(dòng)力學(xué)描述.場(chǎng)景漫游主要是視點(diǎn)變化設(shè)計(jì),在虛擬維修系統(tǒng)中就是設(shè)計(jì)虛擬攝像機(jī)控制模型,使得操作人員能夠方便地觀察場(chǎng)景中的任何對(duì)象;拆卸部件的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)描述就是要建立一個(gè)真實(shí)的拆卸環(huán)境,能夠模擬零部件拆卸過(guò)程,比如對(duì)象解除約束的過(guò)程,運(yùn)動(dòng)形式,重力、彈力等力學(xué)特性表示等.
運(yùn)動(dòng)導(dǎo)航包括場(chǎng)景視點(diǎn)變換、對(duì)象的分離與結(jié)合、運(yùn)動(dòng)行為的描述以及交互方法的設(shè)計(jì)等.
視點(diǎn)變換的主要目的是在虛擬維修過(guò)程中如何獲得最佳的視覺(jué)效果,能夠直觀、清楚地觀察對(duì)象間解除約束的過(guò)程和分離及結(jié)合過(guò)程.視點(diǎn)變換設(shè)計(jì)就是獲取視點(diǎn)坐標(biāo)、改變視線方向的方法,能根據(jù)用戶在虛擬裝配環(huán)境中的視點(diǎn)位置和視線方向控制環(huán)境中的顯示內(nèi)容.虛擬現(xiàn)實(shí)仿真軟件 EON采用透視投影的方法,將對(duì)象的三維空間坐標(biāo)映射到位于攝像機(jī)的二維屏幕上,其原理如圖3所示.
1)虛擬攝像機(jī)位于投影中心,由投影中心到三維物體各點(diǎn)的連線與視平面的交點(diǎn)就形成了物體的透視投影.三維物體投影定義為從一個(gè)投影中心發(fā)出的射線穿過(guò)物體上各點(diǎn),并與視平面相交形成投影.
2)由于攝像機(jī)的視場(chǎng)角有限,需要在視平面定義一個(gè)二維矩形窗口,其高為 H,寬為 W,從而確定可視區(qū)域.為了建立與對(duì)象坐標(biāo)系的聯(lián)系,將坐標(biāo)原點(diǎn)位于窗口中心的坐標(biāo)系定義為觀察坐標(biāo)系.虛擬攝像機(jī)攝像時(shí),投影平面應(yīng)垂直于世界坐標(biāo)系的 z軸,這樣當(dāng)虛擬攝像機(jī)在三維空間移動(dòng)時(shí),只要給定投影中心、窗口中心等相關(guān)參數(shù),即可將世界坐標(biāo)系中的位置轉(zhuǎn)換到攝像機(jī)的觀察坐標(biāo)系位置,從而實(shí)現(xiàn)投影變換.假設(shè)在實(shí)際物體上取任意一點(diǎn)P,設(shè)它在世界坐標(biāo)系中的坐標(biāo)為(xw,yw,zw),如圖4所示.
圖3 虛擬攝像機(jī)透視投影原理Fig.3 Principle of camera perspective projection
圖4 透視投影幾何關(guān)系Fig.4 Geometrical relationship of perspective projection
令 (xp,yp,zp)為該三維物體在視平面上的二維投影透視圖上對(duì)應(yīng)的點(diǎn)坐標(biāo).由于 z永遠(yuǎn)為常數(shù),根據(jù)世界坐標(biāo)系的定義可知 zp=0,因此僅需要求出 xp和 yp.利用圖4中的相似三角形可得
式中:d為世界坐標(biāo)系與視平面之間的距離,它是一個(gè)縮放比例:加大 d值,透視圖會(huì)隨之加大,反之亦然.例如,如果 d增大了,則實(shí)物與視平面越來(lái)越靠近,透視圖將增大.
EON的視點(diǎn)變換技術(shù)主要反映在 Camera和 View port功能節(jié)點(diǎn)上,Cam era節(jié)點(diǎn)本質(zhì)上是一個(gè)框架(Frame)節(jié)點(diǎn),只不過(guò)它被關(guān)聯(lián)復(fù)制到了 View port節(jié)點(diǎn)下的 Camera文件夾內(nèi),從而能夠?qū)φ麄€(gè)系統(tǒng)產(chǎn)生影響[7].
View port節(jié)點(diǎn)可以使模擬視窗呈現(xiàn)多窗口顯示,方便用戶在操作時(shí)全方位地對(duì)操作過(guò)程進(jìn)行監(jiān)控.此節(jié)點(diǎn)主要用來(lái)定義呈現(xiàn)的視野,以及模擬場(chǎng)景是如何顯示在模擬視窗中的.但它必須與用來(lái)定義攝像機(jī)鏡頭位置的框架(Frame)節(jié)點(diǎn)互相連接使用.
基于以上的使用方法,可以在 Camera節(jié)點(diǎn)下添加關(guān)鍵幀(Key Frame)節(jié)點(diǎn),在其中設(shè)置需要變換的視點(diǎn)位姿,定義 TPO(Tim e&Position&Orientation)函數(shù)來(lái)描述 Camera節(jié)點(diǎn)時(shí)刻的位置、姿態(tài)信息,也就是時(shí)刻的視點(diǎn)位置或視角,TPO函數(shù)形式如式(5)所示[7].
式中:t為相對(duì)于起始時(shí)刻的時(shí)間;x,y,z為 t時(shí)刻 Camera節(jié)點(diǎn)的相對(duì)于三個(gè)坐標(biāo)軸(世界坐標(biāo)系)的坐標(biāo);h,r,p為 t時(shí)刻的 Camera節(jié)點(diǎn)相對(duì)于三個(gè)坐標(biāo)軸(世界坐標(biāo)系)的夾角.
這樣視點(diǎn)變換過(guò)程就表示為 Cam era節(jié)點(diǎn)時(shí)刻位置元的鏈表.
維修過(guò)程不可避免地涉及到操作方向的變化以及分離節(jié)點(diǎn)的獨(dú)立運(yùn)動(dòng)操作,當(dāng)設(shè)備上的某一部件被拆卸下來(lái)后,該部件就與其它部件脫離了連接關(guān)系,操作人員對(duì)被拆卸部件以及拆卸裝配體的操作均不會(huì)相互影響.但是,虛擬維修系統(tǒng)中,虛擬樣機(jī)建立是基于一個(gè)裝配坐標(biāo)系的層次結(jié)構(gòu)模型,對(duì)象間存在有隸屬關(guān)系[6],即使零部件與裝配體脫離了物理連接,但它們之間的父子關(guān)系并沒(méi)有改變,在子坐標(biāo)系下對(duì)子節(jié)點(diǎn)的操作不會(huì)影響父節(jié)點(diǎn)對(duì)象的狀態(tài),但由于節(jié)點(diǎn)的運(yùn)動(dòng)隸屬性,父節(jié)點(diǎn)(如裝配體)的運(yùn)動(dòng)會(huì)使子節(jié)點(diǎn)對(duì)象隨動(dòng),這不符合現(xiàn)實(shí)的拆卸過(guò)程.如何改變這種現(xiàn)象呢?根據(jù) EON軟件的特點(diǎn),我們的設(shè)計(jì)方法描述如下.
1)節(jié)點(diǎn)邏輯分離方法設(shè)計(jì)
所謂邏輯分離是不改變節(jié)點(diǎn)間的物理連接關(guān)系,通過(guò)一定的方法使得節(jié)點(diǎn)在形式上分離,達(dá)到視覺(jué)上完全分離的目的.
EON軟件運(yùn)行中不能改變節(jié)點(diǎn)間的隸屬關(guān)系,我們采用節(jié)點(diǎn)復(fù)制的辦法在其它節(jié)點(diǎn)下生成操作節(jié)點(diǎn)對(duì)象的一個(gè)副本,對(duì)象的拆卸裝配操作在副本上進(jìn)行,在運(yùn)行中采用節(jié)點(diǎn)隱藏和顯示的方法實(shí)現(xiàn)節(jié)點(diǎn)的邏輯分離.這種方法的關(guān)鍵是操作對(duì)象和副本之間的坐標(biāo)傳遞,邏輯分離流程設(shè)計(jì)如圖5所示.
圖5中 Obj-Original代表操作對(duì)象,Obj-Copy代表操作對(duì)象的副本,裝配操作的流程與之相反,坐標(biāo)的傳遞可通過(guò)編寫(xiě)腳本語(yǔ)言實(shí)現(xiàn),能夠在運(yùn)行中實(shí)時(shí)更新[9].
2)交互設(shè)備的局部與全局響應(yīng)設(shè)計(jì)
虛擬對(duì)象的操作是靠交互設(shè)備實(shí)現(xiàn)的,交互設(shè)備的響應(yīng)應(yīng)與操作對(duì)象一致,比如要將裝配體整體旋轉(zhuǎn)或移動(dòng),交互設(shè)備則應(yīng)響應(yīng)全局對(duì)象,但是如果要對(duì)子對(duì)象進(jìn)行操作,交互設(shè)備應(yīng)僅對(duì)子對(duì)象響應(yīng).
以鼠標(biāo)交互為例,說(shuō)明交互響應(yīng)的觸發(fā)設(shè)計(jì).EON軟件中鼠標(biāo)的響應(yīng)是靠 Click Sensor節(jié)點(diǎn)來(lái)感應(yīng)的,視具體操作和功能節(jié)點(diǎn)關(guān)聯(lián)實(shí)現(xiàn)不同的操作.交互設(shè)備的響應(yīng)主要應(yīng)解決以下幾個(gè)問(wèn)題:①交互設(shè)備對(duì)當(dāng)前對(duì)象響應(yīng)激活;②交互設(shè)備對(duì)其它對(duì)象響應(yīng)屏蔽;③兩種響應(yīng)的邏輯設(shè)計(jì).響應(yīng)的觸發(fā)可由菜單或快捷鍵實(shí)現(xiàn),響應(yīng)設(shè)計(jì)流程如圖6所示.
本文對(duì)虛擬維修系統(tǒng)中的坐標(biāo)變換技術(shù)以及運(yùn)動(dòng)導(dǎo)航技術(shù)進(jìn)行了研究,基于 EON Studio虛擬現(xiàn)實(shí)開(kāi)發(fā)平臺(tái),開(kāi)發(fā)了“某型飛機(jī)彈射救生裝備虛擬維修訓(xùn)練系統(tǒng)”和“某型導(dǎo)彈通用測(cè)試系統(tǒng)模擬器”等應(yīng)用系統(tǒng).
圖7(a)是某型彈射救生裝備中央燃爆器撞針組件分解的一個(gè)場(chǎng)景,采用節(jié)邏輯分離算法,已分離部件(如放置于工作臺(tái)上的拔銷(xiāo)螺母、螺蓋等)與裝配體之間的運(yùn)動(dòng)互不干涉[9];圖7(b)是采用不同視點(diǎn)觀察某型導(dǎo)彈通用測(cè)試系統(tǒng)的場(chǎng)景.實(shí)際應(yīng)用證明,我們提出的坐標(biāo)變換方法和導(dǎo)航方法實(shí)用性強(qiáng)、交互效率高.
圖7 應(yīng)用實(shí)例Fig.7 Application instance
[1] 馬麟,呂川.虛擬維修技術(shù)的探討[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),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].北京:國(guó)防工業(yè)出版社,2007:16-42.
[5] 李世停,朱波,陳力生,等.基于 Script交互控制的船用核動(dòng)力裝置虛擬維修研究 [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] 北京易用偉業(yè)計(jì)算機(jī)應(yīng)用技術(shù)有限公司.EON Studio快速入門(mén)指南[M],2007.
[8] 王松山,郝建平.基于交互特征的虛擬維修樣機(jī)建模[J].計(jì)算機(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的導(dǎo)彈虛擬維修訓(xùn)練系統(tǒng)[J].山東輕工業(yè)學(xué)院學(xué)報(bào),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)