唐文杰,趙宇,張邦民
(南京航空航天大學(xué)機(jī)電學(xué)院,江蘇南京210016)
隨著飛機(jī)裝配技術(shù)的發(fā)展,不斷提高裝配柔性化與自動(dòng)化水平成為大型飛機(jī)制造的必然趨勢(shì),而發(fā)展裝配機(jī)器人必將推進(jìn)裝配柔性自動(dòng)化的進(jìn)程,促進(jìn)飛機(jī)裝配技術(shù)革命性的變化,為我國(guó)的國(guó)民經(jīng)濟(jì)帶來(lái)巨大的經(jīng)濟(jì)效益和社會(huì)效益,為提升企業(yè)的國(guó)際競(jìng)爭(zhēng)力發(fā)揮重大作用[1-3]。作為柔性裝配系統(tǒng)的一部分,如何獲得一種高精度、高剛度的定位系統(tǒng)對(duì)于我國(guó)飛機(jī)裝配技術(shù)的發(fā)展無(wú)疑是至關(guān)重要的。為進(jìn)行此方面的探索,一種具有3個(gè)平移自由度的高剛度三自由度并聯(lián)機(jī)構(gòu)Tripod[4]被用來(lái)搭建成一套飛機(jī)部件定位仿真系統(tǒng)。
整個(gè)仿真系統(tǒng)是在集成開(kāi)發(fā)環(huán)境Qt軟件下編寫(xiě)的。Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架。它提供的信號(hào)與槽機(jī)制能夠十分方便的搭建圖形用戶界面,它同Windows平臺(tái)上的MFC是同類型的東西。Qt自帶OpenGL庫(kù),只需要重寫(xiě)內(nèi)置的關(guān)于OpenGL的虛函數(shù)就能夠方便的建立三維模型。OpenGL(全寫(xiě)Open Graphics Library)是一個(gè)跨編程語(yǔ)言、跨平臺(tái)的編程接口,它用于三維圖象(二維的亦可)的顯示,是專業(yè)的圖形程序接口,是一個(gè)功能強(qiáng)大,調(diào)用方便的底層圖形庫(kù)。
由于飛機(jī)部件(中央翼盒、左中外翼、右中外翼等)一般是大體積大質(zhì)量物體,在對(duì)其進(jìn)行位姿調(diào)整過(guò)程中應(yīng)十分注意運(yùn)動(dòng)的平穩(wěn)性。否則不僅嚴(yán)重影響調(diào)整的精度,甚至?xí)?dǎo)致飛機(jī)部件外形的變形。而在歐拉空間中,線性插補(bǔ)是非均勻的,并不能滿足平穩(wěn)性要求。為此,可以引入球面線性插補(bǔ)算法[5],將此算法運(yùn)用于四元數(shù),即所謂四元數(shù)球面線性插補(bǔ)算法。對(duì)飛機(jī)部件的轉(zhuǎn)動(dòng)采用四元數(shù)球面線性插補(bǔ)可以使其繞某一定軸作勻角速度旋轉(zhuǎn),意味著在此階段可以實(shí)現(xiàn)飛機(jī)部件零角加速度的旋轉(zhuǎn),位姿調(diào)整的平穩(wěn)性要求得到滿足。
先用首末矢量q0和q1(分別代表飛機(jī)部件的初始和目的姿態(tài)四元數(shù))定義一個(gè)與q0垂直的單位矢量q′1,各矢量之間關(guān)系如圖1所示。
由圖1,導(dǎo)出插補(bǔ)量q(t)的表達(dá)式為
圖1 三矢量之間的關(guān)系Fig.1 Relationship among three vectors
q0與q1均相對(duì)于全局坐標(biāo)系?,F(xiàn)以q0表示的姿態(tài)為參考坐標(biāo)系,則q0,q1此參考坐標(biāo)系下的四元數(shù)表示為
式中cosφ=cos(θ/2),把式(3)代入至插補(bǔ)公式(2)中,可得:
由式(4)可知,四元數(shù)球面線性插補(bǔ)其實(shí)是繞固定軸轉(zhuǎn)動(dòng),當(dāng)t從0到1均勻變化時(shí),飛機(jī)部件從初始姿態(tài)q0繞固定軸n勻速旋轉(zhuǎn)θ后到達(dá)目的姿態(tài)q1。最后要將q(t)復(fù)原為全局坐標(biāo)系,只需進(jìn)行坐標(biāo)變換:q0?q(t)即可。
在OpenGL中物體的旋轉(zhuǎn)是采用歐拉角來(lái)實(shí)現(xiàn),所以應(yīng)先將飛機(jī)部件的歐拉角轉(zhuǎn)化為四元數(shù)形式,進(jìn)行四元數(shù)球面線性插補(bǔ),得到四元數(shù)形式的插補(bǔ)量,然后再轉(zhuǎn)化為歐拉角形式,以供OpenGL顯示飛機(jī)部件的姿態(tài)。具體流程如圖2所示。
圖2 四元數(shù)球面線性插補(bǔ)流程Fig.2 Quaternions spherical linear interpolation flow chart
Tripod機(jī)構(gòu)外形比較復(fù)雜,如圖3所示。機(jī)構(gòu)中每組桿由主動(dòng)桿和從動(dòng)桿構(gòu)成,從動(dòng)桿跟隨主動(dòng)桿運(yùn)動(dòng)。為方便建模分析,也因其在運(yùn)動(dòng)學(xué)上與3-UPU并聯(lián)機(jī)構(gòu)的相似性,可將其簡(jiǎn)化為3-UPU形式,如圖4。整個(gè)定位系統(tǒng)與飛機(jī)部件的連接方式采用多點(diǎn)陣真空吸盤(pán)式柔性工裝[6-7]。
圖3 Tripod模型Fig.3 Tripod model
圖4 運(yùn)動(dòng)學(xué)等效后的TripodFig.4 Tripod after kinematic equivalence
由于OpenGL自身的建模能力十分有限,用OpenGL自帶的函數(shù)完成建模非常不方便,甚至無(wú)法完成。為解決此問(wèn)題,先用三維軟件Pro/Engineer分別作出各個(gè)部件的三維零件圖,保存為OBJ文件格式。再編寫(xiě)一個(gè)數(shù)據(jù)接口類來(lái)讀入并顯示OBJ文件,在程序中用各部件之間的幾何約束關(guān)系來(lái)規(guī)定各部件的運(yùn)動(dòng)方式,實(shí)現(xiàn)各部件的有序運(yùn)動(dòng)。飛機(jī)部件的運(yùn)動(dòng)方式是先轉(zhuǎn)動(dòng)再平移。
軟件采用面向?qū)ο蠛湍K化的編程方式,便于修改和升級(jí)。具體流程如圖5所示。
軟件界面及仿真效果如圖6所示。飛機(jī)部件(為清楚顯示其下方的真空吸盤(pán),飛機(jī)部件采用線框顯示)下方為3個(gè)Tripod(簡(jiǎn)化為3-UPU形式)支撐,各Tripod與飛機(jī)部件采用真空吸盤(pán)連接。
在一定范圍內(nèi)任取起止歐拉角進(jìn)行四元數(shù)球面線性插補(bǔ),將此過(guò)程中飛機(jī)部件上一點(diǎn)的運(yùn)動(dòng)坐標(biāo)導(dǎo)入Matlab中,得到其軌跡如圖7所示。此軌跡是一條光滑的空間曲線。
為驗(yàn)證四元數(shù)插補(bǔ)點(diǎn)在同一平面上,假設(shè)插補(bǔ)點(diǎn)總數(shù)為N,按任意順序兩兩一組分成N/2組。每組兩個(gè)點(diǎn)坐標(biāo)相減,得到N/2個(gè)向量。任取兩個(gè)向量求得法向量,然后求取此法向量與其它向量的夾角。按此思路編寫(xiě)Matlab程序并運(yùn)行得曲線如圖8??梢?jiàn)各向量與法向量夾角集中在90度附近,最大誤差不超過(guò)0.4%??紤]到浮點(diǎn)數(shù)據(jù)在Matlab運(yùn)算過(guò)程中的舍入誤差,實(shí)際誤差會(huì)更小,因此可以認(rèn)為所有插補(bǔ)點(diǎn)均在一個(gè)平面內(nèi)。
圖5 軟件流程圖Fig.5 Software flow chart
圖6 軟件界面及仿真效果圖Fig.6 Software interface&simulation effect
圖7 飛機(jī)部件上任意點(diǎn)軌跡Fig.7 Arbitrary point trajectory of aircraft component
在所有插補(bǔ)點(diǎn)均在同一平面的基礎(chǔ)上,為驗(yàn)證所有插補(bǔ)點(diǎn)均在同一圓周,可以先由6個(gè)點(diǎn)通過(guò)方程組(5)得到圓心。
式中,(ai,bi,ci)為任意的插補(bǔ)點(diǎn)坐標(biāo),i=1,2,3,4,5,6,為圓心坐標(biāo)。
然后求取各點(diǎn)到圓心的距離。按此思路編寫(xiě)Matlab程序并運(yùn)行得到曲線圖9??梢?jiàn)插補(bǔ)點(diǎn)到圓心的距離大約集中在[759.951,759.957]之間,波動(dòng)幅度僅為0.006,同樣,考慮到誤差的影響此波動(dòng)幅度應(yīng)更小。由上所述,證明四元數(shù)插補(bǔ)達(dá)到了預(yù)期的效果。
圖8 插補(bǔ)點(diǎn)向量與法向量夾角Fig.8 Angle between interpolation points and normal vector
圖9 插補(bǔ)點(diǎn)與圓心距離Fig.9 Distance between interpolation points and circle center
仿真系統(tǒng)利用Qt和OpenGL成功的建立了一個(gè)仿真平臺(tái),利用三自由度的Tripod搭建了一個(gè)定位系統(tǒng),采用四元數(shù)球面線性插補(bǔ)算法來(lái)實(shí)現(xiàn)飛機(jī)部件姿態(tài)調(diào)整[8]時(shí)的平穩(wěn)運(yùn)動(dòng)。著重分析和驗(yàn)證了此插補(bǔ)算法的實(shí)現(xiàn)過(guò)程和插補(bǔ)效果。從最后的結(jié)果來(lái)看,達(dá)到了預(yù)期的仿真目的,為此方面的更深入研究和應(yīng)用提供了依據(jù)。
[1] 鄒冀華,劉志存,范玉青.大型飛機(jī)部件數(shù)字化對(duì)接裝配技術(shù)研究[J].計(jì)算機(jī)集成制造系統(tǒng),2007,13(7):1367-1373.ZOU Ji-hua,LIU Zhi-cun,F(xiàn)AN Yu-qing.Large-sizeairplane partsdigital assemblytechnology[J].Computer Integrated Manufacturing Systems,2007,13(7):1367-1373
[2] 鄒冀華,劉志存,范玉青.大型飛行器艙段數(shù)字化裝配方法[J].制造業(yè)自動(dòng)化,2007,29(1):1-4,24 ZOU Ji-hua,LIU Zhi-cun,F(xiàn)AN Yu-qing.Digital assembly method for largeaerocraftsection[J].ManufacturingAutomation,2007,29(1):1-4,24.
[3] 郭恩明.國(guó)外飛機(jī)柔性裝配技術(shù)[J].航空制造技術(shù),2005(9):28-32.GUO En-ming.Aircraft flexible assembly technology of foreign countries[J].Aeronautical Manufacturing Technology,2005(9):28-32.
[4] 洪超,吳洪濤.Tripod并聯(lián)定位器剛度分析及其在飛機(jī)裝配中的應(yīng)用[J].應(yīng)用科技,2011,38(6):58-61.HONG Chao,WU Hong-tao.Stiffness analysis of Tripod parallel positioned and applications in aircraft assembly[J].Applied Science and Technology,2011,38(6):58-61.
[5] Andrew J.Hanson.Visualizing Quaternions[M].Elsevier Inc,2006.
[6] 秦龍剛,陳允全,姚定.飛機(jī)裝配先進(jìn)定位技術(shù)[J].航空制造技術(shù),2009(14):55-57.QIN Long-gang,CHEN Yun-quan,YAO Ding.Advanced positioning technology for aircraft assembly[J].Aeronautical Manufacturing Technology,2009(14):55-57.
[7] 周凱.飛行器大型薄壁件制造的柔性工裝技術(shù)[J].航空制造技術(shù),2012(3):34-39.ZHOU Kai.Flexible tooling and fixture technology of large thin-wall part manufacturing for aircraft[J].Aeronautical Manufacturing Technology,2012(3):34-39.
[8] 張偉,陳鋒,馬軍強(qiáng),等.軌姿控發(fā)動(dòng)機(jī)脈沖后效沖量快速算法的研究及應(yīng)用[J].火箭推進(jìn),2012(1):51-56.ZHANG Wei,CHEN Feng,MA Jun-qiang,et al.Research and application of fast algorithm for pulse residual impulse of divert and attitude control engine[J].Journal of Rocket Propulsion,2012(1):51-56.