• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于OSG與Qt的FAST三維場景仿真

    2022-02-19 10:23:12李昌明李東年趙正旭宋立強孫才紅
    計算機應用與軟件 2022年2期
    關鍵詞:索網(wǎng)反射面面片

    李昌明 李東年* 趙正旭 宋立強 姜 鵬 孫才紅

    1(青島理工大學機械與汽車工程學院 山東 青島 266520) 2(中國科學院國家天文臺 北京 100012)

    0 引 言

    2016年,500米口徑球面射電望遠鏡(Five-hundred-meter Aperture Spherical Telescope,F(xiàn)AST)落成啟用,F(xiàn)AST是由著名天文學家南仁東在1994年提出構想,中國科學院國家天文臺歷經(jīng)22年建設,具有我國自主知識產(chǎn)權、世界最大單口徑、最靈敏的射電望遠鏡[1]。FAST的反射面口徑達到了500米,反射面接收面積25萬平方米(相當于30個足球場),利用柔性索網(wǎng)支撐反射面,索網(wǎng)下面連接可以伸長運動的促動器,可實時根據(jù)促動器的伸縮牽引索網(wǎng)生成拋物面。FAST望遠鏡的工作頻率在70 MHz到3 GHz,分辨率2.9′,指向精度可達8”,相比美國Arecibo 300 m天文望遠鏡,F(xiàn)AST創(chuàng)造性地使用了可變反射面設計,其4 450塊反射面單元都可以在促動器的伸縮下運動,實時地生成一個拋物面進行射電信號接收,其反射面積是美國Arecibo望遠鏡的2.5倍,綜合性能是美國Arecibo望遠鏡的10倍[2]。FAST基地為天文望遠鏡接收豐富的射電信號提供了良好的基礎條件,但是FAST場景的可視化卻十分困難,4 450塊反射面單元,2 225個促動器等一系列零部件的工作情況無法直觀地顯現(xiàn)在工作人員面前,而虛擬現(xiàn)實可視化技術可以通過場景仿真解決這一問題。

    虛擬可視化技術源自1962年全景仿真機的出現(xiàn),其具有交互性、沉浸性、想象性的特點[3]。在虛擬場景中,通過操作器控制漫游視角,可以到達三維空間的任意坐標。同時可以通過鼠標與鍵盤的控制,實現(xiàn)對場景的交互控制,達到理想的可視化需求。近年來,虛擬現(xiàn)實技術廣泛用于航天科技和軍事場景模擬,以仿真度高、可交互性強等優(yōu)點被廣泛認可。三維可視化是虛擬現(xiàn)實技術的重要分支[4],通過計算機圖形學技術創(chuàng)建輔助人們理解復雜場景的視覺圖形,通過融合多種數(shù)據(jù),將復雜場景的工作狀態(tài)在界面顯示,或者說,三維可視化本身就是一個數(shù)據(jù)整合然后進行展示與交互控制的平臺。任雨柔等[5]應用虛擬可視化技術使用Unity3D引擎,對現(xiàn)代有軌電車進行路口場景仿真,為有軌電車司機提供一個學習平臺。李忠坡[6]利用Vega Prime仿真平臺模擬各種海洋場景,實現(xiàn)了平臺供應船海上作業(yè)三維視景仿真的開發(fā)設計與效果展示。

    OpenSceneGraph(OSG)圖形系統(tǒng)使用工業(yè)標準的 OpenGL作為底層渲染API,用C++語言編寫,它以性能較高、拓展性與移植性強、可跨平臺等優(yōu)點被廣泛應用于虛擬仿真、游戲動畫、三維可視化等領域[7-8]。OSG憑借其優(yōu)良特性尤其適合可視化仿真系統(tǒng)的開發(fā),并且OSG具有跨平臺性,可以在Windows、Linux等系統(tǒng)下運行。OSG作為一款圖形渲染機制較為完備的圖形渲染引擎,其涵蓋了許多優(yōu)秀的功能特性,圖形的顯示表現(xiàn)為一系列幀的渲染,渲染過程包含場景更新、揀選和繪制、每一次渲染這三個過程都會被執(zhí)行。文戈[9]利用OSG與Qt開發(fā)了用于溝道土地整治的可視化技術,為溝道流域區(qū)域的整治規(guī)劃提供輔助性的決策支持。倪梓軒等[10]借助Eclipse為中介將OSG引擎移植到Android Studio 2.2.3平臺中,為 OSG 在移動平臺的整體移植提供了實踐參考。劉楚斌等[11]利用OSG對火箭飛行進行仿真,為火箭跟蹤仿真訓練系統(tǒng)的研制提供技術支撐。郭靖[12]采用OSG渲染引擎對航天器發(fā)射、衛(wèi)星在軌飛行和衛(wèi)星變軌運動場景進行可視化,對空間飛行器運行狀況監(jiān)測、新航天器發(fā)射任務完成有著重要意義。

    Qt是一個面向對象的C++類庫,其具有面向對象編程語言的所有優(yōu)點,因其友好的用戶界面與快速的交互相應,自問世以被許多程序人員廣泛使用,并且Qt提供了許多標準應用程序編程接口(Application programming interface,API)來兼容第三方庫[13]。隨著Qt的發(fā)展與OSG在各行業(yè)的廣泛應用,OSG強大的圖形渲染能力和Qt提供的人機交互平臺為解決各種復雜場景可視化問題和開發(fā)三維可視化平臺提供了一個新的思路[14]。

    本文采用開源跨平臺三維仿真引擎OSG進行模型加載和視景仿真程序的開發(fā),采用開源跨平臺圖形界面庫Qt進行軟件程序界面的開發(fā),基于osgQt庫在Qt Application項目中實現(xiàn)了osgviewer視口和Qt主窗口的整合,開發(fā)了FAST大場景漫游系統(tǒng),如圖1所示。

    圖1 FAST可視化效果圖

    1 系統(tǒng)簡介

    FAST作為最大單口徑射電望遠鏡,其反射面用于匯聚射電信號,F(xiàn)AST的反射面由4 450個反射面單元組成,每塊反射面單元安裝在索網(wǎng)制定位置,索網(wǎng)包括6 670根主索、2 225個主索節(jié)點和2 225根下拉索。下拉索的一端位于索網(wǎng)索節(jié)點下方,另一端連接促動器,促動器通過伸縮來改變索節(jié)點的位置從而改變反射面的形狀,形成反射拋物面,并使反射拋物面對準天體目標,然后再通過卷揚機控制六根鋼索的收放,以拖動30噸的饋源艙到達拋物面焦點位置,F(xiàn)AST饋源艙將射電信號進行聚焦,研究人員對聚焦的射電信號進行分析,完成對天體目標的探測[15]。圖2所示為FAST索網(wǎng)結構圖。

    圖2 FAST索網(wǎng)結構圖

    本文利用OSG與Qt對FAST場景可視化系統(tǒng)進行開發(fā),通過OSG圖形對FAST三維場景進行顯示的同時,利用Qt的信號槽機制來對OSG進行交互控制,實現(xiàn)了可視化的交互性與沉浸性。FAST可視化系統(tǒng)提供一種更加直觀、快速的動態(tài)監(jiān)測方案,為FAST基地的觀測工作提供輔助性的決策支持。

    2 場景模型

    2.1 三維建模

    FAST基地場景內(nèi)的模型包括地形、圈梁、反射面、索網(wǎng)及下拉索、饋源支撐塔等,對照圖紙利用建模軟件(如Solidworks、Proe、犀牛等)進行三維建模,然后轉化成指定格式,導入3D max賦予模型材質(zhì)并按照圖紙完成布局。對于有運動需求的零部件(比如促動器),在三維建模軟件中建模完成后導入multigen creator添加dof運動節(jié)點,在osg程序中采用finddofnode程序可對dof節(jié)點進行搜索并進行運動控制。在饋源倉與反射面節(jié)點之上分別增加一個transform節(jié)點,在OSG中通過osg::Transform節(jié)點類來實現(xiàn)模型的位置變換。

    2.2 促動器模型的自動化布局

    本文根據(jù)坐標數(shù)據(jù)在可視化場景下對大量重復性的模型進行自動化布局,采用OSG的MatrixTransform進行位置變換,將指定的模型通過平移旋轉安裝在指定位置。osg::MatrixTransform是一個變換節(jié)點,它會將其所有子節(jié)點進行坐標變換,變換的依據(jù)就是它自身的數(shù)據(jù)成員Matrix,比如當進行旋轉變換時用osg::Matrix::rotate(osg::inDegrees(n),0.0f, 0.0f, 1.0f) 通過構造一個旋轉變換矩陣可以實現(xiàn)目標模型圍繞Z軸進行n度旋轉。osg::Matrix::rotate是Matrix類的靜態(tài)函數(shù),在osg::Matrix::rotate(osg::InDegrees(n), 0.0f, 0.0f, 1.0f) 中一共有4個參數(shù),第一個參數(shù)是角度,后三個參數(shù)是旋轉的向量坐標值。當進行平移操作時,通過osg::Matrix::translate即可實現(xiàn)沿任意軸的位移變換。

    2 225個促動器需要在三維空間中安裝在指定的位置,如果按照人工方式進行手動布局,須在3D max安裝好每一個促動器,工作量極大,且人工安裝的精度也很難滿足精準的位置要求。在FAST可視化系統(tǒng)開發(fā)過程中,促動器的安裝采用程序化自動布局,首先在三維軟件中繪制促動器模型,然后導入Multigen creator為促動器添加dof節(jié)點。根據(jù)索網(wǎng)的主索節(jié)點與下拉索的節(jié)點三維坐標,建立本地txt文本,在程序中通過for循環(huán)加載促動器模型并讀取本地txt文本的2 225組三維坐標。將下拉索起始坐標和終點坐標兩個坐標點做差即可求得兩點之間的空間向量,利用MatrixTransform的旋轉變換矩陣對空間向量進行旋轉從而使促動器軸向與下拉索同向,然后利用MatrixTransform平移變換矩陣將促動器模型的原點平移到對應的下拉索的終點坐標,一個促動器即可安裝完畢。循環(huán)2 225次后,將每一個促動器按指定的位置安裝完畢,在安裝同時為每一個促動器進行編號,2 225個促動器各自對應自己的ID,便于以后的監(jiān)視管理與操作。圖3為安裝促動器的For循環(huán)流程圖,圖4為通過此方法安裝促動器的效果圖。采用自動化安裝布局,僅需要建造一個促動器模型,通過程序讀入該模型,循環(huán)將其安裝在對應的位置即可,該方法適合三維可視化場景中大量的重復性的模型的布局。

    圖3 安裝促動器For循環(huán)流程圖

    圖4 促動器安裝效果圖

    3 促動器運動情況模擬

    每一個小反射面單元邊長為1米左右,100個小反射面單元組成一個大的面板子單元,反射面下面索網(wǎng)的索節(jié)點連接一個可以伸縮運動的促動器,促動器通過伸縮運動牽引索網(wǎng),使反射面生成一個用于匯聚射電信號的拋物面。

    FAST的反射面隨著探測目標的改變而發(fā)生改變,系統(tǒng)通過控制每一個促動器的拉伸量,從而改變反射拋物面的形狀。本文系統(tǒng)中促動器的伸長數(shù)據(jù)實時寫入服務器A的Redis數(shù)據(jù)庫,客戶端B通過服務器A的IP訪問其數(shù)據(jù)庫,通過get key value命令從數(shù)據(jù)庫調(diào)取其所需數(shù)據(jù),每一個促動器根據(jù)其ID連接對應數(shù)據(jù)。通過采用OSG的更新回調(diào),使促動器的伸長量動態(tài)變化。由于Redis的數(shù)據(jù)是存在內(nèi)存中的,所以存寫速度非常快,可以避免數(shù)據(jù)存寫而引起的可視化延時顯示[16]。在仿真系統(tǒng)中FAST工作流程如圖5所示。

    圖5 仿真系統(tǒng)中促動器工作流程

    4 粒子特效進行場景天氣模擬

    三維場景可視化最基本同時也最重要的就是保證場景的真實感與逼真性,在真實的場景中,會存在不同天氣的交迭,在虛擬場景中為了增加真實性,也需要不同的天氣效果。在OSG的雨雪天氣可以通過粒子特效進行實現(xiàn),通過osgParticle庫生成粒子系統(tǒng)節(jié)點,用于模擬各種天氣或則自然現(xiàn)象效果[17],通過Qt的菜單按鈕來切換不同的天氣效果。在程序中可以通過控制粒子的顏色與透明度來改變雨雪天氣,同時可以通過風速來控制雨雪的漂移。圖6為FAST三維場景雪天效果圖。

    圖6 雪天場景效果圖

    5 實 驗

    5.1 促動器安裝布局實驗驗證

    本文仿真系統(tǒng)在Windows 10操作系統(tǒng)下利用VS2013編譯器,使用版本號為3.4的OSG與版本號為5.5的Qt進行系統(tǒng)開發(fā)。電腦處理器為Intel core i3-6100,內(nèi)存為4 GB,顯卡為Nvidia GeForce GT720。在實驗前將所渲染好的模型及坐標點放入程序的子目錄下,生成程序并進行調(diào)試。本文系統(tǒng)需要根據(jù)坐標點對2 225個促動器進行自動布局,實驗發(fā)現(xiàn)促動器模型的面片精度和材質(zhì)對系統(tǒng)的運行效率產(chǎn)生很大影響。為更好地驗證材質(zhì)渲染及面片精度對可視場景運行效率的影響,分別導出兩種不同精度的促動器模型分別對其分別進行材質(zhì)與RGB顏色渲染后,之后依次導入程序進行調(diào)試,記錄運行數(shù)據(jù)。其中一號促動器模型(如圖7(a)所示)為根據(jù)圖紙一比一繪制并導出的高精度三維模型,附加真實材質(zhì);二號促動器(如圖7(b)所示)為根據(jù)圖紙一比一繪制的并導出的高精度三維模型,未附加真實材質(zhì),采用RGB顏色渲染;三號促動器(如圖7(c)所示)為降低面片精度的三維模型,附加真實材質(zhì);四號促動器(如圖7(d)所示)為降低面片精度三維模型,未附加真實材質(zhì),采用RGB顏色渲染。

    圖7 四種促動器模型

    表1所示為各促動器模型在可視化場景中的運行數(shù)據(jù),可以看出,在可視化場景中,2 225個促動器的渲染需要消耗大量的運算量,當系統(tǒng)采用一號促動器模型時,幀率降低到5.64 FPS,同時占用內(nèi)存達到92%,每一幀的揀選過程耗費時間高達101.28 ms,繪制過程耗費時間30.21 ms,運行情況極為不流暢。當系統(tǒng)采用二號促動器模型,幀率與占用內(nèi)存情況并沒有明顯改善。當系統(tǒng)采用三號促動器模型時,幀率明顯提升為46.35 FPS,占用內(nèi)存降低為81%,每一幀的場景更新耗費時間0.01 ms,揀選耗費時間10.08 ms,繪制耗費時間9.02 ms,相比一號促動器模型及二號促動器模型,運行情況已經(jīng)有了明顯的改善。當系統(tǒng)采用四號促動器模型時,相比三號促動器幀率并沒有明顯提升,但是在每一幀的揀選與繪制時間降低到1.68 ms與3.98 ms,雖然在每一幀揀選與繪制的時間有所降低,但是影響可視化流暢度最大的因素是幀率,同時附加真實材質(zhì)的促動器逼真度要遠遠好于RGB渲染的促動器。三號促動器為通過Solidworks導出的降低面片精度的三維模型,相比面片精度精細的三維模型其尺寸公差與角度公差更大,雖然面片精度略有降低,但是促動器的繪制精度為毫米級,在一定程度上降低面片精度后的模型在一定的視場范圍內(nèi)仍具有較好的演示效果,同時通過對比發(fā)現(xiàn)三號促動器的可視化效果較為理想,故本文系統(tǒng)選用三號促動器為演示模型。

    表1 可視化場景中加載促動器的運行數(shù)據(jù)

    5.2 促動器運動模擬實驗驗證

    在服務器A上運行Redis數(shù)據(jù)庫服務器,當顯示數(shù)據(jù)庫已經(jīng)運行并可以接受端口的連接后,利用set key value命令將促動器的數(shù)據(jù)寫入到Redis數(shù)據(jù)庫中,每一個鍵值對對應一個促動器拉伸數(shù)據(jù)。在客戶端B上運行可視化程序,在程序中通過服務器A的IP訪問其Redis數(shù)據(jù)庫,利用get key value命令獲取相應數(shù)據(jù)來確定促動器拉伸量,促動器的dof節(jié)點根據(jù)獲取的數(shù)據(jù),利用更新回調(diào)實現(xiàn)促動器的動態(tài)運動。促動器的初始狀態(tài)如圖8(a)所示,當點擊促動器的動態(tài)演示,查看促動器的演示效果,如圖8(b)所示,促動器已經(jīng)根據(jù)Redis數(shù)據(jù)庫伸長了指定數(shù)據(jù)的位移量。

    圖8 促動器初始狀態(tài)與拉伸效果

    6 結 語

    本文通過OSG與Qt的結合,對FAST三維可視化系統(tǒng)進行了開發(fā),將FAST三維場景實時顯示在可視界面。該系統(tǒng)通過對促動器模型進行自動化布局,在提高安裝布局精度的基礎上又節(jié)省了勞動力,同時使用Redis數(shù)據(jù)庫驅動促動器進行伸縮運動,為場景的監(jiān)視工作提供了良好的條件。但是,真實的場景存在無法預測的故障卻不能實時顯示在可視界面中,未來工作將通過對各種情況的預測與OSG程序接口的編寫來完善此不足。

    猜你喜歡
    索網(wǎng)反射面面片
    智能反射面輔助通信中的信道估計方法
    超大規(guī)模智能反射面輔助的近場移動通信研究
    智能反射面輔助的覆蓋增強技術綜述
    高層建筑中單層索網(wǎng)幕墻結構設計與施工研究
    初次來壓期間不同頂板對工作面片幫影響研究
    甜面片里的人生
    幸福家庭(2016年3期)2016-04-05 03:47:08
    一種重新賦形副反射面的環(huán)焦天線設計
    青海尕面片
    飲食科學(2014年10期)2014-10-29 16:58:38
    老伴逼我搟面片
    橢圓平面雙曲拋物面碳纖維索網(wǎng)靜力特性分析
    上饶县| 宁阳县| 额济纳旗| 南京市| 伊川县| 天全县| 左贡县| 曲周县| 怀远县| 罗田县| 聂拉木县| 称多县| 彭山县| 常宁市| 北海市| 株洲县| 天柱县| 那坡县| 柳州市| 新乡市| 克东县| 闻喜县| 荃湾区| 玉门市| 东兰县| 海门市| 盘锦市| 蒙自县| 修武县| 新巴尔虎左旗| 新和县| 黄冈市| 陕西省| 建阳市| 达孜县| 靖宇县| 宁明县| 潼南县| 河北省| 武夷山市| 施秉县|