李冠宸,邱峰,鄭嘉富,施浩
(上海工程技術大學航空運輸學院/飛行學院,上海 201620)
目前,我國在航空維修實訓教學中存在諸多的問題,如教學成本較高、初學者上手困難、安全隱患頗多等。VR技術的出現能夠很好地解決在航空維修實訓教學中遇到的諸多問題。
本文通過虛擬現實技術,基于3ds Max和Unity3D建立一個AN24飛機維修教學的平臺。目前國內外基于虛擬現實技術應用于航空方面的研究有很多。在國內,施新宇等人利用VR技術針對渦噴六航空發動機的維修設計制作了虛擬教學平臺[1];張雪峰等將虛擬現實技術與起落架模型相結合模擬起落架收放運動,從而達到虛擬教學目的[2];也有將VR技術應用于實際教學中:張鈺等人將VR技術應用在機械加工虛擬仿真教學[3];王璐等人將虛擬現實技術應用在體育教學中[4];王景濤等人將VR/AR運用在婦科手術教學[5]以及季娟等人將虛擬現實技術運用在3D鑄造仿真實訓系統[6]。國外方面,Haslina Arshad等人提出將VR技術作為教學工具運用于工程學中[7]。項目通過大量建模,將AN24飛機以及渦槳-5發動機模型真實還原出來,利用VR技術的交互特性,構建出一個沉浸感強的科普及維修一體的教學平臺。通過三維模型的建立,將VR技術帶入航空維修教學當中,在保證發動機維修專業性前提下,不但滿足高校關于發動機維修專業的教學需求,而且可以促進學生的學習興趣,培養學生的空間能力、動手能力。
將渦槳-5發動機進行部件拆卸并進行編號測量、繪制簡易圖紙,同時在網上和書籍等相關渠道查詢AN24飛機相關參數。航空發動機對于精密度要求很高,在測量過程中使用千分尺、游標卡尺、螺旋測微器等工具,為了避免由于測量方法不當、誤讀等人為因素造成的差異,采用多次測量取平均值的方法使測量得到的模型數據更貼近實際。根據標注的數據在Au?toCAD中進行部件三視圖的繪制。圖紙數據整理完畢后,導入計算機用以建模。

圖1 啟動發電機外部三視圖
本文將3ds Max2018版本作為主要建模平臺。發動機零部件較多,且部分部件為不規則體,所以需將此類部件進行簡單的三維模型拆分,確定每一個拆分部件的參數以及三維坐標,最終通過布爾運算將其整合為一個復雜的部件。也可以將一個基本的三維模型轉換成可編輯多邊形,通過不斷修改模型上的點、線、面的位置來得到想要的復雜零件。當重復出現多個部件時,可以使用FFD(將物體以自身坐標軸或指定坐標軸進行復制、平移、旋轉陣列等)。要注意的是,布爾是在建立模型中比較方便的運算方式,它可以實現多個物體的交集、并集、補集等運算,但是經過運算后會產生一些多余的模型,此時需要考慮是否重新選擇運算對象或者將多余模型刪除。

圖2 發動機部件建模
將模型導入Unity3D之前,需要先將各零部件按照拆分需要進行組類分別,以便后續在Unity3D中對各部件添加特定代碼。同時為保證零件均為可拆分體,且位置能夠獨立運動,需要按照零件自身重置坐標軸,保證坐標統一。對于某些看起來不平整的模型,需要對其添加渦輪平滑的命令以增加其視覺效果。
模型搭建完畢后,為了實現VR的各項交互功能,需要將模型導入游戲開發平臺Unity3D進行下一步處理。在導入時,需要將文件保存為obj格式,待所有物體均導入Unity3D中,則要進行模型的排布工作。合理運用軟件中的xyz坐標和三視圖來幫助修改位置參數。根據之前在3ds Max中選定的組別來拖動每一模型,使之達到相應位置,拖動組時,組別下面的子物體也會隨之移動。Unity3D中場景共分為兩部分,一部分是AN24飛機展示科普區,另一部分為發動機拆裝區域,用于學生進行發動機系統拆裝維修培訓。

圖3 渦槳-5發動機拆裝室
為了使模型更貼合現實,需要對模型進行貼圖處理,通過拍照取材或者網絡渠道得到的貼圖材質,都需要將這些貼圖制成材質球。為了增加貼圖的材質感,需要添加凹凸貼圖、漫反射等素材。對于一些大型的物體,需要將物體在3ds Max中用UVW根據正面、側面等視角進行展開,并在每個展開面上依次進行貼圖,在導入Unity3D中時,需要將貼圖材料按照模型文件路徑一同導入。
項目所選用的設備為HTCvivepro,該設備與steamVR匹配良好,通過預設Unity3D中的camera可以直接看到所建場景。同時為了實現交互更加便捷,首先在Unity3D中導入VRTK及SteamVR Plugin兩個插件。VRTK可以實現拋物線及位置定位、手柄發射射線、處理UI交互、物體拖動、射線處理物品拖動等操作。
為了實現手在抓取物體時產生的動作,創建一個AnimatorController資源,將交互每個部件的動畫拖入其中,連接好播放邏輯,角色的Animator中選擇Ani?matorController資源,通過腳本的animator.setXXXX()等函數來調用動畫。在進行物體交互之前,被抓取的物 體 需 要 添 加collider、Rigidbody、VTRTK_Inter?actableObject,并勾選Is Grabbable或者在手柄的控制器 中 添 加VRTK_InteractGrab、VRTK_InteractTouch、VRTK_ControllerEvent并通過Grab Button選擇拾取物體。給物體加完碰撞體后,還需要不斷進入場景中,利用手柄進行交互。例如:人和物體可移動范圍是否匹配、當用工具對發動機進行拆卸時是否會出現碰撞問題等。為了加強教學性質,當學員進行不正當操作時,項目還具有特定的報錯功能。
利用VisualStudio軟件編寫的部分代碼如下:

針對目前在航空發動機維修教學方面的問題,運用虛擬現實技術,在安全性上規避了在航空維修時發動機難操作、學員上手困難、零部件易磨損、拆卸時有安全隱患等問題。同時學員也可在不同時間、不同地點通過遠程操作,可以進行多設備聯機多次學習。在經濟性上航空燃油等化學材料帶來的環境問題也能夠避免,做到了綠色環保。相比于傳統的教學模式,用VR帶入教學不僅能解決上述的問題,同時學員能夠得到更加直觀的教學體驗。