王征兵,孫文磊
(新疆大學(xué) 機(jī)械工程學(xué)院,烏魯木齊 830046)
隨著汽車工業(yè)的不斷發(fā)展,噴涂機(jī)器人已經(jīng)成為汽車制造環(huán)節(jié)中不可或缺的核心自動(dòng)化裝備之一[1]。噴涂機(jī)器人的運(yùn)動(dòng)學(xué)分析是其動(dòng)力學(xué)、運(yùn)動(dòng)控制和軌跡規(guī)劃的研究基礎(chǔ),它包含了正運(yùn)動(dòng)學(xué)分析和逆運(yùn)動(dòng)學(xué)分析[2]。近年來,很多學(xué)者對(duì)機(jī)器人運(yùn)動(dòng)學(xué)都進(jìn)行了研究,但研究對(duì)象相對(duì)老舊小眾。文獻(xiàn)[2]以IRB2400機(jī)器人為研究對(duì)象,采用傳統(tǒng)的矩陣逆運(yùn)算方法進(jìn)行運(yùn)動(dòng)學(xué)求解。文獻(xiàn)[3]對(duì)碼垛機(jī)器人應(yīng)用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行運(yùn)動(dòng)學(xué)求解。文獻(xiàn)[4]應(yīng)用動(dòng)態(tài)模糊神經(jīng)網(wǎng)絡(luò)對(duì)KR16-2型機(jī)器人進(jìn)行運(yùn)動(dòng)學(xué)求解。文獻(xiàn)[5]對(duì)BP神經(jīng)網(wǎng)絡(luò)在機(jī)械手軌跡規(guī)劃中的應(yīng)用方法做了可行性分析。但這些未能將運(yùn)動(dòng)學(xué)智能求解算法應(yīng)用到廣泛使用的新型噴涂機(jī)器人當(dāng)中。IRB4400噴涂機(jī)器人是ABB公司的一種機(jī)身緊湊型機(jī)器人,在車間噴涂過程中可有效節(jié)省空間,而以往文獻(xiàn)中缺乏對(duì)該型噴涂機(jī)器人的運(yùn)動(dòng)學(xué)研究。因此對(duì)其進(jìn)行運(yùn)動(dòng)學(xué)分析和仿真在科學(xué)研究和實(shí)際應(yīng)用中具有十分重要的意義。
ABB公司的IRB4400型噴涂機(jī)器人是具有6個(gè)自由度的關(guān)節(jié)型機(jī)器人,它由底座、髖關(guān)節(jié)、肩關(guān)節(jié)、肘關(guān)節(jié)、腕關(guān)節(jié)和噴槍組成,每個(gè)旋轉(zhuǎn)關(guān)節(jié)都是一個(gè)自由度。其本體結(jié)構(gòu)和旋轉(zhuǎn)關(guān)節(jié)如圖1所示。
圖1 IRB4400噴涂機(jī)器人本體結(jié)構(gòu)
在對(duì)機(jī)器人進(jìn)行運(yùn)動(dòng)學(xué)分析之前,首先要根據(jù)機(jī)器人的結(jié)構(gòu)參數(shù)建立其數(shù)學(xué)模型。采用D-H法對(duì)該型噴涂機(jī)器人進(jìn)行數(shù)學(xué)建模。建系主要原則為Xi和Zi-1垂直且相交,Yi根據(jù)右手規(guī)則確定[1]。建立的簡(jiǎn)化模型和D-H坐標(biāo)系如圖2所示。
圖2 機(jī)器人簡(jiǎn)化模型和D-H坐標(biāo)系
根據(jù)IRB4400機(jī)器人的連桿參數(shù)和圖2所建坐標(biāo)系可得其D-H參數(shù)如表1所示。表中連桿參數(shù)具體表示含義為:關(guān)節(jié)轉(zhuǎn)角θi(°),關(guān)節(jié)距離di(mm),連桿長(zhǎng)度ai(mm),連桿扭角αi(°)。
表1 IRB4400機(jī)器人D-H參數(shù)
(1)
nx=S6(C4S1+S4(C1S2S3-C1C2C3))+
C6(C5(S1S4-C4(C1S2S3)-C1C2C3))-
S5(C1C2S3+C1C3S2)
(2)
ny=-S6(C1C4-S4(S1S2S3-C2C3S1))-
C6(C5(C1S4+C4(S1S2S3-C2C3S1))+
S5(C2S1S3+C3S1S2))
(3)
nz=S23S4S6-C6(C23S5+S23C4C5)
(4)
ox=C6(C4S1+S4(C1S2S3-C1C2C3))-
S6(C5(S1S4-C4(C1S2S3-C1C2C3))-
S5(C1C2S3+C1C3S2))
(5)
oy=S6(C5(C1S4+C4(S1S2S3-C2C3S1))+
S5(C2S1S3+C3S1S2))-
C6(C1C4-S4(S1S2S3-C2C3S1))
(6)
oz=S6(C23S5+S23C4C5)+S23C6S4
(7)
ax=-S5(S1S4-C4(C1S2S3-C1C2C3))-
C5(C1C2S3+C1C3S2)
(8)
ay=S5(C1S4+C4(S1S2S3-C2C3S1))-
C5(C2S1S3+C3S1S2)
(9)
az=S23C4S5-C23C5
(10)
px=200C1+890C1C2-150C1S2S3-140S1S4S5-
140S23C1C5+150C1C2C3-880C1C2S3-
880C1C3S2-140C1C2C3C4S5+140C1C4S2S3S5
(11)
py=200S1+890C2S1-880C2S1S3-880C3S1S2+
140C1S4S5-150S1S2S3-140S23C5S1+150C2C3S1-
140C2C3C4S1S5+140C4S1S2S3S5
(12)
pz=70S23S45-150S23-890S2-70S4-5S23-
880C23-140C23C5+680
(13)
在Robotics Toolbox中根據(jù)表1中D-H參數(shù)建立IRB4400噴涂機(jī)器人仿真連桿模型[6],并輸入給定的6個(gè)初始關(guān)節(jié)角度分別為0,pi/2,0,0,pi,0,得到其初始狀態(tài)的仿真連桿模型如圖3所示。
圖3 IRB4400機(jī)器人仿真圖
可見圖3中的仿真連桿模型和圖2中所建的D-H坐標(biāo)簡(jiǎn)化模型相同,并在輸入初始各關(guān)節(jié)角后得到了機(jī)器人末端位置和姿態(tài),驗(yàn)證了機(jī)器人正運(yùn)動(dòng)學(xué)分析和建模的正確性。
機(jī)器人逆運(yùn)動(dòng)學(xué)分析問題的實(shí)質(zhì)就是由笛卡爾空間向關(guān)節(jié)空間的非線性映射問題。傳統(tǒng)的求解方法主要有封閉解法和數(shù)值解法,這些方法雖然可以進(jìn)行機(jī)器人逆運(yùn)動(dòng)學(xué)求解,但在實(shí)際求解過程中運(yùn)算復(fù)雜,且可能存在多個(gè)解,不便于應(yīng)用[7]。而BP神經(jīng)網(wǎng)絡(luò)具有逼近任何復(fù)雜的非線性系統(tǒng)的能力,所以應(yīng)用BP神經(jīng)網(wǎng)絡(luò)智能算法進(jìn)行機(jī)器人逆運(yùn)動(dòng)學(xué)的分析求解具有很大的優(yōu)勢(shì)。
BP神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋網(wǎng)絡(luò),它能學(xué)習(xí)和存貯輸入輸出數(shù)據(jù)的映射關(guān)系,但不需要表示出這種關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)算法是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小[3]。其結(jié)構(gòu)一般有三層,即為:輸入層,隱含層和輸出層。
在Matlab的神經(jīng)網(wǎng)絡(luò)工具箱中,對(duì)IRB4400機(jī)器人逆運(yùn)動(dòng)學(xué)的求解問題進(jìn)行BP網(wǎng)絡(luò)的建立,訓(xùn)練及預(yù)測(cè)仿真的算法流程如圖4所示。
圖4 BP神經(jīng)網(wǎng)絡(luò)算法流程圖
BP網(wǎng)絡(luò)輸入端為機(jī)器人末端位姿矩陣表達(dá)式(2)~式(13),輸出端為機(jī)器人的6個(gè)關(guān)節(jié)角數(shù)據(jù)。但在構(gòu)建BP網(wǎng)絡(luò)時(shí)輸入端數(shù)據(jù)太多,會(huì)使網(wǎng)絡(luò)過于復(fù)雜不便于實(shí)際應(yīng)用,所以可將末端位姿矩陣式(2)~式(10)按照ZYZ歐拉角變換得到α,β,γ這3個(gè)參數(shù)形式,其具體變換式如下[6]:
α=Atan2(ay,ax)
β=Atan2(axcosα+aysinα,az)
γ=Atan2(-nxsinα+nycosα,
oycosα-oxsinα)
(14)
隱含層節(jié)點(diǎn)的主要功能是選取并保存訓(xùn)練樣本的內(nèi)在規(guī)律,過少的節(jié)點(diǎn)會(huì)使網(wǎng)絡(luò)不能全面概括樣本規(guī)律;過多的節(jié)點(diǎn)則會(huì)降低網(wǎng)絡(luò)泛化能力,造成訓(xùn)練時(shí)間的延長(zhǎng)。在實(shí)際應(yīng)用中,隱含層節(jié)點(diǎn)的個(gè)數(shù)可以通過下面的經(jīng)驗(yàn)公式(15)來計(jì)算[5]:
(15)
式中,n為輸入層節(jié)點(diǎn)數(shù),l為輸出層節(jié)點(diǎn)數(shù),分別取為6,α=1~10。代入得到m的范圍為5~13。根據(jù)試驗(yàn)確定最佳隱含層為1層,節(jié)點(diǎn)個(gè)數(shù)為7,最終得到BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 逆運(yùn)動(dòng)學(xué)求解BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
輸入層節(jié)點(diǎn)的傳遞函數(shù)選擇對(duì)數(shù)S型傳遞函數(shù)logsig,輸出層節(jié)點(diǎn)的傳遞函數(shù)選擇線性傳遞函數(shù)purelin。由于LMBP算法是一種既有高斯-牛頓法的局部收斂性,又具有梯度下降法的全局特性的數(shù)值優(yōu)化快速算法,它比梯度法快得多。所以,訓(xùn)練函數(shù)選擇LMBP算法訓(xùn)練函數(shù)trainlm。網(wǎng)絡(luò)學(xué)習(xí)函數(shù)選擇動(dòng)量梯度下降權(quán)值和閾值學(xué)習(xí)函數(shù)learngdm[8]。構(gòu)建好的BP網(wǎng)絡(luò)Matlab代碼如下:
net=newff(inputn,outputn,7,{′logsig′,′purelin′},′trainlm′,′learngdm′)
對(duì)機(jī)器人各關(guān)節(jié)變量θi在其關(guān)節(jié)角范圍內(nèi)分別取不同值,組合得到5000組關(guān)節(jié)角(θ1,θ2,θ3,θ4,θ5,θ6)。然后在MATLAB Robotics Toolbox 中由機(jī)器人正運(yùn)動(dòng)學(xué)解表達(dá)式(11)~式(13)和歐拉角變換式(14)得到5000組輸入數(shù)據(jù)(α,β,γ,px,py,pz)。為了避免不同量綱的樣本數(shù)據(jù)對(duì)網(wǎng)絡(luò)訓(xùn)練效果產(chǎn)生較大的影響,需要對(duì)樣本原始數(shù)據(jù)按照下式進(jìn)行歸一化處理。
(Xi-Xmin)/(Xmax-Xmin)
(16)
最后隨機(jī)選擇4900組數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本,100組數(shù)據(jù)作為網(wǎng)絡(luò)的測(cè)試樣本,設(shè)置網(wǎng)絡(luò)迭代次數(shù)為100,學(xué)習(xí)速率為0.001,學(xué)習(xí)精度為0.0001。至此,BP網(wǎng)絡(luò)逆運(yùn)動(dòng)學(xué)求解的前期工作準(zhǔn)備完畢。
根據(jù)所建的BP神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)樣本在Matlab中進(jìn)行編程仿真分析,結(jié)果見圖6。
圖6 BP網(wǎng)絡(luò)訓(xùn)練過程均方差下降曲線
圖6所示為L(zhǎng)MBP算法訓(xùn)練函數(shù)trainlm的訓(xùn)練過程曲線。分析圖中結(jié)果可知,樣本訓(xùn)練和測(cè)試過程的均方差在迭代8次后可達(dá)1.9739×10-6,能夠快速達(dá)到預(yù)設(shè)精度。
根據(jù)測(cè)試樣本由BP神經(jīng)網(wǎng)絡(luò)可以得出100組6個(gè)關(guān)節(jié)角的預(yù)測(cè)輸出,為了更清楚直觀地表示預(yù)測(cè)輸出關(guān)節(jié)角和期望輸出關(guān)節(jié)角的契合程度,這里只取出關(guān)節(jié)角3的預(yù)測(cè)輸出數(shù)據(jù)和測(cè)試樣本數(shù)據(jù)進(jìn)行對(duì)比分析,如圖7所示。由圖可直觀地觀察到預(yù)測(cè)關(guān)節(jié)角和期望關(guān)節(jié)角基本重合。
圖7 關(guān)節(jié)角3的預(yù)測(cè)輸出和期望輸出
為了更加清楚地表示關(guān)節(jié)角3的預(yù)測(cè)輸出與期望輸出關(guān)節(jié)角之間的契合程度,需要進(jìn)行誤差分析,一般來說,相對(duì)誤差更能反映出網(wǎng)絡(luò)預(yù)測(cè)的可信程度。通過觀察,相對(duì)誤差如圖8所示最高不超過3%,根據(jù)工程經(jīng)驗(yàn),一般相對(duì)誤差不超過5%即可視為有效數(shù)據(jù)。
圖8 關(guān)節(jié)角3 的BP網(wǎng)絡(luò)預(yù)測(cè)相對(duì)誤差
通過上述仿真結(jié)果及仿真數(shù)據(jù)分析可知,BP神經(jīng)網(wǎng)絡(luò)用于IRB4400噴涂機(jī)器人逆運(yùn)動(dòng)學(xué)求解,仿真結(jié)果能夠達(dá)到噴涂作業(yè)的要求,其仿真分析具有參考意義。
機(jī)器人的工作空間是機(jī)器人末端能夠到達(dá)的所有空間位置點(diǎn)的集合。工作空間的大小代表了機(jī)器人的活動(dòng)范圍,其在運(yùn)動(dòng)學(xué)分析及軌跡規(guī)劃中有重要意義。為了對(duì)噴涂機(jī)器人正運(yùn)動(dòng)學(xué)的分析結(jié)果進(jìn)行直觀的驗(yàn)證,采用蒙特卡洛法對(duì)IRB4400噴涂機(jī)器人的工作空間進(jìn)行仿真[9]。采用蒙特卡洛法分析機(jī)器人工作空間的具體方法如下:
(1)利用機(jī)器人正運(yùn)動(dòng)學(xué)方程,在Matlab中求出機(jī)器人末端位置坐標(biāo)的方程;
(2)在IRB4400機(jī)器人各關(guān)節(jié)角規(guī)定范圍內(nèi)依照下式:
(17)
(3)將各隨機(jī)關(guān)節(jié)變量代入機(jī)器人末端位置坐標(biāo)方程中即可得到機(jī)器人工作空間。
通過Matlab編程仿真,得到三維工作空間和XOY平面工作空間投影如圖9所示。
圖9 機(jī)器人工作空間和XOY平面投影仿真圖
可以直接觀察到IRB4400噴涂機(jī)器人的工作空間,直觀地驗(yàn)證了機(jī)器人正運(yùn)動(dòng)學(xué)分析的正確性,并為后面的運(yùn)動(dòng)軌跡規(guī)劃做好了準(zhǔn)備。
在IRB4400機(jī)器人的工作空間內(nèi)選取機(jī)器人末端的兩個(gè)位姿矩陣T1和T2,將矩陣元素進(jìn)行ZYZ歐拉角變換,得到含有6個(gè)位姿元素(α,β,γ,px,py,pz)的兩組矩陣分別為:
T1(-2.9437,-0.5421,0.0501,-0.5649,-0.1084,2.2895)
T2(-2.8831,0.2136,0.0316,286.7460, -33.9028,162.1481)
取100個(gè)時(shí)間步長(zhǎng){0:0.05:5}(單位s)作為插值節(jié)點(diǎn),用標(biāo)量插補(bǔ)函數(shù)tpoly在兩組位姿矩陣元素之間進(jìn)行5次多項(xiàng)式平滑插值處理[6],得到100組位姿元素插值點(diǎn)。然后將這些位姿元素插值點(diǎn)按前述方法進(jìn)行歸一化處理,將其作為訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)的輸入端元素,進(jìn)行網(wǎng)絡(luò)預(yù)測(cè)求解,得到機(jī)器人分別處于這100組位姿時(shí)的各關(guān)節(jié)角度。
再用解得的各關(guān)節(jié)角在Matlab的機(jī)器人工具箱中對(duì)IRB4400機(jī)器人進(jìn)行驅(qū)動(dòng)仿真,初始和終止速度設(shè)置為零[10],然后用plot繪圖命令就可以得到機(jī)器人末端軌跡圖和運(yùn)動(dòng)仿真過程的各關(guān)節(jié)角度,角速度和角加速度曲線圖如圖10所示。
圖10 機(jī)器人運(yùn)動(dòng)軌跡仿真圖
觀察運(yùn)動(dòng)仿真圖,BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)求解得到的各關(guān)節(jié)角度,角速度和角加速度曲線平滑而連續(xù),沒有關(guān)節(jié)突變現(xiàn)象產(chǎn)生,滿足機(jī)器人運(yùn)行穩(wěn)定,沖擊振動(dòng)小的原則,驗(yàn)證了BP神經(jīng)網(wǎng)絡(luò)對(duì)IRB4400噴涂機(jī)器人進(jìn)行逆運(yùn)動(dòng)學(xué)求解的有效性,避免了大量的矩陣逆運(yùn)算和繁瑣的計(jì)算公式,提高了運(yùn)動(dòng)學(xué)求解效率,便于實(shí)時(shí)控制。
對(duì)IRB4400噴涂機(jī)器人進(jìn)行了結(jié)構(gòu)參數(shù)分析,建立了其D-H數(shù)學(xué)模型,在Robotics Toolbox中,編寫Matlab程序進(jìn)行了正運(yùn)動(dòng)學(xué)分析,得到了初始狀態(tài)下的仿真連桿模型,與所建的D-H簡(jiǎn)化模型相同;針對(duì)一般機(jī)器人逆運(yùn)動(dòng)學(xué)求解方法復(fù)雜低效的問題,研究了BP神經(jīng)網(wǎng)絡(luò)算法在該型機(jī)器人逆運(yùn)動(dòng)學(xué)求解中的應(yīng)用,得到了網(wǎng)絡(luò)預(yù)測(cè)輸出關(guān)節(jié)角和期望輸出關(guān)節(jié)角對(duì)比圖,分析結(jié)果,其預(yù)測(cè)精度可滿足噴涂作業(yè)要求;并基于蒙特卡洛法編程實(shí)現(xiàn)了該型機(jī)器人的工作空間仿真,直觀地驗(yàn)證了正運(yùn)動(dòng)學(xué)分析結(jié)果的正確性;最后通過運(yùn)動(dòng)軌跡仿真,得到了機(jī)器人末端運(yùn)動(dòng)軌跡、各關(guān)節(jié)角、角速度和角加速度平滑連續(xù)的曲線,滿足機(jī)器人運(yùn)行穩(wěn)定,沖擊振動(dòng)小的原則,驗(yàn)證了逆運(yùn)動(dòng)學(xué)算法的有效性。以上分析結(jié)果提高了該新型噴涂機(jī)器人的運(yùn)動(dòng)學(xué)求解效率,對(duì)IRB4400噴涂機(jī)器人實(shí)際編程作業(yè)效率的提高具有參考性價(jià)值。