吳 強(qiáng),鄧慶文,胡澤啟,李軼峰,邵 坦
(1.武漢理工大學(xué) 汽車工程學(xué)院,湖北 武漢 430070; 2.武漢理工大學(xué) 現(xiàn)代汽車零部件技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430070;3.湖北三環(huán)鍛造有限公司,湖北 谷城 441700)
6R機(jī)器人是面向工業(yè)領(lǐng)域的多關(guān)節(jié)機(jī)械手或多自由度的機(jī)器裝置,其自動(dòng)執(zhí)行工作,被廣泛應(yīng)用于各個(gè)行業(yè)。但由于作業(yè)對(duì)象的多樣化,6R(六自由度且所有運(yùn)動(dòng)副均為轉(zhuǎn)動(dòng)副)機(jī)器人需迅速進(jìn)行調(diào)整,以適應(yīng)不同復(fù)雜形狀下的軌跡規(guī)劃任務(wù)。其逆運(yùn)動(dòng)學(xué)的求解精度和效率是決定機(jī)器人完成工作的精度和效率的重要因素。6R機(jī)器人的逆運(yùn)動(dòng)學(xué)求解常用的方法有代數(shù)法[1-3]、幾何法[4]和數(shù)值迭代法[5]等。這些方法大多存在一些局限性,代數(shù)法需求解非線性方程組,計(jì)算量大;幾何法的局限性太強(qiáng),必須保證機(jī)械手的前3個(gè)節(jié)點(diǎn)的封閉形式解在幾何上存在;數(shù)值迭代法受初始值影響,容易出現(xiàn)迭代不收斂。神經(jīng)網(wǎng)絡(luò)能通過(guò)已知的數(shù)據(jù)來(lái)學(xué)習(xí)并逼近任何非線性函數(shù),收斂速度快,精度高。近年來(lái),運(yùn)用神經(jīng)網(wǎng)絡(luò)進(jìn)行6R機(jī)器人逆運(yùn)動(dòng)學(xué)求解開辟了一條新途徑[6-7]。但運(yùn)用該方法求解時(shí)普遍只是分析神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),而忽略了訓(xùn)練樣本對(duì)于神經(jīng)網(wǎng)絡(luò)輸出精度的影響。
周毅等[8]指出對(duì)于網(wǎng)絡(luò)學(xué)習(xí)樣本的選擇進(jìn)行解釋或說(shuō)明的不多,對(duì)網(wǎng)絡(luò)樣本的選擇還缺少一個(gè)統(tǒng)一的認(rèn)識(shí),不同的人會(huì)有不同的選擇方式,其結(jié)果也就會(huì)出現(xiàn)差異。韓興國(guó)等[9-10]指出訓(xùn)練樣本的選擇能夠影響神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)和泛化能力,從而影響最終的求解精度,其通過(guò)模糊聚類理論,將整個(gè)機(jī)器人工作范圍進(jìn)行劃分,然后尋求每一個(gè)工作區(qū)域的聚類中心,并以此為基礎(chǔ)進(jìn)行樣本優(yōu)選。最終選取8 000個(gè)點(diǎn)作為訓(xùn)練網(wǎng)絡(luò),得到了較好的結(jié)果。在另外一些文獻(xiàn)中則未進(jìn)行樣本的擇優(yōu)選取,文獻(xiàn)[6]中是在一定范圍內(nèi)選取600個(gè)樣本點(diǎn),文獻(xiàn)[7]中則采用隨機(jī)法選取700個(gè)樣本點(diǎn)。均未明確指出訓(xùn)練樣本質(zhì)量問(wèn)題。
利用神經(jīng)網(wǎng)絡(luò)求解機(jī)器人逆解過(guò)程中,為了規(guī)避復(fù)雜的樣本優(yōu)選工作,提出一種將代數(shù)法與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,將神經(jīng)網(wǎng)絡(luò)得到的泛化能力強(qiáng)的關(guān)節(jié)角度作為解析解,然后直接代入到解析方程中進(jìn)行其余關(guān)節(jié)的求解。這種方法結(jié)合了神經(jīng)網(wǎng)絡(luò)求解速度快和代數(shù)法精度高的優(yōu)點(diǎn)。可以在不過(guò)分考慮樣本優(yōu)良的情況下,利用神經(jīng)網(wǎng)絡(luò)快速求解機(jī)器人運(yùn)動(dòng)逆解,并用代數(shù)法保證其精度,彌補(bǔ)樣本可能帶來(lái)的誤差。相對(duì)于純解析法,避免了多解情況,在一定程度上簡(jiǎn)化了計(jì)算過(guò)程。
6R機(jī)器人簡(jiǎn)化模型如圖1所示,其運(yùn)動(dòng)副均為轉(zhuǎn)動(dòng)副,前3個(gè)關(guān)節(jié)用來(lái)確定機(jī)器人末端的空間位置,后3關(guān)節(jié)用來(lái)確定末端姿態(tài)。一般6R機(jī)器人的其后3個(gè)相鄰關(guān)節(jié)軸相交于一點(diǎn),滿足Pieper準(zhǔn)則,可以通過(guò)代數(shù)法求得其封閉解。
圖1 6R機(jī)器人簡(jiǎn)化模型
代數(shù)解法首先要為6R機(jī)器人的每一連桿建立一個(gè)坐標(biāo)系,確定D-H參數(shù),并用齊次變換矩陣來(lái)描述這些坐標(biāo)系間的相對(duì)位置和姿態(tài),以獲得末端執(zhí)行器相對(duì)于基坐標(biāo)系的齊次變換矩陣,求得機(jī)器人的運(yùn)動(dòng)方程。一般6R機(jī)器人的結(jié)構(gòu)如圖1所示(具體的型號(hào)可能在關(guān)節(jié)位置上有所變化),其中每個(gè)連桿兩端關(guān)節(jié)的軸線方向?yàn)閦i,相連關(guān)節(jié)軸線的公垂線的距離為ai,稱為連桿長(zhǎng)度;相連公垂線的距離為di,稱為兩連桿距離;上一軸線相對(duì)于下一軸線需要旋轉(zhuǎn)的角度為αi,稱為兩連桿扭角;相連連桿之間的夾角為θi,稱為連桿夾角。其對(duì)應(yīng)的D-H參數(shù)如表1所示。
表1 D-H參數(shù)表
根據(jù)Craig參考坐標(biāo)系建立約定,坐標(biāo)系[i-1]到坐標(biāo)系[i]的齊次變換矩陣為:
(1)
式中:sθi=sinθi;cθi=cosθi;sαi=sinαi;cαi=cosαi。根據(jù)文獻(xiàn)[2],6R機(jī)器人末端關(guān)節(jié)坐標(biāo)系相對(duì)于基礎(chǔ)坐標(biāo)系的坐標(biāo)轉(zhuǎn)換矩陣為:
0T6=0T11T22T33T44T55T6
(2)
根據(jù)式(2)可求出0T6,其表示基座到機(jī)器人末端的轉(zhuǎn)換矩陣。
(3)
式中:RN為從機(jī)器人末端姿態(tài);PN為機(jī)器人末端位置,RTH為機(jī)器人末端位姿。
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)
根據(jù)矩陣對(duì)應(yīng)元素相等可求出θ1,將求得的θ1作為已知解,利用同樣的辦法可以求得其余解。一般前3關(guān)節(jié)用矩陣第4列元素對(duì)應(yīng)相等求解,而后3關(guān)節(jié)則用前3列元素對(duì)應(yīng)相等求解。
在求解過(guò)程中,已知0Tn的數(shù)值,求解θ1,θ2,…,θ6的所有可能解通常是一個(gè)多解耦合、高維度、非線性問(wèn)題,求解復(fù)雜且不易求出,因此考慮使用RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行逼近。通過(guò)將各關(guān)節(jié)轉(zhuǎn)角和機(jī)器人末端位姿作為訓(xùn)練樣本的輸出輸入,不斷訓(xùn)練RBF神經(jīng)網(wǎng)絡(luò),使其逼近各關(guān)節(jié)轉(zhuǎn)角和機(jī)器人末端位姿之間的變換矩陣關(guān)系,訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)收到下一個(gè)位姿輸入時(shí),就能計(jì)算出各關(guān)節(jié)的轉(zhuǎn)角,從而達(dá)到計(jì)算機(jī)器人逆解的目的。
在具體的機(jī)器人求解過(guò)程中輸入為式(3)中的姿態(tài)RN和位置PN。共有12個(gè)變量,作為RBF模型的輸入變量太多,會(huì)造成網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,考慮將位姿矩陣轉(zhuǎn)換為歐拉角,減少輸入量。設(shè)定姿態(tài)RN按z-y-z軸的旋轉(zhuǎn)順序進(jìn)行歐拉變換獲得,末端姿態(tài)RN中的9個(gè)變量可以用歐拉角α,β,γ表示。根據(jù)坐標(biāo)轉(zhuǎn)換原理,求得機(jī)器人末端姿態(tài)RN。
α=atan2(ay,ax)
(16)
β=atan2(axcosα+aysinα,az)
(17)
γ=atan2(-nxsinα+nycosα,oycosα-oxsinα)
(18)
將Px,Py,Pz,α,β,γ作為RBF模型的輸入變量。
徑向基網(wǎng)絡(luò)(RBF)是一種用于函數(shù)逼近和模式識(shí)別的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其實(shí)質(zhì)是給定一定樣本之后,RBF神經(jīng)網(wǎng)絡(luò)尋找一組最優(yōu)的徑向基函數(shù)的節(jié)點(diǎn)中心W1和一組最優(yōu)的輸出權(quán)值W2,使RBF神經(jīng)網(wǎng)絡(luò)能夠逼近樣本輸入與輸出之間的關(guān)系,從而通過(guò)逼近的函數(shù)預(yù)測(cè)輸出值在給定精度下最大限度地接近于實(shí)際輸出。
徑向基網(wǎng)絡(luò)結(jié)構(gòu)主要分為3層,第一層為輸入層,節(jié)點(diǎn)個(gè)數(shù)等于輸入維數(shù);第二層為隱含層,節(jié)點(diǎn)個(gè)數(shù)視問(wèn)題的復(fù)雜度而定;第三層為輸出層,節(jié)點(diǎn)個(gè)數(shù)等于輸出數(shù)據(jù)維數(shù),其結(jié)構(gòu)如圖2所示。
圖2 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)是以輸入向量和權(quán)值向量之間的距離‖dist‖作為自變量的。其中:
‖dist‖=‖P-iW1‖
(19)
第一層神經(jīng)元i的凈輸入為:
(20)
RBF神經(jīng)網(wǎng)絡(luò)中有幾種不同類型的傳輸函數(shù),在此,考慮在神經(jīng)網(wǎng)絡(luò)中經(jīng)常使用的高斯函數(shù),其定義如下:
a1=e-n2
(21)
當(dāng)使用高斯函數(shù)時(shí),偏置值與標(biāo)準(zhǔn)差之間具有如下的關(guān)系:
(22)
得到的徑向基輸出為:
a1=radbas(‖P-W1‖b1)
(23)
RBF網(wǎng)絡(luò)的第二層是一個(gè)標(biāo)準(zhǔn)線性層:
a2=W2a1+b2
(24)
即為輸出與輸入的關(guān)系:
(25)
式中:P為輸入,大小為R1×1矩陣;radbas()為高斯函數(shù);b1為偏置值,大小為S1×1矩陣;W1為徑向基層的權(quán)值,大小為S1×R矩陣;a1為徑向基層的輸出,大小為S1×1矩陣;W2為線性層的權(quán)值,大小為S2×S1矩陣;a2為最終的輸出,大小為S2×1。
數(shù)據(jù)歸一化處理是將所有數(shù)據(jù)轉(zhuǎn)化為0~1之間的數(shù),其目的是取消各維數(shù)據(jù)間數(shù)量級(jí)差別,避免在計(jì)算過(guò)程中發(fā)生數(shù)據(jù)溢出的現(xiàn)象,歸一化處理公式為:
(26)
式中:z為歸一化前參數(shù);zmin為參數(shù)最小值;zmax為參數(shù)最大值;z′為歸一化后的參數(shù)。
在式(16)~式(18)中獲得的位姿參數(shù)和關(guān)節(jié)角θ經(jīng)過(guò)式(26)歸一化處理后分別作為RBF的輸入和輸出參數(shù),即輸入?yún)?shù)P=[P′x,P′y,P′z,α′,β′,γ′]T,輸出參數(shù)a2=[θ′1,θ′2,θ′3,θ′4,θ′5,θ′6]T,建立基于RBF神經(jīng)網(wǎng)絡(luò)的6輸入6輸出的逆運(yùn)動(dòng)學(xué)求解預(yù)測(cè)模型。
用該預(yù)測(cè)模型計(jì)算出的關(guān)節(jié)角需要進(jìn)行反歸一化處理:
θi=θimin+θ′i(θimax-θimin)i=1,2,…,6
(27)
式中:θ′i'為經(jīng)過(guò)歸一化處理后的預(yù)測(cè)輸出關(guān)節(jié)角。
在一般的RBF神經(jīng)網(wǎng)絡(luò)6R機(jī)器人逆運(yùn)動(dòng)學(xué)求解中,普遍分析的是神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),忽略了訓(xùn)練樣本對(duì)于神經(jīng)網(wǎng)絡(luò)輸出精度的影響。選點(diǎn)常見的方式是在每個(gè)關(guān)節(jié)的上下限范圍(θdown,θup) 中隨機(jī)選取N個(gè)訓(xùn)練樣本點(diǎn)和n個(gè)測(cè)試樣本點(diǎn),利用這些點(diǎn)進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和測(cè)試,計(jì)算得到相應(yīng)的θ1,θ2,…,θ6。但不同的關(guān)節(jié)對(duì)于樣本點(diǎn)的敏感性不一樣,神經(jīng)網(wǎng)絡(luò)所建立的各個(gè)關(guān)節(jié)預(yù)測(cè)模型在不同的關(guān)節(jié)上其穩(wěn)定性也會(huì)有所差異。
為了提高不穩(wěn)定的關(guān)節(jié)預(yù)測(cè)模型的精度,將代數(shù)法融入到神經(jīng)網(wǎng)絡(luò)中,通過(guò)神經(jīng)網(wǎng)絡(luò)計(jì)算得到的θ1,θ2,…,θ6,將與預(yù)期的精度偏差較大的一個(gè)關(guān)節(jié)或多個(gè)關(guān)節(jié)解θi(i=1,2,…,6)舍去,將其余的解θj(j=1,i-1,i+1,…,6)作為已知解,再利用代數(shù)法反求出θi。
將代數(shù)法和神經(jīng)網(wǎng)絡(luò)相結(jié)合的目的是利用神經(jīng)網(wǎng)絡(luò)來(lái)簡(jiǎn)化機(jī)器人逆解的計(jì)算過(guò)程,利用代數(shù)法的精度來(lái)控制神經(jīng)網(wǎng)絡(luò)樣本點(diǎn)所可能帶來(lái)的誤差,簡(jiǎn)化了樣本點(diǎn)的選取過(guò)程,保證了神經(jīng)網(wǎng)絡(luò)求解的精度,避免代數(shù)法的非線性解耦,達(dá)到快速、精確求解機(jī)器人逆解的目的。
以ABB IRB140作為仿真分析模型,該機(jī)器人屬于6R機(jī)器人,其結(jié)構(gòu)示意圖如圖3所示。
圖3 ABB IRB140機(jī)器人本體參數(shù)
其中對(duì)應(yīng)的D-H參數(shù)為:d1=352 mm,a2=70 mm,a3=360 mm,d4=380 mm。
利用MATLAB機(jī)器人工具箱,建立ABB IRB140模型如圖4所示。
圖4 MATLAB IRB140機(jī)器人模型
通過(guò)式(16)~式(18)可以求得RBF神經(jīng)網(wǎng)絡(luò)的輸入。
使用隨機(jī)選取方法選取樣本點(diǎn)。在選取樣本點(diǎn)時(shí),將θ1,θ2,…,θ6的取值范圍都限定在(0°,28°)內(nèi),隨機(jī)選取1 000個(gè)樣本點(diǎn)。仿真結(jié)果如圖5所示。計(jì)算得到的各關(guān)節(jié)轉(zhuǎn)角與真值之間的平均誤差如表2所示。
圖5 RBF神經(jīng)網(wǎng)絡(luò)仿真結(jié)果一
關(guān)節(jié)平均誤差/(°)關(guān)節(jié)平均誤差/(°)10.008 540.446 420.008 950.019 530.007 860.460 7
為了說(shuō)明訓(xùn)練點(diǎn)的選取對(duì)于精度的影響,通過(guò)改變各個(gè)角度的取值范圍,將θ1,θ2,…,θ6,的取值范圍分別限定在(0°,56°),(0°,56°),(0°,56°),(0°,28°),(0°,28°),(0°,28°)內(nèi),隨機(jī)選取1 000個(gè)樣本點(diǎn)。仿真結(jié)果如下圖6所示。計(jì)算得到的各關(guān)節(jié)轉(zhuǎn)角與真值之間的平均誤差如表3所示。
圖6 RBF神經(jīng)網(wǎng)絡(luò)仿真結(jié)果二
關(guān)節(jié)平均誤差/(°)關(guān)節(jié)平均誤差/(°)10.009 740.725 720.011 850.014 730.028 960.739 2
通過(guò)訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行測(cè)試時(shí),在訓(xùn)練范圍內(nèi)按照隨機(jī)選取10個(gè)點(diǎn)進(jìn)行測(cè)試,從圖6可知,即使前3關(guān)節(jié)的角度取值范圍變大,即訓(xùn)練樣本的相對(duì)密度減小時(shí),其泛化能力依然很好,而第四關(guān)節(jié)和第六關(guān)節(jié)泛化能力相對(duì)較差。為了解決神經(jīng)網(wǎng)絡(luò)在后3關(guān)節(jié)的泛化能力相對(duì)較差的情況,提出將神經(jīng)網(wǎng)絡(luò)法和代數(shù)法相結(jié)合的方法。
使用第二組訓(xùn)練結(jié)果,即θ1,θ2,…,θ6的取值范圍分別限定在(0°,56°),(0°,56°),(0°,56°),(0°,28°),(0°,28°),(0°,28°)內(nèi)時(shí),通過(guò)訓(xùn)練RBF神經(jīng)網(wǎng)絡(luò)獲得的θ1,θ2,θ3,θ5數(shù)值,利用代數(shù)法求得第四,第六關(guān)節(jié)的轉(zhuǎn)動(dòng)量。
用逆變化左乘式(3)的兩邊得:
(28)
令式(28)兩端的元素(1,3)和(3,3)對(duì)應(yīng)相等可得:
axc23c1+ayc23s1+a2s23=c4s5
(29)
axs1-ayc1=s4s5
(30)
根據(jù)三角變換可得:
θ4=atan2(s4,c4)
(31)
同理可得:
θ6=atan2(s6,c6)
(32)
因?yàn)槠渌嵌榷家阎淮嬖诮怦畹倪^(guò)程,極大地簡(jiǎn)化了計(jì)算過(guò)程。利用RBF神經(jīng)網(wǎng)絡(luò)獲得的θ1,θ2,θ3,θ5數(shù)值及式(31),式(32)求得的結(jié)果如圖7所示。
圖7 代數(shù)解與真值之間的誤差
用代數(shù)法計(jì)算得到的平均誤差分別為0.094 3°和0.070 1°,相比于直接用神經(jīng)網(wǎng)絡(luò)得到平均誤差0.725 7°和0.739 2°來(lái)說(shuō)精度提升了一個(gè)量級(jí)。
(1)提出了一種基于RBF神經(jīng)網(wǎng)絡(luò)與代數(shù)法的6R機(jī)器人逆運(yùn)動(dòng)求解方法,該方法避免了未經(jīng)優(yōu)化選取的樣本造成網(wǎng)絡(luò)泛化能力相對(duì)較差的情況,同時(shí)也省去了樣本優(yōu)化的的繁瑣過(guò)程。另一方面在一定程度上簡(jiǎn)化了代數(shù)法的解耦與選優(yōu)的過(guò)程,是一種結(jié)合神經(jīng)網(wǎng)絡(luò)與代數(shù)法優(yōu)點(diǎn)的方法。在簡(jiǎn)化求解過(guò)程中又保證了解的精確性。
(2)基于RBF神經(jīng)網(wǎng)絡(luò)與代數(shù)法的預(yù)測(cè)模型能廣泛應(yīng)用于其他一般6R機(jī)器人,可獲得較高的逆解精度。