馬 強(qiáng),安維崢,柳依何,賈紀(jì)川,顧繼俊
(1.中海油研究總院有限責(zé)任公司,北京 100028;2.中國(guó)石油大學(xué)(北京)機(jī)械與儲(chǔ)運(yùn)工程學(xué)院,北京 102249)
隨著經(jīng)濟(jì)的快速發(fā)展,油氣資源消耗量不斷增加,陸上油氣勘探開(kāi)發(fā)日趨成熟,其資源總量持續(xù)下降[1],海洋油氣資源作為滿足未來(lái)油氣需求的重要儲(chǔ)備力量,已成為當(dāng)今油氣勘探開(kāi)發(fā)的重點(diǎn)和熱點(diǎn)。水下生產(chǎn)系統(tǒng)[2]通過(guò)水下井口、采油樹(shù)、水下管匯和海底管道等生產(chǎn)設(shè)施將開(kāi)采的油氣就近輸送到平臺(tái)或浮式油輪進(jìn)行處理與外輸,可節(jié)省大量開(kāi)發(fā)成本,縮短建造周期,而且水下生產(chǎn)系統(tǒng)受災(zāi)害天氣影響較小[3-5],因此水下生產(chǎn)系統(tǒng)逐漸成為海洋油氣開(kāi)采的主要技術(shù)裝備,并得到廣泛應(yīng)用,其安裝拆除等作業(yè)過(guò)程是整個(gè)深海油氣田開(kāi)發(fā)任務(wù)中的重要環(huán)節(jié),采用虛擬現(xiàn)實(shí)仿真技術(shù)對(duì)其作業(yè)過(guò)程進(jìn)行設(shè)計(jì)與仿真實(shí)現(xiàn),對(duì)于海洋油氣田的開(kāi)發(fā)、建設(shè)、生產(chǎn)具有重要意義[6-7]。
文中將虛擬現(xiàn)實(shí)仿真技術(shù)與水下生產(chǎn)系統(tǒng)的安裝、維修、拆除工藝流程相結(jié)合,通過(guò)對(duì)水下生產(chǎn)系統(tǒng)的三維建模及可視化漫游制作,開(kāi)發(fā)了集成海上作業(yè)測(cè)試功能的虛擬仿真測(cè)試軟件,有效地解決了工作人員因水下生產(chǎn)環(huán)境惡劣而不方便觀察研究的難題,為員工培訓(xùn)、作業(yè)流程指導(dǎo)、問(wèn)題研究等方面提供了有效的幫助。
虛擬現(xiàn)實(shí)融合了計(jì)算機(jī)圖形學(xué)、人機(jī)交互技術(shù)、傳感器技術(shù)及仿真技術(shù)等多種科學(xué)技術(shù)[8],具有沉浸性、交互性、想象力[9]3 個(gè)基本特征。虛擬現(xiàn)實(shí)技術(shù)包括虛擬環(huán)境、感知和傳感設(shè)備。虛擬環(huán)境是由計(jì)算機(jī)實(shí)時(shí)動(dòng)態(tài)生成的三維逼真圖像。除了計(jì)算機(jī)產(chǎn)生的視覺(jué)感知之外,還有聽(tīng)覺(jué)、觸覺(jué)、力感知,甚至嗅覺(jué)和味覺(jué)的多重感知屬性。傳感設(shè)備是指三維交互設(shè)備,包括立體頭盔、數(shù)據(jù)手套、3D 鼠標(biāo)和用戶佩戴的其他設(shè)備,以及設(shè)置在真實(shí)環(huán)境中的傳感器設(shè)備,如照相機(jī)、地面壓力傳感器等。
虛擬現(xiàn)實(shí)技術(shù)被廣泛應(yīng)用于醫(yī)學(xué)、建筑與軍事實(shí)踐等領(lǐng)域,虛擬仿真系統(tǒng)使用虛擬現(xiàn)實(shí)技術(shù)可以模擬各種場(chǎng)景,并為用戶在視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)方面生成極其逼真的虛擬環(huán)境。Gonzalez-Badillo 等人[10]開(kāi)發(fā)了一套基于觸覺(jué)反饋的虛擬現(xiàn)實(shí)裝配系統(tǒng),用于汽車裝配培訓(xùn)。Freitag 等人[11]將虛擬現(xiàn)實(shí)用于家具行業(yè)的設(shè)計(jì)與展示過(guò)程。徐等人[12]開(kāi)發(fā)出了一套基于虛擬現(xiàn)實(shí)的起重機(jī)培訓(xùn)系統(tǒng),使起重機(jī)操作人員能夠安全地體驗(yàn)到真實(shí)的事故現(xiàn)場(chǎng)。
虛擬仿真系統(tǒng)采用Unity 3D 引擎作為開(kāi)發(fā)平臺(tái)。Unity 3D 中內(nèi)置了NVIDIA Physx[13]物理引擎,其優(yōu)秀的渲染效果,可為用戶提供逼真的沉浸體驗(yàn),且Unity 3D 同時(shí)支持Directx 與OpenGL 圖形優(yōu)化技術(shù)。Unity 3D 支持使用面向?qū)ο蟮恼Z(yǔ)言開(kāi)發(fā),大大簡(jiǎn)化了開(kāi)發(fā)流程,且其開(kāi)發(fā)的產(chǎn)品可在Windows、iOS、Mac、Android 等多平臺(tái)進(jìn)行發(fā)布。
如圖1 所示,系統(tǒng)分為5 個(gè)架構(gòu)層,分別為數(shù)據(jù)層、支撐層、模型層、功能層、交互層。各層間的邏輯關(guān)系為:支撐層提供場(chǎng)景搭建、仿真平臺(tái)運(yùn)行、程序腳本等后臺(tái)基礎(chǔ)服務(wù)功能,模型層為仿真培訓(xùn)和訓(xùn)練考核提供仿真模型調(diào)用,功能層為交互層提供系統(tǒng)功能調(diào)用,支撐層、模型層、功能層調(diào)用的基礎(chǔ)數(shù)據(jù)均從數(shù)據(jù)層進(jìn)行提取,同時(shí)將仿真過(guò)程生成的數(shù)據(jù)存入數(shù)據(jù)層以便下次調(diào)用。
圖1 總體架構(gòu)
開(kāi)發(fā)基于Unity 3D 的水下生產(chǎn)系統(tǒng)虛擬仿真測(cè)試系統(tǒng),首先需要采用3ds Max 對(duì)水下生產(chǎn)系統(tǒng)的作業(yè)場(chǎng)景與作業(yè)機(jī)具模型進(jìn)行三維建模,并進(jìn)行紋理渲染、格式轉(zhuǎn)換,將模型導(dǎo)入U(xiǎn)nity 3D 中進(jìn)行場(chǎng)景搭建,重現(xiàn)實(shí)際作業(yè)場(chǎng)景,達(dá)到真實(shí)的場(chǎng)景還原效果;采用多鏡頭技術(shù)對(duì)作業(yè)流程進(jìn)行多方位展現(xiàn);通過(guò)C#語(yǔ)言編寫(xiě)程序腳本,結(jié)合射線檢測(cè)與碰撞檢測(cè)技術(shù)實(shí)現(xiàn)仿真操縱;采用Unity 中的UGUI 進(jìn)行人機(jī)交互設(shè)計(jì),經(jīng)過(guò)對(duì)仿真流程、虛擬仿真系統(tǒng)的反復(fù)測(cè)試、優(yōu)化,最終發(fā)布生成水下生產(chǎn)系統(tǒng)虛擬仿真系統(tǒng)。
為方便對(duì)虛擬仿真系統(tǒng)的管理,需要設(shè)置用戶管理功能,通過(guò)Unity 3D 中的UGUI 進(jìn)行人機(jī)交互界面制作,并在界面上添加上相應(yīng)控件,實(shí)現(xiàn)賬號(hào)及密碼驗(yàn)證保護(hù)機(jī)制,如圖2 所示。
圖2 系統(tǒng)登錄界面
可選擇的建模技術(shù)有兩種方式,一種為采用Unity3D 自身的功能建模,另一種為通過(guò)別的建模軟件(如3ds Max、Maya 等)導(dǎo)入到Unity 中。由于場(chǎng)景所需模型數(shù)量較多且結(jié)構(gòu)復(fù)雜,因此采用3ds Max 建模后將模型生成的FBX 格式文件導(dǎo)入到Unity 3D中,搭建虛擬場(chǎng)景及作業(yè)機(jī)具模型庫(kù)。虛擬仿真系統(tǒng)需要進(jìn)行多場(chǎng)景切換,為避免因計(jì)算機(jī)性能不足導(dǎo)致在進(jìn)行場(chǎng)景漫游時(shí)無(wú)法及時(shí)完成幀處理,而影響了場(chǎng)景切換的流暢性出現(xiàn)卡頓的問(wèn)題,應(yīng)對(duì)模型中的三角形面數(shù)進(jìn)行減面處理[14]。
該系統(tǒng)由18 個(gè)子場(chǎng)景組成,用戶可通過(guò)場(chǎng)景間的鏈接來(lái)進(jìn)行場(chǎng)景切換。每個(gè)場(chǎng)景都對(duì)應(yīng)相應(yīng)的工藝過(guò)程,在當(dāng)前場(chǎng)景完成作業(yè)過(guò)程的培訓(xùn)后,點(diǎn)擊UI界面上的按鍵便可進(jìn)行場(chǎng)景的跳轉(zhuǎn),繼續(xù)進(jìn)行相應(yīng)的作業(yè)培訓(xùn)。由于系統(tǒng)環(huán)境較大,為縮短場(chǎng)景加載時(shí)的耗時(shí),采用異步加載的方法來(lái)進(jìn)行場(chǎng)景加載。場(chǎng)景的加載分為同步加載與異步加載[15],同步加載在保留原場(chǎng)景的基礎(chǔ)上加載新的場(chǎng)景,異步加載在不影響當(dāng)前場(chǎng)景的基礎(chǔ)下加載新的場(chǎng)景,新場(chǎng)景加載完成后對(duì)原場(chǎng)景進(jìn)行銷毀,釋放內(nèi)存。
碰撞檢測(cè)用于檢測(cè)虛擬場(chǎng)景中的物體是否相交以及對(duì)各種交互動(dòng)作進(jìn)行觸發(fā)。虛擬仿真系統(tǒng)中存在著物體間的接觸與碰撞,為保證虛擬場(chǎng)景的真實(shí)性,避免物體間發(fā)生穿透現(xiàn)象以及保證物體間的物理作用,因此需要采用碰撞檢測(cè)技術(shù),使系統(tǒng)對(duì)物體碰撞作出響應(yīng)。在Unity 3D 中,只需對(duì)物體添加剛體(Rigidbody)和碰撞體(Collider)組件便可實(shí)現(xiàn)相互碰撞。根據(jù)物體的形狀不同可選擇不同的Collider,Unity 3D 提供了BoxCollider、SphereCollider、WheelCollider、MeshCollider[16]等多種碰撞器,其采用了目前應(yīng)用較多的碰撞檢測(cè)算法中的層次包圍盒法。系統(tǒng)中的碰撞檢測(cè)如圖3 所示。
圖3 碰撞檢測(cè)
系統(tǒng)功能分為三大模塊,分別為仿真培訓(xùn)模塊、場(chǎng)景漫游模塊、系統(tǒng)設(shè)置模塊,下面著重介紹仿真培訓(xùn)模塊和場(chǎng)景漫游模塊。
3.1.1 仿真培訓(xùn)模塊
仿真培訓(xùn)模塊包括安裝工藝仿真、維修工藝仿真、測(cè)試工藝仿真、拆除工藝仿真四大子模塊。在各模塊的仿真培訓(xùn)中,用戶根據(jù)系統(tǒng)UI 界面的操作提示,先進(jìn)行工藝流程的理論學(xué)習(xí),學(xué)習(xí)完成后,通過(guò)系統(tǒng)中的交互操作進(jìn)行工藝仿真模擬,系統(tǒng)對(duì)用戶的操作進(jìn)行監(jiān)測(cè)并對(duì)錯(cuò)誤操作進(jìn)行提示。
安裝工藝的案例仿真包括吸力錨、跨接管、水下管匯。維修工藝仿真是對(duì)艙內(nèi)的干式采油樹(shù)小修過(guò)程(更換節(jié)流閥)進(jìn)行仿真。拆除工藝仿真是對(duì)安裝工藝中的典型案例進(jìn)行拆除操作仿真。測(cè)試工藝仿真是對(duì)安裝、維修、拆除各工藝流程中的環(huán)節(jié)進(jìn)行測(cè)試,主要包括:安裝過(guò)程中的吸力錨水平度與深度測(cè)試、跨接管的連接器鎖緊測(cè)試、采油樹(shù)的壓力測(cè)試、水下管匯的功能測(cè)試;維修過(guò)程中的節(jié)流閥更換測(cè)試;拆除過(guò)程中的跨接管連接器解鎖測(cè)試。
3.1.2 場(chǎng)景漫游模塊
場(chǎng)景漫游功能包括人物漫游與機(jī)器漫游,由于水下生產(chǎn)系統(tǒng)的海底作業(yè)環(huán)境復(fù)雜、操作風(fēng)險(xiǎn)大,因此海下作業(yè)均由ROV(水下機(jī)器人)來(lái)完成,水下機(jī)器人是能在海底行走的具有觀察能力和使用機(jī)械手或其他工具進(jìn)行水下作業(yè)的自動(dòng)化裝置[17],實(shí)際的機(jī)器人均依靠黑白或彩色攝像頭與攝像俯仰云臺(tái)進(jìn)行水下觀察。
虛擬仿真系統(tǒng)中采用水下機(jī)器人進(jìn)行場(chǎng)景漫游,將Unity3D 中的Camera 組件掛載于ROV,通過(guò)控制Camera 對(duì)象調(diào)整視角,通過(guò)多鏡頭技術(shù)實(shí)現(xiàn)全方位觀察。該系統(tǒng)的控制方式為:1)編寫(xiě)ROV 運(yùn)動(dòng)腳本,通過(guò)Translate()函數(shù)與Rotate()函數(shù)[18]實(shí)現(xiàn)ROV 的升沉、進(jìn)退與旋轉(zhuǎn)運(yùn)動(dòng);2)編寫(xiě)Camera 腳本,通過(guò)鍵盤WASD 鍵控制Camera 的前后左右移動(dòng),鼠標(biāo)控制觀察方向。
為加強(qiáng)顯示效果,采用大屏幕投影的方式將系統(tǒng)部分場(chǎng)景進(jìn)行展示,虛擬仿真測(cè)試系統(tǒng)運(yùn)行效果如圖4 所示,實(shí)現(xiàn)了海面作業(yè)環(huán)境與海底作業(yè)環(huán)境仿真,分別展示了絞車起吊吸力錨和ROV 觀測(cè)水下管匯的虛擬仿真。交互方式主要通過(guò)鍵盤實(shí)現(xiàn)絞車、ROV 的運(yùn)動(dòng)控制,鼠標(biāo)實(shí)現(xiàn)觀察視角的變換。
圖4 系統(tǒng)展示
文中使用Unity 3D 軟件開(kāi)發(fā)了水下生產(chǎn)系統(tǒng)虛擬仿真系統(tǒng),該系統(tǒng)模擬了水下生產(chǎn)系統(tǒng)中典型裝備從安裝、維修、測(cè)試到拆除的過(guò)程,有效解決了從業(yè)人員培訓(xùn)受環(huán)境限制的問(wèn)題,使用戶獲得了沉浸式、交互式體驗(yàn)。虛擬仿真系統(tǒng)實(shí)現(xiàn)了水下生產(chǎn)系統(tǒng)作業(yè)流程原理展示、仿真培訓(xùn)、場(chǎng)景漫游等功能,用戶可在虛擬環(huán)境中近距離學(xué)習(xí)裝備結(jié)構(gòu)及工作流程,在培訓(xùn)中為用戶提供一種新的學(xué)習(xí)方法。