柘龍炫,李少波,張星星,宋啟松
(貴州大學(xué)機(jī)械工程學(xué)院,貴陽 550025)
六自由度機(jī)械臂具有較高的靈活性,能模仿人的手臂完成空間抓取動作,越來越廣泛應(yīng)用于國防、航天、醫(yī)療、日常生活等生產(chǎn)活動。機(jī)械臂作為機(jī)器人的主要執(zhí)行機(jī)構(gòu),運(yùn)用機(jī)械臂不但可以減少勞動力,降低勞動成本,還能提高產(chǎn)品的生產(chǎn)質(zhì)量和效率,是未來工業(yè)發(fā)展的必然趨勢[1]。當(dāng)前機(jī)械臂在分揀、碼垛以及裝配等重復(fù)性流水作業(yè)中最為常見[2]。為了滿足目前高效率生產(chǎn)的需求,國內(nèi)外學(xué)者對機(jī)械臂軌跡規(guī)劃已經(jīng)進(jìn)行了深入研究,如文獻(xiàn)[1]選用D-H法建立機(jī)械臂在笛卡爾空間的運(yùn)動學(xué)模型,對機(jī)械臂進(jìn)行運(yùn)動學(xué)分析,通過直線插補(bǔ)和圓弧插補(bǔ)對機(jī)械臂運(yùn)動軌跡進(jìn)行優(yōu)化;文獻(xiàn)[3]利用了自適應(yīng)遺傳算法在三次樣條插值的基礎(chǔ)上,對關(guān)節(jié)空間軌跡進(jìn)行優(yōu)化;文獻(xiàn)[4]對比了三次多項式插值法與五次多項式插值法的關(guān)節(jié)軌跡規(guī)劃效果,得出五次多項式插值后機(jī)械臂運(yùn)動更為平穩(wěn);文獻(xiàn)[5]建立了機(jī)械臂的D-H坐標(biāo)系,將A*搜尋算法與拉格朗日插值法相結(jié)合,規(guī)劃出機(jī)械臂的運(yùn)動軌跡;文獻(xiàn)[6]從運(yùn)動學(xué)角度出發(fā),提出基于RBF神經(jīng)網(wǎng)絡(luò)的圓弧軌跡規(guī)劃,通仿真表明規(guī)劃軌跡平滑、逼近誤差小。與BP神經(jīng)網(wǎng)絡(luò)相比,RBF神經(jīng)網(wǎng)絡(luò)的規(guī)模大,且函數(shù)逼近能力、學(xué)習(xí)速度、分類和模式識別能力更優(yōu)[7]。
基于上述內(nèi)容,為了提高機(jī)械臂末端執(zhí)行器的軌跡精度,設(shè)計了六自由度機(jī)械臂模型、并根據(jù)模型建立D-H坐標(biāo)系與D-H參數(shù)表。通過機(jī)械臂的運(yùn)動學(xué)求解得到末端執(zhí)行器的運(yùn)動位置和姿態(tài),利用RBF神經(jīng)網(wǎng)絡(luò)對運(yùn)動學(xué)得到的運(yùn)動軌跡進(jìn)行優(yōu)化。
機(jī)械臂通常由若干關(guān)節(jié)和連桿按依次連接而成,如圖1a所示,各個關(guān)節(jié)的運(yùn)動可以是轉(zhuǎn)動或滑動,各連桿長度根據(jù)實際需要,可以是任意值。機(jī)械臂運(yùn)動學(xué)模型基于各關(guān)節(jié)和連桿建立的坐標(biāo)系變換求得,因此根據(jù)機(jī)械臂模型,建立六自由度機(jī)械臂的D-H坐標(biāo)系如圖1b所示,其中o0-x0y0z0為固定參考坐標(biāo)系,通常將其固定在基座上。
(a) 機(jī)械臂模型 (b) D-H坐標(biāo)系圖1 機(jī)器臂模型及其D-H坐標(biāo)系
如圖2所示,軸zn與關(guān)節(jié)n+1的軸線重合,根據(jù)關(guān)節(jié)n+1的旋轉(zhuǎn)方向,按右手定則判定軸zn方向;軸xn與公法線an重合,方向沿an由軸線zn-1指向軸線zn;yn軸方向與on-xnzn垂直;建立關(guān)節(jié)坐標(biāo)系oi-xiyizi。
圖2 相鄰連桿坐標(biāo)系
連桿各參數(shù)定義如下:
θn+1為軸xn繞zn軸旋轉(zhuǎn)θn+1度后,與軸xn+1平行。
dn+1為關(guān)節(jié)偏移,即軸zn上兩條相鄰的公垂線an、an+1之間的距離。
an為連桿名義長度,即軸zn-1與軸zn公垂線的長度。
αn為扭角,即軸zn-1與軸zn之間的角度。
根據(jù)矩陣右乘運(yùn)算法則,相鄰兩坐標(biāo)系之間位置和姿態(tài)由前向后的通用變換矩陣為:
(1)
根據(jù)圖1得機(jī)械臂D-H參數(shù)如表1所示。
表1 D-H 參數(shù)表
為了求出機(jī)械臂末端執(zhí)行器相對于固定坐標(biāo)系o0-x0y0z0的位置和姿態(tài),需建立機(jī)械臂的運(yùn)動學(xué)方程。在該六自由度機(jī)械臂的坐標(biāo)系變換中,根據(jù)D-H坐標(biāo)系和D-H參數(shù)表,得6個變換矩陣依次為:
通過依次右乘變換矩陣可實現(xiàn)相鄰坐標(biāo)系之間位置和姿態(tài)變換,所以機(jī)械臂末端執(zhí)行器坐標(biāo)系相對于固定參考坐標(biāo)系o0-x0y0z0變化矩陣為:
(2)
在直角坐標(biāo)系中對機(jī)械臂末端執(zhí)行器位置和姿態(tài)對時間進(jìn)行的規(guī)劃稱作笛卡爾空間軌跡規(guī)劃[9],在笛卡空間對機(jī)械臂末端執(zhí)行器運(yùn)動軌跡規(guī)劃,是為了確保各關(guān)節(jié)的位置、速度函數(shù)圖像在運(yùn)行過程中為光滑曲線[4]。如圖3 所示,在空間有無數(shù)條曲線可通過A,B,C三個點(diǎn),在實際的生產(chǎn)過程中,要考慮生產(chǎn)現(xiàn)場條件、效率等因素,因此需要在笛卡爾坐標(biāo)空間對機(jī)械臂末端執(zhí)行器進(jìn)行軌跡規(guī)劃。
圖3 空間路徑點(diǎn)
RBF神經(jīng)網(wǎng)絡(luò)即徑向基函數(shù)網(wǎng)絡(luò)(Radial basis function network,縮寫為:RBF network),是一種使用徑向基函數(shù)作為激活函數(shù)的人工神經(jīng)網(wǎng)絡(luò)[10]。如圖4所示,RBF神經(jīng)網(wǎng)絡(luò)是一種三層前向網(wǎng)絡(luò)。
圖4 RBF神經(jīng)網(wǎng)絡(luò)
第一層為輸入層,由信號源結(jié)點(diǎn)組成;第二層為隱含層,以徑向基函數(shù)為隱含層各單元的變換函數(shù),輸入層到隱含層為衰減的非負(fù)非線性函數(shù),即RBF神經(jīng)網(wǎng)絡(luò)隱含層的功能是將低維輸入通過非線性函數(shù)映射到一個高維空間。然后在這個高維空間進(jìn)行曲線的擬合;第三層為輸出層,對輸入信號作出響應(yīng),隱含層到輸出則是線性變換的函數(shù),即隱含層的信號通過線性的加權(quán)求值得到輸出層的輸出值,其中權(quán)值為可調(diào)參數(shù)ωij。
隨機(jī)選取J個樣本作為RBF神經(jīng)網(wǎng)絡(luò)訓(xùn)練集,激活函數(shù)選取Gauss徑向基函數(shù),表達(dá)式為:
(3)
Gauss徑向基函數(shù)為目前在RBF神經(jīng)網(wǎng)絡(luò)中使用最廣泛的激活函數(shù),其表達(dá)式如下:
(4)
Gauss徑向基函數(shù)圖像如圖5所示。其中σ為隱藏層中核心函數(shù)的平均偏差,橫軸就是到中心的距離用半徑r表示,當(dāng)距離等于0時,徑向基函數(shù)等于1,距離越遠(yuǎn)衰減越快,選擇性就越好。
圖5 Gauss徑向基函數(shù)圖像
RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)可得輸出函數(shù)表達(dá)式為:
(5)
其中,j=1,2,···,n;n為輸出樣本數(shù)或分類數(shù)。
在RBF神經(jīng)網(wǎng)絡(luò)中,主要的學(xué)習(xí)參數(shù)分別為基函數(shù)中心、方差和權(quán)值,學(xué)習(xí)過程分為兩個步驟:首先是通過無監(jiān)督學(xué)習(xí),確定隱含層的中心和方差,其次是通過有監(jiān)督的學(xué)習(xí),確定隱含層到輸出層的連接權(quán)值。
常采用K-均值聚類算法確定隱含層的中心,設(shè)xi(n)(i=1,2,···,I)是第n此迭代時基函數(shù)的中心,其算法流程如圖6所示。
圖6 K-均值聚類算法流程圖
RBF神經(jīng)網(wǎng)絡(luò)的基函數(shù)為高斯函數(shù)時,方差可由下式求解:
(6)
式中,dmax為所選取中心之間的最大距離;h為隱層節(jié)點(diǎn)的個數(shù)。
隱含層至輸出層之間神經(jīng)元的連接權(quán)值可以用最小均方誤差LMS直接計算得到,計算公式如下:
w=φ+d
(7)
公式中d=[d1,d2,···,dn]為期望響應(yīng)。
φ+為偽逆矩陣,其表達(dá)式為:
φ+=(φTφ)-1φT
(8)
矩陣φ為:
φ={φqi}
(9)
(10)
xq為第q個輸入向量。
為了驗證所提出的軌跡優(yōu)化方法是否有效可行,通過80步圓弧插補(bǔ)進(jìn)行仿真實驗,得到機(jī)械臂末端執(zhí)行器在笛卡爾空間的仿真軌跡如圖7所示。由圖7可看出末端執(zhí)行器能從起始點(diǎn)A(60,-120,0)連續(xù)運(yùn)動到終止點(diǎn)B(33,230,0),證明了此次路徑規(guī)劃的合理性。
圖7 仿真軌跡
為了更直觀顯示機(jī)械臂各關(guān)節(jié)角度隨時間的變化關(guān)系,圖8a表示了各關(guān)節(jié)角隨時間的變化情況;圖8b表示了各關(guān)節(jié)角速度隨時間的變化情況,起始速度和終止速度都為零、且速度曲線平滑無突變和拐點(diǎn),表明機(jī)械臂末端執(zhí)行器運(yùn)動過程平穩(wěn)。
(a) 各關(guān)節(jié)角度曲線
(b) 各關(guān)節(jié)角速度曲線圖8 各關(guān)節(jié)角度和角速度曲線
將獲得的運(yùn)動軌跡取時間間隔為0.1 s離散轉(zhuǎn)換后,在笛卡爾空間得到一系列路徑離散點(diǎn),采用圓弧插補(bǔ)算法使末端執(zhí)行器運(yùn)動軌跡逼近規(guī)劃軌跡。利用MATLAB軟件中的神經(jīng)網(wǎng)絡(luò)工具箱,設(shè)計RBF神經(jīng)網(wǎng)絡(luò),通過RBF神經(jīng)網(wǎng)絡(luò)優(yōu)化,機(jī)械臂末端執(zhí)行器運(yùn)動軌跡誤差曲線如圖9所示。
圖9 各軸誤差
由圖9可看出:經(jīng)過RBF神經(jīng)網(wǎng)絡(luò)優(yōu)化后,機(jī)械臂末端執(zhí)行器運(yùn)動軌跡誤差在各軸上的垂直投影均低于±0.4 mm,即末端執(zhí)行器運(yùn)動軌跡能趨近于優(yōu)化軌跡,證明此優(yōu)化方法精度高。
為了更直觀的驗證本文提出的軌跡規(guī)劃方法是否可行,在新一代柔性機(jī)械臂xMate平臺上進(jìn)行了試驗。此機(jī)械臂的6個關(guān)節(jié)均由伺服電機(jī)驅(qū)動,實驗過程如圖10所示: 確定目標(biāo)物如圖10a所示,由工業(yè)攝像頭確定抓取目標(biāo)后,吸盤與目標(biāo)物在同一豎直線上;抓取目標(biāo)如圖10b所示,在抓取目標(biāo)時,吸盤吸住目標(biāo)的上表面;抓取過程如10c、圖10d所示,到達(dá)終點(diǎn)后將目標(biāo)物平穩(wěn)放下。機(jī)械臂在整個抓取過程中運(yùn)動平穩(wěn),試驗達(dá)到了預(yù)期的效果,驗證了此次將RBF神經(jīng)網(wǎng)絡(luò)運(yùn)用于機(jī)械臂軌跡規(guī)劃的合理性。
(a) 確定目標(biāo) (b) 抓取目標(biāo) (c) 抓取過程 (d) 到達(dá)終點(diǎn)圖10 機(jī)械臂運(yùn)動過程
本文研究了機(jī)械臂軌跡規(guī)劃中軌跡偏差問題,通過機(jī)械臂運(yùn)動學(xué)求解得末端執(zhí)行器的位置和姿態(tài);通過仿真實驗,得到機(jī)械臂末端執(zhí)行器在笛卡爾空間的仿真運(yùn)動軌跡;借助MATLAB中的神經(jīng)網(wǎng)絡(luò)工具箱設(shè)計RBF神經(jīng)網(wǎng)絡(luò),通過圓弧插補(bǔ)軌跡離散點(diǎn)對RBF神經(jīng)網(wǎng)絡(luò)訓(xùn)練,得到運(yùn)動軌跡在各軸上垂直投影的趨近誤差均低于±0.4 mm。仿真結(jié)果表明此次規(guī)劃得到的軌跡能滿足機(jī)械臂末端執(zhí)行器運(yùn)動要求,通過實驗驗證了此次軌跡規(guī)劃的可行性,對進(jìn)一步將機(jī)械臂運(yùn)用于實際生產(chǎn)奠定了基礎(chǔ)。