国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

深海集礦機(jī)行走的視景仿真系統(tǒng)設(shè)計與實現(xiàn)①

2020-03-25 01:46張貴萍
礦冶工程 2020年1期
關(guān)鍵詞:視景線程深海

胡 瓊,張貴萍,呂 彤

(中南大學(xué) 機(jī)電工程學(xué)院,湖南 長沙410083)

隨著世界經(jīng)濟(jì)飛速發(fā)展,資源緊缺的問題日益明顯,探索深海及其蘊(yùn)育著的豐富資源是當(dāng)下的發(fā)展方向之一[1-3]。關(guān)于勘探和開采海洋礦產(chǎn)資源,世界各國的研究和探索都在不斷深入和推進(jìn)。由于深海作業(yè)環(huán)境為高壓、強(qiáng)擾動、無自然光的惡劣環(huán)境[4],兼之因海底集礦機(jī)行走而攪起的稀軟底質(zhì)使得集礦機(jī)周圍環(huán)境渾濁難以觀察。為了更便捷、直觀地監(jiān)測海底集礦機(jī)的作業(yè)狀況,本文基于Visual C ++和視景仿真工具Vega Prime 對深海采礦系統(tǒng)進(jìn)行可視化仿真。

1 深海采礦視景仿真系統(tǒng)功能要求

常見的深海采礦系統(tǒng)主要包括集礦機(jī)、輸送軟管、中間艙、揚(yáng)礦硬管和采礦船5 個部分[5],如圖l 所示。深海集礦機(jī)在稀軟底質(zhì)上按照特定的軌跡行走,并從海底沉積物中采集金屬礦物結(jié)核,處理后將其通過輸送軟管輸送到中間艙,然后通過提升泵將結(jié)核經(jīng)由揚(yáng)礦硬管輸送至海面采礦船,完成深海礦物開采工作。

圖1 深海采礦系統(tǒng)示意

試驗時,采礦船將深海采礦系統(tǒng)的設(shè)備運載至試驗區(qū),然后將采礦設(shè)備沉入海底并開始作業(yè)[6]。由于集礦機(jī)作業(yè)時周圍黑暗渾濁,難以直接觀察其行走的位置和狀態(tài)。因此,如果能對深海集礦機(jī)的行走過程進(jìn)行可視化仿真,實時監(jiān)測集礦機(jī)的行走位置,就可以確保出現(xiàn)意外狀況時能及時采取相應(yīng)的措施,保障采礦作業(yè)順利完成。本文針對集礦機(jī)行走過程中不能直接觀察這一問題,采用Visual C++2008 和Vega Prime來實現(xiàn)集礦機(jī)行走過程的可視化仿真。

要實現(xiàn)集礦機(jī)行走過程的可視化,需要做到如下幾個方面:

1)用Creator 構(gòu)建虛擬場景。包括地形生成、采礦系統(tǒng)模型創(chuàng)建以及水下環(huán)境的渲染。

2)在Vega Prime 中驅(qū)動虛擬場景。通過LynX 圖形界面配置相關(guān)參數(shù),加載三維模型實現(xiàn)整個虛擬場景的渲染及顯示。

3)通過基于MFC 框架的Vega Prime 程序?qū)崟r顯示集礦機(jī)的位置。在程序運行時,固定加載含有實時數(shù)據(jù)的文件,傳至驅(qū)動控制模塊實時顯示集礦機(jī)模型的運動路徑。

4)集礦機(jī)行走軌跡繪制。在Vega Prime 主線程開啟后,同時開啟了DRAW 線程,在該線程中,使用OpenGL 繪制集礦機(jī)的運動路線圖。

2 三維虛擬場景的構(gòu)建

本文所構(gòu)建的虛擬場景主要基于海底,將不可見的深海環(huán)境以及在其中工作的采礦系統(tǒng)顯示在用戶界面。構(gòu)建虛擬場景可分為以下3 個部分:①真實地形生成與顯示;②采礦系統(tǒng)的三維實體建模;③水下自然環(huán)境的模擬。

2.1 海底地形生成

地形生成[7]是視景仿真系統(tǒng)開發(fā)中基礎(chǔ)但卻必不可少的一步。三維地形建模包含高程信息的數(shù)據(jù)文件與真實的地形照片,對前者進(jìn)行網(wǎng)格化處理和內(nèi)插計算,生成虛擬三維地形;對后者進(jìn)行計算機(jī)圖像處理,然后作為地貌紋理貼在虛擬三維地形曲面上,使得生成的模擬地形具有逼真性。對于大規(guī)模地形的模擬,常采用LOD(Level of Details)技術(shù),根據(jù)視點和模型的距離來改變模型的細(xì)致程度。當(dāng)視點距離模型較近時,模型細(xì)節(jié)更多,相對地真實感更好;當(dāng)視點距離模型較遠(yuǎn),則簡化模型,在不影響實際效果的同時節(jié)約計算資源,提高運行效率。虛擬三維地形建模的詳細(xì)流程如圖2 所示。

圖2 地形生成流程

Terra Vista 地形建模軟件[8]在不影響三維地形逼真度的基礎(chǔ)上提高地形建模速度方面具有強(qiáng)大的優(yōu)勢。采用Terra Vista 生成地形需要獲取地形DEM(數(shù)字高程模型)數(shù)據(jù)、遙感影像數(shù)據(jù)以及文化特征數(shù)據(jù)等源數(shù)據(jù),并轉(zhuǎn)換為Terra Vista 支持的格式。其中,DEM 數(shù)據(jù)通過地形轉(zhuǎn)換算法生成三維地形的三角網(wǎng)模型,如圖3 所示。

圖3 海底地形三角網(wǎng)模型

然后獲取帶有地理位置信息的遙感影像數(shù)據(jù),映射生成較為形象的三維地形模型,如圖4 所示。

圖4 虛擬三維地形模型

2.2 采礦系統(tǒng)三維建模

使用Vega prime 軟件進(jìn)行視景仿真,首先要建立采礦系統(tǒng)的三維實體模型。作為專門應(yīng)用于實時視景仿真領(lǐng)域的三維建模軟件,Multigen Creator[9]功能強(qiáng)大、操作便捷,且能有效解決視景仿真中真實感、準(zhǔn)確性與實時性的問題。針對實時視景仿真的特殊要求,Creator 獨創(chuàng)的一種數(shù)據(jù)格式Open Flight 應(yīng)運而生,該數(shù)據(jù)格式能夠以足夠的精度和效率對三維模型進(jìn)行實時渲染,并生成所需要的實時三維數(shù)據(jù)庫[10]。

本文按照模型與實物1 ∶1的比例,將SolidWorks中建立的三維模型導(dǎo)入Creator。在模型建立中使用Creator 的節(jié)點式分層結(jié)構(gòu)對集礦機(jī)履帶貼圖,使集礦機(jī)的模型更為逼真。其中,集礦機(jī)的建模流程及添加特征紋理后的模型如圖5 和圖6 所示。

圖5 建模流程

圖6 集礦機(jī)模型

2.3 自然環(huán)境的模擬

虛擬環(huán)境中自然環(huán)境的模擬仿真包括天空、大氣、光照等等,這些可以通過LynX Prime 圖形界面進(jìn)行相應(yīng)的參數(shù)設(shè)置來滿足試驗需要的環(huán)境特征。由于本文研究的是海底環(huán)境的試驗,還需要對海洋水下環(huán)境進(jìn)行模擬仿真。海洋環(huán)境的模擬又分為海面環(huán)境和海底環(huán)境。

采用Vega Prime 的海洋模塊,調(diào)節(jié)參數(shù)生成如圖7 所示的海面環(huán)境。

圖7 海面環(huán)境的仿真效果

采礦系統(tǒng)在海底工作,需要為海底環(huán)境建模。海底環(huán)境的建模較為特殊,需要運用Vega Prime 中的特效模塊進(jìn)行設(shè)置調(diào)節(jié)環(huán)境亮度和透明度,再利用霧化功能模塊在此區(qū)域范圍內(nèi)添加適當(dāng)?shù)乃{(lán)色霧,模擬水下的渾濁,效果如圖8 所示。

圖8 海底環(huán)境的特效處理

3 Vega Prime 二次開發(fā)及視景仿真模型驅(qū)動

3.1 基于VC++的可視化程序設(shè)計

使用Vega Prime 軟件開發(fā)視景仿真項目,有多種開發(fā)模式:一是運用LynX Prime 圖形界面直接配置場景,用于開發(fā)一些小型、互動性不高的項目;二是運用Vega Prime 的API 函數(shù)開發(fā)一些較為復(fù)雜、交互性較高的項目。本文在開發(fā)過程中結(jié)合了兩種模式,先通過LynX Prime 圖形界面配置ACF(由LynX Prime界面創(chuàng)建的文件的擴(kuò)展名)文件,再以Microsoft Visual Studio 作為集成開發(fā)環(huán)境,使用C++編程,調(diào)用Vega Prime 的接口函數(shù)驅(qū)動場景,既可以減少源代碼的編寫,又可以在一些交互性較高的場景中實現(xiàn)復(fù)雜的功能[11]。

用VC 來開發(fā)Vega Prime 視景仿真系統(tǒng),常采用多線程應(yīng)用程序編程[12]。 線程可分為UI(User Interface)線程和工作線程[13],其中,UI 線程具有消息循環(huán)功能,用來響應(yīng)用戶事件。而工作線程里通常加入Vega Prime 的主線程,來負(fù)責(zé)運行Vega Prime 的整個程序流程,流程圖如圖9 所示。

圖9 Vega Prime 仿真程序流程

每個部分的功能如下:

1)初始化(initialize),主要對Vega Prime 的各個模塊進(jìn)行初始化,主要包括渲染庫、場景圖、模塊接口等。

2)定義(define),典型的VP 應(yīng)用框架通過vpApp類來定義,該類內(nèi)嵌了定義ACF 文件、配置仿真類、仿真主循環(huán)、更新以及退出程序。一般來說,用戶可以從vpApp 類來創(chuàng)建自己所需要的類。

3)配置(configure),在定義階段設(shè)置的值需要在該步驟中進(jìn)行配置,比如多線程模式、線程的優(yōu)先級等。

4)運行(run),幀循環(huán)在該函數(shù)中運行,并且持續(xù)調(diào)用begin Frame()和end Frame()函數(shù)來實現(xiàn)仿真循環(huán)。

5)更新(update),通過在仿真循環(huán)中執(zhí)行update()函數(shù),并且調(diào)用vpApp 對象來實現(xiàn)更新。

6)關(guān)閉(shut down),用于清除并退出Vega Prime系統(tǒng),調(diào)用各個模塊的關(guān)閉函數(shù)來清除申請的內(nèi)存空間,終止線程。

以上Vega Prime 的整個工作流程,對應(yīng)著Vega Prime 的最小結(jié)構(gòu)框架,配合ACF 文件配置可以實現(xiàn)在深海采礦虛擬場景中漫游。

3.2 集礦機(jī)行走的實時控制

深海采礦試驗時,集礦機(jī)在海底行走,其位置和姿態(tài)一直處于實時變化的狀態(tài)。在Vega Prime 的可視化場景中實現(xiàn)集礦機(jī)的運動,有兩種方式,一是LynX Prime 圖形界面的路徑工具Path Tool,采用這種方式定義集礦機(jī)的運動路徑,操作靈活便捷,但必須預(yù)先定義運動路徑,不能滿足深海采礦過程中獲取實時變化的集礦機(jī)位置和姿態(tài)的需求。因此本文采用第二種方式,利用Vega Prime 提供的API 函數(shù),讀取傳感器采集到的相關(guān)數(shù)據(jù),實時控制集礦機(jī)在虛擬場景中的位置和姿態(tài)。

3.3 集礦機(jī)行走的軌跡繪制

很多三維圖形應(yīng)用程序,包括本文應(yīng)用的Vega Prime 軟件的底層接口均是基于OpenGL。OpenGL 本質(zhì)上是一種三維圖形系統(tǒng)與硬件的接口。因此本文應(yīng)用OpenGL 來繪制集礦機(jī)的運動軌跡圖。

Vega Prime 中OpenGL 的繪圖實現(xiàn)是基于事件訂閱公布的機(jī)制,核心是系統(tǒng)回調(diào)函數(shù)。Vega Prime 中是采用事件觸發(fā)方式,一個事件的回調(diào)函數(shù)會在事件觸發(fā)時被自動執(zhí)行[14]。在Vega Prime 的場景實時渲染中,首先在幀循環(huán)中定義一個窗口,然后在該窗口中繪制圖像[15]。

本文在使用OpenGL 實現(xiàn)集礦機(jī)運動軌跡的實時繪制過程中,由于Vega Prime 調(diào)用OpenGL 函數(shù)都是在通道中進(jìn)行的,而通道中幀循環(huán)每幀都在重畫。所以對于集礦機(jī)行走過的所有點,需要將其存儲在一個鏈表中,每一幀都將存儲的所有點重新繪制。最后繪制的效果圖如圖10 所示。

圖10 集礦機(jī)行走軌跡

4 應(yīng)用實例

深海采礦系統(tǒng)本身復(fù)雜而龐大,對未知的海底進(jìn)行資源勘探和開采往往都充滿了不確定性,本文設(shè)計的視景仿真系統(tǒng)是海上試驗監(jiān)控系統(tǒng)的一部分,采礦時,集礦機(jī)、軟管的浮力裝置以及各個連接處放置傳感器,將傳感器采集的參數(shù)傳輸至海面工作站,再通過本文設(shè)計和實現(xiàn)的視景仿真系統(tǒng)對其進(jìn)行三維可視化處理,為深海采礦整體系統(tǒng)的工作提供科學(xué)、實時、逼真的顯示,幫助海面工作人員分析、判斷深海采礦作業(yè)系統(tǒng)的工作現(xiàn)狀以作出準(zhǔn)確的決策。

5 結(jié) 論

應(yīng)用Vega Prime 和MultiGen Creator 視景仿真軟件,建立了包括采礦系統(tǒng)、海洋環(huán)境以及地形在內(nèi)的虛擬場景?;贛FC 框架的Vega Prime 應(yīng)用程序?qū)崿F(xiàn)了對深海集礦機(jī)的行走可視化仿真,實時讀取外部的位置數(shù)據(jù)控制集礦機(jī)的行走路徑,逼真、精確地顯示了集礦機(jī)在海底的實時位置和姿態(tài)。并將OpenGL 圖形庫應(yīng)用于Vega Prime 開發(fā)平臺,在程序運行過程中實時繪制集礦機(jī)的行走軌跡圖,直觀地監(jiān)測深海集礦機(jī)的行走路徑,為采礦系統(tǒng)的水面操控提供更加科學(xué)而直觀的指導(dǎo)。

猜你喜歡
視景線程深海
實時操作系統(tǒng)mbedOS 互斥量調(diào)度機(jī)制剖析
虛擬現(xiàn)實技術(shù)在游戲設(shè)計中的應(yīng)用及研究
某炮模擬訓(xùn)練系統(tǒng)中三維視景的設(shè)計與實現(xiàn)
基于國產(chǎn)化環(huán)境的線程池模型研究與實現(xiàn)
基于預(yù)測和雙緩沖區(qū)的直升機(jī)視景仿真
隱藏在深海里的神秘生物
深海里的神秘生物
全回轉(zhuǎn)拖輪運動建模與視景仿真
計算機(jī)中的多線程問題
Java的多線程技術(shù)探討
柘城县| 思茅市| 偏关县| 珲春市| 皮山县| 德阳市| 襄汾县| 靖西县| 新巴尔虎左旗| 嘉善县| 高邑县| 景德镇市| 永年县| 衡阳市| 丰县| 常山县| 新密市| 河源市| 扶风县| 思茅市| 永昌县| 台南市| 云林县| 科尔| 开平市| 胶南市| 嘉义市| 贵溪市| 巴楚县| 涡阳县| 乌鲁木齐市| 汉中市| 崇阳县| 顺平县| 保康县| 鄂托克前旗| 新和县| 白沙| 民乐县| 绵阳市| 仁寿县|