全 瑩,王荊石,鄭博文
(1.中國鐵路呼和浩特局集團有限公司呼和浩特貨運中心,呼和浩特 010010;2.蘭州安信鐵路科技有限公司,蘭州 730070;3.甘肅省軌道交通信號與控制評測行業技術中心,蘭州 730070;4.甘肅省工業交通自動化工程技術研究中心,蘭州 730070)
近年來我國也在軌道交通虛擬仿真培訓上進行了大量的研究與應用,研究內容包括了鐵路設計、鐵路作業和鐵路培訓等方面。其中鐵路培訓工作與虛擬現實技術結合設計的虛擬仿真培訓系統為鐵路培訓發揮了重大作用。虛擬現實技術與鐵路叉車作業結合設計的半實物仿真系統,解決了職工培訓理論與現實脫節、培訓成本大、培訓效果不明顯的問題。同時,構建數字化操作管理系統使用戶的培訓、學習與實訓可以得到良好的記錄。
Unity3D是一個大型游戲開發平臺,該平臺三維動畫、可視化物體和動作實時性等技術已發展的較為完善。將Unity3D引擎開發工具應用到鐵路虛擬場景上,利用3ds建模工具構建鐵路貨運虛擬模型,充分利用其強大的建模能力。三維模型建立后,導入到Unity3D平臺。系統軟件設計如圖1所示。

圖1 系統軟件設計
本系統操作臺硬件叉車為實物1∶1還原。由懸浮式座椅、駕駛座艙、底座平臺、PC系統、視屏顯示器、方向機、檔位桿、操作桿、IC卡讀寫裝置、360視角調整搖桿、油門、離合、剎車踏板、轉向開關、數據采集卡、控制臺及各種功能控制按鈕組件等組成。設備采用與真實叉車相同的操作部件,逼真的操作手感,使得其操作功能、操作感覺與真機完全吻合。
真實還原鐵路貨運叉車現場環境,使得貨運職工在室內叉車平臺上就能真實感受到現場環境,獲得沉浸式體驗。叉車實訓功能模塊,均來自于貨運現場叉車作的實際拆解。利用VR技術于典型場景,受培訓者可以直觀了解叉車作業的操作流程。
利用虛擬技術設計多種叉車作業流程,包括水平搬運、堆垛/取貨和裝貨/卸貨等。同時附帶虛擬交互功能,貨運職工可以與虛擬技術所呈現的功能模塊進行體驗。針對培訓場景的培訓視頻,利用Unity的dotween工具插件開發了相關播放設置,見表1。

表1 播放設置表
自動化考核,包括以下功能:①考核點設置及試題庫管理;②人工(隨機)組卷及試卷管理;③實訓考核管理(包括實訓考核名稱、實訓考核層級選擇、試卷選擇、實訓考核時間、總分設置、及格線設置、實訓考核模式開啟和關閉等功能);④智能及人工閱卷(實訓考核過程回放)。培訓者在操作過程中所有的動作流程通過大數據都會被采集到數據庫中,通過智能分析,將每個培訓者的實際考試情況記錄下來。最終系統會對培訓者做出整體測評,評價該貨運職工實際操作能力。
以實物仿真、AR虛擬技術及鐵路貨物裝卸安全技術規則等技術規章為技術支撐,搭建室內裝卸機械操作實訓區,對叉車進行虛擬仿真實訓。AR技術將虛擬和現實連在一起,員工坐在真實的叉車上,感受到真實的室外作業場景。
叉車操作系統采用了基于Unity物理引擎編寫的以第一人稱的畫面行動組件。Unity本身的物理引擎可以較為準確完整描述虛擬世界的相關動作,為使用戶體驗感更強,在Unity中使用RotateView()函數,攝像頭根據此腳本就可以自由旋轉。在3D場景中,函數通過對第一人稱的作用力使得第一人稱移動。而該移動是在模擬號的3D環境中進行移動,可以較好的完成上下移動,前進與后退等。同時利用3Dmax軟件對虛擬場景進行優化,將看不到的場景、畫面進行精簡與刪除,精簡模型量,使得虛擬場景展現出的操作場景更加逼真。
叉車作業的流程與操作順序必須滿足現場作業的工作流程。交互腳本中需要添加順序操作的邏輯功能,整個交互腳本需要實現現實與虛擬的交互性,培訓人員坐在叉車上操作手柄等操作在虛擬搭建的場景上要有同步真實的動作。利用C#編程進行腳本的語言設計與開發,C#編寫的手柄移動腳本要實現手柄在虛擬場景中的拖動前進后退提升落下等相關功能。
叉車在進行虛擬場景作業時,需要時刻清楚是否碰撞到相關物體或被物體所碰撞,碰撞從概念上來講,一個物體收到另外一個物體的力,并發生位置或狀態的變化,稱為碰撞。常用的為OncCollion檢測和On-Trigger檢測。在該虛擬環境中,采用觸發檢測的方法來判斷是否產生碰撞,使用該觸發檢測的前提是需要在被檢測物體上勾選Is Trigger選項。使用3個相關重要函數:OnTriggerEnter():開始碰撞、OnTriggerStay():碰撞中、OnTriggerExit():結束碰撞。相關碰撞檢測設置代碼如下(圖2):當開始碰撞時,將碰撞標簽與“object”標簽對比,若相等,定義碰撞開始。觸發一個對話,并記錄“開始撞到”。碰撞過程中,記錄“停留在撞擊狀態”。碰撞結束,關閉該會話,并記錄“結束撞擊”。

圖2 碰撞檢測設置代碼
叉車在虛擬場景中的移動是整個交互操作系統的重要組成部分之一,所有的動作均編寫在腳本里面,利用腳本來實現動作。在Unity3D的操作界面中選擇3D Object中的Caspsule創建一個3D立體物體膠囊,并將其命名為Player,通過更改其Inspectors的Transform屬性,將立體物體膠囊移動到地面上合適的位置。將相機(Camera)的父級拖拽到立體物體膠囊(Player)的子層級中,充當視角,并調整到適當位置。在SImpleNaturePack中創建一個C#Scripe的腳本。設置好一個單元移動速度,GetKey函數用于監視輸入指令,并在玩家移動時觸發語句。根據觸發時間乘以單位移動速度所花費的單位時間,可將相應的單位按規定方向移動。在角色模擬器的攝像機組件中添加腳本,通過GetAxis函數監視鼠標在垂直和水平方向上的輸入,設置好參數值,記錄上次移動的位置,當Player移動觸發語句時,移動速度v乘以相應時間t,攝像機就可以實現旋轉相應的角度,達到控制視角的效果。
通過半實訓仿真系統的模塊設計與交互場景的實現,系統搭建了半實物仿真平臺操作界面。
實訓具體操作結構圖如圖3所示。

圖3 系統操作結構圖
用戶在登錄該半實訓仿真平臺后,選擇自己的實訓題目。同時在登錄界面僅可看到系統根據自己所選題目按照考試要求生成的實訓題目,系統的培訓內容則不可見。當實訓考試結束或人為自動退出考試界面后,系統恢復顯示培訓內容。
受訓人員選擇實訓任務后,系統根據選擇的叉車實訓場景生成相應的虛擬環境,在完成該任務后,系統判定。若任務未完成,系統記錄,重新選擇實訓場景。直至受訓人員完成所有實訓場景,系統判定均認定成功,系統進入下一系統,員工完成培訓任務的學習,系統給出最終評定成績,供給實訓老師參考。實訓標準流程如圖4所示。

圖4 實訓標準流程
實訓考核層次劃分為集團公司級、站段級和車間級。為了對員工培訓的公平及選拔人才的需要,考試試題存在著不同的難度等級。員工所選擇的等級越高,系統設置的題目難度會增加。作為機器學習的一種,每個屬性的測試就會相應地有一個非葉的點存在于決策樹上。每個特征屬性的輸出則會在決策樹上存在一個對應的分支。在對系統等級的難度設置上,決策樹就要從實訓等級這一根節點出發,測試相應的實訓等級。并按照實訓等級輸出來選擇對應的分支,系統基于決策樹的實訓等級設計如圖5所示。

圖5 實訓等級設計
具體的設置方法:①實訓考核的層級越高,高難度考核點的出現比例越大;②實訓考核的層級越高,高難度考點所占的分數比例越大。
實訓打分為系統自動打分,考試結束,系統隨即給出考核結果。參培員工若對結果有異議,可申請人工輔助判卷。實訓單位教師通過實訓過程的全程記錄,人工給出考核成績。
智能成績的統計需要數據庫的設計,采用SQL數據庫收集數據。描述學員信息、成績信息、操作過程中的動作屬性信息和操作流程中所使用的工機具信息等,能夠更好地完成針對職工的自動評判,通過操作即可自動實現成績的判斷,并傳輸至上位機,在平面交互界面進行顯示。
基于半實物仿真技術的鐵路叉車培訓系統已在本局鐵路貨運中心運用,該系統使得培訓員工在室內真實叉車模型上即可模擬叉車現場作業,用逼真的作業場景使培訓員工獲得了良好的培訓效果。通過演練各種作業場景,提高了培訓員工各個場景的作業能力,對于現場作業中的“看不見”“摸不著”的設備與場景,虛擬技術也提供了各種操作環境與真實作業感覺。員工的作業水平,作業能力、作業素質均得到了全面的提升。
本系統解決了傳統鐵路培訓的現場實訓與作業沖突、培訓功能單一、設備不易全方位觀看的缺點,提出了一個基于虛擬現實技術的創新場景,最大程度上調動了培訓員工的學習積極性與參與趣味性。虛擬現實技術的低成本與高性能使得貨運叉車的培訓變得更加高效、安全與節能。