吳 強,鄧慶文,胡澤啟,李軼峰,邵 坦
(1.武漢理工大學 汽車工程學院,湖北 武漢 430070; 2.武漢理工大學 現代汽車零部件技術湖北省重點實驗室,湖北 武漢 430070;3.湖北三環鍛造有限公司,湖北 谷城 441700)
6R機器人是面向工業領域的多關節機械手或多自由度的機器裝置,其自動執行工作,被廣泛應用于各個行業。但由于作業對象的多樣化,6R(六自由度且所有運動副均為轉動副)機器人需迅速進行調整,以適應不同復雜形狀下的軌跡規劃任務。其逆運動學的求解精度和效率是決定機器人完成工作的精度和效率的重要因素。6R機器人的逆運動學求解常用的方法有代數法[1-3]、幾何法[4]和數值迭代法[5]等。這些方法大多存在一些局限性,代數法需求解非線性方程組,計算量大;幾何法的局限性太強,必須保證機械手的前3個節點的封閉形式解在幾何上存在;數值迭代法受初始值影響,容易出現迭代不收斂。神經網絡能通過已知的數據來學習并逼近任何非線性函數,收斂速度快,精度高。近年來,運用神經網絡進行6R機器人逆運動學求解開辟了一條新途徑[6-7]。但運用該方法求解時普遍只是分析神經網絡的結構,而忽略了訓練樣本對于神經網絡輸出精度的影響。
周毅等[8]指出對于網絡學習樣本的選擇進行解釋或說明的不多,對網絡樣本的選擇還缺少一個統一的認識,不同的人會有不同的選擇方式,其結果也就會出現差異。韓興國等[9-10]指出訓練樣本的選擇能夠影響神經網絡的學習和泛化能力,從而影響最終的求解精度,其通過模糊聚類理論,將整個機器人工作范圍進行劃分,然后尋求每一個工作區域的聚類中心,并以此為基礎進行樣本優選。最終選取8 000個點作為訓練網絡,得到了較好的結果。在另外一些文獻中則未進行樣本的擇優選取,文獻[6]中是在一定范圍內選取600個樣本點,文獻[7]中則采用隨機法選取700個樣本點。均未明確指出訓練樣本質量問題。
利用神經網絡求解機器人逆解過程中,為了規避復雜的樣本優選工作,提出一種將代數法與神經網絡相結合的方法,將神經網絡得到的泛化能力強的關節角度作為解析解,然后直接代入到解析方程中進行其余關節的求解。這種方法結合了神經網絡求解速度快和代數法精度高的優點。可以在不過分考慮樣本優良的情況下,利用神經網絡快速求解機器人運動逆解,并用代數法保證其精度,彌補樣本可能帶來的誤差。相對于純解析法,避免了多解情況,在一定程度上簡化了計算過程。
6R機器人簡化模型如圖1所示,其運動副均為轉動副,前3個關節用來確定機器人末端的空間位置,后3關節用來確定末端姿態。一般6R機器人的其后3個相鄰關節軸相交于一點,滿足Pieper準則,可以通過代數法求得其封閉解。

圖1 6R機器人簡化模型
代數解法首先要為6R機器人的每一連桿建立一個坐標系,確定D-H參數,并用齊次變換矩陣來描述這些坐標系間的相對位置和姿態,以獲得末端執行器相對于基坐標系的齊次變換矩陣,求得機器人的運動方程。一般6R機器人的結構如圖1所示(具體的型號可能在關節位置上有所變化),其中每個連桿兩端關節的軸線方向為zi,相連關節軸線的公垂線的距離為ai,稱為連桿長度;相連公垂線的距離為di,稱為兩連桿距離;上一軸線相對于下一軸線需要旋轉的角度為αi,稱為兩連桿扭角;相連連桿之間的夾角為θi,稱為連桿夾角。其對應的D-H參數如表1所示。

表1 D-H參數表
根據Craig參考坐標系建立約定,坐標系[i-1]到坐標系[i]的齊次變換矩陣為:
(1)
式中:sθi=sinθi;cθi=cosθi;sαi=sinαi;cαi=cosαi。根據文獻[2],6R機器人末端關節坐標系相對于基礎坐標系的坐標轉換矩陣為:
0T6=0T11T22T33T44T55T6
(2)
根據式(2)可求出0T6,其表示基座到機器人末端的轉換矩陣。
(3)
式中:RN為從機器人末端姿態;PN為機器人末端位置,RTH為機器人末端位姿。
nx=s6(s1c4-c1s4(c2c3-s2s3))+c6·
(c5(s1s4+c1c4(c2c3-s2s3))-s5c1(c2s3+c3s2))
(4)
ny=-s6(c1c4-s1s4(s2s3-c2c3))-c6·
(c5(c1s4-s1c4(s2s3-c2c3))-c5s1(c2s3+c3s2))
(5)
nz=-s23s4s6-c6(c23s5+s23c4c5)
(6)
ox=c6(s1c4-c1s4(c2c3-s2s3))-s6·
(c5(s1s4+c1c4(c2c3-s2s3))-s5c1(c2s3+c3s2))
(7)
oy=s6(c5(c1s4+s1c4(s2s3-c2c3))+
s1s5(c2s3+c3s2))-
c6(c1c4-s1s4(s2s3-c2c3))
(8)
oz=-s6(c23s5+s23c4c5)-s23c6s4
(9)
ax=s5(s1s4+c1c4(c2c3-s2s3))+
c1c5(c2s3+c3s2)
(10)
ay=c5(c2s1s3+c3s2s4)-
s5(c1s4+s1c4(s2s3-c2c3))
(11)
az=-c23c5+s23c4s5
(12)
px=c1(a2+d4s23+a3c2)
(13)
py=s1(a2+d4s23+a3c2)
(14)
pz=d1-d4c23+a3s2
(15)
式中:si=sinθi;ci=cosθi;sij=sin(θi+θj);cij=cos(θi+θj)

根據矩陣對應元素相等可求出θ1,將求得的θ1作為已知解,利用同樣的辦法可以求得其余解。一般前3關節用矩陣第4列元素對應相等求解,而后3關節則用前3列元素對應相等求解。
在求解過程中,已知0Tn的數值,求解θ1,θ2,…,θ6的所有可能解通常是一個多解耦合、高維度、非線性問題,求解復雜且不易求出,因此考慮使用RBF神經網絡進行逼近。通過將各關節轉角和機器人末端位姿作為訓練樣本的輸出輸入,不斷訓練RBF神經網絡,使其逼近各關節轉角和機器人末端位姿之間的變換矩陣關系,訓練好的神經網絡收到下一個位姿輸入時,就能計算出各關節的轉角,從而達到計算機器人逆解的目的。
在具體的機器人求解過程中輸入為式(3)中的姿態RN和位置PN。共有12個變量,作為RBF模型的輸入變量太多,會造成網絡結構復雜,考慮將位姿矩陣轉換為歐拉角,減少輸入量。設定姿態RN按z-y-z軸的旋轉順序進行歐拉變換獲得,末端姿態RN中的9個變量可以用歐拉角α,β,γ表示。根據坐標轉換原理,求得機器人末端姿態RN。
α=atan2(ay,ax)
(16)
β=atan2(axcosα+aysinα,az)
(17)
γ=atan2(-nxsinα+nycosα,oycosα-oxsinα)
(18)
將Px,Py,Pz,α,β,γ作為RBF模型的輸入變量。
徑向基網絡(RBF)是一種用于函數逼近和模式識別的神經網絡結構,其實質是給定一定樣本之后,RBF神經網絡尋找一組最優的徑向基函數的節點中心W1和一組最優的輸出權值W2,使RBF神經網絡能夠逼近樣本輸入與輸出之間的關系,從而通過逼近的函數預測輸出值在給定精度下最大限度地接近于實際輸出。
徑向基網絡結構主要分為3層,第一層為輸入層,節點個數等于輸入維數;第二層為隱含層,節點個數視問題的復雜度而定;第三層為輸出層,節點個數等于輸出數據維數,其結構如圖2所示。

圖2 RBF神經網絡結構
徑向基神經網絡的激活函數是以輸入向量和權值向量之間的距離‖dist‖作為自變量的。其中:
‖dist‖=‖P-iW1‖
(19)
第一層神經元i的凈輸入為:
(20)
RBF神經網絡中有幾種不同類型的傳輸函數,在此,考慮在神經網絡中經常使用的高斯函數,其定義如下:
a1=e-n2
(21)
當使用高斯函數時,偏置值與標準差之間具有如下的關系:
(22)
得到的徑向基輸出為:
a1=radbas(‖P-W1‖b1)
(23)
RBF網絡的第二層是一個標準線性層:
a2=W2a1+b2
(24)
即為輸出與輸入的關系:
(25)
式中:P為輸入,大小為R1×1矩陣;radbas()為高斯函數;b1為偏置值,大小為S1×1矩陣;W1為徑向基層的權值,大小為S1×R矩陣;a1為徑向基層的輸出,大小為S1×1矩陣;W2為線性層的權值,大小為S2×S1矩陣;a2為最終的輸出,大小為S2×1。
數據歸一化處理是將所有數據轉化為0~1之間的數,其目的是取消各維數據間數量級差別,避免在計算過程中發生數據溢出的現象,歸一化處理公式為:
(26)
式中:z為歸一化前參數;zmin為參數最小值;zmax為參數最大值;z′為歸一化后的參數。
在式(16)~式(18)中獲得的位姿參數和關節角θ經過式(26)歸一化處理后分別作為RBF的輸入和輸出參數,即輸入參數P=[P′x,P′y,P′z,α′,β′,γ′]T,輸出參數a2=[θ′1,θ′2,θ′3,θ′4,θ′5,θ′6]T,建立基于RBF神經網絡的6輸入6輸出的逆運動學求解預測模型。
用該預測模型計算出的關節角需要進行反歸一化處理:
θi=θimin+θ′i(θimax-θimin)i=1,2,…,6
(27)
式中:θ′i'為經過歸一化處理后的預測輸出關節角。
在一般的RBF神經網絡6R機器人逆運動學求解中,普遍分析的是神經網絡的結構,忽略了訓練樣本對于神經網絡輸出精度的影響。選點常見的方式是在每個關節的上下限范圍(θdown,θup) 中隨機選取N個訓練樣本點和n個測試樣本點,利用這些點進行神經網絡的訓練和測試,計算得到相應的θ1,θ2,…,θ6。但不同的關節對于樣本點的敏感性不一樣,神經網絡所建立的各個關節預測模型在不同的關節上其穩定性也會有所差異。
為了提高不穩定的關節預測模型的精度,將代數法融入到神經網絡中,通過神經網絡計算得到的θ1,θ2,…,θ6,將與預期的精度偏差較大的一個關節或多個關節解θi(i=1,2,…,6)舍去,將其余的解θj(j=1,i-1,i+1,…,6)作為已知解,再利用代數法反求出θi。
將代數法和神經網絡相結合的目的是利用神經網絡來簡化機器人逆解的計算過程,利用代數法的精度來控制神經網絡樣本點所可能帶來的誤差,簡化了樣本點的選取過程,保證了神經網絡求解的精度,避免代數法的非線性解耦,達到快速、精確求解機器人逆解的目的。
以ABB IRB140作為仿真分析模型,該機器人屬于6R機器人,其結構示意圖如圖3所示。

圖3 ABB IRB140機器人本體參數
其中對應的D-H參數為:d1=352 mm,a2=70 mm,a3=360 mm,d4=380 mm。
利用MATLAB機器人工具箱,建立ABB IRB140模型如圖4所示。

圖4 MATLAB IRB140機器人模型
通過式(16)~式(18)可以求得RBF神經網絡的輸入。
使用隨機選取方法選取樣本點。在選取樣本點時,將θ1,θ2,…,θ6的取值范圍都限定在(0°,28°)內,隨機選取1 000個樣本點。仿真結果如圖5所示。計算得到的各關節轉角與真值之間的平均誤差如表2所示。

圖5 RBF神經網絡仿真結果一

關節平均誤差/(°)關節平均誤差/(°)10.008 540.446 420.008 950.019 530.007 860.460 7
為了說明訓練點的選取對于精度的影響,通過改變各個角度的取值范圍,將θ1,θ2,…,θ6,的取值范圍分別限定在(0°,56°),(0°,56°),(0°,56°),(0°,28°),(0°,28°),(0°,28°)內,隨機選取1 000個樣本點。仿真結果如下圖6所示。計算得到的各關節轉角與真值之間的平均誤差如表3所示。

圖6 RBF神經網絡仿真結果二

關節平均誤差/(°)關節平均誤差/(°)10.009 740.725 720.011 850.014 730.028 960.739 2
通過訓練好的網絡進行測試時,在訓練范圍內按照隨機選取10個點進行測試,從圖6可知,即使前3關節的角度取值范圍變大,即訓練樣本的相對密度減小時,其泛化能力依然很好,而第四關節和第六關節泛化能力相對較差。為了解決神經網絡在后3關節的泛化能力相對較差的情況,提出將神經網絡法和代數法相結合的方法。
使用第二組訓練結果,即θ1,θ2,…,θ6的取值范圍分別限定在(0°,56°),(0°,56°),(0°,56°),(0°,28°),(0°,28°),(0°,28°)內時,通過訓練RBF神經網絡獲得的θ1,θ2,θ3,θ5數值,利用代數法求得第四,第六關節的轉動量。
用逆變化左乘式(3)的兩邊得:
(28)
令式(28)兩端的元素(1,3)和(3,3)對應相等可得:
axc23c1+ayc23s1+a2s23=c4s5
(29)
axs1-ayc1=s4s5
(30)
根據三角變換可得:
θ4=atan2(s4,c4)
(31)
同理可得:
θ6=atan2(s6,c6)
(32)
因為其它角度都已知,不存在解耦的過程,極大地簡化了計算過程。利用RBF神經網絡獲得的θ1,θ2,θ3,θ5數值及式(31),式(32)求得的結果如圖7所示。

圖7 代數解與真值之間的誤差
用代數法計算得到的平均誤差分別為0.094 3°和0.070 1°,相比于直接用神經網絡得到平均誤差0.725 7°和0.739 2°來說精度提升了一個量級。
(1)提出了一種基于RBF神經網絡與代數法的6R機器人逆運動求解方法,該方法避免了未經優化選取的樣本造成網絡泛化能力相對較差的情況,同時也省去了樣本優化的的繁瑣過程。另一方面在一定程度上簡化了代數法的解耦與選優的過程,是一種結合神經網絡與代數法優點的方法。在簡化求解過程中又保證了解的精確性。
(2)基于RBF神經網絡與代數法的預測模型能廣泛應用于其他一般6R機器人,可獲得較高的逆解精度。