黃仁東 , 吳同剛
(中南大學 資源與安全工程學院,湖南 長沙 410083)
非煤礦山的安全培訓是提高礦井員工安全技術操作水平和理論素質,確保礦井安全生產的有效途徑和重要的安全措施之一。傳統的安全培訓形式包括上課,講座,看視頻等等,由于過程比較枯燥、不能適應復雜的變化、缺少靈活度等導致培訓效果不佳[1]。隨著虛擬現實技術(Virtual Reality)的發展與成熟,利用其交互性、沉浸感和構想性3個最突出的特征[2-4],可以構建交互式三維動態視景和實體行為的系統仿真,使用戶沉浸到該環境中。在國外,VR已經被運用在越來越多的安全教育培訓中:洛杉磯警察局使用Hydra模擬系統提升指揮者面對災害時的處理能力,根據各種新聞廣播、簡報和其他模擬實時信息,提供身臨其境的體驗[5];美國NOISH的Pittsburgh和Spokane研究所使用游戲引擎開發了礦工培訓游戲用于培訓煤礦工人識別井下地圖的技能[6-7]。在國內煤礦安全培訓領域,虛擬現實技術被用于對員工進行安全生產培訓[8],以角色扮演類游戲的方式,開發交互式礦工安全訓練模塊,利用3dsMax實現礦工人體建模包括Body模型和Biped骨骼綁定,結合OpenGL進行幾何建模實現3D場景的建設;還有運用Converse3D虛擬現實制作軟件設計系統UI和交互[9],達到漫游學習的目的。雖然都實現了虛擬現實安全培訓,但是這些方法在構建稍顯復雜的三維場景仍然十分耗時費力,構建的結果與真實場景存在一定的差異,而且采用第三人稱視角操作,培訓的沉浸感不是很強。本文設計的虛擬現實系統的實現路徑包括3dsMax建立實體模型,導入Unity3D引擎,使用自帶的第一人稱控制器實現第一人稱視角操作,用Javascript腳本語言實現設計好的模塊與情景,構建安全培訓虛擬現實系統,并將其應用在安全培訓中。該路徑能以較簡單的方式實現良好的虛擬現實效果,同時根據不同的環境設計對應的情景進行培訓教育,適用性強。
3dsMax提供的基礎建模,poly多邊形建模,NURBS建模等豐富的建模方式,可以輕松精確地構建各種復雜模型。既可以通過各類修改器將簡單的自帶模型修改為目標模型,也可以通過對三維圖形或二維圖形放樣擠出、車削等構建三維模型。
因為巷道多為連續且截面基本保持不變,符合放樣建模的特性。通過放樣建立幾何模型的方法為:構建模型走向的軌跡線—繪制截面輪廓線—選擇復合對象命令下的放樣—分別拾取路徑與圖形—獲得對應的3D模型,見圖1。

圖1 放樣建模Fig.1 Lofting model
利用噪波修改器可以模擬巷道凹凸不平的效果,結合材質編輯器中的位圖功能,給巷道賦上對應的材質,使巷道看起來更加真實,見圖2。

圖2 模擬巷道Fig.2 Simulative roadway
對于一些簡單的設備模型,可以建立大致的立體形狀,通過放縮、旋轉進行粗略調整,再經過多邊形的點層級、線層級和多邊形層級進行位置改動及各種修改器(放樣、FFD、擠出等)精細加工,構建更逼真的模型,見圖3、圖4。

圖3 鉆孔機Fig.3 Drilling machine

圖4 電耙Fig.4 Scraper
本系統主要采用Unity3D引擎中的第一人稱控制器,大部分時間不需要人物角色出現即可實現場景漫游與交互,但也會有輔助人物角色的出現。網絡上有豐富的人物模型資源,形態各異,可選取合適的模型加以修改,得到想要的模型效果。可以使用Skin骨骼蒙皮系統進行骨骼蒙皮、材質信息的添加以及紋理貼圖設置,人物模型見圖5。

圖5 礦工角色Fig.5 Miner character
Unity3D作為開發平臺具有眾多的優勢,簡單列舉如下:
(1)可以實現跨平臺操作,適用范圍廣,平臺的相關功能基本可以實現,實現不了的也可以通過插件來完成。
(2)腳本語言支持C#和Javascript,既可以選擇功能強大資源豐富的C#語言,也可以選擇相對簡單,容易上手的Javascritp。
(3)Unity可以進行粒子光效編輯,其本身就是個功能十分強大的粒子編輯器,自帶的粒子系統[10]可以輕松模擬火焰、爆炸、煙霧等特效。
(4)擁有豐富的插件,可以實現各種功能,比如一些shader特效、物體破碎特效、場景變形特效等。且自帶第一人稱控制器,可以很方便的完成場景漫游與交互。
(5)跨平臺能力強,移植便捷,3D圖形性能出眾[11]。項目完成后可以根據對應平臺找出選項導出相應的資源。
(6)自帶天空盒、材質貼圖、地形編輯器等,可以方便的構造各種環境。
第一人稱控制器可以通過導入Unity自帶的資源包來獲取,主要包含3個部分,分別是主攝像機、膠囊體和一個碰撞器,見圖6。自身攜帶3個腳本,可通過鼠標指向控制視角方向,WASD控制移動,面板設置移動速度、跳躍高度等參數輕松地實現第一人稱視角漫游的效果。

圖6 第一人稱控制器Fig.6 First person controller
以第一人稱視角進行操作有很多優點,首先第一人稱視角貼合實際,可以產生相對強烈的沉浸感,讓人有身臨其境的感覺;其次,第一人稱視角能夠方便配合外部硬件設備,比如VR頭盔、球幕等營造更加真實的學習體驗,從而達到較好的培訓效果;第一人稱視角還省去了主角人物模型制作與動畫效果,簡化制作過程。
碰撞檢測技術是實現人物與環境,人物與人物交互的關鍵性技術,是使得場景和活動更加逼真的重要手段[12]。要使人物與模型中的物體碰撞時不發生穿透的現象,以及到達指定區域出現特定的操作與提示的效果,碰撞檢測必不可少。
Unity3D碰撞檢測類型主要有3種,分別是基本碰撞檢測、觸發器碰撞檢測和光線投射。基本碰撞檢測能夠滿足基本的碰撞檢測要求,但是必須要求2個物體的碰撞器接觸后才能觸發指令,局限性較大;光線投射可以避免這個問題,但是有面向方向的要求,不適合人物自由自動進行交互的要求。本文選取觸發器碰撞檢測。
觸發器碰撞檢測需要設置2個觸發器,可以自由設置觸發器的大小,將需要被檢測碰撞的物體包含于一個觸發器中,將另一個觸發器附于具體需要執行指令的物體,當角色到達第一個觸發器范圍,即可觸發相應的腳本,完成操作。觸發器檢測不受朝向和人物與物體碰撞的限制,而且腳本不需要附在第一人稱控制器上,這樣有利于后期程序運行的流暢性。對應的Javascript腳本為:
function OnTriggerEnter(col:Collider){
if(xxx.gameObject.tag=="xxx"){ 如果觸碰的物體標簽為 “xxx”
具體腳本視情況而定;}}
運用Unity3D自帶的粒子系統,可以很好地模擬各類事故如火災、爆炸、冒頂片幫的發生、擴散、抑制的全過程。通過導入Unity自帶的粒子資源包,可以模擬各種情節效果,如火焰、煙霧、淹水,動畫效果逼真,導入簡便。以火災為例,粒子系統效果見圖7,可以將Fire粒子系統添加到著火的場所,同時建立腳本文件附到Fire粒子系統上,實現當粒子系統觸碰到消防設備時幾秒后停止發射,模擬火災被消滅的效果[13]。
核心腳本為:
function OnParticleCollision{
if(collision.collider.tag==“fire extinguisher”) 如果觸碰的物體標簽是“fire extinguisher”
yield WaitForSeconds(10); 等待10 s
particleEmitter.emit=false; 停止發射粒子
}

圖7 Unity3D火焰粒子系統Fig.7 Unity3D fire particle system
本虛擬現實系統主要用于礦井漫游與應急培訓。礦井漫游能夠有效地幫助學員了解井下結構;各個部分的位置、功能以及發生事故時正確的逃生路線等。應急培訓主要是為了使礦工能夠在發生各類事故時,不要驚慌失措,采取正確果斷的措施自救或救助他人,減輕事故后果,保障人身安全。
本文所要構建的虛擬現實平臺主要目的是用于非煤礦山開采員工的安全培訓。規章制度類培訓教育用虛擬現實來實現意義不是很大,而對井下環境的熟悉和面對現實各種場景的正確反應與操作直接關系到操作工人的安全與健康。因此本虛擬現實系統主要以對井下環境認識與各種場景的合理應對措施為主要教育內容。目前設計安排的模塊有:礦井漫游模塊和應急培訓模塊。系統運行的整體框架見圖8,系統功能設計見表1。

圖8 系統運行框架Fig.8 System operation frame
礦井漫游模塊主要用于工作人員對井下環境的認識與熟悉。運用3dsMax對礦井具體構造、現場環境、作業場所、各個系統、設備的位置和運作等進行建模顯示,結合Unity3D實現各個角度進行仔細觀察,學員可以通過身臨其境的體驗快速熟悉礦山系統的各個環節[14]。在漫游的過程中可以添加文字說明和語音講解,讓學員學習逃生路線、緊急避險系統的位置與操作等知識,有利于保障發生事故時井下工作人員的人身安全。該模塊主要分為學習模式和練習模式2個部分。選擇學習模式時,學員可選擇礦井內任意區域進漫游,對井下環境有全面而真實的了解,當漫游完畢,返回選擇其他區域的漫游。

表1 系統功能Table 1 System function chart
練習模式主要考察學員對井下環境的掌握情況,系統隨機選定一個區域,學員在該區域內到達設計好的信息點時出現實時測試,完成相應任務。如果規定時間內沒有完成,則跳轉到學習模式,進一步加深學習了解。漫游場景見圖9。

圖9 井下漫游場景Fig.9 Roaming scene under mine
應急培訓模塊設計的整體構架主要包括學習模式和練習模式2個部分。學習模式是以學員視角為主視角,自動在構建的虛擬場景中進行漫游,到達指定位置時面對出現的場景,進行正確的應對,并在界面上以文
字和真人發音的形式輔助說明,加深學員的印象,學習正確的操作與應對措施。練習模式就是由學員自己操作,以第一人稱視角進行走動,利用觸發式碰撞器和場景中特定物品產生交互,引導學員做出正確判斷,出現錯誤操作時判定不合格,跳轉學習模式。三維仿真的系統可以直觀展現井下發生事故的場景,學員感受真實深刻,可以提高培訓質量[15]。目前設計的場景有:炮煙中毒事故、冒頂片幫事故、火災爆炸事故、透水淹井事故、觸電事故等。
交互式安全培訓模式主要有2條線組成。首先是交互部分,學員通過自己操縱第一人稱視角的角色對構建的場景進行探索,與設計好的物體或人物進行交互;另一部分是由一系列的情節安排來設定情景。任何安全培訓都有培訓的目的和所要達到的效果,這就需要通過合理的主線使學員在進行操作的同時,學到必要的知識。所以,在情景設計之前,需要先對故事進行構思,設定故事的框架。先確定學員需要完成哪些操作,學習哪些知識,然后設計相應的場景,需要出現的人物,當學員處于某一場景中時應該做的操作以及給出對應的交互反應。用簡單易懂的方式讓學員學到最實用的知識和技能,并留下深刻印象,以至于在真實場景中遇到類似的情況能做出正確的反應,保證自身安全。以炮煙中毒場景為例,情景設計如圖10所示。

圖10 炮煙中毒情節設計Fig.10 The plot design of blasting fume poisoning
系統的運行應當是一個完整流暢的過程,需要設計好操作的進程。從開始菜單以后,每一級都應設有返回上一級的功能,方便學員自由選擇學習內容。在練習模式下,順利完成任務時應記錄下來存檔,表明學員通過該階段考核,直至學員通過所有訓練才算通過。
為了鼓勵學員認真完成學習與訓練,有效的激勵措施必不可少。對于完成所有練習的學員,系統將進行記錄并公示在開始界面,按照學員練習的完成進度進行排名列出榜單,同時對排名靠前的學員給予一定的現金獎勵和表揚,激發學員的學習興趣與動力。
1)相比于傳統安全培訓的方式,該系統具有較好的沉浸性與交互性,場景逼真,員工有較高的學習興趣,學員以第一人稱視角在虛擬礦井中漫游,能夠較好地熟悉井下環境。
2)克服井下復雜環境的限制,通過應急模擬培訓掌握應對各種事故時的正確處置措施,配合實際應急操作訓練,能夠給員工留下更深刻的印象,有助于增加事故應對能力。
3)學員通過反復學習與練習,可以實現以較小的成本與時間達到良好的教育培訓效果,有較高的實用性。
[1] 胡東濤,黃浪,等. 基于虛擬現實技術的非煤礦山救護隊培訓系統設計與實現[J].中國安全生產科學技術, 2017,13(2):171-175.
HU Dongtao, HUANG Lang, et al. Design and implementation of training system for non-coal mine rescue team based on virtual reality technology[J]. Journal of Safety Science and Technology, 2017,13(2):171-175.
[2] 姜學智,李忠華.國內外虛擬現實技術現狀研究[J].遼寧工程技術大學學報,2004(23):238-240.
JIANG Xuezhi, LI Zhonghua. Present situation of VR researching at home and abroad[J]. Journal of Liaoning Technical University, 2004(23):238-240.
[3] 張能福,何新礦,閻旭騫.虛擬現實技術的及其在采礦中的應用[J]. 金屬礦山,2002(11):62-63.
ZHANG Nengfu, HE Xinkuang, YAN Xujian. Virtual reality technology and its application in mining engineering[J]. Metal Mine, 2002(11):62-63.
[4] 黃心淵. 虛擬現實技術與應用[M]. 北京:科學出版社, 1999.
[5] 戴麗紅.洛杉磯警局反恐策略及對我國公安反恐工作的啟示[J].武警學院學報,2011,27(1):93-96.
DAI Lihong. The los angeles police department’s strategy of anti-terrorism and its inspiration for counter-terrorism work of chinese police[J].Journal oF Chinese Peoples Armed Police Force Acadamy,2011,27(1):93-96.
[6] Timothy J.ORR, Marc T.Filigenzi, Todd M.Ruff. Virtual reality for mine safety training [J], Applied Occupational & Environmental Hygiene, 2000, 15(6):465.
[7] CJ Bise. Virtual reality: Emerging technology for training of miners [J], Mining Engineering, 1997, 49(1): 150-154.
[8] 趙國梁.綜采工作面安全生產虛擬現實系統關鍵技術研究[D].西安:西安科技大學,2012.
[9] 徐雪戰,孟祥瑞,等. 基于三維可視化與虛擬仿真技術的綜采工作面生產仿真研究[J].中國安全生產科學技術, 2014(1):26-32.
XU Xuezhan, MENG Xiangrui, et al. Research on virtual simulation of full mechanized mining face production based on three-dimensional visualization and virtual simulation[J]. Journal of Safety Science and Technology, 2014(1):26-32.
[10] 趙春霞,張艷,戰守義.基于粒子系統方法的三維火焰模擬[J].計算機工程與應用,2004,40(28):73-75.
ZHAO Chunxia, ZHANG Yan, ZHAN Shouyi. 3-dimensional fire simulation based on particle system[J]. Computer Engineering And Application,2004,40(28):73-75.
[11] 肖建良,張程,李陽. 基于Unity3D的室內漫游系統[J].電子設計工程, 2016, 24(19):54-56.
XIAO Jianliang, ZHANG Cheng, LI Yang. The indoor roaming system based on Unity 3D[J]. Electronic Design Engineering, 2016, 24(19):54-56.
[12] 閆興亞,趙杰,崔曉云. 基于Unity3D建筑施工虛擬培訓系統的研究與實現[J].計算機與數字工程,2016, 45(7):1281-1285.
YAN Yaxing, ZHAO Jie, CUI Xiaoyun.Research and implementation of construction virtual training system based on unity 3D[J].Computer & Digital Engineering, 2016, 45(7):1281-1285.
[13] 劉永立,楊虎. 煤礦火災應急救援演練虛擬現實系統研究[J]. 礦業安全與環保,2013,40(6):22-25.
LIU Yongli, YANG Hu. Study on virtual reality system for mine fire emergency rescue training[J]. Mining Safety & Environmental Protection,2013,40(6):22-25.
[14] 修春華,孫秀娟,苗坡,等. 基于Unity3 D的虛擬礦山漫游仿真系統設計與實現[J].金屬礦山, 2015, 44(4):262-266.
XIU Chunhua, SUN Xiujuan, MIAO Po, et al. Design and implementation of virtual mine roaming simulation system based on unity3 D[J]. Metal Mine, 2015, 44 (4):262-266.
[15] 馮丹丹.三維礦井應急救援仿真系統的研究與實現[D].北京: 華北電力大學,2013.