徐 源, 沈建新(南京航空航天大學 機電學院, 南京 210016)
基于OpenGL的翼身調姿對接仿真系統開發①
徐 源, 沈建新
(南京航空航天大學 機電學院, 南京 210016)
針對一種由三軸定位器構成的飛機翼身調姿對接系統, 闡述其調姿對接流程, 通過機身、機翼軌跡規劃及其相應的定位器運動學逆解, 實現其調姿算法. 采用面向對象技術, 在Visual Studio 2010環境下利用OpenGL(Open Graphic Library)圖形庫函數開發翼身調姿對接仿真軟件, 結合定位器運動學方程和翼身軌跡規劃實現整個模型在軟件界面中的動態仿真, 仿真結果能夠直觀反映機身或機翼位姿及其動態過程, 驗證了翼身調姿對接算法的正確性.
軌跡規劃; 運動學逆解; OpenGL; 運動學仿真
飛機翼身調姿對接是飛機總裝的重要組成部分,傳統的裝配方式是利用固定工裝型架定位和人工對接裝配相結合的方法, 但其裝配效率低、人工操作困難等缺點已難以適應現代飛機裝配的要求. 不斷提高飛機裝配柔性化、數字化、自動化的水平已成為飛機裝配技術發展的必然趨勢[1,2].
在飛機裝配的前期準備中, 運動仿真發揮著至關重要的作用. 三維環境中, 借助三維數字化模型, 采用三維裝配指令規劃方法, 即可實現裝配仿真. 提前模擬翼身調姿對接過程, 能夠及時發現運動中可能出現的問題, 為優化調姿對接運動軌跡、指導工作人員操作提供平臺[3-5].
對于飛機翼身調姿對接仿真, 目前通常采用兩種方法, ①使用UG、Pro/E、SolidWorks、CATIA等三維軟件進行三維建模和運動仿真. 但其只能實現簡單的機構仿真, 難以實現調姿對接過程中飛機部件在不同姿態下的調整, 也無法按照相應的軌跡規劃進行仿真.②對上述三維軟件進行二次開發, 雖然三維數據是統一的, 不需要進行模型的轉換, 但必須依賴原有軟件的功能, 不能獨立運行[6-9].
OpenGL是一種強大的圖形編程接口, 具有很好的三維建模能力, 不存在上述問題的限制[10]. 因此為了更直觀的模擬飛機翼身調姿對接現場, 通過嵌入正逆運動學、軌跡規劃等算法, 開發基于OpenGL和MFC的翼身調姿對接虛擬仿真實驗平臺. 運用計算機圖形學和虛擬現實技術, 將整個平臺的三維數據及調姿對接數據轉換為相應的場景和運動, 最終實現飛機翼身調姿對接三維可視化仿真.
1.1 基于MFC的OpenGL應用程序框架
OpenGL是一個跨編程語言的三維圖形軟件庫,具有較好的兼容性, 可在不同平臺的操作系統間進行移植[11]. 其本質為底層圖形庫, 并不提供大量的實體圖元, 因此無法直接建立場景. 但是通過編寫的轉換讀取程序, 可將Pro/E、CATIA等軟件設計的模型轉換為OpenGL可繪制的頂點數組, 從而實現三維模型的讀取和顯示. 翼身調姿對接仿真軟件是在Windows系統下開發的, 但只通過OpenGL并不能實現可視化的界面管理. MFC是微軟基礎類庫, 以C++類的方式封裝了Windows API, 其中包含很多Windows控件和組件的封裝類[12]. 借助MFC圖形用戶界面的應用程序框架, 可以快速完成仿真系統界面的設計, 提高仿真軟件開發的效率.
1.2 調姿對接系統流程
翼身調姿對接包括四個階段, 分別是: ①機身調姿; ②左機翼調姿; ③右機翼調姿; ④翼身對合. 機身調姿是通過獲取機身初始位姿和目標位姿實現機身軌跡的解算, 根據解算結果逆解出定位器各軸的驅動量,最終完成機身調姿. 左機翼調姿和右機翼調姿與機身調姿類似, 通過軌跡解算和逆解定位器各軸驅動量,實現機翼調姿. 翼身對合則是在完成機身和機翼調姿后, 機身固定不動, 機翼沿著對接方向平移, 從而實現機翼與機身的對合.
無論在哪一個階段, 都可以將調姿對接過程抽象為剛體位姿的調整問題, 即利用調姿對接算法, 最終實現機身或機翼從初始位置到目標位置的調整. 整個調整過程的系統圖如圖1所示.

圖1 翼身調姿對接系統圖
2.1 定位器運動學逆解
機身與機翼調姿機構類似, 均由三個三軸定位器及其相應部件組成, 三個三軸定位器的基座固定在地面上, 機身、機翼則通過吸附在其表面的工藝接頭與定位器鉸接相連, 機身或機翼為調姿對接運動平臺.調姿機構的運動學結構簡圖如圖2所示. 其中Ni( i=1,2,3) 為第i個定位器, 三個定位器采用3-2-1自由度的方式安排[13], 即N1為三驅動定位器, N2為兩驅動定位器, N3為一驅動定位器.
由于三軸定位器接頭處固接在機身或機翼上, 其工藝接頭在機身或機翼局部坐標系下的位置固定, 定位器的6個驅動量為工藝接頭在全局坐標系下的變化值. 為了獲得機身、機翼局局部坐標系中工藝接頭在全局坐標系下的坐標, 可以通過坐標系原點之間的平移變換和坐標系軸的旋轉變換來實現.

圖2 調姿平臺運動學結構簡圖
設Om為全局坐標系, On為機身或機翼局部坐標系, 局部坐標系可由測量調姿基準點來確定[14],為第i個定位器的工藝接頭在全局坐標系下的坐標值,為第i個定位器工藝接頭在機身機翼局部坐標系下的坐標值,P為兩坐標系原點的差值.
對于平移變換, 只需要加上坐標系原點間的差值即可; 對于旋轉變換, 按照旋轉軸旋轉先后順序的不同, 可以分為繞X-Y-Z、X-Z-Y、Y-X-Z、Y-Z-X、Z-X-Y、Z-Y-X六種方式, 并且每次旋轉都是繞轉動后的新的軸進行變換, 每個旋轉矩陣從左往右乘, 相乘的順序與轉動的次序相同[15]. 六種方式對變化結果并無影響,只是在旋轉矩陣的公式上有所不同. 這里采用Z-Y-X歐拉角的順序來描述調姿部件的旋轉變換.
假設mO和nO重合, 首先將nO繞nz旋轉α角度,再繞ny旋轉β角度, 最后繞nx旋轉γ角度, 可得mO.
即得出旋轉變化矩陣為:

式子中c表示cos, s表示sin. 則工藝接頭球心處在全局坐標系下的坐標為:

第i個三軸定位器在x,y,z方向的位移表達式為:

其中eix=(1 0 0)T, eiy=(0 1 0)T, eiz=(001)T,通過上述確定調姿位姿后, 即可求出各個驅動位移的理論表達式.
2.2 五次多項式軌跡規劃
軌跡規劃主要是利用多項式、拋物線、樣條線以及不同曲線結合進行規劃. 在實際工程中, 常采用三次多項式進行軌跡規劃[16], 能夠得到光滑的位移和速度曲線, 但并不能得到較光滑的加速度曲線. 對于機身、機翼體積質量較大的物體, 調姿過程應注重其運動的平穩性, 三次多項式并不能滿足其平穩性的要求.通過增加多項式次數可以提高運動軌跡的平穩性, 能夠得到光滑的加速度曲線, 因此采用五次多項式的方法對翼身調姿對接進行軌跡規劃.
由上一節坐標系變換可知, 對于機身或機翼空間位姿描述, 可由6個參數決定, 對應的是機身、機翼局部坐標系相對于用于全局坐標系的3個平移量和3個旋轉量p( x, y, z,γ, β ,α) , 通過完成6個參數的變化,即可實現翼身調姿對接每個階段的調整.
對于上述6個位姿參數, 每個參數的變化均按照五次多項式樣條進行擬合, 五次多項式函數中共有6個未知數, 對其分別進行一階導、二階導的求解, 可得到機身和機翼調姿過程中速度、加速度關于時間t的函數:

以任意一個位姿參數為例. 初始位姿時間和目標位姿時間為0、T, 對應的角變化或位移為l0和lT, 這些值均已知, 且滿足條件:

對于多項式的起點和終點, 還需滿足二階連續的要求, 即起點和終點的速度及加速度要滿足條件:

在實際的工程實踐中, 調姿對接的初始速度和到達目標位姿的終止速度都應為0. 另外, 為了使得調姿運動光滑連續, 還應滿足每個階段的初始加速度和到達目標位姿的終止加速度為0. 將式(7)、(8)中的六個條件代入公式(4)、(5)、(6), 聯立即可以解出五次多項式的六個系數, 得出軌跡方程為:

3.1 軟件設計步驟
首先利用Visual Studio 2010 中MFC模塊建立單文檔應用程序, 并加載OpenGL庫中相應的.dll文件、.lib文件和.h文件, 完成工程項目的基本設置[17].
其次利用OpenGL庫函數完成三維圖形應用環境的初始化. 通過調用MFC中Picture類, 加載相應控件,實現可視化界面的顯示.
在OpenGL中完成機身、機翼和定位器模型的繪制較為復雜, 可以利用三維軟件CATIA設計相關的模型, 再轉換為OBJ 3D模型文件格式. 通過編寫函數glmReadOBJ()和LoadModelsFromFiles()實現OBJ格式模型的讀入和顯示. 由于定位器接頭相對于機身或者機翼的位置固定, 在程序中通過添加幾何約束關系來實現各個部件有規律的運動.
為了實現翼身對接仿真各個角度及各個位置的觀察, 通過在仿真軟件中添加Button按鈕和鼠標響應,實現可視化仿真中調姿對接環境的平移和旋轉.
3.2 雙緩沖技術
為了能夠連續動態的顯示整個翼身調姿對接過程,整個Picture繪圖控件會不斷的通過清除背景和重新繪制而刷新, 但這會造成仿真界面的閃爍, 利用雙緩沖技術可以解決這一問題.
建立SwapBuffers()雙緩沖區(前臺緩沖區和后臺緩沖區)[18], 前臺緩沖區用來顯示, 后臺緩沖區則在內存中, 每當調姿對接出現變化時, 先將幾何圖形的變換操作在后臺緩沖區進行, 再將進行的結果復制到前臺緩沖區屏幕上, 完成顯示. 讓使用者看到的是每一幀的調姿對接場景, 而不是調姿對接場景的繪制過程,從而避免刷新而導致畫面閃爍的問題.
3.3 軟件界面效果
仿真軟件包含四個階段的調姿對接部分, 每個階段還包含數據的存儲和導入. 部分仿真軟件效果圖如圖3所示.

圖3 調姿仿真軟件界面效果圖
3.4 軌跡分析
由于機身調姿與機翼調姿類似, 軌跡分析以右機翼調姿和翼身對合為例, 假設對應的右機翼的初始位姿為(-540,1350,-200,, 目標位姿為(-500,1300,-50,0,0,0). 調姿時間共25s, 其中右機翼旋轉調姿時間為10s, 右機翼位置調整時間為5s, 翼身對合時間為10s, 且每次調姿過程都利用五次多項式進行插值計算, 則可獲得右機翼上一點的運動軌跡如圖4所示. 此軌跡是一條光滑連續的空間曲線, 滿足平穩性的要求. 同時根據上述定位器驅動軸逆解, 求出相應的驅動量, 如圖5所示. 從位移圖中可以看出,在0~15s的時間內, (a)~(f)為右機翼的調姿與位置調整;在15~25s時間, (a)為翼身對合調整, 其余(b)~(f)驅動位移量位未發生變化. 結果表明, 六個驅動軸接頭處的節點位移軌跡是連續的, 且運動位移量均在各軸的行程范圍之內.

圖4 飛機部件上一點軌跡圖

圖5 定位器驅動軸位移軌跡曲線
仿真系統成功的利用MFC和OpenGL建立應用程序框架, 并借助三軸定位器模型和飛機部件模型搭建了翼身調姿對接仿真系統, 采用五次多項式的軌跡規劃方法實現翼身調姿對接的平穩運動. 三維仿真系統能夠實時動態顯示調姿對接的運動狀況, 運行可靠,從結果看仿真達到了預期效果, 為實際翼身調姿對接提供指導依據.
1 鄒冀華,劉志存,范玉青,等.大型飛機部件數字化對接裝配技術研究.計算機集成制造系統,2007,13(7):1367–1373.
2 王仲奇,楊元.飛機裝配的數字化與智能化.航空制造技術,2016,(5):36–41.
3 王瑞利,丁慶增.基于OpenGL的3-RSS/S并聯機器人動態仿真.精密制造與自動化,2015,(3):37–39.
4 劉春,張洪瑞,史紅祥等.裝配仿真技術及其在飛機裝配中的應用.航空制造技術,2015,485(15):10–13.
5 李惠,張林鍹,肖田元,等.基于仿真控制的飛機大部件對接原型系統研究.航空制造技術,2013,(22):90–94.
6 陳琳,戴駿,馮俊杰,等.基于OpenGL的多機器人仿真環境.組合機床與自動化加工技術,2014,(9):10–13.
7 謝瑩瑩,鮑凱,馬曉光,等.基于DELMIA二次開發的轉向架三維裝配仿真系統的開發.機械制造,2015,53(4):55–57.
8 屈力剛,苑俊超,白金蘭,等.前機身裝配平臺定位單元離線軌跡生成.機床與液壓,2014,(22):33–35,49.
9 付兵,胡飛飛,等.基于OpenGL的多機器人仿真實驗平臺研究及實現.組合機床與自動化加工技術,2016,(1): 20–23.
10閆林林,徐方,賈凱,等.Delta機器人運動控制及圖形軌跡的動態仿真.計算機工程與設計,2015,(8):2196–2200.
11 Richhard S. Wright, Lipchak B, Haemel N. 張琪,付飛,譯.OpenGL 超級寶典.北京:人民郵電出版社,2010.
12 祁若龍,周維佳,劉金國等.VC平臺下機器人虛擬運動控制及3D運動仿真的有效實現方法.機器人,2013,35(5): 594–599.
13 黃翔,李瀧杲,陳磊,等.民用飛機大部件數字化對接關鍵技術.航空制造技術,2010,(3):54–56.
14 董一巍,李曉琳,趙奇,等.大型飛機研制中的若干數字化智能裝配技術.航空制造技術,2016,(1):58–63.
15 姬金祖,束長勇,黃沛霖等.歐拉角在飛行航跡仿真中的應用.南京航空航天大學學報,2014,46(2):218–224.
16 樂英,岳艷波.六自由度機器人運動學仿真及軌跡規劃.組合機床與自動化加工技術,2016,4:89–92.
17 和克智,任鵬剛,許秦蓉,等.OpenGL編程技術詳解.北京:化學工業出版社,2010.
18 葉舸,田兆鋒,閆楚良等.基于OpenGL的飛機飛行實測數據可視化研究.航空學報,2011,32(6):1050–1057.
Development of Wing-Fuselage Adjustment-Docking Simulation System Based on OpenGL
XU Yuan, SHENG Jian-Xin
(College of Mechanical and Electrical Engineering, Nanjing University of Aeronautics & Astronautics, Nanjing 210016, China)
For a kind of system of aircraft wing-fuselage adjustment-docking which is composed of 3-axis positioners, this paper introduces the process of adjustment-docking, achieves adjustment-docking algorithm by planning trajectory of the wing-fuselage and solving the equation of inverse kinematic. The simulation software of wing-fuselage adjustment-docking is developed by using of object oriented technology and OpenGL library in environment of Visual Studio 2010. The dynamic simulation of the whole models in the software interface is accomplished by combining the kinematic equation of the positioner and the trajectory planning of the wing-fuselage. Results of simulation can be used to display the position and dynamic process of the wing and fuselage. It proves the correctness of adjustment-docking algorithm.
trajectory planning; inverse kinematic; OpenGL; kinematics simulation
航空科學基金(2013ZE52067)
2016-07-24;收到修改稿時間:2016-08-29
10.15888/j.cnki.csa.005702