999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OSGEARTH的國產(chǎn)航天三維仿真軟件設(shè)計①

2019-12-20 02:31:46伍輝華姚宇婕
計算機系統(tǒng)應(yīng)用 2019年12期

施 斌,王 華,伍輝華,姚宇婕,楊 洋

(中國衛(wèi)星海上測控部,江陰 214431)

引言

目前,航天領(lǐng)域的各類三維仿真軟件仍然較依賴于國外成熟商用組件(如STK[1,2]),或者依賴于X86架構(gòu)的硬件平臺,無法完全滿足“自主可控”要求.“自主可控”就是要依靠自身研發(fā)設(shè)計,全面掌握產(chǎn)品核心技術(shù),實現(xiàn)信息系統(tǒng)從硬件到軟件的自主研發(fā)、生產(chǎn)、升級、維護的全程可控.目前,國內(nèi)已經(jīng)開展了很多基于OSG或OSGEARTH的跨平臺研究和應(yīng)用,主要應(yīng)用于虛擬校園漫游、城市三維場景、空戰(zhàn)模擬場景、戰(zhàn)場態(tài)勢等方面[3-9],在航天三維仿真領(lǐng)域應(yīng)用[10-13]不多,在全國產(chǎn)化平臺(國產(chǎn)CPU板卡和國產(chǎn)操作系統(tǒng))上經(jīng)過可靠性和性能驗證的更是空白.

本文嘗試針對全國產(chǎn)化平臺進行航天三維仿真軟件的設(shè)計和實現(xiàn),以解決在全國產(chǎn)化平臺上進行三維仿真的可靠性和渲染效率問題.

1 相關(guān)概念

1.1 國產(chǎn)化

在CPU領(lǐng)域,目前較主流、成熟的國產(chǎn)化CPU是飛騰和龍芯.飛騰CPU采用ARM指令集,目前主推的是FT1500A芯片,龍芯CPU采用RISC指令集,目前主推的是龍芯3A3000芯片,主頻均達到1.5 GHz.國產(chǎn)化CPU芯片與X86芯片(主頻大多在2.8 GHz以上)相比,主頻相對落后,使用體驗上存在明顯差距,特別是在軟件編譯、圖形繪制等計算量大的任務(wù)中更為明顯.在顯卡領(lǐng)域,目前尚未推出成熟的國產(chǎn)化顯卡產(chǎn)品,暫時仍依賴國外顯卡.在操作系統(tǒng)領(lǐng)域,目前已出現(xiàn)了中標麒麟、銀河麒麟、深度Linux等多種國產(chǎn)操作系統(tǒng),已經(jīng)具備較強的替代能力,但在運行穩(wěn)定性、性能等方面存在短板.

1.2 OSG與OSGEARTH

OSG是一個開源的場景圖形管理開發(fā)庫,為圖形圖像應(yīng)用程序的開發(fā)提供場景管理和圖像渲染優(yōu)化功能[14].OSG具備跨平臺特性,可以在大部分CPU上編譯通過,可以運行于Windows、Linux等大多數(shù)操作系統(tǒng),具備線程安全性.

OSGEARTH是一個基于OSG的開源跨平臺類庫,提供了一個地理空間SDK和地形引擎,可以從數(shù)據(jù)源構(gòu)建可視化地形模型和影像,方便快速構(gòu)建基于三維數(shù)字地球的各類應(yīng)用,在各領(lǐng)域已有廣泛應(yīng)用.

2 系統(tǒng)設(shè)計

2.1 系統(tǒng)架構(gòu)

航天三維仿真軟件的系統(tǒng)架構(gòu)如圖1所示,底層是麒麟國產(chǎn)操作系統(tǒng),第二層的Qt提供基本界面功能支持,第三層的OSG提供三維仿真基礎(chǔ)框架和功能,第四層的OSGEARTH提供三維數(shù)字地球相關(guān)的應(yīng)用接口,頂層是三維仿真軟件.三維仿真軟件主要包括了場景資源初始化加載、三維場景管理、關(guān)鍵事件與視點控制、仿真動畫控制、粒子系統(tǒng)控制、數(shù)據(jù)驅(qū)動、彈道數(shù)據(jù)篩選、彈道外推、地球自轉(zhuǎn)及軌道推算、測站自動跟蹤、多屏切換、場景配置等主要功能模塊.

關(guān)鍵流程如下:軟件初始化時基于OSGEARTH加載地球影像和高程數(shù)據(jù)從而構(gòu)建三維數(shù)字地球場景,然后通過網(wǎng)絡(luò)接收彈道、關(guān)鍵事件等各類任務(wù)數(shù)據(jù),彈道數(shù)據(jù)經(jīng)過篩選、插值處理后驅(qū)動飛行器位置變化,關(guān)鍵事件數(shù)據(jù)通過事件機制觸發(fā)相應(yīng)動畫播放,各模塊協(xié)同實現(xiàn)飛行器三維仿真.

2.2 地球影像和高程數(shù)據(jù)的組織

在三維數(shù)字地球的構(gòu)建過程中,涉及到地球的影像和高程數(shù)據(jù)的組織.軟件通過OSGEARTH自動加載指定位置的影像和高程數(shù)據(jù),疊加渲染在地球表面.考慮到影像和高程數(shù)據(jù)量大,非常消耗軟硬件系統(tǒng)資源,而全國產(chǎn)化平臺的性能一般,因此必須對影像和高程數(shù)據(jù)的加載進行優(yōu)化.

圖1 軟件系統(tǒng)架構(gòu)圖

對于影像數(shù)據(jù),地圖影像數(shù)據(jù)量很大,10級全球地圖影像大約需要15 GB,而道路標注影像數(shù)據(jù)相對較小.考慮到高精度影像數(shù)據(jù)不但占用空間,在進行三維場景渲染時也非常耗費資源,影響渲染效率.因此,軟件采用分區(qū)域分層方式加載不同精度影像數(shù)據(jù),共分三層:底層采用中等精度級別(如10級)的全球地圖影像,中間層采用較高精度級別(如16級)的全球道路標注影像,上層采用較高精度級別的各發(fā)射場區(qū)域地圖影像(如11-16級).當在火箭起飛離地面較近、可視地域較小時調(diào)用發(fā)射場區(qū)域的高精度數(shù)據(jù),當火箭或飛行器遠離地面、可視地域較大時調(diào)用全球低精度數(shù)據(jù),而道路標注層數(shù)據(jù)量不大,采用全球高精度數(shù)據(jù).

對于高程數(shù)據(jù),同樣存在數(shù)據(jù)量大的問題,但簡單地通過上述方式加載高程數(shù)據(jù)無法避免出現(xiàn)較明顯的“地形斷裂”現(xiàn)象.因此,軟件僅在中國區(qū)域加載了一層中等精度級別(如10級)的高程數(shù)據(jù),其他區(qū)域未使用高程數(shù)據(jù).當火箭起飛至進入大氣層前,恰在中國區(qū)域范圍內(nèi),此時距離地面較近,加載中等精度地形,當火箭進入大氣層后,此時距離地面較遠,高空俯瞰對地形的關(guān)注程度降低,沒有加載地形基本不影響整體演示效果.

通過差異化的加載策略,在不同場景切換時,影像和地形不會出現(xiàn)明顯突變現(xiàn)象,最大限度地減少了實時渲染的數(shù)據(jù)量,有效提升了渲染效率,保證了流暢的仿真效果.

2.3 三維場景的組織與構(gòu)建

OSG中存在場景樹的概念,這棵樹是一棵由Node(節(jié)點)組成的樹,反映了場景的空間結(jié)構(gòu)和可繪制對象的狀態(tài).場景樹結(jié)構(gòu)的頂部是一個根節(jié)點,從根節(jié)點向下延伸,各級樹枝上的Group節(jié)點(組節(jié)點)包含了幾何信息和用于控制其外觀的渲染狀態(tài)信息,底層的Geode節(jié)點(葉節(jié)點)包含了場景中物體的實際幾何信息[15].通過建立場景樹,OSG可以高效地渲染對應(yīng)的三維場景.

根據(jù)場景樹的定義,構(gòu)建出整個三維仿真場景對應(yīng)的場景樹結(jié)構(gòu),如圖2所示.

圖2 三維場景組織圖

頂層的rootNode是整個場景的根節(jié)點,第二層的earthNode表示整個地球節(jié)點,所有具體的場景節(jié)點都隸屬于該節(jié)點控制,第三層的earthPATNode是地球慣性系旋轉(zhuǎn)節(jié)點,可以控制地球自轉(zhuǎn),其下屬所有節(jié)點均隨著該節(jié)點的旋轉(zhuǎn)變化而進行相應(yīng)的相對變化,第三層有3個分支:左側(cè)的skyNode及其下各級節(jié)點是通過OSGEARTH加載外部的影像和高程數(shù)據(jù)后自動創(chuàng)建的,描述了天空和地球地形;中間的earthGroup是包含了各種附屬于地表模型的組節(jié)點,第四層的3個節(jié)點分別代表測站、星下點軌跡和發(fā)射塔架,第五層及以下均是各類測站、星下點軌跡和發(fā)射塔架的具體組成節(jié)點;右側(cè)的rktRootNode是火箭的根節(jié)點,第四層的rktLocalMT是火箭局部位移節(jié)點,用于完成火箭整體模型加載后從模型坐標系到真實火箭坐標系的轉(zhuǎn)換,其下各級節(jié)點是火箭的各級部件和載荷的分層節(jié)點,centerMTNode是火箭中心位置節(jié)點,用于在火箭部件分離后火箭中心位置的調(diào)整,其下的節(jié)點是火箭軌跡線葉節(jié)點.

某級節(jié)點的旋轉(zhuǎn)平移就可以改變對應(yīng)仿真對象的位置姿態(tài),增加和刪除某個節(jié)點就可以顯示和隱藏相應(yīng)仿真對象.在運行時,OSG將會按照以上的場景樹結(jié)構(gòu)逐層裁剪、渲染三維場景,通過合理、靈活地組織、調(diào)整場景樹,即可高效地完成場景的渲染,有效提升在全國產(chǎn)化平臺上的渲染效果.

2.4 彈道數(shù)據(jù)篩選方法

通過網(wǎng)絡(luò)接收以驅(qū)動飛行器模型的彈道數(shù)據(jù)可能存在非正常數(shù)據(jù)(主要是相對飛行時出現(xiàn)跳動),因此在后端彈道數(shù)據(jù)插值處理前應(yīng)先進行相應(yīng)的篩選,避免不必要的計算處理,有效提升飛行器仿真流暢程度.

整體流程只要滿足網(wǎng)收啟動的條件就循環(huán)執(zhí)行.內(nèi)部基本流程如下:首先,如果沒有新數(shù)據(jù)到達或為非彈道類數(shù)據(jù),則結(jié)束本輪處理,否則繼續(xù)根據(jù)彈道數(shù)據(jù)和起飛時間計算當前彈道飛行時間rt,獲取本地飛行時間lft(每秒自動計算當前本地時間與起飛時間之間的差值),并獲取上一幀彈道數(shù)據(jù)的飛行時間rt0;然后,判斷rt和rt0的大小,如果rt小于rt0,則數(shù)據(jù)非法,結(jié)束本輪處理,否則繼續(xù)判斷rt和lft的絕對誤差,如果誤差超過閾值Threshold,則數(shù)據(jù)非法,結(jié)束本輪處理,否則數(shù)據(jù)合法,繼續(xù)完成彈道數(shù)據(jù)插值處理并更新數(shù)據(jù)引擎驅(qū)動模型的位置變化,轉(zhuǎn)入下一輪處理.整體流程如圖3所示.

2.5 彈道外推自動控制

在飛行器飛行過程中存在滑行段的過程,即一段時間沒有彈道數(shù)據(jù)更新,或者突發(fā)的鏈路故障導(dǎo)致沒有彈道數(shù)據(jù)更新,但飛行器模型的位置卻不能中斷更新,因此需要設(shè)計自動啟停的彈道外推控制機制,根據(jù)當前速度和位置矢量預(yù)測飛行器的位置和速度,保證飛行器位置連續(xù)更新.

軟件中設(shè)計了彈道計數(shù)監(jiān)視器DDMonitor和彈道外推驅(qū)動器PredictDriver,彈道計數(shù)監(jiān)視器用于監(jiān)視接收的彈道數(shù)據(jù)的計數(shù)并產(chǎn)生啟動和停止信號,彈道外推驅(qū)動器用于實際控制彈道外推的啟動和停止,這兩個類都是線程類,主體函數(shù)Run函數(shù)在各自的線程中執(zhí)行.當DDMonitor每隔固定時間進行輪詢,如果判定進入滑行段則向PredictDriver發(fā)送DDStop信號,PredictDriver啟動彈道外推,如果判定退出滑行段則向PredictDriver發(fā)送DDRecover信號,PredictDriver停止彈道外推.

彈道計數(shù)監(jiān)視器DDMonitor的輪詢控制流程如圖4所示,其中tSinceLast表示距離上次收到有效彈道后輪詢的次數(shù),isHXD表示滑行段標志(true為滑行段,false為非滑行段),isStart表示線程運行標志,lastCount表示上次收到的有效彈道計數(shù)值,maxSpan表示判定進入滑行段的最大輪詢次數(shù).

圖3 彈道篩選流程圖

2.6 測站自動跟蹤

在飛行器仿真過程中,需要顯示各測站到目標飛行器的跟蹤狀態(tài).當目標飛行器相對于測站出地平,即仰角大于等于0度,測站開始跟蹤,顯示跟蹤線,當目標飛行器相對于測站入地平,即仰角小于0度,測站停止跟蹤,隱藏跟蹤線.

基于目標跟蹤的原理[16],通過OSG中節(jié)點更新回調(diào)機制實現(xiàn)測站自動跟蹤.某個測站到目標飛行器的跟蹤線通過跟蹤線場景節(jié)點對象lineNode定義,lineNode節(jié)點注冊一個節(jié)點回調(diào)對象TTCNodeCallback.測站自動跟蹤的流程是這樣的:當渲染整個三維場景的場景圖且遍歷至lineNode節(jié)點時,會自動調(diào)用回調(diào)函數(shù)并傳入該測站的地理位置信息和飛行器目標節(jié)點對象targetNode,根據(jù)targetNode獲取當前時刻目標的地理位置信息,從而計算出該測站到目標節(jié)點的仰角E.如果E<0,則清理lineNode的顯示緩存,隱藏跟蹤線,否則用測站和目標的位置信息更新lineNode的頂點信息,刷新lineNode的顯示緩存,從而顯示跟蹤線.

圖4 彈道計數(shù)監(jiān)視器輪詢控制流程圖

2.7 基于地慣坐標系的地球自轉(zhuǎn)設(shè)計

在航天器分離后,需要根據(jù)軌道根數(shù)推算航天器飛行軌跡并展示.基于地慣坐標系的軌跡能形成趨于閉合的大橢圓軌跡,符合航天器在軌態(tài)勢顯示的需要.

OSGEARTH中的世界坐標系是按照地固坐標系定義的,原點在地球中心,x軸向右(指向本初子午面),y軸指向屏幕里,z軸(地軸)向上.在該坐標系下地球是靜止的,而地慣坐標系下地球是自轉(zhuǎn)的.因此需要實現(xiàn)坐標系的轉(zhuǎn)換和地球的自轉(zhuǎn).

首先,進行坐標系轉(zhuǎn)換.采用瞬時真赤道地心系(一種地慣坐標系)定義場景的坐標系統(tǒng),而地固坐標系與它的差別即地球自轉(zhuǎn)角——格林尼治恒星時S0[17].因此,在系統(tǒng)初始化時根據(jù)當時時刻計算S0,讓地球繞z軸旋轉(zhuǎn)S0角度,完成地球初始位置的設(shè)定.

然后,實現(xiàn)地球的自轉(zhuǎn).在場景樹中,地球是其中的一級節(jié)點,利用OSG中節(jié)點更新回調(diào)機制控制地球節(jié)點進行連續(xù)角度的旋轉(zhuǎn)變化,從而實現(xiàn)地球的自轉(zhuǎn)效果.地球節(jié)點注冊一個節(jié)點回調(diào)對象EarthRotate Callback,當渲染整個三維場景的場景圖且遍歷至地球節(jié)點時,會自動調(diào)用回調(diào)函數(shù)并傳入地球節(jié)點對象,回調(diào)函數(shù)的流程如圖5所示,其中t0表示當前時刻值,lastT表示上一次回調(diào)時刻值,dt表示本次回調(diào)與上次回調(diào)的時間間隔,Span表示更新地球旋轉(zhuǎn)的時間間隔(例如,按照1秒24幀的刷新頻率,Span就設(shè)置為1/24秒),EarthRotSpeed表示地球自轉(zhuǎn)角速度常量(7.292e-5 rad/s),deltaZaw表示dt時間間隔對應(yīng)的地球自轉(zhuǎn)角度.

圖5 地球自轉(zhuǎn)回調(diào)函數(shù)流程圖

2.8 多屏輸出與切換控制

實際應(yīng)用中,三維仿真窗口常需投影到外部設(shè)備(如超長超寬屏幕)進行全屏演示,這種需求往往通過分別部署于兩個平臺的控制端和顯示端軟件進行通信來實現(xiàn).軟件利用支持多屏輸出顯示的顯卡和Qt中QDesktopWidget多屏顯示[18]技術(shù)實現(xiàn)了同一軟件在同一平臺上進行多屏擴展顯示與切換控制的效果,降低了軟件結(jié)構(gòu)的復(fù)雜性,避免了對網(wǎng)絡(luò)通信的依賴,有效提升了在全國產(chǎn)化平臺環(huán)境下切換控制的可靠性.

以擴展3屏顯示為例說明.在多屏顯示環(huán)境的系統(tǒng)中,應(yīng)用程序所在屏幕默認為主屏幕(screen 0),其他屏幕都是擴展屏幕(screen 1,screen 2,…),主屏幕的左下角屏幕坐標為(p.x,p.y).整個擴展顯示區(qū)域橫跨了3個擴展屏幕,其左下角坐標為(p.x+p.width,p.y),寬度e1.width+e2.width+e3.width,高度為p.height,其中p、e1、e2、e3分別表示主屏幕和3個擴展屏幕,width表示屏幕的寬度,height表示屏幕的高度,如圖6所示.

圖6 多屏顯示區(qū)域的定義

在切換擴展顯示時,首先按照上述定義擴展顯示區(qū)域?qū)ο骵xtWinGeometry,設(shè)置其寬度和高度;然后,將軟件界面中的仿真演示窗口部件對象viewerWidget設(shè)置為擴展窗口extendWindow的中央窗口部件,將extendWindow的顯示區(qū)域設(shè)置為extWinGeometry,設(shè)置extendWindow為無邊框顯示模式;最后,更新顯示extendWindow即可實現(xiàn)擴展3屏效果.這樣,主屏幕顯示軟件的控制界面,擴展的3屏顯示仿真演示窗口.

3 國產(chǎn)平臺下的仿真驗證

在研發(fā)機房部署仿真驗證環(huán)境,包括兩臺工作站,一臺是國產(chǎn)化工作站(飛騰1500A、16 GB內(nèi)存、1 TB硬盤、AMD RX570獨顯、銀河麒麟操作系統(tǒng)4.0.2),部署航天三維仿真軟件,一臺部署數(shù)據(jù)仿真重演軟件及數(shù)據(jù)處理軟件.仿真重演軟件加載仿真數(shù)據(jù)發(fā)送到數(shù)據(jù)處理軟件經(jīng)處理后,模擬任務(wù)網(wǎng)絡(luò)環(huán)境向三維仿真軟件發(fā)送數(shù)據(jù),驗證三維仿真的可靠性和渲染效率.

仿真重演軟件以100幀/s的幀頻發(fā)送數(shù)據(jù),三維仿真軟件接收、仿真渲染均正常.飛行器三維仿真全過程中,仿真環(huán)境逼真、飛行器位置和姿態(tài)調(diào)整流暢,實時監(jiān)測結(jié)果如圖7所示,實時采集的三維渲染性能統(tǒng)計結(jié)果如表1所示.

圖7 三維仿真渲染效率實時監(jiān)測結(jié)果

表1 實時采集的三維渲染性能統(tǒng)計

根據(jù)實時渲染性能統(tǒng)計,在繪制幾何體和三角形數(shù)量較大的情況下,平均渲染幀率不低于24 fps,能夠較好滿足三維仿真的需求.

測站跟蹤、模型動畫、地慣坐標系下軌跡效果如圖8至10所示.

圖8 測站跟蹤

圖9 火箭助推器分離動畫

4 結(jié)論

本文基于OSGEARTH設(shè)計和實現(xiàn)了一款國產(chǎn)航天三維仿真軟件,通過地球影像和高程數(shù)據(jù)的差異化加載、場景樹的優(yōu)化構(gòu)建、彈道數(shù)據(jù)篩選等設(shè)計策略,解決了在全國產(chǎn)化平臺上進行三維仿真的可靠性和渲染效率問題,并通過仿真實驗進行了驗證.

圖10 空間目標在地慣坐標系下的軌跡

下一步的研究方向:

(1)進一步研究大規(guī)模地形組織和渲染效率的優(yōu)化問題,使得軟件加載更大范圍、更高精度的地形成為可能;

(2)在現(xiàn)有軟件基礎(chǔ)上,進一步實現(xiàn)可視化任務(wù)完成情況快速評估功能,并拓展至空間態(tài)勢感知領(lǐng)域.

主站蜘蛛池模板: 麻豆精品在线播放| 秋霞一区二区三区| 久久夜色精品国产嚕嚕亚洲av| 国产一区二区人大臿蕉香蕉| 精品99在线观看| 久久美女精品| 青青网在线国产| 亚洲一级毛片免费观看| 成人国产免费| 国产精品美人久久久久久AV| 一区二区三区四区在线| 欧美va亚洲va香蕉在线| 无码视频国产精品一区二区| 国模视频一区二区| 欧美在线精品一区二区三区| 国产视频大全| 香蕉蕉亚亚洲aav综合| 国产免费好大好硬视频| 亚洲欧洲日产无码AV| 日韩精品毛片| 亚洲国产精品人久久电影| 激情综合图区| 天堂在线视频精品| 国产精品网曝门免费视频| 亚洲日韩AV无码精品| 色综合色国产热无码一| 美女国内精品自产拍在线播放 | 成人午夜网址| 国产高潮视频在线观看| 中文成人无码国产亚洲| 欧美色99| 九九视频在线免费观看| 久久精品国产精品青草app| 综合社区亚洲熟妇p| 综合成人国产| 伊在人亚洲香蕉精品播放| a级毛片在线免费观看| 91免费在线看| 亚洲精品日产AⅤ| 亚洲一区二区约美女探花| 在线播放国产一区| 国产亚卅精品无码| 国产xx在线观看| 91久久夜色精品国产网站| 欧美精品在线视频观看| 色国产视频| 18禁色诱爆乳网站| 亚洲不卡网| 香蕉综合在线视频91| 欧美精品1区2区| 无码丝袜人妻| 欧美精品高清| 免费观看欧美性一级| 日本精品一在线观看视频| 国产在线日本| 一级香蕉人体视频| 91成人在线观看| 欧美第二区| 久久成人免费| 中国特黄美女一级视频| 久久天天躁夜夜躁狠狠| 91久久性奴调教国产免费| 好吊色国产欧美日韩免费观看| 国产无套粉嫩白浆| 丁香五月婷婷激情基地| 欧美日韩亚洲国产| 久久99国产综合精品1| 人妻熟妇日韩AV在线播放| 亚洲男人天堂久久| 国产在线精品网址你懂的| 99九九成人免费视频精品| 中文字幕免费在线视频| 99青青青精品视频在线| 全色黄大色大片免费久久老太| 久久久久亚洲精品成人网| 亚洲精品第一页不卡| 亚洲国产精品VA在线看黑人| 国产va在线观看免费| 色丁丁毛片在线观看| 国产91色在线| 国产超碰一区二区三区| 久久免费观看视频|