周韶澤,楊文慶,聶春戈,張海峰
(1.大連交通大學交通運輸工程學院,遼寧 大連 116028;2.中車長春軌道客車股份有限公司,吉林 長春 130062)
為保證動車組長期高速、安全、舒適運行,必須經(jīng)常對動車組進行整備、檢查、保養(yǎng)和維修[1]。動車組檢修分為五個等級,一級和二級檢修為運用檢修,主要涉及檢視檢修。三級、四級、五級檢修為定期檢修,主要涉及拆裝檢修。高速動車組是大型復(fù)雜產(chǎn)品,其檢修工作量大、涉及人員眾多,采用物理樣機進行培訓(xùn)成本很高。因此,為滿足動車組“快速檢修、安全可靠、高效運營”的要求,引入虛擬現(xiàn)實技術(shù)應(yīng)用于動車組的檢修設(shè)計和培訓(xùn)中非常迫切和必要。
虛擬現(xiàn)實(VirtualReality,簡稱VR)是利用計算機模擬產(chǎn)生一個三維的虛擬空間,通過視覺、聽覺、觸覺等感官的模擬,使用戶沒有限制地觀察三維空間內(nèi)的事物,達到身臨其境的效果[2]。該系統(tǒng)以仿真方式給用戶創(chuàng)造了一個實時反映實體變化與相互作用的界面,使用戶可直接參與并探索仿真對象在所處環(huán)境中的作用與變化[3]。通過與虛擬環(huán)境發(fā)生交互作用,從而得到與置身于實際環(huán)境中所獲得的相同或相似的感受[4]。虛擬現(xiàn)實技術(shù)具有多媒體信息的感知性、沉浸性、交互性和自主性等特點[5]。
通過虛擬現(xiàn)實技術(shù)把產(chǎn)品以三維動態(tài)的方式展示出來,克服了傳統(tǒng)二維圖紙難以表達檢修對象結(jié)構(gòu)的問題。利用虛擬現(xiàn)實技術(shù),使培訓(xùn)人員快速掌握檢修技能,以交互的方式了解產(chǎn)品的結(jié)構(gòu),直觀理解產(chǎn)品的拆裝過程,既可以降低培訓(xùn)成本,也可以提高培訓(xùn)效率[6]。
基于虛擬現(xiàn)實技術(shù)為核心開發(fā)的動車組虛擬檢修系統(tǒng),其開發(fā)流程,如圖1所示。系統(tǒng)整體框架,如圖2所示。
圖1 仿真系統(tǒng)開發(fā)流程Fig.1 The Development Processof the Simulation System
圖2 仿真系統(tǒng)的整體框架Fig.2 The Overall Framework of the Simulation System
首先,根據(jù)二維圖紙等資料了解動車組檢修車間相關(guān)資源的實際屬性,再利用CAD軟件建立動車組檢修對象的三維模型。然后,通過3DMax軟件讀取所建立模型并轉(zhuǎn)換格式后添加到場景圖形庫中。最后,在虛擬環(huán)境中加載模型并進行交互式檢修仿真,最終實現(xiàn)動車組虛擬檢修系統(tǒng)的仿真。
三維模型的建立是虛擬仿真系統(tǒng)的根基,其使用CAD軟件創(chuàng)建檢修對象模型以及用3DMax軟件對三維模型進行渲染優(yōu)化并轉(zhuǎn)換格式導(dǎo)入場景中。
場景模型結(jié)構(gòu)從CAD模型原始模型轉(zhuǎn)換而來,該模型和原CAD模型設(shè)計樹相似,用來表達虛擬環(huán)境各零件和裝配體的父子層次組織結(jié)構(gòu)。裝配樹結(jié)構(gòu),如圖3所示。采用場景圖技術(shù)來表達裝配樹結(jié)構(gòu),可保留原有CAD模型的裝配樹結(jié)構(gòu)。
圖3 裝配樹結(jié)構(gòu)Fig.3 Assembly Tree Structure
3.2.1 視點平移控制
為模擬檢修人員(視點)的平移,需要改變視點在世界坐標系中的位置。設(shè)變換前的視點坐標為E(Ex,Ey,E)z,平移變換后的視點坐標為E(′),視點的移動速度為V。視點在世界坐標系中向前移動時的示意圖,如圖4所示。
則視點實現(xiàn)向前或向后移動時公式如(1):
其中,當t=1時,視點向前移動;當t=-1時視點向后移動。
圖4 視點在世界坐標系下變化Fig.4 The Viewpoint Changes in the World Coordinate System
同理可知視點實現(xiàn)向左或向右移動時公式如(2):
其中,當 m=-1,n=1 時,視點向左移動;當 m=1,n=-1 時,視點向右移動。
3.2.2 視點旋轉(zhuǎn)控制
在模擬檢修人員的頭部轉(zhuǎn)動時,通過矩陣操作實現(xiàn)視點的仰看、俯看、左轉(zhuǎn)、右轉(zhuǎn),即最常見的是視點繞視點坐標系的X軸、Z軸旋轉(zhuǎn)。
首先計算出視點繞軸旋轉(zhuǎn)的弧度值,因視點的旋轉(zhuǎn)通過鼠標操作來實現(xiàn),即鼠標在屏幕上移動一段距離(從A移動到B),可實現(xiàn)視點的旋轉(zhuǎn)。
已知鼠標初始屏幕坐標為A(x1,y1),當在屏幕上移動一段距離后,記錄當前鼠標屏幕坐標為B(x2,y2)。設(shè)角度轉(zhuǎn)化為弧度的公式如式(3):
若視點仰看和俯看場景,即仰、俯角度(即抬頭、低頭,繞X軸旋轉(zhuǎn)):式中:θ—每單位長度下繞旋轉(zhuǎn)軸旋轉(zhuǎn)的角度,初始角度為90°(弧度R=1.57),表示在視點坐標系下垂直平面向里看,結(jié)合式(3)得出繞X軸旋轉(zhuǎn)的弧度求解公式如式(4):
若視點向左轉(zhuǎn)動和向右轉(zhuǎn)動,即視點繞Z軸旋轉(zhuǎn)。視點初始角度為0°(弧度R=0),結(jié)合式(3)得出繞Z軸旋轉(zhuǎn)的弧度求解公式如式(5):
將計算出的弧度值代入到旋轉(zhuǎn)矩陣中,得到新的旋轉(zhuǎn)矩陣與其他變換矩陣結(jié)合實現(xiàn)對視點姿態(tài)的控制。
3.2.3 視點復(fù)合變換控制
檢修人員的平移(移動)和頭部轉(zhuǎn)動(旋轉(zhuǎn))動作是通過矩陣變換實現(xiàn)的,矩陣操作是由一個(4×4)的矩陣來表示。
在虛擬環(huán)境中,為了減少計算量,加快場景繪制,事先將多種變換矩陣合并,形成如式(6)的變換矩陣,然后對模型所有頂點和矩陣相乘進行一次性矩陣變換,實現(xiàn)視點位姿的更新。設(shè)T為平移矩陣,R為旋轉(zhuǎn)矩陣。
對視點的控制通常是先平移后旋轉(zhuǎn),即視點E經(jīng)過矩陣變換后,新的視點E′數(shù)學運算公式如下:
E′=ERT
計算中使用行主序矩陣實現(xiàn)變換操作,在矩陣變換中采用左乘矩陣操作。將兩個矩陣合并成單個矩陣,記作變換矩陣M,如式(6):
其中,M的上邊(3×3)部分是旋轉(zhuǎn)部分,最下一行是平移部分。逆向利用這些信息,能將任意(4×4)矩陣分解為旋轉(zhuǎn)變換部分和平移部分。變換矩陣M為視點在世界坐標系中的位置姿態(tài)矩陣。視點位置姿態(tài)矩陣等于視點觀察矩陣(視圖矩陣)的逆矩陣。而視圖矩陣是改變場景內(nèi)攝像機位置姿態(tài)的關(guān)鍵矩陣,當需要變動視點位姿,更新該矩陣即可。
碰撞檢測是虛擬檢修系統(tǒng)中重要組成部分,其作用是檢測用戶在仿真交互時是否與場景中的物體發(fā)生碰撞,從而避免“穿越物體”的現(xiàn)象。
傳統(tǒng)碰撞檢測算法[7]中采用了“線/體”相交測試的方法。在虛擬場景中通過連接移動前后的兩個點,而后判斷與場景的模型是否有交點來判定這個移動能否執(zhí)行。該方法比較簡單,但存在檢測精度不準確的問題,而且無法滿足在復(fù)雜環(huán)境中仿真漫游的要求。
本系統(tǒng)采用基于“線/體”相交測試方法改進的碰撞檢測算法。該碰撞檢測方法通過與場景物體進行相交檢測,不僅實現(xiàn)視點在平面上的移動,還能實現(xiàn)視點的上下臺階。相對于傳統(tǒng)碰撞檢測其檢測結(jié)果能做到足夠高的精確度和穩(wěn)定性。
說明該碰撞檢測算法具體實現(xiàn)思想。碰撞檢測算法上臺階示意圖,如圖5所示。
圖5 碰撞檢測算法上臺階示意圖Fig.5 Upper Step Sketch of Collision Detection Algorithm
算法目的是將初始位置在點1的視點在沒有物體D阻擋的情況下,順利移動到點4的位置,即是視點從臺階A移動到臺階B。依照如下步驟執(zhí)行:
步驟一:首先計算出點2的坐標,過點2作垂線段5,計算該垂線段與場景的交點,然后依照下述條件判斷視點是否發(fā)生移動:
(1)沒有交點或交點與點2距離較大,無法移動。
(2)需要注意垂線段5的坐標取值一定要滿足場景中物體的幾何屬性,否則無法實現(xiàn)所需的仿真效果。
步驟二:若計算出垂線段5與場景存在合適的交點3,則在豎直方向上賦給交點3增量h得到點4,過點4作一條與接連點1和點2的直線平行的直線6;
步驟三:若直線6與場景中物體D不存在交點,證明視點可以從點1移動到點4,即是到達左上角的臺階B上,否則不移動。
同理視點在下臺階時也滿足該算法的執(zhí)行步驟。則該算法在程序中的實現(xiàn)流程,如圖6所示。
圖6 碰撞檢測算法實現(xiàn)流程Fig.6 Collision Detection Algorithm Implementation Process
結(jié)合前文中的視點平移控制方法,以及改進的碰撞檢測算法的思想,當視點上臺階時,可得到計算公式如(7):
式中:Δδ—上臺階時坐Z標的增量,其大小要大于一階臺階高度,小于二階高度。
虛擬環(huán)境下對檢修對象的拆裝仿真原理與視點模擬方法類似,檢修對象的拆裝是通過不斷更新零件的位姿矩陣來實現(xiàn)的。而拆裝過程中零件的位姿是由拆裝開始和結(jié)束關(guān)鍵幀實時插值實現(xiàn)。關(guān)鍵幀存儲于拆裝預(yù)定義文件中。
檢修對象進行平移時,零件的位姿由關(guān)鍵幀的起始和終點位置進行線性插值得到。新位置插值坐標P′有:
檢修對象進行旋轉(zhuǎn)時,檢修對象兩個關(guān)鍵幀中的旋轉(zhuǎn)角度可通過Slerp算法插值得到,設(shè)置給零件的視圖矩陣。
動車組虛擬檢修仿真系統(tǒng)采用VC++工具基于Open Scene Graph(OSG)開源圖形庫開發(fā)。利用繪圖軟件對檢修零件進行建模。在建模過程中需注意零件之間的父子關(guān)系,以保留各組成的裝配關(guān)系。創(chuàng)建完所有模型后,將三維模型導(dǎo)入虛擬場景中。虛擬場景中檢視檢修的仿真交互界面,如圖7所示。
圖7 虛擬檢修交互界面Fig.7 Virtual Maintenance Interactive Interface
依據(jù)以上所提出方法構(gòu)建虛擬環(huán)境,以第一人稱視角模擬下地溝、上橋以及通過障礙等仿真功能。如模擬一、二級修檢修流程檢視制動裝置,在地溝內(nèi)目測閘片以及制動盤等部件的表面情況,如圖8所示。
圖8 檢視制動裝置表面情況Fig.8 Inspect the Surface Condition of the Brake
此外,用戶利用系統(tǒng)拖拽器功能可在虛擬環(huán)境中選取、拖拽移動零件,了解零件的結(jié)構(gòu)和相互關(guān)系。結(jié)合關(guān)鍵幀插值算法學習模擬產(chǎn)品的拆裝仿真流程。
目前,系統(tǒng)初步應(yīng)用于長春軌道客車股份有限公司的動車組檢修培訓(xùn)中,該仿真系統(tǒng)應(yīng)用的實際培訓(xùn)效果如下:
(1)效率高。采用虛實結(jié)合手段培訓(xùn),使受訓(xùn)人員能更快速掌握檢修技能,提高了培訓(xùn)效率。
(2)成本低。系統(tǒng)滿足多人培訓(xùn)要求,避免了使用真實樣機培訓(xùn)占用生產(chǎn)、檢修的作業(yè)時間問題,節(jié)約了企業(yè)成本。
(3)安全可靠。虛擬場景檢修真實模擬檢修過程,培訓(xùn)過程安全,能大大降低采用真實樣機發(fā)生危險事故的可能性。
基于提出的虛擬檢修視點模擬方法,改進的漫游碰撞檢測算法模擬動車組檢視檢修,采用了關(guān)鍵幀插值方法模擬檢修拆裝過程,開發(fā)和實現(xiàn)了基于虛擬現(xiàn)實的動車組虛擬檢修系統(tǒng)。系統(tǒng)的仿真結(jié)果表明:
(1)采用虛擬檢修視點模擬方法實現(xiàn)了在虛擬場景中對動車組檢修對象的檢視仿真,如一、二級的目測檢修;
(2)改進的碰撞檢測算法避免了傳統(tǒng)方法在復(fù)雜虛擬檢修環(huán)境檢測精度不高的問題,既能執(zhí)行視點的碰撞檢測,又能滿足在虛擬檢修環(huán)境中上梯、下溝等檢修動作,使虛擬仿真效果更加真實;
(3)關(guān)鍵幀插值方法能模擬檢修過程中零件拆裝的步驟,使用戶直觀理解產(chǎn)品的拆裝過程。
用戶通過該系統(tǒng)能更深入、更細致地了解動車組產(chǎn)品結(jié)構(gòu)和檢修流程,取得了良好的培訓(xùn)效果,為大量人員進行動車組檢修技術(shù)培訓(xùn)提供有效工具。