尚麗娜 張國(guó)旺 張芹芹
中國(guó)飛行試驗(yàn)研究院
虛擬現(xiàn)實(shí)監(jiān)控軟件的設(shè)計(jì)
尚麗娜 張國(guó)旺 張芹芹
中國(guó)飛行試驗(yàn)研究院
利用虛擬現(xiàn)實(shí)技術(shù),以三維立體圖形方式形象地顯示飛機(jī)的三維姿態(tài)及內(nèi)部測(cè)試設(shè)備的健康狀態(tài)和內(nèi)部座艙狀態(tài),提高了實(shí)時(shí)監(jiān)控系統(tǒng)的可視性。目前,該軟件已在型號(hào)試飛中得到驗(yàn)證,實(shí)踐證明軟件運(yùn)行穩(wěn)定,視景界面逼真,能夠準(zhǔn)確、實(shí)時(shí)地輸出飛行參數(shù),系統(tǒng)操縱性、通用性和可擴(kuò)展性良好。
由于某大型運(yùn)輸機(jī)將要承擔(dān)著運(yùn)輸重要戰(zhàn)略物資和人員的任務(wù),因此針對(duì)飛機(jī)安全性的驗(yàn)證試飛尤其重要,飛行試驗(yàn)安全監(jiān)控也必不可少。對(duì)于大型運(yùn)輸機(jī)要進(jìn)行測(cè)試驗(yàn)證的參數(shù)有10000個(gè)左右,怎樣讓這些參數(shù)更好地服務(wù)于試飛,如何以形象、生動(dòng)、直觀(guān)的形式將試飛數(shù)據(jù)呈現(xiàn)在實(shí)時(shí)監(jiān)控人員的眼前,讓監(jiān)控人員在緊張的工作環(huán)境中,通過(guò)虛擬現(xiàn)實(shí)技術(shù)開(kāi)發(fā)的實(shí)時(shí)監(jiān)控畫(huà)面給以視覺(jué)和感官上形成巨大的沖擊,能夠吸引監(jiān)控人員將更多的目光和注意力集中到實(shí)時(shí)監(jiān)控畫(huà)面上。因此,在飛行試驗(yàn)中開(kāi)展虛擬現(xiàn)實(shí)技術(shù)的實(shí)時(shí)監(jiān)控的研究是必須的。
目前機(jī)載測(cè)試設(shè)備健康狀態(tài)實(shí)時(shí)監(jiān)控處于空白,所以開(kāi)展這方面的工作很有必要。測(cè)試設(shè)備在飛行過(guò)程中,如果出現(xiàn)故障能夠及時(shí)發(fā)現(xiàn),在飛機(jī)落地前就可以著手進(jìn)行排故工具、技術(shù)力量和相關(guān)備件的調(diào)度和準(zhǔn)備,能夠大大縮短故障定位和排除時(shí)間,對(duì)提高大型飛機(jī)的試飛效率提供重要技術(shù)保障。
虛擬座艙實(shí)時(shí)監(jiān)控技術(shù)在某型機(jī)飛行試驗(yàn)中起到至關(guān)重要的作用,目前使用的實(shí)時(shí)監(jiān)控畫(huà)面主要是簡(jiǎn)單的單參數(shù)驅(qū)動(dòng)的平面圖形,與座艙中的真實(shí)儀表差別很大,不能形象生動(dòng)、直觀(guān)的顯示真實(shí)的座艙布局,不能完整、精細(xì)的表現(xiàn)座艙中所有顯示屏中測(cè)試參數(shù)的變化情況,采用虛擬現(xiàn)實(shí)技術(shù),開(kāi)發(fā)多種適合于大型飛機(jī)飛行試驗(yàn)的虛擬座艙監(jiān)控畫(huà)面,給指揮員“沉浸”于等同真實(shí)駕駛艙的感受和體驗(yàn)。
虛擬現(xiàn)實(shí)( Virtual Reality,簡(jiǎn)稱(chēng)VR) 是近年來(lái)出現(xiàn)的高新技術(shù),又稱(chēng)虛擬仿真。虛擬現(xiàn)實(shí)是利用電腦模擬產(chǎn)生一個(gè)3 維空間的虛擬世界,提供使用者關(guān)于視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)等感官的模擬,讓使用者如同身臨其境一般,不僅可以及時(shí)、沒(méi)有限制地觀(guān)察三度空間內(nèi)的事物,還可以通過(guò)對(duì)目標(biāo)進(jìn)行操縱,使用戶(hù)產(chǎn)生一種身臨其境的感覺(jué)。
為了達(dá)到虛擬現(xiàn)實(shí)的實(shí)際效果,滿(mǎn)足軟件的功能使用要求,系統(tǒng)設(shè)計(jì)時(shí)要考慮軟件升級(jí)、擴(kuò)展的需求,因此,虛擬現(xiàn)實(shí)監(jiān)控軟件采用模塊化設(shè)計(jì)思想,將各個(gè)功能模塊獨(dú)立起來(lái),并實(shí)現(xiàn)有機(jī)地結(jié)合,利于各功能模塊的復(fù)用、擴(kuò)展與維護(hù)。
總體結(jié)構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)總體的要求,根據(jù)功能性的劃分,把系統(tǒng)分為基礎(chǔ)層和應(yīng)用層,基礎(chǔ)層包括任務(wù)管理,應(yīng)用層包括可視化監(jiān)控軟件包(包括任務(wù)編輯軟件、二三維可視化監(jiān)控軟件、機(jī)載測(cè)試系統(tǒng)監(jiān)控軟件、虛擬座艙監(jiān)控軟件和數(shù)據(jù)記錄回放軟件)。
系統(tǒng)總體結(jié)構(gòu)示意圖如圖1所示。
接口設(shè)計(jì)與軟件流程圖
虛擬現(xiàn)實(shí)監(jiān)控軟件的輸入接口主要有任務(wù)編輯、任務(wù)管理、數(shù)據(jù)記錄等部分模塊。
虛擬現(xiàn)實(shí)監(jiān)控軟件的輸出接口主要有二三維可視化監(jiān)控軟件、記載測(cè)試設(shè)備狀態(tài)監(jiān)控模塊、虛擬座艙監(jiān)控模塊等。
任務(wù)管理是整個(gè)系統(tǒng)的任務(wù)信息數(shù)據(jù)管理中心,主要實(shí)現(xiàn)任務(wù)的保存功能,各個(gè)應(yīng)用模塊根據(jù)使用任務(wù)配置信息方式,通過(guò)相同的接口方式實(shí)現(xiàn)任務(wù)配置信息的上傳和下載。
任務(wù)編輯軟件是用于配置任務(wù)相關(guān)的信息的程序,主要包括任務(wù)文件的保存和讀取、二三維顯示的任務(wù)信息設(shè)置、任務(wù)的上傳和下載。
二三維可視化監(jiān)控軟件是用于飛機(jī)起飛、降落和空中飛行等關(guān)鍵試飛科目試驗(yàn)任務(wù)保障程序。包括運(yùn)行管理模塊、數(shù)據(jù)接收處理模塊、三維模擬顯示模塊、二維電子地圖顯示、安全監(jiān)控模塊。軟件可以通過(guò)配置進(jìn)行三維和二維的同屏顯示或者拆分獨(dú)立顯示。
數(shù)據(jù)記錄軟件采用系統(tǒng)服務(wù)程序的方式運(yùn)行,提供數(shù)據(jù)記錄操作。
根據(jù)以上描述,實(shí)時(shí)監(jiān)控軟件的總體數(shù)據(jù)流向圖如圖2所示。
圖1 監(jiān)控顯示軟件結(jié)構(gòu)示意圖
虛擬現(xiàn)實(shí)監(jiān)控軟件整個(gè)處理功能模塊整體性強(qiáng)、功能明確、運(yùn)行效率較高。根據(jù)軟件功能要求,軟件流程為系統(tǒng)初始化設(shè)置、模型加載、啟動(dòng)定時(shí)器、數(shù)據(jù)解算、畫(huà)面輸出等。其軟件流程如圖3所示。
圖2 軟件數(shù)據(jù)流向示意圖
圖3 軟件流程圖
主要模塊設(shè)計(jì)
虛擬現(xiàn)實(shí)實(shí)時(shí)監(jiān)控軟件的主要模塊是測(cè)試設(shè)備健康狀態(tài)監(jiān)控軟件和虛擬座艙監(jiān)控軟件兩部分,下面具體就這兩部分的軟件設(shè)計(jì)進(jìn)行介紹。
測(cè)試設(shè)備健康狀態(tài)監(jiān)控軟件
機(jī)載測(cè)試系統(tǒng)要表現(xiàn)整個(gè)飛機(jī)內(nèi)部的機(jī)載測(cè)試設(shè)備的工作狀態(tài)、各個(gè)設(shè)備的連接關(guān)系、通訊關(guān)系和板卡的數(shù)據(jù)信息。同時(shí)整個(gè)配置流程對(duì)靈活性要求比較高,要求能夠使用工具進(jìn)行飛機(jī)和設(shè)備的控制。目前為止從來(lái)沒(méi)有嘗試過(guò)的新思路,但對(duì)測(cè)試設(shè)備的狀態(tài)、試飛任務(wù)的執(zhí)行起著至關(guān)重要的作用,大大提高測(cè)試設(shè)備工作、排故效率。
(1)采用單獨(dú)的配置環(huán)境
針對(duì)需求的可變性要求,設(shè)計(jì)了單獨(dú)的設(shè)備配置管理工具,通過(guò)管理工具,用戶(hù)能夠根據(jù)實(shí)際工程的需要,對(duì)各個(gè)設(shè)備進(jìn)行位置的擺放、參數(shù)的連接、連接關(guān)系的定義,采用了所見(jiàn)即所得的可視化設(shè)計(jì)方法,讓用戶(hù)能夠比較輕松的配置完成設(shè)備信息,完成監(jiān)控任務(wù)的前期資源的準(zhǔn)備。
(2)編譯器優(yōu)化
在系統(tǒng)設(shè)計(jì)時(shí),要能夠編輯選中設(shè)備和移動(dòng)位置,容易進(jìn)行設(shè)備控制,能夠比較方便的進(jìn)行編輯。編輯器需要使用外部的配置文件,以便進(jìn)行參數(shù)連接,明確的分工處理,簡(jiǎn)化了操作的復(fù)雜性。
虛擬座艙監(jiān)控軟件
虛擬座艙仿真模塊調(diào)用三維場(chǎng)景、二維儀表模型和相應(yīng)的字符/符號(hào)與圖形,生成并驅(qū)動(dòng)三維場(chǎng)景和二維虛擬儀表畫(huà)面,并在顯示器上輸出。監(jiān)控人員對(duì)所看到的信息進(jìn)行反饋,從而構(gòu)成人在監(jiān)控回路中的實(shí)時(shí)監(jiān)控。
座艙虛擬顯示技術(shù)就是在實(shí)時(shí)監(jiān)控系統(tǒng)中建立一個(gè)虛擬的座艙顯示軟件,通過(guò)測(cè)試數(shù)據(jù)對(duì)虛擬座艙中的屏顯進(jìn)行驅(qū)動(dòng),還原飛機(jī)的真實(shí)座艙顯示情況,可以把所有儀表和部分重要數(shù)據(jù)集中到幾個(gè)監(jiān)控畫(huà)面上,場(chǎng)景實(shí)時(shí)驅(qū)動(dòng)模塊使用OpenGL來(lái)進(jìn)行座艙、儀表模型的顯示和驅(qū)動(dòng),使用雙緩存技術(shù)進(jìn)行畫(huà)面的顯示,避免了畫(huà)面閃爍。其中幾何頂點(diǎn)數(shù)據(jù)包括模型的頂點(diǎn)集、線(xiàn)集、多邊形集,這些數(shù)據(jù)經(jīng)過(guò)流程圖的上部,包括運(yùn)算器、逐個(gè)頂點(diǎn)操作等;圖像數(shù)據(jù)包括像素集、影像集、位圖集等,圖像像素?cái)?shù)據(jù)的處理方式與幾何頂點(diǎn)數(shù)據(jù)的處理方式是不同的,但它們都經(jīng)過(guò)光柵化、逐個(gè)片元處理直至把最后的光柵數(shù)據(jù)寫(xiě)入幀緩沖器。在OpenGL中的所有數(shù)據(jù)包括幾何頂點(diǎn)數(shù)據(jù)和像素?cái)?shù)據(jù)都可以被存儲(chǔ)在顯示列表中或者立即可以得到處理。
OpenGL要求把所有的幾何圖形單元都用頂點(diǎn)來(lái)描述,這樣運(yùn)算器和逐個(gè)頂點(diǎn)計(jì)算操作都可以針對(duì)每個(gè)頂點(diǎn)進(jìn)行計(jì)算和操作,然后進(jìn)行光柵化形成圖形碎片;對(duì)于像素?cái)?shù)據(jù),像素操作結(jié)果被存儲(chǔ)在紋理組裝用的內(nèi)存中,再像幾何頂點(diǎn)操作一樣光柵化形成圖形片元。
整個(gè)流程操作的最后,圖形片元都要進(jìn)行一系列的逐個(gè)片元操作,這樣最后的像素值送入幀緩沖器實(shí)現(xiàn)圖形的顯示。OpenGL基本工作流程圖如圖4所示。
界面設(shè)計(jì)
根據(jù)軟件各功能模塊,遵循面向用戶(hù)的軟件界面設(shè)計(jì)風(fēng)格,從軟件易操作性出發(fā),進(jìn)行了整體布局設(shè)計(jì)。虛擬現(xiàn)實(shí)實(shí)時(shí)監(jiān)控軟件的主界面如下圖5,6所示。
數(shù)據(jù)平滑技術(shù)與局部驅(qū)動(dòng)技術(shù)
虛擬化實(shí)時(shí)監(jiān)控技術(shù)研究中,首次研究處理高效而穩(wěn)定的數(shù)據(jù)平滑算法,首次實(shí)現(xiàn)了三維模型局部驅(qū)動(dòng)技術(shù)在試飛實(shí)時(shí)監(jiān)控畫(huà)面中的應(yīng)用。
三維實(shí)體建模技術(shù),不僅描述了實(shí)體全部的幾何信息,而且定義了所有的點(diǎn)、面、體的拓?fù)湫畔?,可?duì)實(shí)體信息進(jìn)行全面完整的描述,能夠?qū)崿F(xiàn)消隱、剖切、有限元分析、數(shù)控加工、外形計(jì)算等各種處理和操作。模型建好之后主要使用真實(shí)的試飛數(shù)據(jù)驅(qū)動(dòng)它,能夠逼真地展現(xiàn)飛機(jī)空中姿態(tài),如機(jī)翼變形的動(dòng)態(tài)顯示、起落架動(dòng)態(tài)監(jiān)視等。
如果使用機(jī)載記錄數(shù)據(jù)進(jìn)行回放,飛機(jī)姿態(tài)會(huì)非常平穩(wěn),局部活動(dòng)部件的動(dòng)作也非常流暢,但是遙測(cè)數(shù)據(jù)往往因?yàn)閺?fù)雜的電磁環(huán)境、飛行動(dòng)作對(duì)天線(xiàn)的影響、飛行距離、高度、地理環(huán)境等因素的影響,遙測(cè)信號(hào)會(huì)受到頻繁干擾,當(dāng)遙測(cè)數(shù)據(jù)中跳點(diǎn)出現(xiàn)時(shí),軟件要能判斷出是跳點(diǎn)還是出現(xiàn)了異常的真實(shí)數(shù)據(jù),因?yàn)樵斐尚盘?hào)干擾的原因很多,所以判斷起來(lái)非常困難。
圖4 OpenGL基本工作流程圖
圖5 機(jī)載測(cè)試設(shè)備狀態(tài)實(shí)時(shí)監(jiān)控界面
圖6 虛擬座艙軟件主界面
因此三維模型建好之后,還必須根據(jù)飛機(jī)各部位的動(dòng)作特點(diǎn)和規(guī)律進(jìn)行數(shù)學(xué)建模,采用微分方程、代數(shù)方程、邏輯關(guān)系式等表達(dá)形式來(lái)抽象出其運(yùn)動(dòng)規(guī)律,還要考慮到信號(hào)受到干擾時(shí)的要進(jìn)行嚴(yán)密的平滑處理,平滑處理算法是非常復(fù)雜,因?yàn)楫惓G闆r的種類(lèi)非常多,相關(guān)因素復(fù)雜。針對(duì)以上的這些特點(diǎn),可以對(duì)飛機(jī)的各重要部位進(jìn)行單獨(dú)的三維實(shí)體信息描述,配合數(shù)學(xué)模型和實(shí)時(shí)飛行數(shù)據(jù)的驅(qū)動(dòng),從而真實(shí)展現(xiàn)其飛行姿態(tài),包括起落架收放信息。
在設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中為了達(dá)到理想效果,對(duì)部分參數(shù)數(shù)據(jù)在三維模型上的體現(xiàn)進(jìn)行了適當(dāng)?shù)男薷模驗(yàn)椴糠植考臄?shù)值很小在模型上即時(shí)變化了不仔細(xì)看也發(fā)現(xiàn)不了,因此將顯示幅度相應(yīng)放大,但界面上增加了數(shù)據(jù)顯示功能,指揮員和試飛工程師看動(dòng)作的同時(shí)能看到實(shí)際參數(shù)數(shù)值,不會(huì)因?yàn)閯?dòng)作幅度的微小放大而對(duì)他們?cè)斐慑e(cuò)覺(jué),而且提高了三維模型可動(dòng)部件的易于發(fā)現(xiàn)期變化的監(jiān)控效果。
數(shù)據(jù)接入技術(shù)
系統(tǒng)開(kāi)始的數(shù)據(jù)接入方式是針對(duì)已有的幾套系統(tǒng)的進(jìn)行設(shè)計(jì)的,在系統(tǒng)開(kāi)發(fā)過(guò)程中,需要接入單獨(dú)的結(jié)構(gòu)數(shù)據(jù)包的數(shù)據(jù),與已有的系統(tǒng)存在較大的分歧,因此設(shè)計(jì)者通過(guò)分析,以最小的程序改動(dòng)量的方式進(jìn)行處理,在保證系統(tǒng)穩(wěn)定性的基礎(chǔ)上,完成了新的數(shù)據(jù)接入,從而保證了系統(tǒng)軟件的正確實(shí)施,有效的解決外來(lái)數(shù)據(jù)不一致的問(wèn)題。
增加系統(tǒng)引入模塊之后的虛擬現(xiàn)實(shí)實(shí)時(shí)監(jiān)控軟件,首先由用戶(hù)來(lái)判斷當(dāng)前選擇使用的是哪種實(shí)時(shí)監(jiān)控系統(tǒng),如果用戶(hù)選擇Magali實(shí)時(shí)監(jiān)控系統(tǒng),則調(diào)用通信協(xié)議參數(shù)初始化函數(shù),對(duì)通信協(xié)議相關(guān)參數(shù)如:服務(wù)器IP、通信協(xié)議類(lèi)型、端口號(hào)等信息;如果用戶(hù)選擇的是開(kāi)放式遙測(cè)數(shù)據(jù)處理系統(tǒng),則進(jìn)入創(chuàng)建TCP套接字,使用TCP協(xié)議將監(jiān)控軟件所需參數(shù)名數(shù)組發(fā)送給視圖驅(qū)動(dòng)接口;將需要監(jiān)控的參數(shù)名組包后,發(fā)送給通信函數(shù),通信函數(shù)從服務(wù)器接收到的所測(cè)試參數(shù)數(shù)組中挑出所需監(jiān)控參數(shù),按照監(jiān)控軟件所需參數(shù)名順序,將服務(wù)器發(fā)送的數(shù)據(jù)進(jìn)行重新挑選后放到客戶(hù)端數(shù)據(jù)緩存中,通過(guò)接口控制函數(shù)將重新組包后的參數(shù),用UDP協(xié)議發(fā)送給實(shí)時(shí)監(jiān)控軟件。
不同于以往的飛機(jī)實(shí)時(shí)監(jiān)控軟件的設(shè)計(jì),虛擬現(xiàn)實(shí)實(shí)時(shí)監(jiān)控系統(tǒng)具有以下的特點(diǎn)。
(1)采用了鏤空方式表現(xiàn)飛機(jī)內(nèi)部測(cè)試系統(tǒng)
編寫(xiě)了針對(duì)系統(tǒng)的靈活可配置的圖形編輯界面,對(duì)系統(tǒng)的實(shí)現(xiàn),提供了有效的可視化編輯工具。采用分步加載的方式,提高的畫(huà)面的連續(xù)顯示,讓顯示的板卡信息正確顯示。
(2)高度靈活的試驗(yàn)任務(wù)管理框架
編寫(xiě)了針對(duì)性比較強(qiáng)的獨(dú)立任務(wù)配置程序,以可配置方式實(shí)現(xiàn)參試裝備數(shù)據(jù)的編輯功能。試驗(yàn)?zāi)繕?biāo)的可配置,使新增目標(biāo)能夠方便的導(dǎo)入到系統(tǒng)中使用。
(3)預(yù)定航跡的規(guī)劃
提供外部設(shè)置接口,讓用戶(hù)根據(jù)實(shí)際情況設(shè)置航跡。在航跡的關(guān)鍵點(diǎn)位置,能夠顯示出相關(guān)的關(guān)鍵數(shù)據(jù)信息,同時(shí)能夠根據(jù)設(shè)置,播放出提示聲音。
(4)分層多級(jí)顯示場(chǎng)景
實(shí)現(xiàn)了快速加載三維場(chǎng)景,采用優(yōu)化算法,保證地景的連續(xù)性,大幅運(yùn)動(dòng)的情況下沒(méi)有撕裂現(xiàn)象出現(xiàn)。采用分級(jí)網(wǎng)格技術(shù),實(shí)現(xiàn)了多分辨率的地景圖片的融合。
虛擬現(xiàn)實(shí)實(shí)時(shí)監(jiān)控系統(tǒng)能夠形象直觀(guān)地反映飛機(jī)真實(shí)飛行狀況,軟件達(dá)到了形象、生動(dòng)、逼真的理想效果,在某大型運(yùn)輸機(jī)中已經(jīng)得到應(yīng)用,效果顯著,反應(yīng)良好。由于系統(tǒng)采取模塊化設(shè)計(jì),進(jìn)行模型庫(kù)升級(jí)之后,可以應(yīng)用于大客飛機(jī)試飛數(shù)據(jù)遙測(cè)監(jiān)控任務(wù)中,對(duì)以后更多的大型飛機(jī)測(cè)試系統(tǒng)健康狀態(tài)監(jiān)控和虛擬座艙監(jiān)控打下堅(jiān)實(shí)的技術(shù)基礎(chǔ)。
10.3969/j.issn.1001-8972.2015.06.033