張毅,劉芳君,胡磊
(重慶郵電大學(xué) 重慶市信息無障礙與服務(wù)機器人工程技術(shù)研究中心,重慶 400065)
機器人逆運動學(xué)求解就是已知機器人末端位姿參數(shù)來計算各個關(guān)節(jié)角度值的過程[1]。其常用的方法包括封閉解法和數(shù)值解法,但這2種方法均不具備通用性且求解精度無法保證[2-3]。遺傳算法是根據(jù)生物進(jìn)化現(xiàn)象演化而來的一種智能算法,搜索能力強,能夠?qū)崿F(xiàn)全局收斂[4-5]。近年來,一些研究人員將其應(yīng)用到機器人的逆運動學(xué)求解中,并取得了一定的成果。林明等[6]提出了一種改進(jìn)的遺傳算法,采用自適應(yīng)的交叉和變異算子,改進(jìn)了排序方法,并在求解過程中使用了罰函數(shù),對多解問題進(jìn)行了優(yōu)化,改善了收斂速度和收斂精度。Ayyildiz等[7]采用遺傳算法與其他4種不同的啟發(fā)式優(yōu)化算法在4R機械臂上求逆運動學(xué)解進(jìn)行對比,并通過2種不同的場景來測試機器人末端執(zhí)行器的運動,結(jié)果表明遺傳算法可以有效地降低末端執(zhí)行器的誤差。Starke等[8]提出了把遺傳算法和粒子群優(yōu)化算法的優(yōu)點進(jìn)行混合,找到全姿態(tài)目標(biāo)的解,結(jié)合共同的約束條件,設(shè)計一個多目標(biāo)適應(yīng)度函數(shù),利用局部極值獲得精確的解。然而遺傳算法對非線性問題的解決并不理想,求解精度無法得到保證。
RBFNN是一種高效的前饋式神經(jīng)網(wǎng)絡(luò)[9-10],具有較好的非線性擬合能力,能夠很好地逼近任意復(fù)雜的非線性系統(tǒng),處理多輸入多輸出問題。故Zubizarreta等[11]提出了使用人工神經(jīng)網(wǎng)絡(luò)對3PRS機器人實時逆運動學(xué)問題進(jìn)行計算,并實現(xiàn)其實時性能。Toshani等[12]采用RBFNN求解機器人逆運動學(xué)解,保證了網(wǎng)絡(luò)權(quán)重和約束條件的收斂性,并獲得了較小的誤差值。K?ker[13]通過結(jié)合遺傳算法和神經(jīng)網(wǎng)絡(luò)的方法求解機器人運動學(xué)逆解,并成功地使用遺傳算法將神經(jīng)網(wǎng)絡(luò)求解結(jié)果的浮點數(shù)部分提高了10位有效數(shù)字。盡管RBFNN在求解機器人逆運動學(xué)解上取得了一定的成果,但其仍然存在網(wǎng)絡(luò)結(jié)構(gòu)不完善、連接權(quán)值無法取得最優(yōu)的缺陷,而且采用遺傳算法優(yōu)化RBFNN存在易陷入局部極值導(dǎo)致輸出誤差偏大的缺陷[14]。
本文采用RBFNN來求解一般機器人逆運動學(xué)解,結(jié)合一般機器人的正運動學(xué)模型,采用MPGA優(yōu)化RBFNN的網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值的方法,并應(yīng)用混合編碼和同時演化的方式,實現(xiàn)了從機器人工作空間位姿到關(guān)節(jié)角度的非線性映射,從而避免了復(fù)雜的公式推導(dǎo),提高了求解速度。最后,通過實驗證明了該算法有效解決了機器人的逆運動學(xué)問題,并提高了求解速度和計算精度。
本文采用改進(jìn)的D-H算法[15]對Comau NJ-220型機器人[2]進(jìn)行運動學(xué)建模,得到如圖1所示的機器人D-H模型。在關(guān)節(jié)5處,該機器人存在沿 Z5方 向的軸向偏移 d5,導(dǎo)致機器人末端3個軸的軸線不相交,D-H參數(shù)發(fā)生變化。此時,該機器人為一般機器人,其連桿參數(shù)見表1。其中, ai-1表示第 i-1個 連桿的長度, αi-1是 第 i-1個連桿的扭角,第 i-1個 連桿與第 i 個 連桿之間的距離是 di、第i -1個 連桿與第i 個 連桿之間的夾角為θi。
圖 1 Comau NJ-220型機器人及其D-H參數(shù)Fig. 1 The Comau NJ-220 robot and the D-H parameters
表 1 Comau NJ-220型機器人的關(guān)節(jié)參數(shù)Table 1 Joint parameters of the Comau NJ-220 robot
根據(jù)表1的D-H參數(shù),相鄰坐標(biāo)系間的變換矩陣為
依次連乘變換矩陣,即可得到末端執(zhí)行器坐標(biāo)系到機器人基坐標(biāo)系的變換關(guān)系:
根據(jù)式(2)可以求出機器人運動學(xué)正解,即末端執(zhí)行器的姿態(tài) R(nx,ny,nz,ox,oy,oz,ax,ay,az)和位置P(px,py,pz)。同時通過運動學(xué)正解得到機器人操作空間數(shù)據(jù)集。根據(jù)坐標(biāo)變換原理[16],可得到末端執(zhí)行器姿態(tài)R的RPY歐拉角β、α、γ:
在運動學(xué)求逆解過程中,將 β、 α、 γ、 px、 py、pz作 為輸入變量,關(guān)節(jié)變量 (θ1,θ2,θ3,θ4,θ5,θ6)作為模型的輸出變量。
為了解決一般機器人逆運動學(xué)求解過程中存在的求解速度慢、求解精度低的問題,本文提出了采用MPGA來優(yōu)化RBFNN網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值的方法,并應(yīng)用混合編碼和同時演化的方式,實現(xiàn)從機器人工作空間位姿到關(guān)節(jié)角度的非線性映射,從而避免了復(fù)雜的公式推導(dǎo)及計算量大的問題。MPGA優(yōu)化RBFNN的過程如圖2所示。
圖 2 MPGA-RBFNN算法流程Fig. 2 Algorithm flow chart of MPGA-RBFNN
在圖2中,為了達(dá)到搜索要求,MPGA根據(jù)種群的差異,設(shè)置不同的控制參數(shù),并將多個種群進(jìn)行同時優(yōu)化搜索;為了實現(xiàn)多個種群之間的協(xié)同進(jìn)化,MPGA在不同的種群之間通過移民算子進(jìn)行聯(lián)系。
RBFNN具有較好的非線性擬合能力,能夠很好地逼近任意復(fù)雜的非線性系統(tǒng),處理多輸入多輸出問題[17]。在本文的網(wǎng)絡(luò)結(jié)構(gòu)中,將末端執(zhí)行器的空間位姿 P={px,py,pz,β,α,γ}作為RBFNN的6個輸入;輸出量為各個關(guān)節(jié)角度( θ1,θ2,θ3,θ4,θ5,θ6),即所求 的逆解。故RBFNN求逆解網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖 3 RBFNN求逆解網(wǎng)絡(luò)結(jié)構(gòu)Fig. 3 RBFNN structure in solving inverse kinematics
在隱含層的選擇中,本文采用RBFNN中常用的高斯函數(shù)作為基函數(shù):
式中: x∈R為 n 維 輸入向量; xi∈R 是第i個RBFNN隱含層單元的中心矢量; bi是第i個RBFNN隱含層單元的寬度。則第i個RBFNN的輸出可以表示為 n個基函數(shù)的線性加權(quán)和:
定義在時刻 k 網(wǎng)絡(luò)的誤差函數(shù)為
式中 t(k)是 在時刻 k 網(wǎng)絡(luò)的期望輸出。
假設(shè)RBFNN的隱含層神經(jīng)元的最大個數(shù)為l,輸出神經(jīng)元為n,則MPGA的染色體編碼為
式中: c1c2···cl是隱含層神經(jīng)元的編碼方案;ω11ω21···ωl1ω12ω22···ωl2ω1mω2m···ωlm是 連 接權(quán)值的編碼方案; b1b2···bm是輸入層與隱含層之間閾值的編碼方式,采用實數(shù)編碼, bj為第 j個輸出層神經(jīng)元的閾值。
適應(yīng)度函數(shù)是評價算法的重要指標(biāo),而在神經(jīng)網(wǎng)絡(luò)中包括實際輸出誤差和期望輸出誤差,因此本文引入適應(yīng)度函數(shù)為
式中 e(k)為神經(jīng)網(wǎng)絡(luò)實際輸出與期望輸出的誤差平方和。一般認(rèn)為,誤差越小,適應(yīng)度越高,反之亦然。
選擇算子采用基于輪盤賭法的非線性排名策略,即每個個體進(jìn)入下一代的概率等于其適應(yīng)度值與整個種群個體適應(yīng)度值的總和,并且適應(yīng)度值大的個體,進(jìn)入下一代的可能性就越大。交叉算子采用多點交叉與均勻交叉相結(jié)合的方式,促進(jìn)解空間進(jìn)行穩(wěn)定、高效的搜索,避免早熟現(xiàn)象發(fā)生。交叉概率為
式中: Pcmin(i) 是 第i個 種群交叉概率最小值;Pcmax(i)是第i個種群交叉概率最大值。
變異算子采用基于動態(tài)變異率的變異算子。常用的變異概率值為
式中: Pbmin(i) 是第i個種群變異概率最小值,Pbmax(i)是第i個種群變異概率最大值。
引入動態(tài)變異率后,在每代算法運行后調(diào)整概率值為
式中: Pc(i) 是 第i 個 種群的交叉概率; Pb(i+1)是 第i+1個 種群的變異概率; gen是當(dāng)前算法的運行代數(shù); GEN是算法運行總代數(shù)。
為了驗證MPGA-RBFNN在逆運動學(xué)求解上的有效性,分別采用MPGA、RBFNN和MPGARBFNN對Comau NJ-220型一般機器人進(jìn)行逆運動學(xué)求解。
圖 4 3種算法輸出誤差圖Fig. 4 The output error of three kinds of algorithm
由圖4可得,3種算法都完成了求解過程,MPGA求解時的輸出誤差數(shù)量級維持在1 0-3上,而RBFNN求解時的輸出誤差數(shù)量級維持在10-4上,但MPGA-RBFNN計算運動學(xué)逆解時的輸出誤差數(shù)量級維持在1 0-5上,相比于MPGA和RBFNN,在數(shù)量級上提高了一個數(shù)量級,說明MPGA-RBFNN取得的解最優(yōu),即最接近目標(biāo)值。
為了進(jìn)一步對比3種算法的差異,根據(jù)機器人各關(guān)節(jié)角的變化范圍以及機器人實際工作的要求,確定各關(guān)節(jié)角的取值范圍為: -2.9≤θ1≤2.9,-1.57≤θ2,θ3≤1.57 ,-3.14≤θ4,θ5,θ6≤3.14。重新在Comau NJ-220機器人運動范圍內(nèi)隨機抽取與之前100組不重復(fù)的50組關(guān)節(jié)角 θi數(shù)據(jù),用來作為測試數(shù)據(jù)進(jìn)行驗證,其中3組的結(jié)果如表2所示。
對比表2中的數(shù)據(jù),MPGA的輸出誤差范圍為[-0.004 031,0.003 115],RBFNN的輸出誤差范圍為[-0.001 094,0.000 918],而MPGA-RBFNN算法的輸出誤差范圍為[-0.000 001,0.000 292]。通過第1組數(shù)據(jù)中關(guān)節(jié)角 θ2求解結(jié)果可知,MPGA求解運動學(xué)逆解時的誤差值為0.003 086,RBFNN求解運動學(xué)逆解時的誤差值為0.000 273,而MPGARBFNN的誤差值為0.000 009,相比于MPGA與RBFNN同比提高99.7%和96.7%。綜上所述,雖然MPGA與RBFNN都能近似求出機器人運動學(xué)逆解,但MPGA-RBFNN算法的計算精度更好。
得到訓(xùn)練樣本后,應(yīng)用MATLAB中神經(jīng)網(wǎng)絡(luò)工具箱的網(wǎng)絡(luò)訓(xùn)練newrb函數(shù)進(jìn)行RBFNN的創(chuàng)建與訓(xùn)練,其調(diào)用格式為net=newrb(P,T,goal,spread,MN,DF),P為網(wǎng)絡(luò)輸入,T為網(wǎng)絡(luò)輸出,goal為網(wǎng)絡(luò)輸出目標(biāo)值,spread為RBFNN的擴(kuò)展速度,MN為訓(xùn)練次數(shù),DF為兩次顯示之間所添加的神經(jīng)元數(shù)目。根據(jù)多次實驗,得到其參數(shù)的設(shè)置為:goal=1 0-5,spread=1,MN=200,DF=5,其網(wǎng)絡(luò)訓(xùn)練如圖5所示。
表 2 逆解結(jié)果Table 2 Inverse kinematics solution results
圖 5 MPGA-RBFNN網(wǎng)絡(luò)性能訓(xùn)練Fig. 5 Performance training of MPGA-RBFNN
從圖5可以看出,經(jīng)過183次訓(xùn)練后,網(wǎng)絡(luò)的訓(xùn)練精度為 1 0-5,達(dá)到最初的目標(biāo)要求。為了驗證MPGA-RBFNN的訓(xùn)練成功率,采用了3 000個樣本得到3種算法的性能對比結(jié)果如表3所示,在同樣的樣本數(shù)量下,MPGA-RBFNN的訓(xùn)練成功率為95%,對比其他2種算法,分別增長了23%和11%,雖然與MPGA和RBFNN相比MPGARBFNN的收斂步數(shù)有所增加,但MPGA-RBFNN的運行時間和訓(xùn)練成功率更具優(yōu)勢。未來的工作將 針對收斂步數(shù)做進(jìn)一步的研究。
表 3 算法性能對比Table 3 Contrasts in algorithm performance
本文結(jié)合MPGA和RBFNN的思想,提出了適用于一般機器人逆運動學(xué)求解的MPGA-RBFNN算法。該算法結(jié)合一般機器人的正運動學(xué)模型,采用MPGA優(yōu)化RBFNN的網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值的方法,并應(yīng)用混合編碼和同時演化的方式,實現(xiàn)從機器人工作空間位姿到關(guān)節(jié)變量的非線性映射,從而避免了復(fù)雜的公式推導(dǎo)及計算量大的問題。最后,在Comau NJ-220型機器人上展開對比實驗,實驗結(jié)果表明:MPGA-RBFNN算法不僅提高了一般機器人在逆運動學(xué)求解時的穩(wěn)定性,而且該算法的訓(xùn)練成功率和逆解的計算準(zhǔn)確率也得到了提高。