張師源,戴 駿,鄧 華
(1.中南大學(xué) 高性能復(fù)雜制造國家重點(diǎn)實(shí)驗(yàn)室,長沙 410083;2.中南大學(xué) 機(jī)電工程學(xué)院,長沙 410083)
建立精確的動力學(xué)模型是對多自由度機(jī)械臂進(jìn)行有效的動力學(xué)分析、軌跡規(guī)劃與控制的基礎(chǔ)。為此,許多學(xué)者開展了多自由度機(jī)械臂動力學(xué)參數(shù)辨識的研究。因?yàn)榱杂蓹C(jī)械臂具有動力學(xué)參數(shù)多,耦合強(qiáng)等特點(diǎn),所以對其進(jìn)行動力學(xué)參數(shù)辨識比較困難。
Swevers[1]等將有限項(xiàng)正弦與余弦函數(shù)集合起來提出一種激勵(lì)軌跡信號設(shè)計(jì)方式,但只在三自由度機(jī)械臂的動力學(xué)參數(shù)辨識上應(yīng)用。Afroug[2]等提出了一種識別動力學(xué)參數(shù)和摩擦參數(shù)的方法,但只在平面三自由度機(jī)械臂動力學(xué)參數(shù)辨識上應(yīng)用。對于六自由度機(jī)械臂,禹鑫燚[3]等利用PSO算法只辨識出了其前三個(gè)關(guān)節(jié)的動力學(xué)參數(shù)而對后三個(gè)關(guān)節(jié)的動力學(xué)參數(shù)并未進(jìn)行研究。丁亞東[4]等提出一種分布辨識的方法,獲取了完整的六自由度機(jī)械臂動力學(xué)參數(shù),但將辨識實(shí)驗(yàn)分為多次進(jìn)行,由于實(shí)驗(yàn)條件不一致而不可避免地引入誤差。此后,程青松[5]等獲取了七自由度機(jī)械臂的動力學(xué)參數(shù),但由于七自由度機(jī)械臂所含動力學(xué)參數(shù)較多,各關(guān)節(jié)耦合強(qiáng),辨識算法復(fù)雜,計(jì)算量大,辨識精度很難得到保證。從實(shí)驗(yàn)結(jié)果來看,第七關(guān)節(jié)實(shí)測力矩與預(yù)測力矩差異較大。在辨識算法的選擇上,丁峰等人應(yīng)用多信息辨識理論[6]在遞推最小二乘的基礎(chǔ)上,提出多信息最小二乘法[7,8],但是該算法的初值是元素全為1的列向量,這樣的取值可能對系統(tǒng)辨識結(jié)果的精度與收斂速度造成一定的影響。
針對以上問題,本文提出了一種基于六自由度機(jī)械臂動力學(xué)參數(shù)的一次性辨識方法,將六自由度機(jī)械臂的前后三個(gè)關(guān)節(jié)分為兩部分,分別優(yōu)化設(shè)激勵(lì)軌跡信號,并進(jìn)行動力學(xué)參數(shù)的一次性整體辨識,充分考慮了關(guān)節(jié)間的耦合作用,消除了由于多次辨識實(shí)驗(yàn)所帶來的實(shí)驗(yàn)條件不一致的誤差。然后利用最小二乘法與多信息最小二乘法相結(jié)合的辨識算法,避免了由于初值的取值不當(dāng)而帶來辨識精度有限的問題,同時(shí)提升了辨識計(jì)算的速度。最后通過對某型六自由度機(jī)械臂的實(shí)驗(yàn)驗(yàn)證了所得出系統(tǒng)動力學(xué)參數(shù)的準(zhǔn)確性與有效性。
根據(jù)文獻(xiàn)[9]的推導(dǎo),對于n自由度旋轉(zhuǎn)關(guān)節(jié)串聯(lián)機(jī)器人的動力學(xué)方程為:
以上推導(dǎo)的動力學(xué)方程中只包含剛體力學(xué)上的力,而未考慮摩擦力的影響,在典型工況中關(guān)節(jié)摩擦力大約相當(dāng)于機(jī)械臂驅(qū)動力矩的25%,為了反應(yīng)真實(shí)工況的動力學(xué)模型,需要考慮摩擦力的因素,一個(gè)合適的摩擦模型不僅能夠正確的預(yù)測摩擦行為的物理行為,還能起到提高精度的作用。
目前主要應(yīng)用的靜態(tài)摩擦模型是庫倫粘滯摩擦模型[10],利用庫倫粘滯摩擦模型獲得n自由度機(jī)械臂的各關(guān)節(jié)i(i=1,2,…,n)的摩擦力矩為:
式中:fci為庫倫摩擦力矩系數(shù),fvi為粘性摩擦力矩系數(shù)。
因?yàn)閹靷愓硿Σ聊P筒捎昧艘粋€(gè)連續(xù)的函數(shù)來逼近Stribeck摩擦模型,且利于控制各關(guān)節(jié)電機(jī)驅(qū)動的實(shí)現(xiàn),所以采用該摩擦模型是合適的。
因此n連桿串聯(lián)機(jī)械臂的動力學(xué)模型表達(dá)式如下:
式中:τf∈Rn為庫倫粘滯摩擦力矩向量。
由于六自由度機(jī)械臂的動力學(xué)模型復(fù)雜、計(jì)算量大、耦合性強(qiáng)的緣故,根據(jù)文獻(xiàn)[4]機(jī)械臂后三關(guān)節(jié)的力矩對先前關(guān)節(jié)的力矩影響較小,所以本文將六自由度機(jī)械臂的激勵(lì)軌跡參數(shù)的獲取拆解成前三關(guān)節(jié)與后三關(guān)節(jié)兩部分分別獲得,減小了計(jì)算的復(fù)雜度,提升了效率。
由于大多數(shù)機(jī)器人結(jié)構(gòu)復(fù)雜,直接測量其結(jié)構(gòu)參數(shù)是不現(xiàn)實(shí)的,同時(shí)機(jī)器人各關(guān)節(jié)之間存在摩擦與間隙。所以,為了使機(jī)器人辨識的模型更加準(zhǔn)確,需要專門設(shè)計(jì)實(shí)驗(yàn),而實(shí)驗(yàn)中激勵(lì)軌跡曲線的設(shè)計(jì)及其重要。
當(dāng)采用正弦與余弦函數(shù)的一系列代數(shù)和即周期性傅里葉級數(shù)[1]作為激勵(lì)軌跡時(shí)具有處理數(shù)據(jù)方便、對噪聲不敏感等優(yōu)點(diǎn)。所以本文擬采用五階傅里葉級數(shù)作為實(shí)驗(yàn)的激勵(lì)軌跡。表示形式如下:
其中,ωb為五階傅里葉級數(shù)的基礎(chǔ)頻率,周期為T=2π/ωb,aj,0是常數(shù)項(xiàng)與sin,cos函數(shù)的幅值aj,k,bj,k一樣都為未知系數(shù)。所以上述中每一個(gè)五階傅里葉級數(shù)包含十一個(gè)未知系數(shù)。
遺傳算法是一種全局優(yōu)化概率算法[11],它屬于進(jìn)化算法的一種,與其他優(yōu)化算法相比,它通過模仿自然界的選擇與遺傳機(jī)理來尋找最優(yōu)解,具有良好的全局搜索的能力,可以快速地將解空間中的全體解搜索出,而不會陷入最優(yōu)解的快速下降陷阱;同時(shí)遺傳算法具有潛在的并行性,可以進(jìn)行多個(gè)個(gè)體的同時(shí)比較,所以本文采用遺傳算法作為優(yōu)化算法,在滿足機(jī)器人實(shí)際約束的條件下來獲取五階傅里葉級數(shù)中所含的未知系數(shù)。
確定每個(gè)關(guān)節(jié)所需要辨識得到的基本動力學(xué)參數(shù)即:
式中:XXi;YYi;ZZi;XYi;XZi;YZi;為第i 個(gè)關(guān)節(jié)的慣性張量,Xi;Yi;Zi為第i個(gè)關(guān)節(jié)的質(zhì)心位置,Mi為第i個(gè)關(guān)節(jié)的質(zhì)量。
我們可以利用慣性重組法與機(jī)器人的幾何參數(shù)得到六自由度機(jī)械臂系統(tǒng)的最小慣性參數(shù)集組成機(jī)器人的基礎(chǔ)參數(shù)矩陣[12]。
將機(jī)械臂的后三個(gè)關(guān)節(jié)的所有動力學(xué)參數(shù)置零,從而構(gòu)成了本文對前三個(gè)關(guān)節(jié)優(yōu)化過程中所使用的目標(biāo)函數(shù)。
機(jī)械臂的動力學(xué)特性與慣性參數(shù)之間存在線性關(guān)系[12]所以可將機(jī)械臂的動力學(xué)方程寫成如下矩陣方程相乘的形式:
觀測矩陣的條件數(shù)反應(yīng)了辨識方法的抗噪聲能力以及參數(shù)估計(jì)收斂的速率,所以遺傳算法中將觀測矩陣的條件數(shù)作為適應(yīng)度函數(shù),根據(jù)各關(guān)節(jié)角度、角速度、角加速度的限位值來設(shè)計(jì)初始種群,目標(biāo)函數(shù)的數(shù)學(xué)模型建立如下:
式(8)中:Ab為觀測矩陣,{s(q(t))}為機(jī)械臂末端位置的集合,S為機(jī)械臂的工作空間,qimin,qimax為各關(guān)節(jié)的角度限位值,為各關(guān)節(jié)的角速度限位值,為各關(guān)節(jié)角加速度限位值,如表1所示。
表1 各個(gè)關(guān)節(jié)的關(guān)節(jié)限位值
采用遺傳算法[11]優(yōu)化激勵(lì)軌跡,優(yōu)化過程中,傅里葉級數(shù)軌跡的基頻為ωf=0.1Hz(周期為10s),初始種群規(guī)模為50個(gè),最大遺傳代數(shù)為200代,選擇錦標(biāo)賽算法,交叉概率p=0.6,變異概率n=0.01。采用遺傳算法優(yōu)化后各關(guān)節(jié)激勵(lì)軌跡如圖1所示,各關(guān)節(jié)激勵(lì)軌跡傅里葉級數(shù)的常數(shù)項(xiàng)與正弦余弦項(xiàng)的幅度值如表2所示。
圖1 優(yōu)化后各關(guān)節(jié)激勵(lì)軌跡
仿照前三關(guān)節(jié)的激勵(lì)軌跡形式同樣采取周期性傅里葉級數(shù)作為激勵(lì)軌跡,在滿足各關(guān)節(jié)限位值的情況下,每個(gè)關(guān)節(jié)的激勵(lì)曲線參數(shù)通過反復(fù)實(shí)驗(yàn)來選取,后三關(guān)節(jié)的關(guān)節(jié)限位值如表1所示。
最終選取的后三關(guān)節(jié)激勵(lì)軌跡的參數(shù)如表2所示。
多信息最小二乘算法(MILS)是基于最小二乘算法(LS)和遞推最小二乘算法(RLS)的基礎(chǔ)上提出的[7,8],這種算法的每次迭代都利用了n個(gè)信息E(n,t),與只用到一個(gè)信息e(t)的遞推最小二乘算法相比較而言,參數(shù)的精度得到提高,具體算法如下:
式(9)中Y(n,t)為第t時(shí)刻包含n個(gè)樣本的采樣值,n為處理數(shù)據(jù)時(shí)每組數(shù)據(jù)所包含樣本的個(gè)數(shù),φ(n,t)為t時(shí)刻包含n個(gè)樣本的觀測矩陣的值。
在多信息最小二乘法中初值給出如下[7,8]:,其中b為元素全為1的列向量。這樣的初值取值會帶來精度有限的問題,同時(shí)辨識計(jì)算的速度也會下降。本文在此基礎(chǔ)上作如下改進(jìn),先利用最小二乘算法獲得一組系統(tǒng)參數(shù)的辨識值,將其作為初值之后再以所獲得的系統(tǒng)辨識值作為初始值利用多信息最小二乘法進(jìn)行修正,避免了由于初值的取值不當(dāng)而帶來辨識精度有限的問題。
當(dāng)機(jī)械臂重復(fù)連續(xù)跟蹤激勵(lì)軌跡使采樣得到的數(shù)據(jù)會受到測量噪聲的污染,如果將含有噪聲的數(shù)據(jù)直接用以系統(tǒng)辨識那么將會影響辨識的結(jié)果,所以我們將采樣的數(shù)據(jù)先在時(shí)域上進(jìn)行平均化從而減弱采樣噪聲的影響、提高信噪比。
表2 各個(gè)關(guān)節(jié)激勵(lì)軌跡參數(shù)表
根據(jù)上述組合算法獲得的最終系統(tǒng)辨識值如表3所示。
表3 系統(tǒng)參數(shù)的辨識值
本文實(shí)驗(yàn)所采用的某型六自由度機(jī)械臂如圖2所示,六自由度機(jī)械臂是基于TCP/IP的遠(yuǎn)程數(shù)據(jù)接口,首先在計(jì)算機(jī)上基于所得到的各關(guān)節(jié)的激勵(lì)軌跡編寫相關(guān)VAL3程序,之后調(diào)試機(jī)械臂使其按照預(yù)定的軌跡連續(xù)運(yùn)動10個(gè)周期,通過使用機(jī)械臂內(nèi)部的關(guān)節(jié)編碼器采集實(shí)時(shí)關(guān)節(jié)角度數(shù)據(jù),通過測量關(guān)節(jié)電機(jī)電流獲得實(shí)時(shí)力矩?cái)?shù)據(jù)。
由于采樣過程中不可避免地引入噪聲等,誤差,所以對多測得的力矩?cái)?shù)據(jù)與角度數(shù)據(jù)進(jìn)行時(shí)域平均化并對所對平均化后的力矩?cái)?shù)據(jù)進(jìn)行移動平局濾波去除噪聲,角度數(shù)據(jù)進(jìn)行一階與二階的差分獲得關(guān)節(jié)的角速度與角加速的樣本。為了進(jìn)一步降低測量噪聲的影響,對差分獲得的關(guān)節(jié)角度與角加速度樣本也進(jìn)行移動平局濾波處理。
圖2 實(shí)驗(yàn)所用的六自由度機(jī)械臂
為了驗(yàn)證所得出的六自由度機(jī)械臂動力學(xué)模型的準(zhǔn)確性,本文選取了與激勵(lì)軌跡不同的曲線進(jìn)行模型的驗(yàn)證,當(dāng)機(jī)械臂跟蹤末端軌跡時(shí),采用激光跟蹤儀實(shí)測機(jī)械臂末端運(yùn)動軌跡如圖3所示。當(dāng)機(jī)械臂跟蹤如圖所示的關(guān)節(jié)空間軌跡曲線時(shí),采集每一固定時(shí)間間隔的力矩信號,之后將對時(shí)刻的角度值、角速度值、與角加速度值帶入所得到的動力學(xué)模型內(nèi)計(jì)算所得到的關(guān)節(jié)力矩的預(yù)測值最后將其與采樣力矩進(jìn)行對比如圖3所示。
從圖4中可知,實(shí)際力矩在預(yù)測力矩的上下有一定的波動,關(guān)節(jié)2、3、4、5的預(yù)測力矩與實(shí)際力矩較為接近,關(guān)節(jié)1、6的誤差明顯,產(chǎn)生誤差的原因可能如下幾個(gè)方面:首先由于機(jī)械臂在運(yùn)動過程中發(fā)生震顫,同時(shí)在實(shí)驗(yàn)過程中由于工作臺的震動會有引入一定的誤差。其次在處理數(shù)據(jù)是對角度進(jìn)行一階差分和二階差分也會引入一定的誤差。
圖3 機(jī)械臂模型驗(yàn)證軌跡
圖4 各關(guān)節(jié)的實(shí)際力矩值和預(yù)測力矩值
1)通過實(shí)驗(yàn)表明了本文所提出的六自由度機(jī)械臂的一次性辨識方法的有效性,該方法充分考慮了關(guān)節(jié)之間的耦合作用,消除了由于多次辨識實(shí)驗(yàn)所帶來的實(shí)驗(yàn)條件不一致的誤差。
2)利用最小二乘算法獲得一組系統(tǒng)參數(shù)的辨識值,將其作為初值辨識的初值,避免了多信息最小二乘算法因初值的取值不當(dāng)而帶來辨識精度有限的問題。
3)本文所提出的六自由度機(jī)械臂的一次性辨識方法能夠減小系統(tǒng)計(jì)算的復(fù)雜度,提高了計(jì)算效率。對于更高自由度機(jī)械臂激勵(lì)軌跡的設(shè)計(jì)研究具有重要意義。