時間:2015-09-09 17:08:25來源:周旋 喬楓 高添泉 路宇飛
摘要:本文研究了PUMA560機器人在笛卡爾空間中的軌跡規(guī)劃問題,結合當前工業(yè)機器人在笛卡爾空間中軌跡規(guī)劃的發(fā)展,對如何在高速環(huán)境下保持機器人末端運動的可行性和連續(xù)性軌跡規(guī)劃的關鍵技術進行研究,利用NURBS(Non-Uniform Rational B-Spline) 曲線插補算法,使得機器人末端軌跡速度連續(xù)平滑且加速度連續(xù),有利于提高機器人的運行速度和減少機器人的機械本體的振動和關節(jié)磨損。該算法運用MATLAB編程并在計算機上仿真PUMA560機器人模型軌跡運動,驗證了軌跡規(guī)劃算法。
關鍵詞:工業(yè)機器人;軌跡規(guī)劃;MATLAB;NURBS插補算法
1.前言
基于笛卡爾空間的軌跡規(guī)劃作為機器人軌跡規(guī)劃的一種方法,雖然在規(guī)劃中可能會出現(xiàn)奇異位形,其運動反解也比較復雜,但其軌跡的精確性是基于關節(jié)空間規(guī)劃的這種方法所無法比擬的,這樣的研究可參考文獻[1]。同時,隨著計算機處理速度的不斷提高,運動學反解的實時性也在不斷提高,而軌跡規(guī)劃中可能出現(xiàn)的奇異位形也可以通過仿真的方法加以修正。
目前,在笛卡爾空間中機械臂末端軌跡規(guī)劃最基本的插補算法是空間直線和圓弧的插補算法。很多給定曲線都可以分段成多段直線或圓弧,然后再進行直線或圓弧插補。但對于一些復雜的自由曲線難以用簡單的解析曲線表示,而要用列表形式給出。如果對這些復雜自由曲線進行多段直線或圓弧擬合,為了保證精度要求,復雜曲線必須分為很多小段直線或圓弧,這不僅導致編程復雜,效率降低,而且運動速度都受到嚴重的影響[2]。
因此,在機器人控制系統(tǒng)中加上B樣條曲線插補功能,這能很好地解決復雜自由曲線路徑的問題。而相對簡單的三次B樣條曲線在很大程度上能符合生產(chǎn)要求。所以,將三次B樣條曲線插補功能應用于機器人控制系統(tǒng)中能很好地提高自由曲線連續(xù)路徑操作中的精度和速度要求。
本文針對以上情況,采用了一種基于NURBS(Non-Uniform Rational B-Spline)曲線的可以對曲線弧長和曲線控制參數(shù)生成光滑的運動學軌跡輪廓的新廣義插值算法。同典型的預先生成整個路徑軌跡的運動學軌跡輪廓的方法相比,這種方法是在每個采樣周期遞歸的生成具有光滑運動學軌跡輪廓的連續(xù)路徑軌跡。這種遞歸的方法允許在路徑軌跡運行中修改運動的速度,以避免一些比如曲線的曲率突變等意外的影響,從而對混合曲線類型的路徑軌跡使用超前預估功能獲得一條光滑的運動學軌跡輪廓。
2.機器人笛卡爾空間的NURBS插補算法研究
NURBS曲線比較復雜,計算量比較大,為了保證實時性,在實時插補前需先將相關公式及其系數(shù)計算出來。在NURBS插補中,預處理主要是確定每段NURBS的表達式,換言之,就是要在插補前根據(jù)NURBS的控制頂點、權因子和節(jié)點矢量求解NURBS表達式中的相關系數(shù)。目前有兩種方法:一種是依據(jù)德布爾遞推計算公式或給出三次NURBS基函數(shù),可以很方便計算出NURBS曲線每一段的有理化表達式;另外一種是采用矩陣表達式[3]。
矩陣表達式這種形式使計算和分析都非常簡單,所以本文采用這種方法。而對于插補點參數(shù)的求取,本文采用了泰勒展開法和探索法,同時考慮到精度問題,應用了預估-校正的方法修正參數(shù)和約束弦高誤差來約束插補步長。
2.1三次NURBS表達式
已知控制點序列為,其對應的權因子序列為,和節(jié)點矢量為,則NURBS有理分式表達式為[4]:
(1)
式中:B3、B2、B1、B0——分子系數(shù)矢量;B3、b2、b1、b0——分母系數(shù)矢量。
。并記:。
根據(jù)NURBS有理分式可解出三次NURBS曲線表達式第i-2段的具體表達式為:
(2)
式中:
(3)
將式子(1)與式子(2)比較可得軌跡表達式(1)中分子分母系數(shù)矢量計算公式:
(4)
2.2參數(shù)密化
先利用一階泰勒展開法算出前三點的參數(shù)值,再使用探索法[5]求其他點的參數(shù)值。一階泰勒展開式:
, (5)
式中,為插補步長。
探索法:(6)
2.3修正參數(shù)
由泰勒展開法和探索法得到的參數(shù)值作為此次參數(shù)插補的預估值,將其代入(1)可得到預估插補點[5]:
(7)
對應預估進給步長為:
(8)
采用預估法得到的和期望步長之間存在偏差,可用相對誤差進行評定:
(9)
式中,是期望插補步長(將在下面確定)。
當誤差在允許范圍內(nèi)時,可認為即為所求的,否則按下式進行修正直至達到允許域內(nèi):
(10)
2.4約束插補步長
為了提高插補精度,應該利用約束弓高誤差來約束插補步長。插補弓高誤差與插補步長及曲線曲率半徑
之間存在如下關系[3]:
(11)
為了計算方便,這里用曲線段中點與弦長中點的距離來代替弓高誤差,如圖1,即:
(12)
式中,是由式子(5)或者式子(6) 確定的預估參數(shù),是由式子(7)確定的預估插補點。
通常,與弓高誤差h之間的偏差很小,只是在曲線的拐點附近可能有較大誤差,但拐點附近的曲線曲率往往較小,則相應的插補誤差也較小。因此,這種近似具有工程合理性。根據(jù)式子(11)中插補誤差與進給步長的關系可得約束進給步長表達式:
(13)
式中,是由式(8)確定的預估步長。
圖1 弓高誤差的近似
2.5確定期望插補步長
期望插補步長為[6]:
(14)
其中為弓高約束求得的步長,為無約束狀態(tài)的步長,勻速運動時為。將式(14)結合式(8)代入修正式(10)即可求得新的修正后的插補參數(shù)。
2.6插補點生成[10]
將軌跡空間映射到一維參數(shù)空間,在一維參數(shù)空間完成對參數(shù)的密化工作,得到一系列的參數(shù)值,接下來我們將參數(shù)接下來我們將參數(shù)代入如下我們規(guī)劃的NURBS曲線表達式中:
(15)
,,即為所得插補點坐標,將一系列插補點相連,就得到了機器人的運動軌跡,至此即完成了整個插補過程。
3.NURBS曲線插補算法的實現(xiàn)
根據(jù)以上論述,我們采用預估-校正方法進行參數(shù)的計算,可得算法流程如圖2:首先生成NURBS曲線軌跡[8],即確定NURBS參數(shù)方程,然后完成插補,即計算各插補點對應的參量u,代入NURBS參數(shù)方程(15)求得各插補點坐標。
(16)
圖2 NURBS曲線插補算法流程圖
4.仿真結果與分析
以PUMA560機器人作為研究對象,驗證算法在MATLAB中編程實現(xiàn),并把算法產(chǎn)生的軌跡插值點數(shù)據(jù)輸入到MATLAB中,由MATLAB完成圖像的繪制并輸出顯示。
4.1仿真算例1-空間圓弧的NURBS插補
利用本文第2部分相關知識與文獻[3][9]得出的半徑為20的圓弧三次NURBS,
則表達式為:
(17)
其中節(jié)點矢量為:
,控制頂點為:,相應權因子分別為:。設機器人運動的姿態(tài)保持不變,用RPY變換姿態(tài)角表示為(0.2,0.5,0.7),單位為弧度(rad)。設曲線運動的期望速度為200mm/s,插補周期為10ms。為了保證插補精度,插補過程中增加了弦高誤差約束,設弦高最大允許值為0.5mm,修正相對誤差最大允許值為0.5mm。
利用NURBS]曲線的生成程序,可生成用NURBS表示的半圓弧圖形如圖3所示。其中的多邊形是用各個控制頂點連接而成的控制多邊形。利用代入法,代入某些參數(shù)值計算,則知各個點均是在以原點為圓心,半徑為20的半圓弧上。
圖3利用NURBS表示的圓弧形狀
將圖3用NURBS表示的半圓弧各參數(shù)值存成文本文件于MATLAB的Work空間內(nèi),利用NURBS曲線的插補程序,讀取指令格式,可進行實時動態(tài)軌跡插補,最終得其插補軌跡如圖4。
圖4圓弧的NURBS插補軌跡
圖5機器人末端位姿各分量變化圖
仿真結果表明,采用NURBS插補算法的機器人末端運動軌跡是光滑連續(xù)的,在期望速度下能保證路徑的平滑和軌跡曲線的連續(xù)。
4.2仿真算例2-星型曲線的 NURBS實時插補
假定以下控制點及節(jié)點矢量,可得圖6仿真結果:(數(shù)據(jù)來自文獻[3])
控制頂點依序為:{60,170,10}、{45,150,10}、{20,150,10}、{40,130,
10}、{35,110,10}、{60,125,10}、{85,110,10}、{80,130,10}、{100,150,10}、{75,150,10}、{60,170,10}。
權因子分別?。簑=[1,1,1,1,1,1,1,1,1,1,1]。
節(jié)點分別為: N =[0,0,0,0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1,1,1,1]。
圖6星型曲線仿真結果圖
仿真結果顯示,除起點處和結束處插補點間隔逐步均勻加大外(圖6),其余插補點非常均勻,表明插補很平穩(wěn),效果很好。
4.3仿真算例3-蝴蝶型曲線的 NURBS實時插補
根據(jù)如下控制點及控制矢量,可以得到利用NURBS實時插補得到的蝴蝶型曲線(數(shù)據(jù)來自文獻[7])。
控制頂點依序為:{104.493,152.139,10}、{105.507,152.139,10}、{106.082,149.615,10}、{106.78,144.971,10}、{119.575,151.358,10}、{127.786,158.573,10}、{140.526,167.081,10}、{155.973,163.801,10}、{150.4,147.326,10}、{144.567,139.913,10}、{142.369,130.485,10}、{133.44,133.757,10}、{141.892,128.509,10}、{139.444,120.393,10}、{133.218,115.446,10}、{137.621,104.83,10}、{130.945,109.267,10}、{129.834,114.535,10}、{126.074,108.522,10}、{120.183,112.55,10}、{114.171,116.865,10}、{109.993,122.122,10}、{105.68,136.359,10}、{106.925,124.995,10}、{109.765,119.828,10}、{104.493,114.94,10}、{99.22,119.828,10}、{102.06,124.992,10}、{103.305,136.359,10}、{98.992,122.122,10}、{94.814,116.865,10}、{88.802,112.551,10}、{82.911,108.521,10}、{79.152,114.535,10}、{78.04,109.267,10}、{71.364,104.83,10}、{75.768,115.447,10}、{69.539,120.391,10}、{67.097,128.512,10}、{75.537,133.75,10}、{66.602,130.496,10}、{64.199,139.803,10}、{58.668,147.408,10}、{53,163.794,10}、{68.465,167.084,10}、{81.197,158.572,10}、{89.411,151.358,10}、{102.204,144.971,10}、{102.904,149.614,10}、{103.478,152.139,10}、{104.492,152.139,10}。
權因子分別取:w=[1,1,1,1.2,1,1,1,1,1,1,1,2,1,1,5,3,1,1.1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.1,1,3,5,1,1,2,1,1,1,1,1,1,1,1.2,1,1,1]。
節(jié)點分別為:N =[0,0,0,0,0.008286,0.014978,0.036118,0.085467,0.129349,
0.150871,0.193075,0.227259,0.243467,0.25608,0.269242,0.288858,0.316987,0.331643,0.348163,0.355261,0.364853,0.383666,0.400499,0.426851,0.451038,0.465994,0.489084,0.499973,0.510862,0.533954,0.54891,0.573096,0.599447,0.61628,0.635094,0.644687,0.651784,0.668304,0.682958,0.711087,0.730703,0.743865,0.756479,0.772923,0.806926,0.84913,0.870652,0.914534,0.963883,0.985023,0.991714,1,1,1,1]。
圖7蝴蝶型曲線仿真結果圖
圖8各關節(jié)角的變化圖
圖9各關節(jié)角的速度圖
圖10各關節(jié)角的加速度圖
仿真結果顯示,插補點分布大部分很均勻,在幾處曲率較小的拐角存在變化,速度和加速度在曲率比較小的四處拐角處還存在明顯的突變情況,大部分都能在許可范圍內(nèi)波動,表明系統(tǒng)存在少許沖擊,但均在允許的范圍之內(nèi)。
5.結論
采用NURBS插補算法,對機械手末端的運動軌跡進行規(guī)劃。在NURBS算法中,為了保證插補精度,增加了利用弓高誤差來約束插補步長,由于NURBS算法中增加了弦高誤差約束插補步長,所以運動的位移曲線不確定,導致運動軌跡不平滑,運動速度和加速度有少許波動,但均在允許的范圍之內(nèi),不過它可以比較精確地插補各種自由曲線,可以滿足用戶的很多要求,隨著計算機運算能力和儲存能力的提高,NURBS將更為廣泛地應用在機器人的軌跡規(guī)劃中來表示軌跡路徑。
參考文獻
[1] 孫羽; 張汝波. 笛卡兒空間機器人軌跡規(guī)劃方法[J].北華大學學報(自然科學版),2002(06).
[2] 孔凡國; 郝尚華; 鐘廷志; 郝鳳齊.三次B樣條曲線插補算法的VC實現(xiàn)[J].中國新技術新產(chǎn)品,2009(09).
[3] 劉新山.NURBS曲線插補技術研究及其仿真[D],吉林大學,2007(04).
[4] 劉新山; 賈慶祥; 袁修華.NURBS曲線插補算法及加減速控制研究[J],組合機床與自動化加工技術,2007(11).
[5] 游有鵬, 王珉.NURBS曲線高速高精度加工的插補控制[J]. 計算機輔助設計與圖形學學報, 2001, 13(10): 943-947.
[6] 范勁松, 徐宗俊. 用三次NURBS表示圓弧與整圓的算法研究[J]. 計算機輔助設計與圖形學學報, 1997, 9(5): 391-395.
[7] 黃翔, 岳伏軍.NURBS插補技術在高速加工中的應用研究[J]. 南京航空航天大學學報, 2002, 34(1): 82-85.
[8] Meng-Shiun Tsai,Hao-Wei Nien,Hong-Tzong Yau .Development of an integrated look-ahead dynamics-based NURBS interpolator for high precision machinery. Computer Aided Design . 2008
[9] M Shpitalai,Y Koren,C C Lo. Real time curve interpolators. Computer Aided Design . 1994
[10] B K choi,W SYoo,C S Lee. Matrix representation for NURBS curve and surface. Computer Aided Design . 1990
標簽:
中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
相關資訊