崔淑慧, 閆文民, 武彥偉, 王目凱, 王兆凱
(1. 北京航天控制儀器研究所, 北京 100039;2. 中國特種設(shè)備檢測研究院, 北京 100026)
平臺式慣性導航系統(tǒng)利用內(nèi)部框架建立起隔離載體角運動的物理平臺, 進而建立一個與載體角運動無關(guān)的導航坐標系, 為加速度和姿態(tài)角的測量提供坐標基準。 平臺內(nèi)部框架狀態(tài)是保證平臺式慣導系統(tǒng)導航與制導精度的基礎(chǔ), 因此框架轉(zhuǎn)動狀態(tài)是測試人員關(guān)注的重點。 然而平臺內(nèi)部結(jié)構(gòu)復雜, 整機封閉測試與培訓過程中, 內(nèi)部框架轉(zhuǎn)動情況及相對位置僅能通過框架角信息進行想象, 缺乏直觀性, 導致現(xiàn)場討論不便, 對現(xiàn)場排故和培訓效果造成一定影響。
視景仿真技術(shù)可以形象、 直觀、 實時地模擬空間物體的運動, 被廣泛應(yīng)用于機器人跟蹤與模擬訓練、 導彈閉環(huán)校射、 船舶航行等領(lǐng)域。 開放式圖形庫(Open Graphics Library, OpenGL) 具有強大的底層繪圖功能且開發(fā)的應(yīng)用程序可移植性強,Qt 內(nèi)部封裝OpenGL 模塊可快速構(gòu)建應(yīng)用程序, 因此Qt/OpenGL 被廣泛應(yīng)用于可視化平臺的開發(fā)。王曉輝等[1]基于自主研制的HAJIF 系統(tǒng)開發(fā)了一種專用有限元軟件GUI 模塊, 該模塊利用Qt 技術(shù)的信號槽機制實現(xiàn)數(shù)據(jù)的高效率通信, 提高人機交互效率, 同時利用OpenGL 圖形展示功能將有HAJIF 限元分析過程可視化。 楊義波等[2]利用Qt/OpenGL 開發(fā)了針對挖掘機的三維模型可視化軟件, 通過建立動力學模型結(jié)合測量設(shè)備, 獲取各部件間運動狀態(tài)及末端姿態(tài), 并基于分層控制實現(xiàn)了挖掘機運動的實時展示。 馮志強等[3]利用Qt/OpenGL 技術(shù)開發(fā)了具有友好用戶界面的自主CAE平臺, 實現(xiàn)了跨系統(tǒng)用戶界面顯示及多系統(tǒng)間數(shù)據(jù)共享。 賈康等[4]針對螺旋特征加工問題, 提出了一種基于OpenGL 可視化編程的將空間幾何問題映射于圖像空間的求解方法。 XIONG 等[5]利用人機交互方法基于Qt 框架設(shè)計了一套跨平臺與可視化的地質(zhì)模型軟件, 基于OpenGL 將3D 模型實時顯示,該軟件適用于石油、 燃氣以及礦石資源開采。ALLWRIGHT 等[6]針對多機器人構(gòu)建硬件昂貴且耗時的情況, 利用Qt/OpenGL 并基于硬件測試數(shù)據(jù)實現(xiàn)了多機器人運動的可視化。 HU 等[7]針對機床加工和數(shù)字化制造車間管理無法連接的問題, 用Qt/OpenGL 設(shè)計了基于現(xiàn)場環(huán)境采集的可視化三維模型顯示終端監(jiān)控系統(tǒng), 可實時顯示模型動作和動態(tài)數(shù)據(jù)。 可見, Qt/OpenGL 技術(shù)可以實現(xiàn)多種工程機械運動的可視化, 但是慣性平臺內(nèi)部框架運動特性和測試環(huán)境與上述研究有所不同, 同時其可視化系統(tǒng)的相關(guān)開發(fā)尚未見報道。
因此, 為增強平臺測試與培訓過程中高效、舒適的人機交互功能, 提高平臺調(diào)試、 排故過程中的交流效率, 基于Qt/OpenGL 開發(fā)了慣性平臺內(nèi)部運動部件三維視景仿真系統(tǒng)。 探索三維視景仿真技術(shù)在平臺系統(tǒng)中的應(yīng)用方法, 研究平臺數(shù)字模型與硬件的接口調(diào)試技術(shù)以及模型高效的實時/離線驅(qū)動技術(shù), 具有重要的科學與應(yīng)用價值。
平臺式慣導系統(tǒng)框架是隔離平臺與載體角運動和保證慣性空間穩(wěn)定的關(guān)鍵部件, 三軸慣性平臺內(nèi)部框架結(jié)構(gòu)如圖1 所示。 如圖1(a)[8]所示, 整個框架通過外環(huán)架的軸端組件固定于基座上, 內(nèi)環(huán)架通過軸端組件固定于外環(huán)架上, 其軸線與外環(huán)架軸線正交; 臺體也通過軸端組件固定于內(nèi)環(huán)架上, 臺體軸線與另外兩個框架軸線正交; 三個軸端電機協(xié)同作用, 將臺體穩(wěn)定在慣性空間。 通常臺體上安裝三個正交方向的加速度計和三個正交方向的陀螺儀, 分別測量載體在三個正交方向的加速度和角加速度, 進而通過解算獲取載體位置信息。 平臺內(nèi)部各框架轉(zhuǎn)動相互耦合, 各框架位置狀態(tài)難以直接描述。 平臺內(nèi)部框架實物圖如圖1(b)[9]所示, 可見慣性平臺內(nèi)部各儀表和電氣線路較多且結(jié)構(gòu)復雜。
圖1 慣性平臺內(nèi)部框架結(jié)構(gòu)Fig.1 Internal frame structure of the inertial platform
為更好地描述慣性平臺內(nèi)部框架的位置和運動狀態(tài), 建立如圖2 所示的坐標系。 框架中心為原點O, 慣性坐標系O-XYZ各坐標軸方向設(shè)置如下:靜止零位狀態(tài)下, 臺體軸線為X軸, 內(nèi)環(huán)架軸線為Y軸, 外環(huán)架軸線為Z軸。 設(shè)置隨動坐標系OX1Y1Z1固連于臺體上, 以臺體中心為坐標原點,以臺體軸線為坐標系的X1軸。 設(shè)置隨動坐標系OX2Y2Z2固連于內(nèi)環(huán)架上, 以內(nèi)環(huán)架軸線為坐標系的Y2軸。 設(shè)置隨動坐標系O-X3Y3Z3固連于外環(huán)架, 以外環(huán)架軸線為坐標系的Z3軸。 各坐標系軸線的正向均指向軸端電機, 各框架轉(zhuǎn)動的正向符合右手定則, 各框架轉(zhuǎn)角范圍為[0°,360°]。
圖2 框架坐標系Fig.2 Coordinate systems of the frames
由慣性平臺結(jié)構(gòu)與工作特性可知, 外環(huán)架的轉(zhuǎn)動會依次對內(nèi)部框架運動產(chǎn)生影響。 外環(huán)架轉(zhuǎn)動帶動內(nèi)環(huán)架和臺體轉(zhuǎn)動, 內(nèi)環(huán)架轉(zhuǎn)動帶動臺體轉(zhuǎn)動, 而反之內(nèi)環(huán)架轉(zhuǎn)動不影響外環(huán)架位置, 臺體轉(zhuǎn)動不影響內(nèi)環(huán)架與外環(huán)架位置。 各框架的運動規(guī)律可用旋轉(zhuǎn)矩陣變換描述, 外環(huán)架繞Z3軸轉(zhuǎn)動θ3角度后, 其上的點在O-XYZ坐標系中的位置為
內(nèi)環(huán)架繞Y2軸轉(zhuǎn)動θ2角度后, 其上的點在OXYZ坐標系中的位置為
臺體軸繞X1軸轉(zhuǎn)動θ1角度后, 其上的點在OXYZ坐標系中的位置為
慣性平臺數(shù)字模型離線/在線驅(qū)動技術(shù)的實現(xiàn)主要包括三個方面: 三維數(shù)字樣機顯示和運動環(huán)境搭建、 樣機內(nèi)部框架準確高效驅(qū)動方法以及三維模擬環(huán)境與實際慣性平臺接口技術(shù)。 主要實現(xiàn)途徑為: 首先, 基于三維CAD 軟件Creo 建立模型參數(shù)和計算機圖形學理論, 利用OpenGL 圖形庫函數(shù)搭建三維數(shù)字樣機的顯示和運動特性環(huán)境; 在此基礎(chǔ)上, 將復雜平臺結(jié)構(gòu)進行輕量化處理, 并采用OpenGL 雙緩沖機制的方式實現(xiàn)平臺內(nèi)部框架轉(zhuǎn)動的實時驅(qū)動; 然后, 研究數(shù)據(jù)傳輸機制和模型驅(qū)動方法, 實現(xiàn)三維數(shù)字樣機與實際平臺接口技術(shù); 最后, 完成軟件與硬件的連接、 數(shù)據(jù)信號的采集與處理以及數(shù)據(jù)的實時傳輸, 進而驅(qū)動三維模型運動與顯示。
數(shù)字樣機顯示與運動環(huán)境搭建的技術(shù)途徑如圖3 所示。 首先通過三維CAD 軟件(以Creo 為例)對慣性平臺進行結(jié)構(gòu)設(shè)計, 建立平臺的三維模型。通過模型數(shù)據(jù)創(chuàng)建Creo 模型與OpenGL 的接口, 基于OpenGL 對3D 平臺模型進行重繪。 利用計算機圖形學的變換關(guān)系, 實現(xiàn)模型框架的轉(zhuǎn)動及動畫顯示。
圖3 三維模型可視化環(huán)境搭建途徑Fig.3 Approach to building a 3D model visualization environment
利用Creo 三維軟件建立慣性平臺三維CAD 模型, 模型主要包括外環(huán)架、 內(nèi)環(huán)架、 臺體等轉(zhuǎn)動部件以及平臺基座。 OpenGL 中無描述復雜形體的函數(shù), 只能通過點、 線、 多邊形等基本圖形元素來建立物體模型, 因此將Creo 中創(chuàng)建的模型分別導出為OBJ 格式文件及其對應(yīng)MTL 文件: OBJ 文件會以三角形單元信息保存模型結(jié)構(gòu)信息, 如圖4所示; MTL 文件保存模型的材質(zhì)信息。 其中, OBJ文件存儲的每行數(shù)據(jù)以v、 vn、 vt、 f 等字母開頭,分別表示節(jié)點坐標、 法向向量、 uv 貼圖坐標以及組成三角頂點的節(jié)點編號; MTL 文件中模型的材質(zhì)信息以“Kd” 開頭。 通過不同數(shù)據(jù)格式即可定義數(shù)據(jù)載入函數(shù), 實現(xiàn)模型數(shù)據(jù)的讀取。
圖4 箱體模型網(wǎng)格劃分Fig.4 Meshing of the box
Qt 對OpenGL 進行了多層封裝, 環(huán)境模型的搭建采用Qt 開發(fā)平臺自帶的OpenGL 實現(xiàn)。 在Open-GL 中, 需要將三維模型所在的局部空間經(jīng)過一系列坐標變換轉(zhuǎn)換到屏幕空間進行顯示, 此過程的數(shù)學表達式如下
具體過程如圖5 所示: 三維模型原始坐標數(shù)據(jù)Vlocal通過左乘模型矩陣Mmodel將原始數(shù)據(jù)轉(zhuǎn)換到世界坐標系下, 通常采用函數(shù)void QMatrix4x4∷rotate(float angle, const QVector3D &vector)創(chuàng)建模型矩陣Mmodel, 變量vector 為模型旋轉(zhuǎn)軸, angle 為模型旋轉(zhuǎn)角度; 然后左乘以視圖矩陣Mview進一步將數(shù)據(jù)轉(zhuǎn)換到觀察坐標系下, 視圖矩陣由函數(shù)void QMatrix4x4∷lookAt(const QVector3D &eye, const QVector3D ¢er, const QVector3D &up)創(chuàng)建, 參數(shù)依次為照相機所在位置向量、 模型中心位置向量以及自定義的up 向量, 參數(shù)一和參數(shù)三的叉乘為觀察坐標系的Y向; 最后通過投影矩陣Mprojection變換到OpenGL 裁剪坐標系下, 進而在屏幕坐標系下正常顯示模型, 投影變換采用正射投影函數(shù)void QMatrix4x4∷ortho(float left, float right, float bottom,float top, float nearPlane, float farPlane)構(gòu)造, 前兩個參數(shù)定義了平截頭體的左右坐標, 第三、 第四個參數(shù)定義了平截頭體的底部和上部, 最后兩個參數(shù)定義了近平面和遠平面的距離。 此外, 還需設(shè)置光照條件將三維物體映射到二維屏幕上。
圖5 OpenGL 中模型顯示坐標變換過程Fig.5 Coordinate translation process of model display in OpenGL
創(chuàng)建繼承自O(shè)penGL 原有QOpenGLWidget 和QOpenGLExtraFunctions 類的子類MyOpenGLWidget,在其構(gòu)造函數(shù)explicit MyOpenGLWidget()中調(diào)用自定義函數(shù)bool loadObj2()和bool loadMTL(), 載入三維模型與材質(zhì)文件節(jié)點數(shù)據(jù), 然后通過重載以下三個函數(shù)實現(xiàn)模型的繪制:
void initializeGL() / /OpenGL 進行初始化函數(shù)
void resizeGL(int w, int h) / /3D 模型視圖窗口設(shè)置
void paintGL() / /渲染環(huán)境及模型繪制
在void initializeGL()函數(shù)中進行OpenGL 三維建模環(huán)境初始化: 首先在初始化函數(shù)中創(chuàng)建并綁定頂點數(shù)組對象VAO 和頂點緩沖對象VBO; 其次通過Shader 類的構(gòu)造函數(shù)實現(xiàn)著色器的創(chuàng)建并添加頂點和片段著色器; 然后在void resizeGL()函數(shù)中對OpenGL 視圖窗口進行設(shè)置, 設(shè)置窗口尺寸及模型正射投影; 最后在void paintGL() 函數(shù)中對模型環(huán)境進行渲染并繪圖, 函數(shù)邏輯流程如圖6所示。
圖6 void paintGL()函數(shù)流程圖Fig.6 Flowchart of void paintGL()
慣性平臺在線測試過程的數(shù)據(jù)采樣周期短(只有幾個毫秒), 而正常的可視化動畫刷新頻率較低。 為盡可能跟隨硬件數(shù)據(jù)采集頻率, 通過對平臺系統(tǒng)內(nèi)部復雜結(jié)構(gòu)進行輕量化處理來增加動畫刷新頻率。 利用OpenGL 對三維平臺模型進行重構(gòu), 將平臺非重要部件進行線條化或點化輕量處理, 同時將基座、 框架、 臺體及臺體上儀表作三角形面片簡化顯示處理。 針對平臺內(nèi)部結(jié)構(gòu)復雜、幾何數(shù)據(jù)較多的特征, 通過采用點線顯示的方式來展示模型的主要運動部件及其運動特性。 完整的平臺結(jié)構(gòu)包含各種緊固件、 電路板以及多種階梯面、 階梯孔等, 這類結(jié)構(gòu)的建模數(shù)據(jù)較多, 但對觀察內(nèi)部框架的運動無影響, 這類結(jié)構(gòu)可以忽略。 然而, 為保證內(nèi)部結(jié)構(gòu)的真實性, 需將部件的整體結(jié)構(gòu)留存。
在模型輕量化的基礎(chǔ)上, 通過OpenGL 雙緩沖機制實現(xiàn)實時高速的動畫顯示。 在動畫高頻刷新時, 雙緩沖技術(shù)保證了每一幀的完整展示, 通過提供兩個完整的緩存硬件或軟件, 使畫圖和顯示在兩個緩存中分別完成, 每畫完一幀交換2 個緩存指針。 實現(xiàn)方法為: 在OpenGL 的glutInitDisplay-Mode(glut_double|glut_single)中設(shè)置glut_double 來標識雙緩沖, glutSwapBuffers() 繪制完成后提交“畫板”。 在最新的OpenGL 圖形庫中, 該機制可自動實行。
OpenGL 中模型運動的實現(xiàn)依靠坐標的變換,通過定時器不斷刷新屏幕來實現(xiàn)模型位置的更新,進而實現(xiàn)各框架轉(zhuǎn)動動畫。 設(shè)置定時器刷新周期為4 ms, 利用槽函數(shù)進行響應(yīng), 重復更新模型,實現(xiàn)流程偽代碼如下:
框架運動的動畫實現(xiàn)流程如圖7 所示。
圖7 框架運動動畫實現(xiàn)流程圖Fig.7 Flowchart of implementation for frame motion animation
三維模擬環(huán)境與實際平臺接口主要是測試數(shù)據(jù)的傳輸, 三維模型運動特性數(shù)據(jù)(主要包括框架轉(zhuǎn)動速度、 轉(zhuǎn)動角度、 轉(zhuǎn)動方向等參數(shù))通過外部輸入, 然后將讀取的數(shù)據(jù)賦值給程序內(nèi)部的動畫驅(qū)動參數(shù)來驅(qū)動模型運動。 外部輸入方式可以為離線數(shù)據(jù)或?qū)崟r數(shù)據(jù)。 離線數(shù)據(jù)的輸入可以通過Qt/OpenGL 的數(shù)據(jù)讀取功能直接讀取已保存的數(shù)據(jù)文件實現(xiàn)。 實時數(shù)據(jù)的讀取方式有兩種: 1)讀取實時保存的數(shù)據(jù)文件。 該方法的優(yōu)點是只需對數(shù)據(jù)文件進行相關(guān)的篩選與讀取操作, 不受硬件通信協(xié)議的限制, 通用性強; 缺點是需不斷地刷新數(shù)據(jù)文件, 讀取效率較低。 2)直接讀取串口數(shù)據(jù)。 該方法的優(yōu)點是讀取效率高, 但是受通信協(xié)議的影響, 若通信協(xié)議改變, 需重新設(shè)定串口讀取方式,同時需要測試過程預(yù)留串口。
為更好地兼容原平臺測試軟件, 實時數(shù)據(jù)采用第一種方式進行數(shù)據(jù)讀取。 該讀取方式需要根據(jù)現(xiàn)行的數(shù)據(jù)保存方式進行設(shè)定, 原測試軟件對數(shù)據(jù)進行實時采集和保存, 數(shù)據(jù)保存過程中會隨機切換到新文件中進行保存, 這就要求數(shù)據(jù)讀取方式能夠?qū)崟r跟隨最新文件的最新數(shù)據(jù), 讀取方式如圖8 所示, 具體流程如下:
圖8 實時測試數(shù)據(jù)讀取方式流程圖Fig.8 Flowchart of reading method for real-time test data
步驟1: 通過槽函數(shù)SLOT(showFileContents())觸發(fā)定時器;
步驟2: 進入槽函數(shù)程序, 判斷目前是否有打開的文件, 若否則刷新文件目錄, 選擇最新文件并打開, 若是則轉(zhuǎn)步驟4;
步驟3: 判斷已選擇的文件是否讀取過, 若是則進行下一步, 若否則記錄該文件編號, 刷新文件內(nèi)容, 然后轉(zhuǎn)步驟5;
步驟4: 刷新文件內(nèi)容, 并判斷現(xiàn)讀取的文件是否與之前讀取的文件長度相同, 若是則轉(zhuǎn)步驟7, 若否則進行一下步;
步驟5: 讀取最新文件保存的最新數(shù)據(jù)并在窗口中顯示讀取的數(shù)據(jù)內(nèi)容, 同時驅(qū)動三維模型內(nèi)部框架轉(zhuǎn)動;
步驟6: 判斷所有文件是否讀取完畢, 若否則轉(zhuǎn)回步驟1, 若是則進行下一步;
步驟7: 關(guān)閉定時器, 結(jié)束測試。
基于上述技術(shù)開發(fā)了慣性平臺三維可視化測試與示教系統(tǒng), 系統(tǒng)操作界面如圖9 所示, 該系統(tǒng)主要包括工具欄模塊、 數(shù)據(jù)顯示模塊以及動畫仿真(模型可視化)模塊。
圖9 系統(tǒng)操作界面示意圖Fig.9 Diagram of system operation interface
工具欄模塊包括平臺視圖、 部件顯示、 數(shù)據(jù)處理和動畫演示等。 平臺視圖功能為實現(xiàn)平臺數(shù)字模型的視圖調(diào)整, 以方便觀察; 部件顯示主要包括基座隱藏/顯示、 外環(huán)隱藏/顯示、 內(nèi)環(huán)隱藏/顯示、 臺體隱藏/顯示以及全部隱藏/顯示功能;數(shù)據(jù)處理主要實現(xiàn)歷程數(shù)據(jù)的圖表展示; 演示功能主要實現(xiàn)離線情況下數(shù)字模型的動畫演示。
數(shù)據(jù)顯示模塊主要包括實時數(shù)據(jù)、 歷程數(shù)據(jù)以及歷程數(shù)據(jù)的圖表顯示。 實時數(shù)據(jù)主要顯示三維模型外環(huán)架、 內(nèi)環(huán)架與臺體的當前轉(zhuǎn)動角度,歷程數(shù)據(jù)主要顯示從開始時刻到當前時刻外環(huán)架、內(nèi)環(huán)架與臺體的轉(zhuǎn)動角度, 圖表數(shù)據(jù)主要顯示從開始時刻到當前時刻三者轉(zhuǎn)動角度的變化趨勢。
動畫仿真模塊包括數(shù)字模型顯示、 測試過程操作、 回放示教過程操作。 數(shù)字模型顯示主要實現(xiàn)測試與回放過程中各框架的轉(zhuǎn)動動畫演示, 通過鼠標可以操作模型的旋轉(zhuǎn), 鼠標滾輪實現(xiàn)模型縮放; 測試過程操作主要通過按鈕控件實現(xiàn)開始測試、 暫停測試與停止測試操作; 回放示教過程操作主要實現(xiàn)讀取保存的框架轉(zhuǎn)動歷史數(shù)據(jù), 然后驅(qū)動模型進行動畫演示。
在軟件開發(fā)階段, 以某三軸慣性平臺結(jié)構(gòu)為例進行系統(tǒng)開發(fā)。 為驗證前文的可視化環(huán)境、 數(shù)字模型高效驅(qū)動方法以及所開發(fā)測試系統(tǒng)的實用性, 分別針對離線的培訓示教與測試回放功能以及在線測試過程功能進行驗證。
離線測試功能的驗證主要通過三種方法: 1)在實時數(shù)據(jù)處手動輸入各框架轉(zhuǎn)角, 通過調(diào)整框架按鈕實現(xiàn)框架的轉(zhuǎn)動; 對外環(huán)架、 內(nèi)環(huán)架和臺體分別輸入90°, 觀察框架轉(zhuǎn)動與輸入一致。2)通過點擊工具欄的“動畫演示/動畫停止” 按鈕, 實現(xiàn)內(nèi)部框架的轉(zhuǎn)動動畫。 動畫正常演示,隨機停止演示時三框架轉(zhuǎn)角均為235°, 實時數(shù)據(jù)顯示欄的角度與框架轉(zhuǎn)角一致, 如圖10 所示。3)通過系統(tǒng)的回放示教功能, 即對在線測試數(shù)據(jù)進行回放, 顯示界面如圖9 所示, 歷程數(shù)據(jù)顯示與模型動畫運動一致。 因此, 三種操作均實現(xiàn)了模型運動狀態(tài)的可視化, 驗證了仿真環(huán)境的正確性。
圖10 離線驗證Fig.10 Verification of offline test
在線測試驗證在開放式三軸框架試驗臺上進行, 需將數(shù)字樣機與試驗臺相連, 實現(xiàn)途徑如圖11 所示。 通過三個框架的姿態(tài)角傳感器獲取各框架轉(zhuǎn)角數(shù)據(jù), 傳感器通過線纜與信號采集設(shè)備相連, 將測得的轉(zhuǎn)角數(shù)據(jù)傳輸給工控機的平臺測試軟件進行數(shù)據(jù)處理, 并實時保存于特定文件夾下。 通過實時讀取保存的轉(zhuǎn)角數(shù)據(jù)并驅(qū)動框架轉(zhuǎn)動, 即可觀察測試過程中內(nèi)部框架的轉(zhuǎn)動狀態(tài)。姿態(tài)角傳感器的采樣周期設(shè)置為5 ms。 如圖12 所示, 測試過程中, 通過對比傳感器采集數(shù)據(jù)與可視化測試系統(tǒng)讀取數(shù)據(jù), 可以發(fā)現(xiàn)可視化測試系統(tǒng)可實時讀取試驗臺框架轉(zhuǎn)角信息, 且動畫正常展示, 驗證了該系統(tǒng)在線測試的實用性與高效性。該系統(tǒng)已成功應(yīng)用于測試部門對某平臺的測試與人員培訓過程, 提高了測試與培訓人員的排故與交流效率。
圖11 系統(tǒng)在線測試應(yīng)用驗證Fig.11 Application verification of system online test
圖12 數(shù)據(jù)對比示意圖Fig.12 Diagram of data comparison
針對慣性平臺整機測試過程中內(nèi)部框架結(jié)構(gòu)復雜及其運動狀態(tài)的不可觀測性, 基于Qt/OpenGL開發(fā)了一套慣性平臺三維可視化在線測試與示教系統(tǒng)。 通過三維CAD 軟件對慣性平臺進行建模并提取模型結(jié)構(gòu)關(guān)鍵信息, 然后運用Qt/OpenGL 進行框架運動特性及模型可視化編程, 實現(xiàn)框架運動展示功能。 主要結(jié)論如下:
1)實現(xiàn)了OpenGL 與三維CAD 建模軟件接口,基于Qt/OpenGL 搭建了慣性平臺三維數(shù)字樣機顯示與運動環(huán)境, 明確了數(shù)字樣機的繪制及驅(qū)動方法;
2)研究了數(shù)字模型高效驅(qū)動方法, 采用數(shù)字模型輕量化與OpenGL 雙緩沖機制保證了模型的高效驅(qū)動;
3)提出了在線讀取最新保存數(shù)據(jù)的方法, 突破了平臺數(shù)字樣機與試驗臺在線測試接口技術(shù), 實現(xiàn)了數(shù)字模型對物理平臺運動的實時跟隨;
4)開發(fā)了慣性平臺三維可視化在線測試與示教系統(tǒng), 通過離線與在線測試驗證了方法的可行性以及系統(tǒng)的實用性, 實現(xiàn)了平臺內(nèi)部框架運動狀態(tài)的可視化。