張師源,戴 駿,鄧 華
(1.中南大學 高性能復雜制造國家重點實驗室,長沙 410083;2.中南大學 機電工程學院,長沙 410083)
建立精確的動力學模型是對多自由度機械臂進行有效的動力學分析、軌跡規劃與控制的基礎。為此,許多學者開展了多自由度機械臂動力學參數辨識的研究。因為六自由機械臂具有動力學參數多,耦合強等特點,所以對其進行動力學參數辨識比較困難。
Swevers[1]等將有限項正弦與余弦函數集合起來提出一種激勵軌跡信號設計方式,但只在三自由度機械臂的動力學參數辨識上應用。Afroug[2]等提出了一種識別動力學參數和摩擦參數的方法,但只在平面三自由度機械臂動力學參數辨識上應用。對于六自由度機械臂,禹鑫燚[3]等利用PSO算法只辨識出了其前三個關節的動力學參數而對后三個關節的動力學參數并未進行研究。丁亞東[4]等提出一種分布辨識的方法,獲取了完整的六自由度機械臂動力學參數,但將辨識實驗分為多次進行,由于實驗條件不一致而不可避免地引入誤差。此后,程青松[5]等獲取了七自由度機械臂的動力學參數,但由于七自由度機械臂所含動力學參數較多,各關節耦合強,辨識算法復雜,計算量大,辨識精度很難得到保證。從實驗結果來看,第七關節實測力矩與預測力矩差異較大。在辨識算法的選擇上,丁峰等人應用多信息辨識理論[6]在遞推最小二乘的基礎上,提出多信息最小二乘法[7,8],但是該算法的初值是元素全為1的列向量,這樣的取值可能對系統辨識結果的精度與收斂速度造成一定的影響。
針對以上問題,本文提出了一種基于六自由度機械臂動力學參數的一次性辨識方法,將六自由度機械臂的前后三個關節分為兩部分,分別優化設激勵軌跡信號,并進行動力學參數的一次性整體辨識,充分考慮了關節間的耦合作用,消除了由于多次辨識實驗所帶來的實驗條件不一致的誤差。然后利用最小二乘法與多信息最小二乘法相結合的辨識算法,避免了由于初值的取值不當而帶來辨識精度有限的問題,同時提升了辨識計算的速度。最后通過對某型六自由度機械臂的實驗驗證了所得出系統動力學參數的準確性與有效性。
根據文獻[9]的推導,對于n自由度旋轉關節串聯機器人的動力學方程為:

以上推導的動力學方程中只包含剛體力學上的力,而未考慮摩擦力的影響,在典型工況中關節摩擦力大約相當于機械臂驅動力矩的25%,為了反應真實工況的動力學模型,需要考慮摩擦力的因素,一個合適的摩擦模型不僅能夠正確的預測摩擦行為的物理行為,還能起到提高精度的作用。
目前主要應用的靜態摩擦模型是庫倫粘滯摩擦模型[10],利用庫倫粘滯摩擦模型獲得n自由度機械臂的各關節i(i=1,2,…,n)的摩擦力矩為:

式中:fci為庫倫摩擦力矩系數,fvi為粘性摩擦力矩系數。
因為庫倫粘滯摩擦模型采用了一個連續的函數來逼近Stribeck摩擦模型,且利于控制各關節電機驅動的實現,所以采用該摩擦模型是合適的。
因此n連桿串聯機械臂的動力學模型表達式如下:

式中:τf∈Rn為庫倫粘滯摩擦力矩向量。
由于六自由度機械臂的動力學模型復雜、計算量大、耦合性強的緣故,根據文獻[4]機械臂后三關節的力矩對先前關節的力矩影響較小,所以本文將六自由度機械臂的激勵軌跡參數的獲取拆解成前三關節與后三關節兩部分分別獲得,減小了計算的復雜度,提升了效率。
由于大多數機器人結構復雜,直接測量其結構參數是不現實的,同時機器人各關節之間存在摩擦與間隙。所以,為了使機器人辨識的模型更加準確,需要專門設計實驗,而實驗中激勵軌跡曲線的設計及其重要。
當采用正弦與余弦函數的一系列代數和即周期性傅里葉級數[1]作為激勵軌跡時具有處理數據方便、對噪聲不敏感等優點。所以本文擬采用五階傅里葉級數作為實驗的激勵軌跡。表示形式如下:

其中,ωb為五階傅里葉級數的基礎頻率,周期為T=2π/ωb,aj,0是常數項與sin,cos函數的幅值aj,k,bj,k一樣都為未知系數。所以上述中每一個五階傅里葉級數包含十一個未知系數。
遺傳算法是一種全局優化概率算法[11],它屬于進化算法的一種,與其他優化算法相比,它通過模仿自然界的選擇與遺傳機理來尋找最優解,具有良好的全局搜索的能力,可以快速地將解空間中的全體解搜索出,而不會陷入最優解的快速下降陷阱;同時遺傳算法具有潛在的并行性,可以進行多個個體的同時比較,所以本文采用遺傳算法作為優化算法,在滿足機器人實際約束的條件下來獲取五階傅里葉級數中所含的未知系數。
確定每個關節所需要辨識得到的基本動力學參數即:

式中:XXi;YYi;ZZi;XYi;XZi;YZi;為第i 個關節的慣性張量,Xi;Yi;Zi為第i個關節的質心位置,Mi為第i個關節的質量。
我們可以利用慣性重組法與機器人的幾何參數得到六自由度機械臂系統的最小慣性參數集組成機器人的基礎參數矩陣[12]。
將機械臂的后三個關節的所有動力學參數置零,從而構成了本文對前三個關節優化過程中所使用的目標函數。
機械臂的動力學特性與慣性參數之間存在線性關系[12]所以可將機械臂的動力學方程寫成如下矩陣方程相乘的形式:


觀測矩陣的條件數反應了辨識方法的抗噪聲能力以及參數估計收斂的速率,所以遺傳算法中將觀測矩陣的條件數作為適應度函數,根據各關節角度、角速度、角加速度的限位值來設計初始種群,目標函數的數學模型建立如下:

式(8)中:Ab為觀測矩陣,{s(q(t))}為機械臂末端位置的集合,S為機械臂的工作空間,qimin,qimax為各關節的角度限位值,為各關節的角速度限位值,為各關節角加速度限位值,如表1所示。

表1 各個關節的關節限位值
采用遺傳算法[11]優化激勵軌跡,優化過程中,傅里葉級數軌跡的基頻為ωf=0.1Hz(周期為10s),初始種群規模為50個,最大遺傳代數為200代,選擇錦標賽算法,交叉概率p=0.6,變異概率n=0.01。采用遺傳算法優化后各關節激勵軌跡如圖1所示,各關節激勵軌跡傅里葉級數的常數項與正弦余弦項的幅度值如表2所示。

圖1 優化后各關節激勵軌跡
仿照前三關節的激勵軌跡形式同樣采取周期性傅里葉級數作為激勵軌跡,在滿足各關節限位值的情況下,每個關節的激勵曲線參數通過反復實驗來選取,后三關節的關節限位值如表1所示。
最終選取的后三關節激勵軌跡的參數如表2所示。
多信息最小二乘算法(MILS)是基于最小二乘算法(LS)和遞推最小二乘算法(RLS)的基礎上提出的[7,8],這種算法的每次迭代都利用了n個信息E(n,t),與只用到一個信息e(t)的遞推最小二乘算法相比較而言,參數的精度得到提高,具體算法如下:

式(9)中Y(n,t)為第t時刻包含n個樣本的采樣值,n為處理數據時每組數據所包含樣本的個數,φ(n,t)為t時刻包含n個樣本的觀測矩陣的值。
在多信息最小二乘法中初值給出如下[7,8]:,其中b為元素全為1的列向量。這樣的初值取值會帶來精度有限的問題,同時辨識計算的速度也會下降。本文在此基礎上作如下改進,先利用最小二乘算法獲得一組系統參數的辨識值,將其作為初值之后再以所獲得的系統辨識值作為初始值利用多信息最小二乘法進行修正,避免了由于初值的取值不當而帶來辨識精度有限的問題。
當機械臂重復連續跟蹤激勵軌跡使采樣得到的數據會受到測量噪聲的污染,如果將含有噪聲的數據直接用以系統辨識那么將會影響辨識的結果,所以我們將采樣的數據先在時域上進行平均化從而減弱采樣噪聲的影響、提高信噪比。

表2 各個關節激勵軌跡參數表
根據上述組合算法獲得的最終系統辨識值如表3所示。

表3 系統參數的辨識值
本文實驗所采用的某型六自由度機械臂如圖2所示,六自由度機械臂是基于TCP/IP的遠程數據接口,首先在計算機上基于所得到的各關節的激勵軌跡編寫相關VAL3程序,之后調試機械臂使其按照預定的軌跡連續運動10個周期,通過使用機械臂內部的關節編碼器采集實時關節角度數據,通過測量關節電機電流獲得實時力矩數據。
由于采樣過程中不可避免地引入噪聲等,誤差,所以對多測得的力矩數據與角度數據進行時域平均化并對所對平均化后的力矩數據進行移動平局濾波去除噪聲,角度數據進行一階與二階的差分獲得關節的角速度與角加速的樣本。為了進一步降低測量噪聲的影響,對差分獲得的關節角度與角加速度樣本也進行移動平局濾波處理。

圖2 實驗所用的六自由度機械臂
為了驗證所得出的六自由度機械臂動力學模型的準確性,本文選取了與激勵軌跡不同的曲線進行模型的驗證,當機械臂跟蹤末端軌跡時,采用激光跟蹤儀實測機械臂末端運動軌跡如圖3所示。當機械臂跟蹤如圖所示的關節空間軌跡曲線時,采集每一固定時間間隔的力矩信號,之后將對時刻的角度值、角速度值、與角加速度值帶入所得到的動力學模型內計算所得到的關節力矩的預測值最后將其與采樣力矩進行對比如圖3所示。
從圖4中可知,實際力矩在預測力矩的上下有一定的波動,關節2、3、4、5的預測力矩與實際力矩較為接近,關節1、6的誤差明顯,產生誤差的原因可能如下幾個方面:首先由于機械臂在運動過程中發生震顫,同時在實驗過程中由于工作臺的震動會有引入一定的誤差。其次在處理數據是對角度進行一階差分和二階差分也會引入一定的誤差。

圖3 機械臂模型驗證軌跡

圖4 各關節的實際力矩值和預測力矩值
1)通過實驗表明了本文所提出的六自由度機械臂的一次性辨識方法的有效性,該方法充分考慮了關節之間的耦合作用,消除了由于多次辨識實驗所帶來的實驗條件不一致的誤差。
2)利用最小二乘算法獲得一組系統參數的辨識值,將其作為初值辨識的初值,避免了多信息最小二乘算法因初值的取值不當而帶來辨識精度有限的問題。
3)本文所提出的六自由度機械臂的一次性辨識方法能夠減小系統計算的復雜度,提高了計算效率。對于更高自由度機械臂激勵軌跡的設計研究具有重要意義。