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

基于Qt/OpenGL 的慣性平臺數字模型驅動技術

2023-04-29 03:43:26崔淑慧閆文民武彥偉王目凱王兆凱
導航與控制 2023年6期
關鍵詞:可視化動畫模型

崔淑慧, 閆文民, 武彥偉, 王目凱, 王兆凱

(1. 北京航天控制儀器研究所, 北京 100039;2. 中國特種設備檢測研究院, 北京 100026)

0 引言

平臺式慣性導航系統利用內部框架建立起隔離載體角運動的物理平臺, 進而建立一個與載體角運動無關的導航坐標系, 為加速度和姿態角的測量提供坐標基準。 平臺內部框架狀態是保證平臺式慣導系統導航與制導精度的基礎, 因此框架轉動狀態是測試人員關注的重點。 然而平臺內部結構復雜, 整機封閉測試與培訓過程中, 內部框架轉動情況及相對位置僅能通過框架角信息進行想象, 缺乏直觀性, 導致現場討論不便, 對現場排故和培訓效果造成一定影響。

視景仿真技術可以形象、 直觀、 實時地模擬空間物體的運動, 被廣泛應用于機器人跟蹤與模擬訓練、 導彈閉環校射、 船舶航行等領域。 開放式圖形庫(Open Graphics Library, OpenGL) 具有強大的底層繪圖功能且開發的應用程序可移植性強,Qt 內部封裝OpenGL 模塊可快速構建應用程序, 因此Qt/OpenGL 被廣泛應用于可視化平臺的開發。王曉輝等[1]基于自主研制的HAJIF 系統開發了一種專用有限元軟件GUI 模塊, 該模塊利用Qt 技術的信號槽機制實現數據的高效率通信, 提高人機交互效率, 同時利用OpenGL 圖形展示功能將有HAJIF 限元分析過程可視化。 楊義波等[2]利用Qt/OpenGL 開發了針對挖掘機的三維模型可視化軟件, 通過建立動力學模型結合測量設備, 獲取各部件間運動狀態及末端姿態, 并基于分層控制實現了挖掘機運動的實時展示。 馮志強等[3]利用Qt/OpenGL 技術開發了具有友好用戶界面的自主CAE平臺, 實現了跨系統用戶界面顯示及多系統間數據共享。 賈康等[4]針對螺旋特征加工問題, 提出了一種基于OpenGL 可視化編程的將空間幾何問題映射于圖像空間的求解方法。 XIONG 等[5]利用人機交互方法基于Qt 框架設計了一套跨平臺與可視化的地質模型軟件, 基于OpenGL 將3D 模型實時顯示,該軟件適用于石油、 燃氣以及礦石資源開采。ALLWRIGHT 等[6]針對多機器人構建硬件昂貴且耗時的情況, 利用Qt/OpenGL 并基于硬件測試數據實現了多機器人運動的可視化。 HU 等[7]針對機床加工和數字化制造車間管理無法連接的問題, 用Qt/OpenGL 設計了基于現場環境采集的可視化三維模型顯示終端監控系統, 可實時顯示模型動作和動態數據。 可見, Qt/OpenGL 技術可以實現多種工程機械運動的可視化, 但是慣性平臺內部框架運動特性和測試環境與上述研究有所不同, 同時其可視化系統的相關開發尚未見報道。

因此, 為增強平臺測試與培訓過程中高效、舒適的人機交互功能, 提高平臺調試、 排故過程中的交流效率, 基于Qt/OpenGL 開發了慣性平臺內部運動部件三維視景仿真系統。 探索三維視景仿真技術在平臺系統中的應用方法, 研究平臺數字模型與硬件的接口調試技術以及模型高效的實時/離線驅動技術, 具有重要的科學與應用價值。

1 慣性平臺基本結構及運動特性

平臺式慣導系統框架是隔離平臺與載體角運動和保證慣性空間穩定的關鍵部件, 三軸慣性平臺內部框架結構如圖1 所示。 如圖1(a)[8]所示, 整個框架通過外環架的軸端組件固定于基座上, 內環架通過軸端組件固定于外環架上, 其軸線與外環架軸線正交; 臺體也通過軸端組件固定于內環架上, 臺體軸線與另外兩個框架軸線正交; 三個軸端電機協同作用, 將臺體穩定在慣性空間。 通常臺體上安裝三個正交方向的加速度計和三個正交方向的陀螺儀, 分別測量載體在三個正交方向的加速度和角加速度, 進而通過解算獲取載體位置信息。 平臺內部各框架轉動相互耦合, 各框架位置狀態難以直接描述。 平臺內部框架實物圖如圖1(b)[9]所示, 可見慣性平臺內部各儀表和電氣線路較多且結構復雜。

圖1 慣性平臺內部框架結構Fig.1 Internal frame structure of the inertial platform

為更好地描述慣性平臺內部框架的位置和運動狀態, 建立如圖2 所示的坐標系。 框架中心為原點O, 慣性坐標系O-XYZ各坐標軸方向設置如下:靜止零位狀態下, 臺體軸線為X軸, 內環架軸線為Y軸, 外環架軸線為Z軸。 設置隨動坐標系OX1Y1Z1固連于臺體上, 以臺體中心為坐標原點,以臺體軸線為坐標系的X1軸。 設置隨動坐標系OX2Y2Z2固連于內環架上, 以內環架軸線為坐標系的Y2軸。 設置隨動坐標系O-X3Y3Z3固連于外環架, 以外環架軸線為坐標系的Z3軸。 各坐標系軸線的正向均指向軸端電機, 各框架轉動的正向符合右手定則, 各框架轉角范圍為[0°,360°]。

圖2 框架坐標系Fig.2 Coordinate systems of the frames

由慣性平臺結構與工作特性可知, 外環架的轉動會依次對內部框架運動產生影響。 外環架轉動帶動內環架和臺體轉動, 內環架轉動帶動臺體轉動, 而反之內環架轉動不影響外環架位置, 臺體轉動不影響內環架與外環架位置。 各框架的運動規律可用旋轉矩陣變換描述, 外環架繞Z3軸轉動θ3角度后, 其上的點在O-XYZ坐標系中的位置為

內環架繞Y2軸轉動θ2角度后, 其上的點在OXYZ坐標系中的位置為

臺體軸繞X1軸轉動θ1角度后, 其上的點在OXYZ坐標系中的位置為

2 系統實現

慣性平臺數字模型離線/在線驅動技術的實現主要包括三個方面: 三維數字樣機顯示和運動環境搭建、 樣機內部框架準確高效驅動方法以及三維模擬環境與實際慣性平臺接口技術。 主要實現途徑為: 首先, 基于三維CAD 軟件Creo 建立模型參數和計算機圖形學理論, 利用OpenGL 圖形庫函數搭建三維數字樣機的顯示和運動特性環境; 在此基礎上, 將復雜平臺結構進行輕量化處理, 并采用OpenGL 雙緩沖機制的方式實現平臺內部框架轉動的實時驅動; 然后, 研究數據傳輸機制和模型驅動方法, 實現三維數字樣機與實際平臺接口技術; 最后, 完成軟件與硬件的連接、 數據信號的采集與處理以及數據的實時傳輸, 進而驅動三維模型運動與顯示。

2.1 數字樣機顯示與運動環境

數字樣機顯示與運動環境搭建的技術途徑如圖3 所示。 首先通過三維CAD 軟件(以Creo 為例)對慣性平臺進行結構設計, 建立平臺的三維模型。通過模型數據創建Creo 模型與OpenGL 的接口, 基于OpenGL 對3D 平臺模型進行重繪。 利用計算機圖形學的變換關系, 實現模型框架的轉動及動畫顯示。

圖3 三維模型可視化環境搭建途徑Fig.3 Approach to building a 3D model visualization environment

利用Creo 三維軟件建立慣性平臺三維CAD 模型, 模型主要包括外環架、 內環架、 臺體等轉動部件以及平臺基座。 OpenGL 中無描述復雜形體的函數, 只能通過點、 線、 多邊形等基本圖形元素來建立物體模型, 因此將Creo 中創建的模型分別導出為OBJ 格式文件及其對應MTL 文件: OBJ 文件會以三角形單元信息保存模型結構信息, 如圖4所示; MTL 文件保存模型的材質信息。 其中, OBJ文件存儲的每行數據以v、 vn、 vt、 f 等字母開頭,分別表示節點坐標、 法向向量、 uv 貼圖坐標以及組成三角頂點的節點編號; MTL 文件中模型的材質信息以“Kd” 開頭。 通過不同數據格式即可定義數據載入函數, 實現模型數據的讀取。

圖4 箱體模型網格劃分Fig.4 Meshing of the box

Qt 對OpenGL 進行了多層封裝, 環境模型的搭建采用Qt 開發平臺自帶的OpenGL 實現。 在Open-GL 中, 需要將三維模型所在的局部空間經過一系列坐標變換轉換到屏幕空間進行顯示, 此過程的數學表達式如下

具體過程如圖5 所示: 三維模型原始坐標數據Vlocal通過左乘模型矩陣Mmodel將原始數據轉換到世界坐標系下, 通常采用函數void QMatrix4x4∷rotate(float angle, const QVector3D &vector)創建模型矩陣Mmodel, 變量vector 為模型旋轉軸, angle 為模型旋轉角度; 然后左乘以視圖矩陣Mview進一步將數據轉換到觀察坐標系下, 視圖矩陣由函數void QMatrix4x4∷lookAt(const QVector3D &eye, const QVector3D ¢er, const QVector3D &up)創建, 參數依次為照相機所在位置向量、 模型中心位置向量以及自定義的up 向量, 參數一和參數三的叉乘為觀察坐標系的Y向; 最后通過投影矩陣Mprojection變換到OpenGL 裁剪坐標系下, 進而在屏幕坐標系下正常顯示模型, 投影變換采用正射投影函數void QMatrix4x4∷ortho(float left, float right, float bottom,float top, float nearPlane, float farPlane)構造, 前兩個參數定義了平截頭體的左右坐標, 第三、 第四個參數定義了平截頭體的底部和上部, 最后兩個參數定義了近平面和遠平面的距離。 此外, 還需設置光照條件將三維物體映射到二維屏幕上。

圖5 OpenGL 中模型顯示坐標變換過程Fig.5 Coordinate translation process of model display in OpenGL

創建繼承自OpenGL 原有QOpenGLWidget 和QOpenGLExtraFunctions 類的子類MyOpenGLWidget,在其構造函數explicit MyOpenGLWidget()中調用自定義函數bool loadObj2()和bool loadMTL(), 載入三維模型與材質文件節點數據, 然后通過重載以下三個函數實現模型的繪制:

void initializeGL() / /OpenGL 進行初始化函數

void resizeGL(int w, int h) / /3D 模型視圖窗口設置

void paintGL() / /渲染環境及模型繪制

在void initializeGL()函數中進行OpenGL 三維建模環境初始化: 首先在初始化函數中創建并綁定頂點數組對象VAO 和頂點緩沖對象VBO; 其次通過Shader 類的構造函數實現著色器的創建并添加頂點和片段著色器; 然后在void resizeGL()函數中對OpenGL 視圖窗口進行設置, 設置窗口尺寸及模型正射投影; 最后在void paintGL() 函數中對模型環境進行渲染并繪圖, 函數邏輯流程如圖6所示。

圖6 void paintGL()函數流程圖Fig.6 Flowchart of void paintGL()

2.2 數字樣機高效驅動方法

慣性平臺在線測試過程的數據采樣周期短(只有幾個毫秒), 而正常的可視化動畫刷新頻率較低。 為盡可能跟隨硬件數據采集頻率, 通過對平臺系統內部復雜結構進行輕量化處理來增加動畫刷新頻率。 利用OpenGL 對三維平臺模型進行重構, 將平臺非重要部件進行線條化或點化輕量處理, 同時將基座、 框架、 臺體及臺體上儀表作三角形面片簡化顯示處理。 針對平臺內部結構復雜、幾何數據較多的特征, 通過采用點線顯示的方式來展示模型的主要運動部件及其運動特性。 完整的平臺結構包含各種緊固件、 電路板以及多種階梯面、 階梯孔等, 這類結構的建模數據較多, 但對觀察內部框架的運動無影響, 這類結構可以忽略。 然而, 為保證內部結構的真實性, 需將部件的整體結構留存。

在模型輕量化的基礎上, 通過OpenGL 雙緩沖機制實現實時高速的動畫顯示。 在動畫高頻刷新時, 雙緩沖技術保證了每一幀的完整展示, 通過提供兩個完整的緩存硬件或軟件, 使畫圖和顯示在兩個緩存中分別完成, 每畫完一幀交換2 個緩存指針。 實現方法為: 在OpenGL 的glutInitDisplay-Mode(glut_double|glut_single)中設置glut_double 來標識雙緩沖, glutSwapBuffers() 繪制完成后提交“畫板”。 在最新的OpenGL 圖形庫中, 該機制可自動實行。

OpenGL 中模型運動的實現依靠坐標的變換,通過定時器不斷刷新屏幕來實現模型位置的更新,進而實現各框架轉動動畫。 設置定時器刷新周期為4 ms, 利用槽函數進行響應, 重復更新模型,實現流程偽代碼如下:

框架運動的動畫實現流程如圖7 所示。

圖7 框架運動動畫實現流程圖Fig.7 Flowchart of implementation for frame motion animation

2.3 數字樣機與實際平臺數據接口

三維模擬環境與實際平臺接口主要是測試數據的傳輸, 三維模型運動特性數據(主要包括框架轉動速度、 轉動角度、 轉動方向等參數)通過外部輸入, 然后將讀取的數據賦值給程序內部的動畫驅動參數來驅動模型運動。 外部輸入方式可以為離線數據或實時數據。 離線數據的輸入可以通過Qt/OpenGL 的數據讀取功能直接讀取已保存的數據文件實現。 實時數據的讀取方式有兩種: 1)讀取實時保存的數據文件。 該方法的優點是只需對數據文件進行相關的篩選與讀取操作, 不受硬件通信協議的限制, 通用性強; 缺點是需不斷地刷新數據文件, 讀取效率較低。 2)直接讀取串口數據。 該方法的優點是讀取效率高, 但是受通信協議的影響, 若通信協議改變, 需重新設定串口讀取方式,同時需要測試過程預留串口。

為更好地兼容原平臺測試軟件, 實時數據采用第一種方式進行數據讀取。 該讀取方式需要根據現行的數據保存方式進行設定, 原測試軟件對數據進行實時采集和保存, 數據保存過程中會隨機切換到新文件中進行保存, 這就要求數據讀取方式能夠實時跟隨最新文件的最新數據, 讀取方式如圖8 所示, 具體流程如下:

圖8 實時測試數據讀取方式流程圖Fig.8 Flowchart of reading method for real-time test data

步驟1: 通過槽函數SLOT(showFileContents())觸發定時器;

步驟2: 進入槽函數程序, 判斷目前是否有打開的文件, 若否則刷新文件目錄, 選擇最新文件并打開, 若是則轉步驟4;

步驟3: 判斷已選擇的文件是否讀取過, 若是則進行下一步, 若否則記錄該文件編號, 刷新文件內容, 然后轉步驟5;

步驟4: 刷新文件內容, 并判斷現讀取的文件是否與之前讀取的文件長度相同, 若是則轉步驟7, 若否則進行一下步;

步驟5: 讀取最新文件保存的最新數據并在窗口中顯示讀取的數據內容, 同時驅動三維模型內部框架轉動;

步驟6: 判斷所有文件是否讀取完畢, 若否則轉回步驟1, 若是則進行下一步;

步驟7: 關閉定時器, 結束測試。

3 可視化系統開發與功能驗證

3.1 可視化系統組織構架

基于上述技術開發了慣性平臺三維可視化測試與示教系統, 系統操作界面如圖9 所示, 該系統主要包括工具欄模塊、 數據顯示模塊以及動畫仿真(模型可視化)模塊。

圖9 系統操作界面示意圖Fig.9 Diagram of system operation interface

工具欄模塊包括平臺視圖、 部件顯示、 數據處理和動畫演示等。 平臺視圖功能為實現平臺數字模型的視圖調整, 以方便觀察; 部件顯示主要包括基座隱藏/顯示、 外環隱藏/顯示、 內環隱藏/顯示、 臺體隱藏/顯示以及全部隱藏/顯示功能;數據處理主要實現歷程數據的圖表展示; 演示功能主要實現離線情況下數字模型的動畫演示。

數據顯示模塊主要包括實時數據、 歷程數據以及歷程數據的圖表顯示。 實時數據主要顯示三維模型外環架、 內環架與臺體的當前轉動角度,歷程數據主要顯示從開始時刻到當前時刻外環架、內環架與臺體的轉動角度, 圖表數據主要顯示從開始時刻到當前時刻三者轉動角度的變化趨勢。

動畫仿真模塊包括數字模型顯示、 測試過程操作、 回放示教過程操作。 數字模型顯示主要實現測試與回放過程中各框架的轉動動畫演示, 通過鼠標可以操作模型的旋轉, 鼠標滾輪實現模型縮放; 測試過程操作主要通過按鈕控件實現開始測試、 暫停測試與停止測試操作; 回放示教過程操作主要實現讀取保存的框架轉動歷史數據, 然后驅動模型進行動畫演示。

3.2 系統全功能測試驗證

在軟件開發階段, 以某三軸慣性平臺結構為例進行系統開發。 為驗證前文的可視化環境、 數字模型高效驅動方法以及所開發測試系統的實用性, 分別針對離線的培訓示教與測試回放功能以及在線測試過程功能進行驗證。

離線測試功能的驗證主要通過三種方法: 1)在實時數據處手動輸入各框架轉角, 通過調整框架按鈕實現框架的轉動; 對外環架、 內環架和臺體分別輸入90°, 觀察框架轉動與輸入一致。2)通過點擊工具欄的“動畫演示/動畫停止” 按鈕, 實現內部框架的轉動動畫。 動畫正常演示,隨機停止演示時三框架轉角均為235°, 實時數據顯示欄的角度與框架轉角一致, 如圖10 所示。3)通過系統的回放示教功能, 即對在線測試數據進行回放, 顯示界面如圖9 所示, 歷程數據顯示與模型動畫運動一致。 因此, 三種操作均實現了模型運動狀態的可視化, 驗證了仿真環境的正確性。

圖10 離線驗證Fig.10 Verification of offline test

在線測試驗證在開放式三軸框架試驗臺上進行, 需將數字樣機與試驗臺相連, 實現途徑如圖11 所示。 通過三個框架的姿態角傳感器獲取各框架轉角數據, 傳感器通過線纜與信號采集設備相連, 將測得的轉角數據傳輸給工控機的平臺測試軟件進行數據處理, 并實時保存于特定文件夾下。 通過實時讀取保存的轉角數據并驅動框架轉動, 即可觀察測試過程中內部框架的轉動狀態。姿態角傳感器的采樣周期設置為5 ms。 如圖12 所示, 測試過程中, 通過對比傳感器采集數據與可視化測試系統讀取數據, 可以發現可視化測試系統可實時讀取試驗臺框架轉角信息, 且動畫正常展示, 驗證了該系統在線測試的實用性與高效性。該系統已成功應用于測試部門對某平臺的測試與人員培訓過程, 提高了測試與培訓人員的排故與交流效率。

圖11 系統在線測試應用驗證Fig.11 Application verification of system online test

圖12 數據對比示意圖Fig.12 Diagram of data comparison

4 結論

針對慣性平臺整機測試過程中內部框架結構復雜及其運動狀態的不可觀測性, 基于Qt/OpenGL開發了一套慣性平臺三維可視化在線測試與示教系統。 通過三維CAD 軟件對慣性平臺進行建模并提取模型結構關鍵信息, 然后運用Qt/OpenGL 進行框架運動特性及模型可視化編程, 實現框架運動展示功能。 主要結論如下:

1)實現了OpenGL 與三維CAD 建模軟件接口,基于Qt/OpenGL 搭建了慣性平臺三維數字樣機顯示與運動環境, 明確了數字樣機的繪制及驅動方法;

2)研究了數字模型高效驅動方法, 采用數字模型輕量化與OpenGL 雙緩沖機制保證了模型的高效驅動;

3)提出了在線讀取最新保存數據的方法, 突破了平臺數字樣機與試驗臺在線測試接口技術, 實現了數字模型對物理平臺運動的實時跟隨;

4)開發了慣性平臺三維可視化在線測試與示教系統, 通過離線與在線測試驗證了方法的可行性以及系統的實用性, 實現了平臺內部框架運動狀態的可視化。

猜你喜歡
可視化動畫模型
一半模型
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
做個動畫給你看
重要模型『一線三等角』
動畫發展史
基于CGAL和OpenGL的海底地形三維可視化
重尾非線性自回歸模型自加權M-估計的漸近分布
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 91精品亚洲| 99一级毛片| 夜夜拍夜夜爽| 亚洲水蜜桃久久综合网站| 中国一级特黄视频| 国产激情在线视频| 久久夜色精品国产嚕嚕亚洲av| 尤物亚洲最大AV无码网站| 中文字幕在线看| 国产成人久久综合一区| 国产主播在线一区| 亚洲伊人久久精品影院| 热re99久久精品国99热| 日本人妻一区二区三区不卡影院| 久久国产精品77777| 亚洲浓毛av| 日韩AV无码免费一二三区 | 一本色道久久88| 亚洲一欧洲中文字幕在线| 综合天天色| 国产精品亚洲欧美日韩久久| 免费激情网址| 丁香亚洲综合五月天婷婷| 欧美午夜性视频| 国产日本欧美亚洲精品视| 欧美国产另类| 亚洲国产成人综合精品2020| 国产黄网站在线观看| a级毛片网| 黄色网页在线播放| 原味小视频在线www国产| 日韩天堂网| 激情综合五月网| 久久亚洲天堂| 久久国产精品夜色| 一级黄色片网| 国产网站免费看| 欧美精品三级在线| 伊人91在线| 精品国产成人a在线观看| 国产精品19p| 高清国产在线| 日韩色图在线观看| 国产成人免费高清AⅤ| 啪啪啪亚洲无码| 成人年鲁鲁在线观看视频| 在线观看亚洲成人| 国产jizzjizz视频| 国产精品成人一区二区| 99热这里都是国产精品| 国产精选自拍| 中文字幕亚洲精品2页| 亚洲久悠悠色悠在线播放| 亚洲色图在线观看| 免费无码AV片在线观看中文| 亚洲无码91视频| 久久综合成人| 成人午夜免费观看| 午夜免费视频网站| 国产精品尤物铁牛tv| 特级欧美视频aaaaaa| 日本午夜精品一本在线观看 | 亚洲香蕉伊综合在人在线| 国产美女91视频| 免费看久久精品99| 无码aⅴ精品一区二区三区| 国产精品成人第一区| 国产成人精品亚洲日本对白优播| 亚洲欧洲国产成人综合不卡| 一本综合久久| 亚洲性一区| 婷五月综合| 亚洲欧美成aⅴ人在线观看| 日本成人福利视频| 国产黄在线观看| 精品久久人人爽人人玩人人妻| 日本高清有码人妻| 日韩精品一区二区三区免费| 欧洲在线免费视频| 中文字幕 91| 欧美性精品| 色综合网址|