金英明,馬思群,叢 莉,陶 然,明志遠
(1.大連交通大學 機車車輛工程學院,大連 116028;2.大連交通大學 外國語學院,大連 116028;3.大連交通大學 藝術學院,大連 116028)
受電弓位于高速動車組車頂,在高速動車組運行時,受電弓升起與接觸網接觸,從接觸網上獲取電流,經過車輛上的變壓設備處理,傳遞到車輛的電氣系統[1]。受電弓是高速動車組的核心部件,同時,也是高速動車組故障率較高的部件。因此,高速動車組受電弓的檢修具有重要意義[2]。目前,針對受電弓的安全檢測主要有人工檢測、傳感器檢測和圖像檢測3 種途徑。其中,人工檢測需要在高速動車組入庫斷電后進行登頂操作,是常用的檢測手段[3]。
考慮到線路和高速動車組負載,受電弓上電壓最低為20 kV,受多種因素制約,工人在實際檢修過程中,如有操作不規范的情況,會顯著增加檢修的事故率。受電弓受電時的高電壓使得檢修人員面臨觸電危險。考慮到受電弓檢修事故的危害性大、不可復制等問題,本文以高速動車組受電弓檢修為背景,結合現實中的事故案例,利用虛擬現實技術的強交互性、強感知性[4],研發高速動車組受電弓檢修事故虛擬演示系統,實現了事故展示、模擬演練等功能。
虛擬現實概念于1965 年被提出,是一種利用計算機制作環境,對現實事物進行還原,使用戶沉浸其中的技術[5-6]。Unity3D 是 由Unity Technologies 開發的,讓用戶輕松創建三維視頻游戲、建筑可視化、實時三維動畫等互動內容的多平臺、綜合型游戲開發工具,是全面的、整合的專業游戲引擎。其具有可視化編程界面、高效腳本編輯、開發便捷等優點,支持Java Script、C#、Boo 腳本語言,廣泛應用于軍事與航天工業、室內設計、鐵路培訓等領域。
高速動車組受電弓檢修事故虛擬演示系統以減少檢修事故為目的,通過檢修事故的演示,結合虛擬現實技術的優點,讓使用者具有身臨其境的體驗,從而起到警示作用[7]。系統還可進行模擬演練,通過檢修的模擬仿真訓練,可使檢修工人更加熟練完成檢修工作,深入了解操作不規范所帶來的危害。同時,在系統中嵌入考核模塊,對檢修知識進行考核。系統的功能架構如圖1 所示。

圖1 系統功能架構
1.1.1 事故演示子系統
用戶可在事故演示子系統中觀看虛擬人物的檢修操作,了解檢修事故產生的原因及帶來的危害。由于虛擬現實技術仿真性強的優勢,高壓電觸電效果展示可給用戶帶來視覺沖擊,使其能更加深刻地意識到操作不規范所帶來的嚴重后果,從而提升培訓效果。
1.1.2 模擬演練
模擬演練子系統為用戶提供操作練習的機會,用戶通過設備上的按鍵與模擬場景進行交互,以第一視角進行控制,模擬視角移動、視角旋轉、檢修等行為。為使用戶能更加深刻地理解檢修過程,系統會在檢修的關鍵步驟上進行提示,當用戶的操作步驟發生錯誤時,系統也會對操作步驟進行講解,同時,演示可能發生的檢修事故與帶來的危害。系統可規范用戶檢修工作流程,提升用戶的檢修技能,降低實際檢修事故的發生率。
1.1.3 視頻講解與知識考核
為提高檢修知識儲備,用戶可在視頻講解子系統中觀看檢修事故案例視頻,也可通過考核子系統對自身進行定期考核。知識考核子系統在數據庫中進行題目的隨機抽取,對用戶的理解程度進行打分并做出是否合格的判斷,可鞏固用戶的檢修知識,使用戶掌握操作要點及發生事故后的處理方法。
進行場景設計時,需先對檢修事故案例進行收集[8],確定導致事故發生的因素和場景的設計路線與功能,綜合考慮機器性能及場景的還原度,完成對應場景的設計。由于Unity3D 對FBX 格式的文件適應性強,模型建立完成后需導出為FBX 格式。場景的設計流程,如圖2 所示。

圖2 場景設計流程
根據系統需要,搜集所需高速動車組模型的尺寸,使用CAD 繪制二維圖紙,確保圖紙與實際模型的尺寸、規格相同,將二維圖紙導入到3Ds Max 中,進行三維建模。由于高速動車組模型尺寸大、零件數量多,若建模后,將模型直接導入Unity3D 中將會占用大量內存空間,造成系統卡頓、場景切換慢等[9]。因此,需要對模型進行優化處理。具體操作步驟為:(1)對模型的頂點進行焊接處理;(2)減少曲面體的曲面分段數;(3)對不影響系統主體的部位進行貼圖處理。
在建模過程中,合理運用模型的坐標軸可更快速地完成建模,同時,增加模型的真實性與準確性。
3Ds Max 完成建模后,需將模型導入到Unity3D中。3Ds Max 采用的是右手坐標系(Z軸向上),而Unity3D 采用的是左手坐標系(Y軸向上),若直接導入,因坐標軸不匹配,將造成后期腳本編輯出現邏輯錯誤[9]。由于Unity3D 并不具備改變模型坐標軸方向的功能,因此,在導入模型前,需在3Ds Max中對模型進行坐標軸變換,使模型與Unity3D 坐標軸相匹配。在3Ds Max 中,點擊層次面板下的軸選項卡,點選“僅影響軸”,對模型的X、Y、Z軸的方向進行更改,如圖3 所示。

圖3 3Ds Max 與Unity3D 坐標軸對比
Unity3D 有多種物理引擎,包括剛體、碰撞器、觸發器等,可模仿實際物體的受力、碰撞等,使場景更加逼真。
本文對受電弓添加碰撞器及剛體組件,實現對受電弓物理屬性的模擬,通過對剛體組件施加作用力的方式,實現受電弓的升起與降落,同時,在模擬檢修過程中可利用Unity3D 中碰撞器提供的OnCollisionEnter、OnCollisionExit 等方法,通過對碰撞器的監測,實現對物體碰撞的檢測。從而對檢修人員是否觸碰受電弓進行實時監測,作為判斷是否發生事故的評價標準。若檢修人員在檢修信號燈未亮起時觸碰到受電弓,將觸發觸電特效;若檢修工人在檢修信號燈亮起后觸碰受電弓,則不會發生檢修事故。利用碰撞器的特性,可實現物體狀態監測和觸發條件判斷,增加系統的可操作性,降低程序的復雜性。
(1)視角交互
在模擬演練過程中,用戶需要與場景中的視角進行交互,從而控制視角進行移動、旋轉等操作,Unity3D 中提供了Input 類,實現對用戶的鍵盤、鼠標點擊事件的獲取,Input 類提供了多種方法來獲取用戶鍵盤與鼠標的按下、抬起等事件。在Update 中調用Input 類,可實現對用戶輸入的實時獲取,利用C#語言進行腳本編輯,實現用戶與場景視角的交互。在模擬演練場景中,用戶通過鍵盤上的W、A、S、D 鍵分別進行視角前、后、左、右的移動,并通過鼠標的左右滑動對視角的轉向進行控制。
(2)攝像機跟隨
在視角的移動過程中,攝像機要跟隨視角進行同步運動,使用戶擁有更加真實的體驗。實現攝像機跟隨的方法較多,可直接將攝像機設置為視角的子物體,但該方法會導致攝像機跟隨較生硬,用戶體驗效果不佳。
本文采取逐幀跟隨的設計方法,在視角運動過程中,利用代碼進行跟隨設計,從而實現逐幀跟隨,使用戶能夠擁有更真實的體驗。具體步驟為:利用視角當前位置減去原點的世界坐標,獲取當前位置的世界坐標;利用攝像機的位置減去視角的位置,獲取一個固定的坐標偏移值;在Update 中逐幀進行視角的位置檢測,用視角的世界坐標加上偏移值,即可確定攝像機的實時位置;將攝像機的轉動方向設置為視角行走的方向,即可完成攝像機的跟隨。
場景的導入關系到虛擬仿真的真實性,若導入時出現問題,導致貼圖、動畫等物體的缺失,用戶的體驗感下降,無法達到預期效果。
在3Ds Max 軟件中完成建模后,將模型導出為FBX 格式文件,嵌入貼圖、動畫等關鍵物體,隨后導入到Unity3D 軟件中進行場景的搭建。由于FBX格式只支持基本貼圖格式,導入Unity3D 中會有貼圖丟失,導致檢修場景失去真實性。所以,模型導入后,需要進行Unity3D 的材質創建,將缺失的貼圖重新貼入,從而完成場景的導入[10]。系統的部分場景如圖4 所示。

圖4 系統部分場景示意
進行受電弓檢修前,先升起受電弓,對其進行供電測試,確保其可以正常工作;在完成供電測試后,受電弓降落,同時,將供電設備斷電。斷電后,檢修信號燈亮起,檢修人員進行登頂檢修。如果檢修人員在受電弓未與接觸網脫開、未落穩在其底架的兩個橡膠止擋上等情況下進行登頂作業,將面臨觸電風險。
用戶在進入系統后,將以第一視角進行登頂作業,完成登頂操作后,拾取車頂的檢修工具,隨后進行受電弓檢修,若進行檢修時受電弓不帶電,則完成受電弓檢修;若進行檢修時受電弓未完成斷電,且檢修工具與受電弓的距離小于安全距離時,顯示界面將給出相關提示,并模擬檢修者傷亡情況。
Unity3D 提供Animation 與Animator 兩種動畫機,本文采用Animation 動畫機進行傷亡動畫的播放,通過對動畫機進行程序編寫,控制播放判定、播放順序。利用Animation 動畫機,可使檢修操作的模擬更加自然,節省編程時間,增加系統的操作性。模擬檢修效果如圖5 所示。

圖5 檢修場景模擬示意
本文基于Unity3D 開發了高速動車組受電弓檢修事故虛擬演示系統,具有事故演示、模擬演練、視頻講解及知識考核等功能,實現了受電弓檢修過程的模擬,滿足鐵路工人的知識培訓、模擬訓練等需求。系統利用虛擬現實技術,為鐵路專業人才的培養提供思路,打破傳統的培訓方式,同時,有效減少鐵路檢修事故的發生。