豐 非,扈宏杰
(北京航空航天大學 自動化科學與電氣工程學院,北京 100191)
隨著我國工業的高速發展,平面關節型SCARA機器人在工業生產的各個領域得到了廣泛的應用[1]。建立精確的機器人動力學模型,是提高機器人的運動精度的一個重要因素。而機器人的動力學參數辨識是機器人動力學建模的關鍵。
在此,基于D-H參數法建立了SCARA機器人的運動學模型,建立了機器人的動力學模型;針對模型中存在的不確定的參數,選取合適的激勵軌跡,提出了一種混沌的粒子群算法,對機器人的慣性參數進行辨識,與傳統的遞推最小二乘法和基本粒子群算法進行對比,通過Matlab仿真實驗,驗證了改進的混沌粒子群算法能夠有效避免粒子群算法的早熟收斂問題,跳出局部最優,極大地提高了計算精度和全局尋優能力。
基于D-H參數方法[2],對機器人各個連桿坐標系進行描述,如圖1所示。SCARA機器人的第1關節、第2關節以及第4關節為轉動關節,第3關節為移動關節。其中機器人的D-H參數見表1[3]。

圖1 SCARA機器人連桿坐標系Fig.1 Link frames of SCARA

表1 SCARA機器人的D-H參數Tab.1 D-H link parameters of SCARA
由連桿變換公式、矩陣公式和變換傳遞式,可以得到第4關節到基坐標系的齊次變換矩陣[4]為

式中:t1=cos(θ1+θ2+θ4);t2=-sin(θ1+θ2+θ4);t3=a2cos·(θ1+θ2)+a1cosθ1;t4=sin(θ1+θ2+θ4);t5=cos(θ1+θ2+θ4);t5=cos(θ1+θ2+θ4);t6=a2sin(θ1+θ2)+a1sinθ1;t7=d1+d2+d3
通過調用Matlab中的 Robotic Toolbox[5],可以直觀地將建立的運動學模型表示出來。通過調節4個關節的各個變量,可以看到機器人形態的變化,根據輸入的各個關節變量和第4關節末端的位置,驗證機器人運動學建模的正確性。
選用Lagrange法對SCARA機器人進行動力學建模[6]。Lagrange方程從能量的角度上對系統進行分析,通過Lagrange方程可以將忽略摩擦的機器人的動力學模型寫為

式中:M(θ)為慣性力項;C(θ,θ˙)為科氏力和離心力項;G(θ)為重力項。
由于機械臂的后2個關節重量遠遠小于前2個關節,因此在建立動力學模型的時候,可以簡化模型計算,將機器人的末端2個關節固連在第2個關節上,視為負載。這樣,機器人模型就簡化為一個平面雙臂機器人模型,同時由于機械臂只在水平面內運動,重力項的作用可以忽略為0,大大簡化了計算復雜度[7]。簡化后的動力學方程可以寫成二階形式:

式中:m1,m2分別為SCARA機器人第1和第2關節的質量;I1,I2分別為相對于桿件質心的轉動慣量;a1,a2為機械臂的連桿長度;x1,x2為質心位置;θ1,θ2為關節角。
分離式(4)中的運動學參數和慣性參數,將式(3)改寫成為Ax=B的線性形式:

式中:ξ的參數為機器人的慣性參數和運動學參數,對于一個給定的機器人,其慣性參數為一給定的常量;為觀測矩陣,其中的參數全部由組成,不依賴于機器人的運動學參數和慣性參數。通過計算,可以得到觀測矩陣的各個參數為

ξ陣中的各個參數向量為

需辨識的ξ陣中一共有6個參數。在激勵軌跡確定的情況下,測量機器人各個關節的力矩輸出,就可以通過參數辨識的方法建立確定的機器人動力學模型。
設計激勵軌跡,使得機器人充分運動,在滿足系統實際約束的同時,最大化地激發所有需要辨識的參數,減少辨識的誤差,是參數辨識的重要問題之一。
目前常用的激勵軌跡一般為傅里葉級數[8]。機器人第 i 個關節的角位移 θi,角速度以及加速度的軌跡為

式中:ωf為傅里葉級數的基頻。傅里葉函數的周期為 2π/ωf。 每一個傅里葉級數中包含有(2N+1)個參數,即為 an,bn,θ0。 這里為了減小計算量,選取 N=3,故優化激勵軌跡中需要優化的參數共有7個。
在優化激勵軌跡之前,應首先使機器人滿足實際工作的約束條件。即根據機器人的實際情況,將系統的運動范圍、角速度、角加速度限制在一定的范圍內,故約束條件為


在滿足上述約束后,采用退化矩陣的條件數來優化軌跡各個參數。條件數越接近于1,方程組的狀態越好。為此,優化激勵軌跡參數的問題就變成了確定系數 an,bn,θ0,使得觀測矩陣 W的條件數最小。
為減少計算量,使用遺傳優化的方法對參數進行優化,采用Matlab中的遺傳算法工具箱進行求解,選擇交叉概率pc=0.5,變異概率pm=0.2。經過遺傳優化,得到第1關節和第2關節的傅里葉級數參數,見表2。

表2 優化的傅里葉級數參數Tab.2 Optimized fourier parameters
根據優化的參數,獲得如圖2所示的激勵軌跡。由圖可見,第1關節和第2關節的角位移、角速度和角加速度均符合機器人的物理約束。

圖2 兩個關節激勵軌跡的角位移、角速度、角加速度Fig.2 Angle,velocity and acceleration of two links on the incentive trajectory
粒子群算法源于對鳥群捕食行為的研究,是一種基于群體協作的隨機搜索算法[9]。PSO算法中,每個粒子都有一個由被優化的函數所所決定的適應度函數,還有一個決定著粒子飛行方向和距離的速度,粒子追隨當前的最優粒子在解空間中搜索解[10]。
粒子速度及位置更新公式為

式中:i=1,2,…,m,其中 m 為種群規模;d=1,2,…,G其中G為搜索空間維數;w為慣性權重;c1,c2為學習因子;r1,r2為服從 U(0,1)分布的隨機數;pid為局部最優值;pgd為全局最優值。由式(6)知,需要辨識的參數共有6個,因此令粒子的搜索空間維數G=6。
在此利用PSO算法的收斂速度快和混沌運動的遍歷性的優點,針對傳統的PSO方法中存在的收斂過慢和“早熟”的問題,提出了一種基于混沌優化思想的混沌粒子群(CPSO)算法,改善了PSO算法固有的容易陷入局部最優的缺點,提高了算法的收斂速度和精度。
利用混沌粒子群進行優化的基本思想,主要有以下兩方面:①采用混沌序列對粒子的位置和速度進行初始化,通過混沌的方法提高種群的多樣性和種群搜索的遍歷性;②以目前搜索到的最優位置為基礎產生一個混沌序列,用該序列中的最優位置粒子替代當前粒子群中的一個粒子的位置,以此避免陷入局部最優的情況出現[11]。
在粒子信息初始化的階段,隨機產生1個六維每個分量數值在0~1之間的向量,選用Logisitc方程對其進行混沌初始化,得到6個混沌向量,然后將這六個向量載波到對應變量的取值區間中去,得到初始解。
Logisitc方程為

式中:μ為控制參量,取 μ=2;設 0≤sn≤1。在每一次迭代結束前,對得到的最優位置進行混沌優化。將pgd(i=1,2,…,6)映射到 Logisitc 方程的定義域[0,1];si=(pgd-xmin)(xmax-xmin);用 Logisitc 方程進行迭代,產生關于每一個粒子的pgd的混沌序列;將產生的混沌序列通過逆映射返回到原解空間,從而得到一組新的pgd;對其進行適應度計算,從這一組pgd中選取性能最好的作為全局最優值,并將該組數據pgd取代當前群體中的任意一個粒子的位置,繼續參與迭代,直至滿足誤差要求或完成迭代為止。
對機器人參數進行辨識,將適應度函數定義為

分別使用基本PSO算法、混沌PSO算法對系統進行辨識,選取:種群個數為200個;學習因子c1=1.3,c2=1.8;慣性權重w從0.9遞減至0.2。設置最大迭代次數為200次。得到的適應度函數變化曲線如圖3所示。

圖3 CPSO和PSO的適應度函數變化曲線Fig.3 Fitness function changes curve of CPSO and PSO
由圖可見,應用混沌序列優化粒子群算法中的粒子初始化過程,能夠使系統的初始解更加優秀。同時,在更新速度和位置信息的時候,應用混沌PSO的優化方法可以使得適應度函數的收斂速度大大加快,能夠提高對最優值的全局搜索能力。
采用傳統的遞推最小二乘、基本PSO算法和混沌PSO算法,最終得到的適應度函數值和各個辨識參數見表3。

表3 參數辨識結果Tab.3 Result of parameters ddentification
由表可知,遞推最小二乘法辨識的系統模型誤差較大,基本PSO和混沌PSO方法對系模型辨識效果較好。采用混沌PSO方法對機器人參數進行辨識,得到的適應度函數最小,得到的模型相比遞推最小二乘和基本PSO更符合實際模型。
把采用混沌PSO方法辨識出的各個參數代入式(5),得到基于辨識模型的2個關節的力矩輸出,將其與實際模型的力矩輸出進行對比,如圖4所示。由圖可見,2個關節的力矩輸出曲線與其實際模型力矩輸出曲線均基本吻合,說明采用混沌粒子群算法對機器人模型進行辨識具有較高的準確度。

圖4 采用CPSO優化的辨識模型和實際模型力矩輸出Fig.4 Torque of actual model and identification model using CPSO
分別將遞推最小二乘法、基本粒子群法、混沌粒子群法辨識得到的模型與實際SCARA機器人模型進行比較,得到的輸出力矩誤差如圖5所示。由圖可見,采用混沌粒子群算法優化的機器人模型與實際模型最為接近,誤差最小。由此進一步驗證了混沌PSO算法相比傳統的最小二乘和粒子群方法的優越性。
對SCARA機器人進行運動學建模和動力學建模,提出了簡化的SCARA機器人模型,設計優化的激勵軌跡,對該模型進行參數辨識。在傳統的PSO算法的基礎上,提出了混沌PSO優化算法,將混沌的遍歷性和粒子群收斂快的特點相結合。將該算法與遞推最小二乘、傳統PSO算法進行對比,通過仿真實驗,驗證其對于機器人模型參數辨識的正確性。仿真結果表明,該改進方法能夠有效地改善粒子群算法的早熟收斂問題,跳出局部最優,極大地提高了計算精度和全局尋優能力。

圖5 兩個關節力矩誤差Fig.5 Torque error of two links
[1]劉振宇,趙彬,朱海波.六自由度機械臂分揀系統仿真平臺研究[J].機械設計與制造,2013,34(2):210-213.
[2]Craig J J.Introduction to Robotics:Mechanics and Control[M].3rd ed.Prentice Hall,2005:62-89.
[3] 崔敏其.SCARA機器人的拉格朗日動力學建模[J].機械設計與制造,2013,34(12):76-78.
[4]贠超.機器人學導論[M].3版.北京:機械工業出版社,2006:59.
[5]Corke P.A robotics toolbox for Matlab[J].IEEE Robotics and Automation Magazine,1996,3(1):24-32.
[6]Ishibashi N,Maeda Y.Learning of inverse-dynamics for SCARA robot[C]//SICE Annual Conference(SICE),2011 Proceedings of IEEE,2011:1300-1303.
[7]閆昊.SCARA機器人動力學分析及魯棒性控制研究[D].哈爾濱:哈爾濱工業大學,2013.
[8]劉金琨,沈曉蓉,趙龍.系統辨識理論及Matlab仿真[M].北京:電子工業出版社,2013:203.
[9]Lu Jian’an,Chen Yonghua.Particle swarm optimization (PSO)based topology optimization of part design with fuzzy parameter tuning[J].Computer-Aided Design and Applications,2013,(9):62-68.
[10]Fan H Y.A modification to particle swarm optimization algorithm[J].Engineering Computations,2002,19(7-8):970-989.
[11]唐賢倫.混沌粒子群優化算法理論及應用研究[D].重慶:重慶大學,2007.