嚴雨靈 陳閔葉 劉同強
摘? 要: 近年來,虛擬現(xiàn)實技術(shù)正因為其高沉浸性的特點受到各個行業(yè)的廣泛關(guān)注。在教學(xué)領(lǐng)域中,其體現(xiàn)出教學(xué)效果佳、硬件設(shè)備制約小的優(yōu)點。本文根據(jù)該技術(shù)的特點,采用Unity3D虛擬現(xiàn)實引擎配合3ds Max建模軟件,以飛機起落架維修為例設(shè)計了一套虛擬維修教學(xué)系統(tǒng),并使用C#語言對各功能模塊進行了實現(xiàn)。該系統(tǒng)具有逼真度高,擴展性好等優(yōu)勢,具有一定的應(yīng)用價值,并為相關(guān)領(lǐng)域的研究人員提供了參考。
關(guān)鍵詞: 虛擬現(xiàn)實;Unity3D;系統(tǒng)設(shè)計;教學(xué)
【Abstract】: In recent years, virtual reality technology has been widely concerned by various industries because of its high immersion characteristics. In the field of teaching, it has the advantages of good teaching effect and small hardware equipment constraints. According to the characteristics of this technology, this paper uses Unity3D virtual reality engine and 3ds Max modeling software to design a virtual maintenance teaching system with aircraft landing gear maintenance as an example, and implements various functional modules using C# language. The system has the advantages of high fidelity and good expansibility, and has certain application value, and provides reference for researchers in related fields.
【Key words】: Virtual reality; Unity3D; System design; Teaching
0? 引言
由于中國經(jīng)濟社會發(fā)展對于高層次應(yīng)用型人才的需要,在高等教育教學(xué)體系中,應(yīng)用實踐性課程的增加對實踐教學(xué)效果提出了更高的要求[1]。另一方面,維修型企業(yè)在對員工進行實操培訓(xùn)的課程中也增長出了類似需求。虛擬現(xiàn)實技術(shù)有著逼真度高且硬件方便移動等特點,利用該技術(shù)建立虛擬維修教學(xué)系統(tǒng)是教學(xué)培訓(xùn)領(lǐng)域新的研究發(fā)展方向[2]。
1? 模型的建立及優(yōu)化
系統(tǒng)首先需要構(gòu)建一個逼近真實的訓(xùn)練環(huán)境和實物模型,使受訓(xùn)人員能夠高度沉浸于虛擬環(huán)境中,從而達到與現(xiàn)場培訓(xùn)相同的效果。本文以飛機起落架虛擬維修為例,采用3ds Max軟件進行現(xiàn)場環(huán)境的搭建和模型的建立。
3ds Max是Discreet公司的三維建模產(chǎn)品,可以建模、渲染和創(chuàng)作三維動畫,在工業(yè)仿真、多媒體應(yīng)用及教學(xué)演示等行業(yè)都有廣泛應(yīng)用[3]。其操作自由度高,具有的多邊形建模功能。它的缺點在于細節(jié)、控制方面稍弱,但虛擬維修的需求重點是逼真的動作交互場景和受訓(xùn)人員對產(chǎn)品動作序列的掌握上,而對精準度及相關(guān)維修速度沒有過多的要求[4]。此外,Unity3D引擎對于其輸出文件的原生支持使其彼此轉(zhuǎn)換不易失真和亂碼。因此,通過3dsMax完成構(gòu)建起落架三維模型是較為合適的方案,其能滿足虛擬維修的需求且效果最佳。
本文根據(jù)空中客車公司A320機型的起落架結(jié)構(gòu),通過參考其提供的維護及零部件手冊結(jié)合相關(guān)技術(shù)資料對各零件進行建模[5]。各零件根據(jù)一定的裝配順序形成零件序列,從而得到零件的裝配數(shù)據(jù)庫。根據(jù)該數(shù)據(jù)庫分別組成用于虛擬維修的裝配模型用于后續(xù)的教學(xué)模塊中[6]。圖1為通過3ds Max所建立的起落架機輪和剎車部分模型。
2? 虛擬維修系統(tǒng)設(shè)計
本文基于Unity3D虛擬現(xiàn)實引擎所建立的虛擬維修系統(tǒng)輸出端根據(jù)不同需求可以提供豐富的方式進行顯示,包括PC桌面、環(huán)幕投影、虛擬現(xiàn)實頭盔等。輸入端由虛擬現(xiàn)實手柄提供交互信息。系統(tǒng)采取自上而下的設(shè)計模式,整體結(jié)構(gòu)設(shè)計如圖2所示[7]。頂層UI顯示各個故障訓(xùn)練模塊的名稱以供受訓(xùn)人員選擇,其下主要包括模型展示模塊、結(jié)構(gòu)展示模塊、裝配練習(xí)模塊以及考核模塊。完成所有部分后可以返回頂層UI界面重新選擇訓(xùn)練目標。
3? 功能模塊的設(shè)計與系統(tǒng)實現(xiàn)
3.1? 系統(tǒng)場景連接及結(jié)構(gòu)展示模塊
系統(tǒng)中所有的功能模塊基于Unity3D中的SteamVR標準進行邏輯設(shè)計和開發(fā)且未使用第三方功能性插件以提高功能的可維護性和可操作性[8]。
首先,需要針對系統(tǒng)設(shè)計的各個模塊分別建立場景,場景間的連接采用HTC VICE手柄插件中的激光部分功能,從而使場景連接較為可靠、直觀。如圖3所示以主界面為例,主要利用SteamVR的激光模塊,依靠圖中手柄端發(fā)出的白色激光可靠地完成場景間的連接交互。為手柄激光添加剛體選項RigidBody,同時為各選項文本框添加合適大小的剛體控件和觸發(fā)器Is Trigger。在所掛載的腳本中,切換的觸發(fā)條件為:手柄剛體與某文本框剛體發(fā)生碰撞且手柄按鈕被按下。這項邏輯的代碼被編輯于Unity3D下的update方法中,即每幀均會執(zhí)行,以保證操作的實時性。所有場景的操作完成后均可利用該操作方法切換訓(xùn)練模式及場景[9]。
各模塊中系統(tǒng)首先進入的是結(jié)構(gòu)展示模塊,向受訓(xùn)人員展示各零部件的名稱,位置和順序等信息,使其對各零件具有初步的認識。如圖4所示通過材質(zhì)色彩調(diào)整按拆卸步驟展示各個零部件,以文本框?qū)Ξ?dāng)前零部件的名稱進行提示[10]。
色彩可以通過Unity3D提供的MeshRenderer泛型中的Material方法下的Color屬性進行設(shè)置,每按下一次手柄上的按鈕則使上一個零件隱藏并按拆裝順序?qū)⑾乱粋€零件的色彩進行更改并使用文本框在相應(yīng)位置對零部件名稱等信息進行顯示。當(dāng)所有零件結(jié)構(gòu)展示完畢后,采用上述激光碰撞的方式使用Loadscene方法進入下一個功能模塊。
3.2? 拆裝模型練習(xí)及考核
學(xué)習(xí)如何拆裝更換零件是整個系統(tǒng)中最重要的教學(xué)內(nèi)容,完成結(jié)構(gòu)認識之后即進入該部分的學(xué)習(xí)。該模塊充分考慮訓(xùn)練過程中的人機交互的不同可能性,最大限度的模擬實際工作過程,是操作者學(xué)習(xí)、掌握實際起落架維修技能的關(guān)鍵環(huán)節(jié)。受訓(xùn)人員通過交互式手柄選擇零件,用手柄拖動零件到安裝或者拆卸位置,再根據(jù)維修提示控制零部件的路徑,如把零部件移動到正確的安裝位置,則完成該零件的裝配。該部分同樣編輯于Update方法下以提高用戶的沉浸感。
當(dāng)手柄上的按鈕被按住時,下一個需要安裝的零件會顯示在手柄處。在練習(xí)模式下,會在零件正確的安裝位置顯示一個帶色彩的零件用于提示。受訓(xùn)人員可以拖動手柄處的零件至提示位置并放開零件從未完成拆裝。當(dāng)手柄按鈕被按下時,腳本會記錄手柄當(dāng)前的位置,當(dāng)其未被松開時,其在三個軸上的移動將會被賦予對應(yīng)的零件,移動過程實現(xiàn)代碼具體如下:
在裝配模式下,零件會如圖5(a)所示散落于地面,而其正確的安裝位置會在練習(xí)模式開始時記錄在某磁盤的文件中。當(dāng)手柄拖動零件至正確位置附近時,即完成零件的安裝,其誤差允許范圍由實際調(diào)試時根據(jù)效果進行調(diào)整。
完成練習(xí)之后,切換至考核場景對學(xué)習(xí)效果進行測試。根據(jù)各個零件對于整個故障排除過程的重要性設(shè)定其分值,當(dāng)安裝位置發(fā)生錯誤時即扣除相應(yīng)分數(shù)。此外,系統(tǒng)還設(shè)定了計時器,教師可以根據(jù)教學(xué)標準在腳本提供的接口中便捷地設(shè)定考核時間,超過時間即扣除一定的分數(shù)。計時功能由.Net類庫中的TimeSpan方法實現(xiàn)。
圖5展示了考核過程及考核結(jié)果,根據(jù)考核結(jié)果可以展示該部分虛擬維修過程的掌握程度。
4? 結(jié)論
本文通過對于虛擬現(xiàn)實應(yīng)用領(lǐng)域和開發(fā)過程的研究,以飛機起落架為例設(shè)計了一套基于Unity3D虛擬現(xiàn)實引擎的虛擬維修教學(xué)系統(tǒng)。該系統(tǒng)實現(xiàn)了零部件展示、拆裝練習(xí)等功能模塊以完成虛擬維修教學(xué)過程。通過三維建模軟件3ds Max以及C#語言完成了模型建立和功能實現(xiàn)。該系統(tǒng)提供了一種新的教學(xué)培訓(xùn)模式并取得了良好效果,為工程技術(shù)型人才的培養(yǎng)提供了良好的教學(xué)方案。
參考文獻
[1]蔡彬清, 吳仁華, 陳群. 面向產(chǎn)業(yè)變革的專業(yè)學(xué)位研究生培養(yǎng)需求與模式分析[J]. 教育評論, 2019(04): 87-91.
[2]張雅, 夏金星, 孫善學(xué). “互聯(lián)網(wǎng)+”背景下職業(yè)教育課程智慧教學(xué)研究[J]. 中國職業(yè)技術(shù)教育, 2017(23): 8-12.
[3]蘇凱, 張亞斌, 咸麗楠. VR技術(shù)在數(shù)字媒體藝術(shù)專業(yè)教學(xué)中的應(yīng)用: 現(xiàn)狀、創(chuàng)新、趨勢[J]. 江西廣播電視大學(xué)學(xué)報, 2019, 21(02): 11-17.
[4]賈麗, 杜浩, 李梓等. 基于虛擬現(xiàn)實技術(shù)的裝備維修訓(xùn)練系統(tǒng)設(shè)計[J]. 科技資訊, 2019, 17(08): 11-13.
[5]Airbus Industrie. A320 AMM (Aircraft Maintenance Manual)[S]. Toulouse, France: Airbus Industrie. 2016.
[6]周楓. A320飛機剎車系統(tǒng)的特點及常見故障分析[J]. 航空工程與維修, 2002, (04): 32-33.
[7]陳雙, 徐望. 淺析數(shù)字化關(guān)聯(lián)設(shè)計在飛機設(shè)計中的應(yīng)用[J]. 艦船電子工程, 2018, 38(12): 191-194.
[8]張洪鑫. 基于VR的虛擬三維數(shù)字校園漫游系統(tǒng)設(shè)計與實現(xiàn)[D]. 天津師范大學(xué), 2018.
[9]吳景. 基于Unity3D的虛擬實驗系統(tǒng)的設(shè)計[D]. 廣東工業(yè)大學(xué), 2015.
[10]孫維洋, 韓楊, 胡霖霖, 劉光竹, 李彩娟, 韓雪山. 醫(yī)學(xué)影像虛擬仿真教學(xué)平臺實踐教學(xué)中的應(yīng)用研究[J]. 軟件, 2019, 40(05): 98-101.