劉瑞軍
(神華鐵路裝備有限任公司榆林車輛維修分公司 陜西省榆林市 719316)
虛擬現(xiàn)實技術(shù)屬于一種虛擬世界創(chuàng)建與體驗的計算機(jī)仿真系統(tǒng),通過計算機(jī)直接生成對應(yīng)的虛擬環(huán)境,再配合上多元化信息融合的模式,實體行為系統(tǒng)仿真以及交互式的三維動態(tài)視景,這樣就可以讓用戶完全沉浸于其中。隨著虛擬現(xiàn)實技術(shù)的不斷發(fā)展,讓原本的虛擬培訓(xùn)逐漸變成現(xiàn)實,在石油氣化、航空航天等諸多領(lǐng)域之中得以應(yīng)用,這樣也使得工作上崗之前的培訓(xùn)變得越來越重要。但是傳統(tǒng)的培訓(xùn),則是通過動畫演示、理論學(xué)習(xí)和實際操作,導(dǎo)致其本身的理論學(xué)習(xí)無法與實踐相互結(jié)合起來,難以做到全面的培訓(xùn),也達(dá)不到理想的效果。
虛擬培訓(xùn),則是利用計算機(jī)所生成的三維虛擬環(huán)境,讓受訓(xùn)人員能夠沉浸于虛擬環(huán)境下,完成相關(guān)知識的培訓(xùn)和技能的學(xué)習(xí),最終將培訓(xùn)之中的問題解決。如在鐵路運(yùn)輸新形式下,行車速度和編組輛數(shù)都已經(jīng)大幅提高,紅外線軸溫探測系統(tǒng)的探測工作量明顯增加,因此對于紅外線系統(tǒng)的狀態(tài)維護(hù)就有了更高的要求。由于紅外線系統(tǒng)零件結(jié)構(gòu)復(fù)雜,相應(yīng)的故障形式多樣,種類繁多,且涉及多種硬件、信號和電路等諸多專業(yè)知識,對于故障的發(fā)現(xiàn)、處理帶了較大的困難。紅外線系統(tǒng)涵蓋硬件、軟件、網(wǎng)絡(luò)通訊等多個方面,因此其檢修工藝知識體量較大,且內(nèi)容枯燥晦澀,不易理解。虛擬培訓(xùn)可以讓受訓(xùn)人員更加貼近于現(xiàn)實的虛擬場景,從而掌握相關(guān)設(shè)備的規(guī)范和流程,避免設(shè)備損壞、人員受傷的情況出現(xiàn),并且在反復(fù)的學(xué)習(xí)與使用之后,其實際的交互性更強(qiáng),進(jìn)而受到企業(yè)的青睞與追捧。
圖1:系統(tǒng)整體層次框架圖
圖2:系統(tǒng)開發(fā)流程圖
圖3:導(dǎo)入后的機(jī)箱模型
Unity3D 屬于三維虛擬現(xiàn)實的開發(fā)軟件,是一個跨平臺發(fā)布、物理、網(wǎng)絡(luò)、腳本、著色器等全面進(jìn)行整合的專業(yè)化游戲引擎。其本身不但可以滿足針對Open GL 與Di-rect X 的優(yōu)化圖形渲染融到,同時還包含了內(nèi)置NVIDIA 的PhyisX 物理引擎,這樣就可以讓其操作逼真感更強(qiáng),同時,其本身能夠滿足多種腳本語言的支持,實現(xiàn)各種操作系統(tǒng)的兼容,最終在更多的三維場景開發(fā)之中得到廣泛的使用。
THDS 設(shè)備檢修智能指導(dǎo)系統(tǒng)采用基于Unity3D 為開發(fā)平臺,與3D Max 相互結(jié)合起來建立模型。然后利用C#語言編寫控制腳本,最終就可以達(dá)成THDS 設(shè)備檢修教學(xué)和考核。利用數(shù)據(jù)庫技術(shù)完成THDS 設(shè)備的基本信息、檢修流程、檢修教學(xué)、評價考核等功能模塊,實現(xiàn)培訓(xùn)練習(xí),使得受訓(xùn)人員對THDS 設(shè)備檢修進(jìn)行全面的培訓(xùn)。系統(tǒng)整體層次框架圖,如圖1所示。
THDS 設(shè)備檢修智能指導(dǎo)系統(tǒng)是基于功能模塊的不同來針對性的進(jìn)行設(shè)計,這樣就可以滿足培訓(xùn)任務(wù)的要求,其開發(fā)流程為:
(1)基于對應(yīng)場景三維模型和THDS 設(shè)備,通過模型導(dǎo)入平臺,然后建立場景。此外,針對設(shè)備的系統(tǒng)零件信息做好對應(yīng)的整理,然后將其錄入到數(shù)據(jù)庫之中;
(2)利用C#腳本的編寫,最終就可以滿足場景之間的交互,從而實現(xiàn)數(shù)據(jù)庫與系統(tǒng)之間的通信需求;
(3)通過Unity3D 平臺,在PC 桌面上展示系統(tǒng)。系統(tǒng)開發(fā)流程,如圖2所示。
THDS 設(shè)備檢修智能指導(dǎo)系統(tǒng)對模型的要求較高,通常采用CAD 圖紙和物體實際圖片進(jìn)行建模。Unity3D 作為虛擬現(xiàn)實軟件其建模功能較弱,只能構(gòu)建基礎(chǔ)的模型物體,對于THDS 設(shè)備之類模型與之不能相互的匹配。所以,在模型制作中就需要考慮到3D Max,tonggu8o 其建模工具以及材質(zhì)貼圖調(diào)整等對應(yīng)的功能,從而讓其本身更加具有表現(xiàn)力,擁有逼真的模型。
下面以機(jī)柜為例介紹模型的導(dǎo)入過程。整個輪對囊括的零件形狀相互復(fù)雜,所以,在實際制作中,真實性就是其基本的前提條件。對模型進(jìn)行合理優(yōu)化,避免模型數(shù)據(jù)量過大導(dǎo)致數(shù)據(jù)溢出影響THDS 設(shè)備檢修智能指導(dǎo)系統(tǒng)的運(yùn)行效率,導(dǎo)致體驗效果始終無法滿足要求。通過3D Max 在進(jìn)行優(yōu)化處理,將其中無法觀看到的點線面進(jìn)行刪除性的操作,這樣就可以實現(xiàn)模型的精簡,然后在相關(guān)場景之中導(dǎo)圖FBX 格式文件。導(dǎo)入成功的THDS 設(shè)備如圖3所示。
采用C#語言進(jìn)行交互腳本的相關(guān)開發(fā)與設(shè)計。為了實現(xiàn)對THDS 設(shè)備模型的多角度展示,編寫C#的move.cs 腳本進(jìn)行人物的移動使人可以從多角度,近距離的觀察零部件。為了實現(xiàn)THDS教學(xué)功能,利用Unity3D 引擎的Dotween 插件實現(xiàn)零件的位置變化。為了模擬真實的檢修過程,本研究中THDS 零件的運(yùn)動采用Dotween 插件在腳本中設(shè)置零件運(yùn)動前后的坐標(biāo)位置,為物體設(shè)置合理的速度曲線,實現(xiàn)THDS 檢修過程中真實的運(yùn)動軌跡。為了實現(xiàn)一些消耗品使用后消失的效果,通過編寫C#的Gameobject.active方法實現(xiàn)物體在使用結(jié)束后消失,此時可以模擬出THDS 設(shè)備檢修過程中的交互。將THDS 設(shè)備檢修的各零件和工具制作成預(yù)制體分類儲存到Profab 文件,利用C#的Instatiate 方法結(jié)合碰撞器完成在指定的位置添加指定的零件,實現(xiàn)THDS 檢修的交互。
圖4:外探測溫板更換運(yùn)動過程圖
THDS 設(shè)備檢修智能指導(dǎo)系統(tǒng)中,其存儲的數(shù)據(jù)包含了檢修的具體流程、故障出現(xiàn)的實際原因、故障處理的方式方法等。通過SQL Serves2010 作為管理和開發(fā)的基礎(chǔ),再配合上C#腳本,就可以滿足數(shù)據(jù)的通信要求。如,針對其內(nèi)部的故障信息,考核數(shù)據(jù)庫之中對應(yīng)的信息,然后按照相應(yīng)的分組形式,就可以滿足對于其存儲與讀取的要求,這樣有利于快速讀取系統(tǒng),同時也能夠通過數(shù)據(jù)通信,實時呈現(xiàn)在Unity3D 交互界面中。
THDS 設(shè)備故障種類繁多,檢查,維修過程復(fù)雜。為了能夠?qū)崿F(xiàn)較為真實的工作過程,需要采用動畫表現(xiàn)能力強(qiáng)的方法來控制零件的平移、旋轉(zhuǎn)等動畫過程。本系統(tǒng)利用Unity3D 中的DoTween插件實現(xiàn)這些效果。該插件是一種功能強(qiáng)大的動畫效果編輯插件,使零件從一種狀態(tài)變換成另一種狀態(tài)時過度平滑,可以通過不同的動畫曲線表現(xiàn)出不同物體的運(yùn)動速度的變化。將DoTween 插件導(dǎo)入Unity3D 中可以較好的完成零件的平移,旋轉(zhuǎn)等動畫過程。
3.1.1 零件的運(yùn)動功能
零件的運(yùn)動功能包括平移、旋轉(zhuǎn)等運(yùn)動效果。通過DoTween.DOMove()和DoTween.DORotate()分別可實現(xiàn)對零件的平移和旋轉(zhuǎn)的運(yùn)動視覺效果。另外,攝像機(jī)的過度轉(zhuǎn)場也需要用到DoTween.DORotate()將攝像機(jī)旋轉(zhuǎn)到正確的角度。這些代碼的使用方法類似。本文以零件的平移為例詳細(xì)介紹代碼。平移功能關(guān)鍵代碼顯示如下:
//當(dāng)前零件要移動的終點以及所需的時間
Tweener tweener=transform.DOMove(TargctPosition,timer);
//物體的速度曲線
Tweener.SetEase(Ease.OutBounce);
//物體運(yùn)動結(jié)束后觸發(fā)的事件
Tweener.OnComplete(OnTweenComplete);
// 動畫循環(huán)次數(shù)
Tweener.SetLoops(n);
圖5:識別安裝位置原理
利用該段代碼可以實現(xiàn)THDS 設(shè)備的零件從當(dāng)前位置移動到所需的目標(biāo)位置 ,可以完成虛擬檢修過程的交互。該方法通用性極強(qiáng)可以重復(fù)使用該方法用來檢查和維修THDS 設(shè)備及其他系統(tǒng)的零件。零件運(yùn)動過程,如圖4所示。
THDS 智能教學(xué)是通過用使用鼠標(biāo)選擇相應(yīng)的零件選擇相對應(yīng)的檢修操作,并實時監(jiān)測操作是否正確,只有當(dāng)操作正確時才能完成當(dāng)前檢修步驟,在檢修過程中會實時的提醒檢修的流程。若操作不正確,則會彈出UI 提醒學(xué)員,直至學(xué)員完成檢修操作。在此過程中,人物相機(jī)的移動功能,識別操作及信息提示功能是該部分的技術(shù)關(guān)鍵。
3.2.1 人物的移動及信息提示功能
在THDS 設(shè)備檢修過程中,大部分的檢修過程都會利用鼠標(biāo)將人物移動到對應(yīng)位置按照提示完成檢修操作。為實現(xiàn)該功能需監(jiān)聽鼠標(biāo)點擊的物體的信息,并通過UI 將物體的信息顯示在屏幕上。當(dāng)鼠標(biāo)點擊該物體時,根據(jù)物體的類別來執(zhí)行不同的方法,將人物視角移動到該物體面前或者對該物體進(jìn)行檢修操作。核心代碼如下:
圖6:左右光子探頭互換步驟
3.2.2 識別操作的對錯
當(dāng)學(xué)員選擇操作步驟時,系統(tǒng)會實時監(jiān)測當(dāng)前操作與標(biāo)準(zhǔn)作業(yè)流程是否相同,如果符合標(biāo)準(zhǔn)流程,將會執(zhí)行當(dāng)前步驟的監(jiān)測動畫,并對當(dāng)前檢測步驟的要點進(jìn)行講解。識別操作的對錯的原理圖,如圖5所示。利用該方法實現(xiàn)對器件溫度故障的檢修為例。當(dāng)學(xué)員選擇正確步驟時,彈出步驟講解,選擇錯誤時彈出操作錯誤,如圖6所示。
//判斷當(dāng)前操作是否正確
If(dangqiancaizuo==operationType.HuHuanGuangZiTanTou){
//關(guān)掉操作界面
operationUI.SetActive(true);
//打開步驟講解界面并播放講解音頻
explainUI.SetActive(true);
explainaudio.play();}
//如果當(dāng)前操作不正確
else{
打開錯誤提示
errorUI.SetActive(true);}}
總而言之,在交通軌道之中使用虛擬現(xiàn)實技術(shù),其本身通過Unity3D 引擎開發(fā)出來的系統(tǒng),其操作方便,交互性強(qiáng),并且培訓(xùn)全面,能夠打破傳統(tǒng)的束縛。使用DoTween 插件之后,最終就可以滿足其對應(yīng)的檢修需求,從而通過數(shù)據(jù)庫來實現(xiàn)對于交互數(shù)據(jù)的管理需求,并且系統(tǒng)的開發(fā)界面變得更加的間接,動態(tài)操作效果明顯,很容易上手。通過多個操作學(xué)習(xí)模塊的應(yīng)用之后,就可以讓培訓(xùn)人員將理論學(xué)習(xí)與實踐操作之間相互結(jié)合起來,這樣就能夠滿足全面的培訓(xùn)要求,同時這一個系統(tǒng)也為后續(xù)的維修檢修培訓(xùn)、軌道交通制造生產(chǎn)等開辟出全新的方向,讓傳統(tǒng)的培訓(xùn)擁有更新的思路與方向。