周建新
摘要: 隨著工業(yè)機器人的發(fā)展,對工業(yè)機器人的軌跡規(guī)劃研究也逐步加深。通過軌跡規(guī)劃可以降低關節(jié)沖擊和振動優(yōu)化機器人的各種性能。在大量研究中都是以三次插值樣條曲線為擬合曲線,而三次樣條曲線產生的振動和沖擊相對于B樣條曲線較大。所以本文將通過B樣條曲線擬合機器人的軌跡,再使用遺傳算法全局尋優(yōu)搜索時間最短的一條軌跡。
Abstract: With the development of industrial robots, the study of trajectory planning of industrial robots has been gradually deepened. Through the trajectory planning can reduce the impact of joints and vibration to optimize the performance of the robot. In a large number of studies, the cubic interpolation spline curve is used as the fitting curve, and the vibrations and shocks generated by the cubic spline curve are larger than those of the B-spline curve. Therefore, this paper will use the B-spline curve to fit the trajectory of the robot, and then use the genetic algorithm to optimize the search path for the shortest time.
關鍵詞: 軌跡規(guī)劃;B樣條曲線;遺傳算法
Key words: trajectory planning;B-spline curve;genetic algorithm
中圖分類號:TP242.6 文獻標識碼:A 文章編號:1006-4311(2017)15-0104-04
0 引言
軌跡規(guī)劃是研究機器人的一個重要的分支。由于這種研究是底層的基礎研究不涉及高層的人工智能,擴大了研究的范圍。軌跡規(guī)劃就是給定一個初始點和終止點,在規(guī)劃初始點至終止點的路徑。我們將這種機械手空間的位置變換以數(shù)學的形式呈現(xiàn)。通過函數(shù)我們可以形象地知道機械手在運動過程中的各個參數(shù)以及運動的狀態(tài)和位姿。在笛卡爾空間坐標中,機械手受到一系列的約束,我們可以預先給函數(shù)設置這些約束使其在空間范圍內行程的軌跡在實際上是可以實現(xiàn)的。
如果關節(jié)運動點之間采用直線運動形成軌跡,那么在運動的過程中機械手在關節(jié)運動點會停頓,然后再開始下一段的初速度為零的運動。這種軌跡規(guī)劃其中各個作業(yè)點之間的速度和加速度是不連續(xù)的會加劇機械手的沖擊和振動,減少機械手的效率以及壽命。所以通過相關材料驗證,三次多項式樣條函數(shù)能保證工業(yè)機器人在運動中的結合點出速度和加速的是連續(xù)的,這樣能是運動的軌跡是光滑的。即保證了運動平穩(wěn)的要求也提高了工業(yè)機器人的工作效率。但是由于三次多項式樣條曲線有局限性它只能保證各小段曲線在連接點的連續(xù)性,卻無法保證整條曲線的光滑性,這就不能滿足某些工程技術的要求。這樣在選擇樣條曲線時就盡量避免選擇三次多項式樣條曲線。所以本文將選擇使用B樣條曲線提高路徑的準確性。B樣條曲線具有導數(shù)的連續(xù)性、分段處理性、關節(jié)位移變化率小等優(yōu)點,是其在機器人的軌跡規(guī)劃問題解決可以得到很好的應用。
因此本文將才用B樣條曲線并用遺傳算法對其進行優(yōu)化。在使用遺傳算法的同時將以時間最優(yōu)為目的,去搜索最優(yōu)時間的軌跡。綜上所述在數(shù)學建模中的軌跡規(guī)劃定義如下:在笛卡爾空間坐標中,在已知起始點、終始點和中間點時用逆運動方程求解對應的關節(jié)坐標,在用算法計算最優(yōu)的時間間隔。而實際的軌跡規(guī)劃為:以數(shù)學建模中的軌跡規(guī)劃為期望的運動路徑,讓工業(yè)機器人按照上述的路徑移動。記錄各個中間點處的坐標值、速度和加速度等參數(shù)實時計算其各個點的運動要素,這就是實時的軌跡跟蹤。[1]
1 遺傳算法的原理
遺傳算法是一種模擬生物學達爾文進化論中的自然選擇和遺傳學機理的生物進化過程的隨機化的搜索算法,將需要求解的對象模擬為自然種群,在使其種群不斷進化尋其最優(yōu)解的方法。遺傳算法是通過生物學中的達爾文定理借鑒的,在自然的約束條件下通過篩選優(yōu)等種群的規(guī)律,遺傳機制通過數(shù)學模型的方式將原有求解問題轉化為自然遺傳變換的形式。美國的J.Holland教授在1975第一次提出通過遺傳算法解決問題的方式。遺傳算法的特點有可以直接對需要處理的解決問題編程,不需要通過數(shù)學建模的方式去設定一些約束;相比于通常方式能更迅速準確地搜索出最優(yōu)結果;采用概率化的尋優(yōu)方法,能自動獲取和指導優(yōu)化的搜索空間,自適應地調整搜索方向,不需要確定的規(guī)則。由于遺傳算法具有這些特點,已被人們廣泛地應用于組合優(yōu)化、機器學習、信號處理、自適應控制和人工生命等領域。[2]其工作原理如圖1所示。
2 遺傳算法工作步驟
①對所解決工程實例的介紹。在進行解決一個實際問題使,需要就實際問題的工況條件和各種參數(shù)的約束以及要求解的目標做整體的分析,從而得出是否能用遺傳算法解決問題,能否用遺傳算法全局尋優(yōu)找到最合適的答案。
②選取解決問題合適的編碼形式和編碼。編碼是根據(jù)具體的問題確定出遺傳算法的目的,建立合適的評價函數(shù)。通過編碼可以把要解決的工程實例函數(shù)的所有參數(shù)進行數(shù)學建模,通過MATLAB仿真出遺傳算法的最優(yōu)解。在編碼后所生成的二進制數(shù)據(jù)會形成一個染色體。每個染色體就代表遺傳算法的一個解。
③初始種群。在遺傳算法中隨機出現(xiàn)的一個種群個數(shù)為N的初始種群,N是種群的大小,每個種群就代表了遺傳算法可能的一個解。從一開始遺傳算法就是沖初始種群出發(fā),將待解決問題模擬成一個生物種群,逐步解決工程實例問題的過程。
④適應度的計算。其含義就是將遺傳算法轉換為全局尋優(yōu)。遺傳算法中產生的解的優(yōu)劣是要有一個評價體系的,而這個評價體系就是適應度的計算。合適的適應度就是遺傳算法比較優(yōu)的解。但是適應度函數(shù)不是標準的,也可能隨著實際問題不同的從而導致參數(shù)要求改變。
⑤選擇和復制。對結果的適應度計算,從而提高了結果的可選擇性這樣其被復制的機會也就越來越多。在選擇和復制的過程就遵循了自然界的規(guī)律“適者生存,優(yōu)勝劣汰”從而選出期望的結果。
⑥交叉或基因重組。交叉運算分為兩個部分,其中一個是把新復制結果和隨機的兩兩對比,另一個是進行交叉運算。通過交叉運算將基因重組得到一個新的個體,這個個體繼承了其前輩的個體特征。
⑦變異。在遺傳算法的種群中隨機的選擇一個個體,在隨機的改變這個個體中的某部分的基因,其中必須保證生成的新樣本的結果是一個合理的解。變異是無序的產生新樣本的過程。
⑧遺傳算法終止判斷。遺傳算法運算過程是反復執(zhí)行④-⑦步,直到滿足條件,找到目標函數(shù)的最優(yōu)解。1)遺傳算法優(yōu)化搜索到滿意的最優(yōu)解;2)其優(yōu)化已經執(zhí)行完預先定義的迭代次數(shù);3)在預先設定的迭代數(shù)內,最優(yōu)個體的適應度函數(shù)值無法改進;4)最優(yōu)個體數(shù)目在群體中的比例己經達到預先設定值。
3 B樣條軌跡優(yōu)化數(shù)學模型
3.1 目標函數(shù)
軌跡規(guī)劃數(shù)學模型中,一般以時間最短和沖擊最小作為目標函數(shù)。在此將采用以時間最短為目標函數(shù),直接對機器人的一段B樣條曲線運動路徑時間進行軌跡規(guī)劃。
4 基于遺傳算法的全局尋優(yōu)
遺傳算法具有分段處理的特點,每個分段都是相鄰的四個控制點確定。由于B樣條曲線有這樣的特點,所以當B樣條曲線的某個定點改變時,隨之改變的只會是相鄰的四段曲線,而不會改變其他的曲線。B樣條曲線這個有優(yōu)點對工業(yè)機器人手臂軌跡規(guī)劃的體現(xiàn)是,工業(yè)機器人的運動路徑可以分開計算,這樣就可將B樣條曲線的總時間也一起優(yōu)化?;跁r間最短的對全過程的軌跡規(guī)劃,就可以分成基于時間最短對每段路徑的軌跡優(yōu)化。即將總時間T分為hi的分段時間。[3]
假設機器人的運動過程中會有n個中間點其中包括了起始點和終始點,這里將[t1,t2],[t2,t3]…[tn-2,tn-1],[tn-1,tn]規(guī)定為時間間隔序列,則每個相鄰點之間的時間長度為:
hi=ti+1-tn (i=1,2,…n-1)
其中ti為工業(yè)機器人手臂運動到此中間點的時間。
使用遺傳算法進行全局尋優(yōu)的過程如下:
4.1 編碼
把可能產生的解通過解編碼成遺傳算法對應的一些染色體。在本次遺傳算法模擬中選取浮點編碼。在對比二進制編碼方式,浮點編碼的一些優(yōu)點如下:①浮點編碼的精度跟所使用的工業(yè)機器人有關,與編碼方式無關,而二進制編碼會影響精度。②二進制編碼的范圍比較小,而且若是要擴大編碼范圍會以犧牲精度的代價來怎么加,而浮點編碼的區(qū)域比較大。③浮點運算的遺傳算子比較靈活,處理比較方便簡潔。編碼后的基因就排列組合形成遺傳算法的染色體。
4.2 初始種群
將種群范圍設定為hi(在這個時間間隔中產生),隨機的在其中產生確定數(shù)量的個體組成種群。
式中,r為[0,1]區(qū)間產生的隨機數(shù),G是算法設置中的最大迭代次數(shù),b為形狀系數(shù),本文中取b=3。由上述討論和研究,基于遺傳算法的B樣條曲線插值算法具體步驟如下:
5 機器人軌跡規(guī)劃結果
同過上面對遺傳算法的介紹和解決步驟的梳理,因為現(xiàn)有實驗條件本文將以埃夫特ER20-C10工業(yè)機器人為例,編寫MATLAB程序。由于埃夫特ER20-C10自由度較高本此遺傳算法將對工業(yè)機器人其中三個關節(jié)進行了以最優(yōu)時間為目的的軌跡規(guī)劃。而本文采用對軌跡樣條曲線是以B樣條曲線為基礎進行的時間最短優(yōu)化。由機器人說明書可知其優(yōu)化精度應為0.0001秒。
本次計算中機器人每個關節(jié)的軌跡是9段B樣條曲線所構成的,在符合實驗的工況條件下,所優(yōu)化的三個關節(jié)的運動軌跡所需要的時間分為16.1025s,16.2556s以及17.6232s,相對于先前未優(yōu)化時間減少了9.5621s,9.4625s,9.4412s。成功將時間降低了,而在尋優(yōu)的結果看來本次采用結果要優(yōu)于文獻[3]中采用復合形法的優(yōu)化結果。
由表1數(shù)值點1和數(shù)值點8的附加節(jié)點,是根據(jù)初始條件、邊界條件得出的。其中邊界條件為V1=V8=0。
通過分析計算和MATLAB運行結果得到:①在工業(yè)機器人空間中,確定其軌跡上的型值點是求解優(yōu)化B樣條曲線軌跡的基礎,其中的型值點就是逆運動學中所求出的軌跡節(jié)點。②對最優(yōu)問題的求解需要建立最優(yōu)模型,通過優(yōu)化模型將相鄰點之間的時間間隔和角速度等參數(shù)作為優(yōu)化變量。建立優(yōu)化曲線找出最優(yōu)點。③用遺傳算法的方式對B樣條曲線進行優(yōu)化,需要通過MATLAB進行仿真實驗,求出相應的解。
參考文獻:
[1]凌家良,施榮華,王國才.工業(yè)機器人關節(jié)空間的插值軌跡規(guī)劃[J].惠州學院學報,2009,3.
[2]促鶴華,付榮.基于GA的時間最優(yōu)化械臂軌跡規(guī)劃算法[J].措制工程,2012,19(3).
[3]王幼民,徐蔚鴻.機械臂關節(jié)空間Bezier曲線軌跡規(guī)[J].安徽機電學院學報,2000,3.