?

Unity3D虛擬現實技術在機艙資源管理模擬器開發中的應用

2015-11-29 01:02蔣德志姚文龍張均東青島遠洋船員職業學院機電系山東青島6607大連海事大學輪機工程學院遼寧大連606
中國航海 2015年3期
關鍵詞:輪機機艙模擬器

蔣德志, 姚文龍,, 張均東(. 青島遠洋船員職業學院 機電系,山東 青島 6607;. 大連海事大學 輪機工程學院,遼寧 大連 606)

Unity3D虛擬現實技術在機艙資源管理模擬器開發中的應用

蔣德志1, 姚文龍1,2, 張均東2
(1. 青島遠洋船員職業學院 機電系,山東 青島 266071;2. 大連海事大學 輪機工程學院,遼寧 大連 116026)

針對目前機艙資源管理訓練平臺在高逼真度和強交互性等方面存在的不足,提出一種基于Unity3D平臺的遠程可交互式機艙資源管理模擬器的實現方法。首先,基于3dsMax/Unity3D的虛擬現實技術,闡述機艙資源管理模擬器的總體設計方案;其次,介紹Unity3D程序的開發流程和關鍵技術;最后,在應用3dsMax對超大型油船機艙設備進行三維建模的基礎上,對應用Unity3D工具包實現虛擬場景的動態交互技術進行研究,實現三維船舶模型數據與二維模型數據的整合、碰撞檢測和三維機艙虛擬漫游等。采用實船數據對該模型器進行仿真應用,結果表明:所開發的系統能很好地滿足機艙資源管理訓練的各項指標要求,且實現效率較高。

船舶工程;機艙資源管理;模擬器;Unity3D;虛擬現實;交互設計

近年來,國內外有關輪機模擬器的研究已取得較大進展。國外方面,挪威的KONGSBERG公司、英國的TRANSAS公司和波蘭的UNITEST公司等均已開發出多種基于虛擬現實技術的輪機模擬器,但其系統僅限于設備操作技能訓練,且采用被動式漫游,缺乏沉浸感。國內方面,大連海事大學、上海海事大學、武漢理工大學和集美大學等科研院校[1-4]近年來也已在該領域的研究方面取得較大進展,但是現有輪機模擬器的主要功能是操作技能訓練,不具備STCW公約(International Convention on Standards of Training, Certification and Watchkeeping for Seafarers)馬尼拉修正案中關于資源管理所要求的團隊協作訓練、情景意識訓練、通信與溝通訓練以及應急訓練等功能,不能滿足機艙資源管理操作評估的需要。[5-6]因此,研制機艙資源管理模擬器顯得尤為重要。這里提出一種基于3dsMax和Unity3D的機艙資源管理模擬器的設計思路,提供多人在線或遠程交互式訓練功能。

Unity3D是近幾年剛發展起來的一種性能卓越的開源三維虛擬現實開發平臺,不僅能整合其他軟件平臺提供的資源,而且具有強大的計算機程序編譯能力。Unity3D類似于Director, Blender Game Engine和Virtools等圖型化開發軟件,其編輯器可在 Windows 和 Mac OS 環境下運行,且支持各種腳本語言(包括Javascript,C#和Python)。許多高級語言都提供了與Unity3D的接口[7],這使得其能適應于不同的應用領域。

1 機艙資源管理模擬器總體設計

利用虛擬現實技術,結合機艙資源管理訓練內容,以30萬噸級超大型油船(Very Large Crude Carrier,VLCC)“遠興湖號”為母型船,建立VLCC機艙三維實體模型。通過制定不同的任務,使輪機人員明確各自在不同任務中的職責,有效利用船舶機艙現有的機械動力設備和安全設備,發揮個人在團隊工作中的作用,從而嚴格、有條不紊地完成相關工作,體現團隊成員在資源管理方面的技能,保證船舶安全航行,減少或避免潛在人為事故發生。[8]

該機艙資源管理模擬器除了具備傳統輪機模擬器的操作功能以外,還具備情境意識訓練、通信與溝通訓練、團隊協作訓練以及應急訓練等功能。其從總體功能上可分為值班人員的單人和多人協同訓練模塊、遠程可視化交互控制模塊以及教練員管理與在線培訓模塊等三大模塊,各模塊功能設計如下。

1.1值班人員的單人和多人協同訓練模塊

機艙資源管理強調的是值班人員在團隊與團隊協作、通信與溝通、領導與決策以及情景意識的培養與保持等方面的管理技能,因此所設計的機艙資源管理模擬器應具有足夠逼真的三維操作模型,使學員真正感受到船舶的實際環境,更好地學習機艙資源管理所要求的技能。[9]此外,其還應具備傳統輪機模擬器所包含的三維模型,如:船體、機艙總覽、主推進裝置及其推進系統、發電柴油機、自動化電站系統、應急發電機間、集控臺、駕駛臺、機旁操縱臺、舵機系統、鍋爐蒸汽系統、壓載水系統、火災報警和滅火系統(包括二氧化碳系統)、艙底水系統、燃油柜系統(包括燃料柜、沉淀柜和日用柜)、滑油柜系統(包括儲存柜和沉淀柜)、空氣系統以及冷卻水系統等。

在多人協作完成機艙各種應急處理演練時,重點考察值班人員對操作規程的熟練程度和執行程度以及與其他同事的配合能力、團隊協作精神。因此,所設計的機艙資源管理模擬器應能實現機艙進水時船舶吃水和橫傾變化的檢測以及設備的自動啟停、機艙失火和全船失電的應急處理等內容的訓練,并能使學員以虛擬身份登陸模擬器,自主操控虛擬角色完成機艙應急處理演練規則規定的各項操作,如同親臨應急處理現場一樣。未能參演的崗位,系統以機器人(NPC)代替,可進行應急處理知識考核,提高輪機人員的應急處理水平。該部分功能是傳統輪機模擬器所不具備的。

按照上述任務需求,該模塊能實現以下3種操作訓練。

1) 基本操作訓練:能完成類似于傳統輪機模擬器的癱船啟動、機艙備車準備、港內機動航行、海上定速航行、機艙完車準備、輔鍋爐操作、分油機操作、應急操作以及特殊工況航行等。

2) 高級操作訓練:能完成類似于傳統輪機模擬器的主機遙控系統的參數查詢和修改、特殊工況下控制模式的選擇以及系統內故障排除評估等。

3) 管理技能訓練:能完成傳統輪機模擬器所欠缺的通信與溝通、常規工況及應急情況下輪機長和輪機員之間的協調與配合等。

1.2遠程可視化交互控制模塊

對于可遠程交互式機艙資源管理模擬器的實現,采用基于B/S模式的TCP/IP結構。該結構是一個開放的、可在線調試和實時運行的模塊化建模環境,用戶通過IE等主流瀏覽器便可瀏覽三維場景;其模型的建立、調試、試驗和運行結果顯示都在客戶端進行。通過網絡傳輸反映三維場景的模型文件,用戶可根據需要將相應的模型文件下載到本地后由對應的瀏覽器插件來提供對模型文件的動態顯示和實時渲染。若用戶與三維虛擬場景發生了交互作用,則服務器會根據用戶的請求繼續提供其他局部或不同視點的模型文件,由此實現基于網頁的多人在線團隊分工合作訓練,例如組成團隊來完成主機備車、值班小組的航行值班、機艙與駕駛臺的聯絡、PSC模擬推演及其他應急處理演練等。

1.3教練員管理與在線培訓模塊

教練員管理與在線培訓模塊主要用于教員對模擬器進行管理和教學演示,可實現初始訓練環境設置,訓練過程控制,故障和工況設置,系統投入和解除控制,運行狀態監視、記錄和打印,教學對話,訓練過程記錄、考核和評估,實操評分及成績單打印等功能。此外,關于機艙資源管理培訓的相關資料(如應急視頻、圖片、文字和規章制度等)都可嵌入三維場景供學員學習。其具體實現的功能如下。

1) 啟/??刂乒δ?,包括加電集體啟動、密碼輸入、直接進入“模擬器”界面、IP地址設置以及各仿真子系統準備狀況監視等。

2) 運行模式設置功能,包括全部學員對同艘船舶進行全船操作訓練、學員對分系統進行局部操作訓練、凍結和運行控制以及聲響控制等。

3) 外部條件(運行環境)設置功能,包括海水流速/流向設定、船舶航向設定、船舶吃水設定、海浪設定、風力和風向設定、大氣壓力設定、船體海生物附著程度設定、海水溫度、集控室溫度設定、環境溫度設定、海面結冰狀況設定以及(窄)航道狀況設定。

4) 操作訓練管理功能,包括已有訓練項目選擇、新項目錄入、異常事件設置、操作記錄、重做、結束返回等,其中:新訓練錄入功能指允許教練員將某一運行狀態或情景下的系統參數、初始狀態和情景存儲為新的訓練項目,并列入訓練選項中;操作記錄功能包括受訓人登錄、操作時間和操作內容記錄打印等;重做功能指提供部分或整個訓練項目的重做功能;結束返回指返回主界面或評估界面。

5) 系統故障檢索與編輯功能,包括故障列表檢索、故障分組編輯、故障參數編輯、新故障編輯與保存、故障運行管理(包括故障現象和故障處理過程監視)、故障復位(包括故障處理鑒別、故障完成復位和故障強制復位)以及返回等;此外,其還提供所有設備與系統的磨損變量,以便教練員根據磨損變量編輯新的故障項目。

6) 關于機艙資源管理培訓的相關資料(如應急視頻、圖片、文字和規章制度等)都可嵌入三維場景供學員學習。

2 Unity3D程序開發流程

Unity3D程序的開發流程(見圖1)一般分為制作并導入模型、組織通道模塊和發布程序等3步。

1) 通過3dsMax 建成VLCC機艙三維實體模型, 包括幾何模型、紋理和光照等,開發完成后把資源數據發布為.FBX格式文件。

2) 將.FBX格式文件導入Unity3D進行整個系統的合成與交互開發,形成基于Unity3D 引擎的虛擬現實環境,包括VLCC場景數據庫、Unity3D 渲染引擎和碰撞檢測等交互處理程序,其中相同的資源放在同一個目錄下,方便虛擬仿真過程資源的索引、查找、裝載和釋放。

3) 在Unity3D界面中創建相應控制的腳本,打包發布為Web版本,生成遠程可交互式機艙資源模擬器應用軟件。

圖1 Unity3D程序開發流程

程序設計的核心是Unity3D驅動模塊,主要功能是驅動外部設備(如鼠標和鍵盤等)輸入的信息以及繪制VLCC三維虛擬仿真數據資源。繪制仿真數據實現機艙虛擬場景仿真。處理外部設備輸入信息,對設備虛擬場景對象進行操作(如旋轉、縮放及移動等),實現交互仿真。

3 關鍵技術

3.1機艙場景漫游

漫游是機艙資源管理模擬器的關鍵功能,交互是實現漫游的方式。[8]普通交互可通過JavaScript實現,例如在模擬器漫游系統中用到的鼠標按鍵行走功能,可在Unity3D中通過WSAD分別實現上下左右移動。Unity3D 中內置了第一人稱視角控制,將控制器預置體拖放至虛擬現實場景中,不僅可以模擬第一人稱在場景中進行漫游,而且可以通過檢測輸入控制攝像機的方式驅動場景,實現任意視角的場景漫游。舵機間自動漫游程序開發見圖2。

圖2 舵機間自動漫游程序開發

3.2碰撞檢測

在開發機艙資源管理模擬器的過程中,必須在場景驅動中設置設備的物理屬性來避免“穿墻而過”。圖3為開發過程中未添加碰撞檢測程序效果圖,從中可知,部分設備只有添加能執行碰撞檢測的組件,才能使該設備在不影響性能的前提下具有碰撞檢測功能。

Unity3D引擎中較常用的碰撞檢測包圍盒有 SphereCollider,WheelCollider,BoxCollider和MeshCollider等4種。根據機艙設備的特點和碰撞精度要求,采用Component-Physics-MeshCollider包圍盒,使場景中設備與輪機員之間的碰撞檢測具有良好的效果。

圖3 分油機間未添加碰撞檢測程序效果圖

3.3局域網內的交互

利用Unity3D開發機艙資源管理模擬器,可實現機艙資源管理模擬器在局域網中聯機協作訓練的功能。不同輪機員可操作各自的客戶端程序在同一個場景中進行操作,相互之間可看到對方的動作,共同完成機艙資源管理培訓項目所要求的協同操作任務,提高訓練效果。

在程序設計過程中,客戶端與服務器采用C/S 結構。服務器相對獨立,可支持多個客戶端同時訪問。服務器與客戶端之間通過IP連接,通過遠程過程調用傳遞數據,由此實現所有客戶端都能看到原客戶端的動作和交互操作等功能。[10]

4 機艙資源管理模擬器的技術實現

開發機艙資源管理模擬器主要用到Unity3D引擎,包括系統地形,系統物體,系統場景設計,以及碰撞、運動、鏡頭切換等腳本代碼的編寫和實現等。

4.1機艙資源管理模擬器平臺界面

Unity用戶界面(Graphical User Interface,GUI)控制利用的是OnGUI()函數,其特點是在控制腳本激活的狀態下,允許在每幀調用。Unity3D引擎中提供了界面開發系統和相應的多種插件,在模擬器開發過程中,通過簡單代碼在Unity3D界面中搭建機艙資源管理模擬器的 GUI 界面,開發流程與其他GUI軟件的開發流程類似。

4.2機艙資源管理模擬器訓練場景開發

機艙資源管理模擬器訓練場景的開發等同于游戲場景的創建。訓練場景主要由機艙的房間布局以及機艙中的各種設備、管路和閥件等組成。根據機艙房間和設備尺寸的具體數據,訓練場景可在3dsMax中構建。在構建模型的過程中,需注意多邊形模型的優化問題。由于虛擬現實的機艙設備較多,因此數據量較大,對模型進行充分優化可縮減網絡文件的大小,有利于后期交互的實現。此外,在貼圖時要注意選取母型船實船圖片,貼圖的命名應使用英文。該模擬器中部分場景設計見圖4~圖6。

圖4 主機艙場景設計

圖5 空壓機間場景設計

圖6 應急發電機間場景設計

4.3遠程可交互技術的設計與實現

機艙資源管理模擬器中的遠程可交互主要指在局域網內通過多臺計算機及其輸入輸出設備,實現人與計算機對話,包括交互界面設計和漫游設計等。在進入系統后,界面的左上方會呈現出多種供選擇的漫游模式,包括手動導航、自動導航和小地圖導航(見圖7)等。點擊自動導航按鈕,系統將按照程序規劃路線運行,并在左上角的小地圖中實時展現;點擊手動導航按鈕,用戶可通過鍵盤方向鍵和鼠標進行視角的改變,并可通過點擊小地圖迅速切換到相應場景中。在程序的設計過程中加入了碰撞檢測算法,使得輪機員不會穿過墻體和設備等障礙物,保證了虛擬現實環境的真實性。該模擬器設置了與二維VLCC模擬器通信的接口,以便后期與硬件盤臺對接。部分程序代碼如下。

圖7 小地圖導航

1) 小地圖代碼

function OnGUI () {

bX=center Object.transform. position.x * mapScale;

bY= center Object.transform. position.z * mapScale;

bX= center Object.transform. position.x * mapScale;

bY= center Object.transform. position.z * mapScale;

GUI.Draw

Texture(Rect(mapCenter.x-128,mapCenter.y-128, 256, 256), radarBG);….}

2) 自動導航代碼

function Update(){

if(get camera.camera1.enabled==true){//center object select center Object=Game Object.Find("AutoCamera");}

change=Time.realtimeSinceStartup;}

根據設定坐標, 到應急配電板第一屏:

if(transform.position.x>(transform.position.z-2035)*-1.3&&(-224-transform.position.x)>(transform.position.z-2035)*-0.89){GUI.Label(Rect(Screen.width*(1f/2f-90f/screenw), Screen.height*30f/screenh,Screen.width*600f/screenw, Screen.height*150f/860f), "應急配電板第一屏");}

3) 圖形界面交互代碼

var guiSkin:GUISkin;

private var currStyle:int=1;

function OnGUI(){

GUl.skin=guiSkin;

var hw:int=Screen.width/3;

GUI.Box(Rect(0,Screen.height-210,Screen.width,210),"");

GUI.BeginGroup(Rect(0,Screen.height-210,Screen.width,210);

……}

在設計遠程可交互程序時,每完成一種功能或一個模塊,隨即進行功能測試,以保證所編寫代碼的正確率,盡力減少Bug。在程序編寫任務完成后,進行系統整體測試。

5 結束語

通過闡述基于Unity3D 的可遠程交互式機艙資源管理模擬器,將虛擬現實技術引入到機艙資源管理模擬器的研究與開發中,實現了機艙資源管理模擬器所要求的團隊協作配合訓練、通信與溝通訓練以及應急處理等,可更好地滿足海事局對機艙資源管理評估的要求,尤其是在遠程培訓方面,將給在職船員提供極大的方便。開發完成后的機艙資源管理模擬器將填補國內外機艙資源管理模擬器研制領域的空白。

[1] 曾鴻,張均東,何治斌,等. 船舶輪機模擬器CAVE 系統設計與關鍵技術研究[J]. 系統仿真學報, 2012, 24(1): 123-126.

[2] 王海燕,劉曉晨,武曉英. 一種分布式船舶輪機模擬器[J]. 系統仿真學報, 2011, 23(4): 687-690.

[3] 孫俊,陳輝. 輪機模擬器主機工作過程建模與實時仿真[J].計算機仿真, 2007, 26(11): 316-319.

[4] 王永堅,楊國豪. 基于Web3D虛擬輪機模擬器操作訓練系統的建構[J]. 集美大學學報:自然科學版, 2009, 14(2): 165-169.

[5] YOUNG C. The STCW Convention[Z]. 1995.

[6] 吳志達.一個基于Unity3D游戲引擎的體感游戲研究與實現[D]. 廣州:中山大學,2012.

[7] 蔣德志,趙曉玲.基于輪機模擬器的“機艙資源管理”研究與實踐[J].中國航海,2011,34(1):22-25.

[8] ZHU Hongming, WU Dianliang, FAN Xiumin. Interactive Assembly Tool Planning Based on Assembly Semantics in Virtual Environment[J]. International Journal of Advanced Manufacturing Technology,2010,51(5-8):739-755.

[9] HU Feng. On the Factors Influencing the Work Efficiency of the Global Virtual Team and Possible Solutions [J]. Journal of Yunnan Nationalities University, 2005,22(6): 105-108.

[10] CWILEWICZ R, TOMCZAK L.Improvement of Ship Operational Safety as a Result of the Application of Virtual Reality Engine Room Simulators[C]. 6th International Conference on Computer Simulation Risk Analysis and Hazard Mitigation, 2008.

DevelopmentofEngineRoomResourceManagementSimulatorBasedonUnity3D

JIANGDezhi1,YAOWenlong1,2,ZHANGJundong2
(1. Marine Engineering Department, Qingdao Ocean Shipping Mariners College, Qingdao 266071, China; 2. Marine Engineering College, Dalian Maritime University, Dalian 116026, China)

The Unity3D platform is used to improve the display reality and the interaction function of the engine room resource management training system. The general design scheme of the engine room resource management simulator with virtual reality based on the 3dsMax/Unity3D are proposed. The program development process with Unity3D is introduced with the key technologies highlighted. The 3D models of the engine room equipment of the Very Large Crude Carrier(VLCC) are constructed with 3dsMax. The dynamic interaction of virtual scene are developed by using Unity3D kit and Java3D to realize the integration of the 3D marine model data and 2D spatial data, collision detection and 3D marine engine room virtual wandering. The test with real marine data shows that the developed simulator system can well meet the requirements of engine room resource management training with higher efficiency.

ship engineering; engine room resource management; simulator; Unity3D; virtual reality; interaction design

2015-04-18

國家自然科學基金(61374102);中遠集團科技計劃項目(2012-1-H-004);山東省高等學??萍加媱濏椖?J13LN72)

蔣德志(1969—),男,山東濰坊人,教授,碩士,主要從事輪機模擬器、機艙資源管理教學研究以及模擬器的研究開發。

E-mail: jiangdzh@coscoqmc.com.cn

1000-4653(2015)03-0013-05

U666.158;U676.4

A

猜你喜歡
輪機機艙模擬器
船舶機艙火災的原因分析及預防
駕駛模擬器轉向系統的設計與研究
了不起的安檢模擬器
船舶機艙通風相關要求及常見關閉裝置分析
盲盒模擬器
劃船模擬器
船舶機艙常見消防隱患及防控
通過斗輪機位置數據共享實現兩機防撞
適合多種顯示設備的輪機模擬器GUI縮放技術
船舶輪機常見的故障
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合