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

基于OSG的飛行器實時監控軟件設計

2017-05-02 05:39:23藥紅紅
計算機技術與發展 2017年4期
關鍵詞:可視化模型

郝 朝,藥紅紅,山 壽

(中國飛行試驗研究院,陜西 西安 710089)

基于OSG的飛行器實時監控軟件設計

郝 朝,藥紅紅,山 壽

(中國飛行試驗研究院,陜西 西安 710089)

在飛行試驗中,飛行器實時監控是保障飛行安全和提高工作效率的一個關鍵環節。為了直觀地實時監控飛行器的位置姿態和工作狀態,保證飛行器試飛安全,提出了基于OSG(Open Scene Graph)技術的飛行器三維實時監控軟件設計方案。軟件采用C++語言設計,讀取飛行器的部件模型構建三維可視化飛行場景,通過TCP/IP協議與服務器完成數據交互,實時驅動飛行場景中模型運動,設計獨立線程響應鍵盤和鼠標操作,采用場景漫游和模型選取技術,通過三維模型運動與數字顯示相結合的方式,更加可視化地監控飛行器的飛行過程。利用模塊化和多線程的設計思路,提高了軟件的執行效率和可擴展性。目前該軟件已成功應用到多個型號任務試飛中。實際應用效果表明,該監控軟件具有良好的實時性、準確性、可靠性和人機交互功能,能夠滿足飛行器實時監控系統的要求。

OSG;飛行器;實時監控;多線程;人機交互

0 引 言

隨著航天航空技術的飛速發展,對飛行器的監控要求也越來越高。在飛行試驗中,飛行器實時監控是保障飛行安全和提高工作效率的一個關鍵環節,要求實時查看飛行器的位置姿態信息和設備的工作狀態。一旦實時監控軟件顯示有影響飛行安全的故障,試飛工程師就能及時提醒飛行監控指揮員,并告知飛行員具體系統的故障以及應對故障的措施[1],因此要求實時監控軟件數據直觀且能準確呈現。目前,實時監控軟件一般都是通過數字或者二維圖表的形式來展示,無法形象生動地向監控人員呈現飛行器的狀態[2-3]。

為了可視化地表現飛行器的飛行過程,提出了基于OSG的三維實時監控軟件設計方案。基于開源的OSG三維渲染系統構建三維可視化飛行場景,實時接收服務器數據刷新飛行場景中的三維模型,實現對飛行器飛行狀態的實時監控。

該軟件已經應用到多個型號任務試飛中,有效保證試飛安全監控。

1 OSG簡介

OSG是一款開源、高效的三維渲染系統,是一個開源的場景圖形管理開發庫,主要為圖形圖像應用程序的開發提供場景管理和圖形渲染優化功能[4]。OSG采用可移植的C++作為開發語言,使得其具有良好的跨平臺性[5],實現了對OpenGL底層渲染API的封裝,功能豐富并易于使用。目前OSG在視景仿真、虛擬現實、科學計算可視化等方面都具有非常廣泛的應用[6-10]。

2 軟件設計

飛行器實時監控軟件運行流程如圖1所示。

圖1 軟件運行流程圖

為了方便軟件功能的更新、維護與拓展,在設計過程中采用模塊化的思想。軟件由數據交互模塊、場景渲染模塊和事件響應模塊組成,各個模塊功能通過設計獨立的線程[11-12]來完成。系統軟件設計的結構圖如圖2所示。

圖2 軟件結構圖

3 軟件實現

3.1 模型讀取

OSG提供文件的讀寫插件將模型讀入到模型節點中。

osg::Node*pNodeModel=osgDB::readNodeFile(chrModelName);

飛行器的軌跡通過OSG內置的POLYGON圖元和LINE_LOOP圖元實現。

3.2 模型運動與場景漫游

三維虛擬場景中的漫游能夠讓使用者從不同角度立體地觀察場景中的物體,從而提高了交互的品質。指定觀察者位置和觀察方向,OSG核心庫能在每一幀都計算視場內出現的物體,自動完成圖形的拾取和裁剪并渲染輸出到屏幕上。因此,實現場景漫游的核心在于控制觀察者所在的位置和方向。

觀測者位置可以通過直角坐標和球坐標指定,設置攝像機朝向球心可保持觀察對象始終在視野內。球坐標系(0.0,0.0,CameraDistance)轉換到直角坐標系為:

vViewPointPosition=osg::Vec3(0,-CameraDistance,0);

vViewDirection=osg::Vec3(osg::PI_2,0,0);

當需要觀測者跟隨某一實體運動時,需要獲取實體位置并疊加在攝像機的位置向量上。也可以同時獲取實體姿態,通過矩陣變換將觀測者與實體綁定。

三維演示飛行中飛行器的位置和姿態、設備的工作狀態隨時間發生變化,OSG應根據這些變化驅動場景中實體的變化。對于位置和姿態的變化,由OSG坐標轉換矩陣[4]實現,步驟如下:

(1)在實體對象節點的坐標轉換矩陣上設置回調函數:

pMatrixTransform→setUpdateCallback(this);

(2)設置回調函數后,在節點的虛函數中對節點坐標轉換矩陣進行處理:

voidDeviceWithAction::operator()(osg::Node* node,osg::NodeVisitor* nv);

(3)建立運動回調類:

osg::MatrixTransform *pTransformMatrix=dynamic_cast(node);

(4)根據實體的新位置對此節點進行平移變換:

osg::Matrix mTranslate,mRotate;

mTranslate.makeTranslate(this→vPosition);

(5)根據實體的新姿態對此節點進行旋轉變換:

mRotate.makeRotate(this→vAttitude._v[0],osg::Vec3(1,0,0),this→vAttitude._v[1],osg::Vec3(0,1,0),this→vAttitude._v[2],osg::Vec3(0,0,1));

(6)刷新此節點的坐標轉換矩陣,實體將運動到指定位置和姿態。

pTransformMatrix→setMatrix(mRotate*(this→mFixMatrix)*mTranslate);

traverse(node,nv);

3.3 鍵盤鼠標交互

鍵盤鼠標交互采用事件處理機制來實現,添加一個switch語句來判別事件類型,用到的事件類型有KEYDOWN、LEFT_MOUSE_BUTTON等。KEYDOWN事件類型是指鍵盤上某鍵按下產生的事件。KEYDOWN通過getKey函數判斷是哪個鍵產生的事件。其中,字母和數字按鍵的getKey函數返回值為對應字母和數字的ASCII碼。LEFT_MOUSE_BUTTON事件類型是指鼠標左鍵按下產生的事件,主要實現模型選取來進行更多操作。OSG并不直接支持選中,但其提供的相交計算功能能夠實現模型的選中操作。步驟如下:

(1)定義一條射向屏幕內部的射線:

osgUtil::LineSegmentIntersector::Intersections sections;

(2)計算場景中與此條射線相交的實體交集:

pCurrentViewer→computeIntersections(CenterX,CenterY,sections);

交集是C++中的容器對象,它的每一個元素都保存了與射線相交節點的節點路徑,也即是從根節點到此節點的父—子節點樹分支。

(3)使用迭代器取出節點路徑:

osgUtil::LineSegmentIntersector::Intersections::iterator itr=sections.begin();

osg::NodePathnodePath=itr →nodePath;

(4)獲取節點路徑上每一個節點,通過名稱比對確定具體節點。

3.4 HUD文字顯示

OSG支持平視顯示器(Head Up Display,HUD)的文字顯示。HUD主要用來顯示飛行器的位置和姿態等信息。HUD不會因攝像機的漫游而變化。步驟如下:

(1)創建攝像機節點:

osg::Camera* cam=new osg::CameraNode;

(2)設置相機節點的投影矩陣和渲染順序:

cam→setProjectionMatrix(osg::Matrix::ortho2D(0,1 024,0,768));

cam→setReferenceFrame(osg::Transform::ABSOLUTE_RF);

cam→setRenderOrder(osg::CameraNode::POST_RENDER);

(3)創建Text對象以輸出文字:

osg::Geode* pGeode=new osg::Geode();

osgText::Text *pText=new osgText::Text;

pGeode→addDrawable(pText);

(4)將文字節點加入攝像機中:

cam→addChild(pGeode);

3.5 數據交互

數據交互示意圖如圖3所示。數據交互采用連接可靠的TCP協議[13-14]建立兩個網絡連接,其中一個是發送套接字,負責向服務器發送參數名數組,發送成功后關閉該套接字。另一個是接收套接字,服務器接收到參數名后挑選出對應的數據并重新組包,通過該套接字實時接收服務器數據,解析完成后驅動相應模型的運動。

圖3 數據交互示意圖

4 應用效果

飛行器三維實時監控軟件運行結果如圖4所示,可以直觀地顯示出飛行器當前位置姿態信息、太陽帆板的運動情況和推力器的工作情況等,整個場景渲染效果逼真。

通過實際應用發現,該軟件實時監控數據準確、運行穩定可靠。

圖4 軟件運行結果

5 結束語

為了保證飛行器試飛安全,可視化地實時監控飛行過程,設計了基于OSG的飛行器三維實時監控軟件。基于開源的OSG三維渲染系統,構建三維可視化飛行場景,采用多線程并發機制和模塊化設計思想,提高了軟件的可靠性和維護性,實時接收服務器數據驅動飛行場景中三維模型運動,對運動場景進行刷新,實現對飛行器運動過程的實時監控。該軟件已經應用于多個型號任務的試飛實時監控中,實際應用效果表明,該軟件具有穩定可靠、人機界面友好等特點,滿足了實時監控要求。

[1] 張芹芹,劉 丹.基于LabVIEW的某航電系統監控軟件設計[J].中國科技信息,2014(20):128-129.

[2] 房 瑾,覃 燕,穆永河.通用試飛參數顯示儀的設計與實現[J].電子設計工程,2014,22(9):35-37.

[3] 劉嫚婷,尚麗娜,張芹芹.飛行試驗通用動態監控軟件的設計與實現[J].中國科技信息,2013(18):92-93.

[4] 肖 鵬,劉更代,徐明亮.OpenSceneGraph三維渲染引擎編程指南[M].北京:清華大學出版社,2009.

[5] Martz P.Open scene graph quick start guide[M].Louisville:Skew Matrix Software LLC,2007.

[6] Dias M S,D'Alpuim J,Caetano P.Galactica,a digital planetarium for immersive virtual reality settings[J].International Journal of Creative Interfaces and Computer Graphics,2016,7(1):19-39.

[7] 姚 崇.無人機飛行仿真系統關鍵技術研究[D].哈爾濱:哈爾濱工業大學,2014.

[8] 何坤金,張莉軍,李 強,等.基于OSG的航道船舶三維可視化信息管理系統[J].計算機與現代化,2015(11):89-92.

[9] 伍中聯,孫 卡,王新春,等.校園三維可視化仿真系統的設計與實現[J].計算機與現代化,2013(2):76-79.

[10] 郭 佳.基于OSG的飛行仿真系統視景平臺的研究與開發[D].沈陽:沈陽航空工業學院,2009.

[11] 郝文化.Windows多線程編程技術與實例[M].北京:中國水利水電出版社,2005.

[12] Courbin P,Lupu I,Goossens J.Scheduling of hard real-time multi-phase multi-thread (MPMT) periodic tasks[J].Real-Time Systems,2013,49(2):239-266.

[13] 羅莉琴,詹祖橋.Windows網絡編程[M].北京:人民郵電出版社,2011.

[14] Youm B J,Park J.TCP/IP protocol over IEEE-1394 network for real-time control applications[C]//IFAC.[s.l.]:IEEE,2005:38-40.

Design of Aircraft Real-time Monitoring Software Based on OSG

HAO Zhao,YAO Hong-hong,SHAN Shou

(Chinese Flight Test Establishment,Xi’an 710089,China)

Aircraft real-time monitoring is a key to guarantee the flight safety and improve the work efficiency in flight test.In order to monitor the position attitude and working condition in real-time of the aircraft intuitively and ensure the safety of the aircraft flight test,the program of 3D real-time monitoring software of aircraft based on OSG (Open Scene Graph) is proposed.The software is designed using C++ language.3D visualization flight scene is constructed by reading aircraft models.The real-time receiving server data drives the motion of the models in the flight scene through the TCP/IP protocol.The keyboard and mouse operation is responsed by a separate thread.The technology of scene roaming and model selection is used and the mode of 3d model movement combined with digital display is applied to monitor the flight more visually.Using the design idea of modularization and multithreading improves the implementing efficiency and extendibility.Now the software has been successfully applied to plenty of type of tasks test.The actual practice shows that the monitoring software has good performance of real-time,accuracy,reliability and interactive and so on,and it can meet the requirements of aircraft real-time monitoring system.

OSG;aircraft;real-time monitoring;multi-thread;human-computer interaction

2016-06-17

2016-09-22

時間:2017-03-07

國防基礎科研計劃重點項目(A0520132031)

郝 朝(1990-),男,助理工程師,碩士,研究方向為飛行試驗軟件開發和數據處理。

http://kns.cnki.net/kcms/detail/61.1450.TP.20170307.0922.088.html

TP311.1

A

1673-629X(2017)04-0021-04

10.3969/j.issn.1673-629X.2017.04.005

猜你喜歡
可視化模型
一半模型
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
重要模型『一線三等角』
基于CGAL和OpenGL的海底地形三維可視化
重尾非線性自回歸模型自加權M-估計的漸近分布
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
3D打印中的模型分割與打包
主站蜘蛛池模板: 韩国自拍偷自拍亚洲精品| 正在播放久久| 97精品伊人久久大香线蕉| 国产激情无码一区二区三区免费| 2021国产乱人伦在线播放| 日韩在线欧美在线| 九九九精品成人免费视频7| 国产欧美日本在线观看| 国内99精品激情视频精品| 国产高潮流白浆视频| 欧美视频在线播放观看免费福利资源 | 91视频首页| 中文字幕va| 72种姿势欧美久久久大黄蕉| 亚洲欧美另类久久久精品播放的| 亚洲成人动漫在线观看| 久久国产黑丝袜视频| 亚洲欧美国产高清va在线播放| 欧洲av毛片| 在线视频一区二区三区不卡| 欧美成人A视频| 国产丝袜第一页| 亚洲AⅤ无码日韩AV无码网站| 99热国产在线精品99| 欧美一级大片在线观看| 亚洲不卡无码av中文字幕| 久久中文字幕2021精品| 香蕉久久永久视频| 国产精品久久久久无码网站| 亚洲伊人电影| 99在线国产| 丝袜久久剧情精品国产| 国产成人综合久久精品尤物| 欧美成人精品高清在线下载| 色悠久久综合| 国产精品无码一区二区桃花视频| 亚洲人成网站日本片| 在线观看国产精美视频| 尤物成AV人片在线观看| 国产主播一区二区三区| 人妻一区二区三区无码精品一区| 国产视频一区二区在线观看 | 成人综合在线观看| 鲁鲁鲁爽爽爽在线视频观看 | 国产高清自拍视频| 91成人在线免费视频| AV不卡无码免费一区二区三区| 国产日韩久久久久无码精品| 一级爱做片免费观看久久| 视频一区视频二区中文精品| 婷婷六月综合网| lhav亚洲精品| 国产无套粉嫩白浆| 一级毛片在线免费视频| 色哟哟精品无码网站在线播放视频| 亚洲视频一区| 亚洲一级色| 欧美精品啪啪一区二区三区| 在线观看视频99| 欧美一级高清视频在线播放| 88国产经典欧美一区二区三区| 亚洲国产欧美国产综合久久 | 国产91成人| 四虎永久在线视频| 午夜不卡福利| 不卡无码h在线观看| 在线国产毛片| 日韩欧美国产另类| 亚洲v日韩v欧美在线观看| 51国产偷自视频区视频手机观看| 免费一极毛片| 在线欧美一区| 亚洲国产日韩在线观看| 2021最新国产精品网站| 中文字幕欧美日韩高清| 亚洲免费福利视频| 久久香蕉国产线看精品| AV无码一区二区三区四区| 国产黑人在线| 亚洲三级网站| 美女无遮挡被啪啪到高潮免费| 人妻少妇久久久久久97人妻|