倪丹艷
(蘇州高博軟件技術(shù)職業(yè)學(xué)院機電工程學(xué)院,江蘇 蘇州 215163)
機器人是由多個桿件和旋轉(zhuǎn)關(guān)節(jié)串聯(lián)而成的運動體,通過移動末端執(zhí)行器到指定位置來完成規(guī)定的作業(yè)[1-3]。但因裝配誤差、連桿和關(guān)節(jié)的變形、各運動副之間的摩擦以及溫度、末端負載變化等因素的影響,機器人末端執(zhí)行器實際的位姿與期望位姿有一定的誤差,從而導(dǎo)致機器人產(chǎn)生定位誤差[4-6]。如果不對定位誤差進行有效補償,那么機器人就很難完成既定工作。
近年來,國內(nèi)外諸多學(xué)者對機器人定位誤差補償問題進行了研究,并取得了一定的研究成果。如朱江新等[7]結(jié)合D-H法與微分運動學(xué)理論構(gòu)建機器人定位誤差模型,并依據(jù)該模型提出運動學(xué)參數(shù)誤差的計算公式,運用最小二乘法進行求解,根據(jù)求得的結(jié)果分別進行D-H參數(shù)補償和機器人關(guān)節(jié)轉(zhuǎn)角補償;高貫斌等[8]提出把機器人活動空間分割成網(wǎng)格,在網(wǎng)格空間內(nèi)構(gòu)建定位點和參考點的相似度關(guān)系,建立以距離為偏差的誤差傳輸函數(shù),根據(jù)該函數(shù)提出誤差補償方法,對定位點各個方向的誤差進行補償。上述兩種方法雖然對機器人定位誤差起到了一定的補償作用,但是分類預(yù)測精度較差,達不到理想的補償效果。本文提出一種基于改進卷積網(wǎng)絡(luò)的機器人定位誤差補償方法,以期有效、合理地對機器人定位誤差進行補償。
1.1.1機器人定位誤差預(yù)測的深度卷積神經(jīng)網(wǎng)絡(luò)設(shè)置
卷積神經(jīng)網(wǎng)絡(luò)(CNN)一般由輸入層、隱含層、全連接層以及分類層組成,其中隱含層又可分為卷積層和池化層兩部分[9-10]。對于機器人定位誤差預(yù)測,本文在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,提出隱含層為4層的深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)模型,如圖1所示,模型共分為8層,輸入層與分類預(yù)測層均為1層,卷積層有2層、池化層有2層、全連接層有2層。
圖1 深度卷積神經(jīng)網(wǎng)絡(luò)模型
在DCNN模型中,輸入層預(yù)處理機器人實際關(guān)節(jié)角度與理想關(guān)節(jié)角度圖像,再將處理后的圖像傳送到卷積層;卷積層對圖像進行卷積運算,得到機器人實際關(guān)節(jié)角度與理想關(guān)節(jié)角度特征圖,并輸送至池化層;池化層對特征圖運用最大池化方式進行壓縮采樣,得到機器人實際關(guān)節(jié)角度與理想關(guān)節(jié)角度深層特征圖,這一過程便實現(xiàn)了局部連接,使深度網(wǎng)絡(luò)結(jié)構(gòu)變得簡單;全連接層對機器人實際關(guān)節(jié)角度與理想關(guān)節(jié)角度深層特征圖進行差異性計算,并將計算結(jié)果傳送至分類預(yù)測層;分類預(yù)測層位于DCNN最末層,用于機器人定位誤差預(yù)測結(jié)果的輸出。
1.1.2機器人定位誤差預(yù)測DCNN模型的訓(xùn)練
本文首先對DCNN模型進行訓(xùn)練,然后運用訓(xùn)練后的網(wǎng)絡(luò)模型對機器人實際關(guān)節(jié)角度與理想關(guān)節(jié)角度圖像進行特征提取及定位誤差預(yù)測。DCNN訓(xùn)練誤差函數(shù)C描述為:
(1)
通過該誤差函數(shù)進行反向傳播,對DCNN結(jié)構(gòu)中的參數(shù)進行自適應(yīng)調(diào)節(jié),重復(fù)這一過程,直至達到調(diào)節(jié)結(jié)束條件,完成機器人定位誤差預(yù)測DCNN模型的訓(xùn)練。
1.1.3基于DCNN模型的機器人定位誤差預(yù)測實現(xiàn)
利用訓(xùn)練好的DCNN模型對機器人定位誤差進行預(yù)測。將尺寸為a×a的圖像塊A作為實際關(guān)節(jié)角度圖像,構(gòu)建A和機器人理想關(guān)節(jié)角度圖像的數(shù)據(jù)集合,二者會產(chǎn)生映射關(guān)系,通過映射函數(shù)f(A)提取A的特征,從而獲取到A在窗口范圍中數(shù)量為M的特征。映射過程可以描述為:
f(A)→MRN
(2)
式中:RN為實數(shù)向量。
通過映射操作獲取的機器人關(guān)節(jié)角度圖像維度Q與數(shù)據(jù)向量y,分別可以描述為:
Q=γ(a+1)2
(3)
y=Qf(A)×Bj(A)
(4)
式中:Bj(A)為j的圖像特征,γ為維度向量。
依據(jù)該方法,對機器人定位圖像所有數(shù)據(jù)集進行卷積操作,將獲得的卷積結(jié)果輸送至池化層,對卷積結(jié)果進行壓縮降維,并把降維后的特征圖傳送至第二個卷積層中再次進行卷積計算。重復(fù)上述步驟,實現(xiàn)機器人關(guān)節(jié)角度圖像特征的提取。
經(jīng)過卷積與池化操作后,將提取到的機器人實際關(guān)節(jié)角度與理想關(guān)節(jié)角度深度特征圖輸送至DCNN的全連接層,進行特征圖的邏輯推理。將機器人理想關(guān)節(jié)角度特征圖E′當(dāng)作參考對象,分別計算該參考對象與其對應(yīng)的機器人實際關(guān)節(jié)角度特征圖E之間各特征點的歐氏距離h,描述為:
(5)
式中:ε為權(quán)重向量;hmax為距離最大的特征點間的歐氏距離。依據(jù)距離最大的特征點間的歐氏距離最大值得到的機器人定位誤差預(yù)測結(jié)果:
(6)
式中:qt=[qtx,qty,qtz]T,為工具中心點(tool center point,TCP)處的工具坐標(biāo)系和機器人末端法蘭中心的相對位置矢量,qtx,qty,qtz為工具坐標(biāo)系X軸、Y軸、Z軸方向的位置矢量。
至此,完成機器人定位誤差預(yù)測。
1.2.1機器人定位誤差補償目標(biāo)函數(shù)及約束條件
根據(jù)機器人定位誤差預(yù)測結(jié)果,將補償問題轉(zhuǎn)變成優(yōu)化問題。本文以機器人定位誤差最小為優(yōu)化目標(biāo),構(gòu)建優(yōu)化目標(biāo)函數(shù)f,描述為:
f=min
(7)
為了提高運算效率,在約束條件中,設(shè)定只進行一次運動學(xué)逆解運算,同時依據(jù)機器人的特點,設(shè)置關(guān)節(jié)角度的尋優(yōu)范圍,關(guān)節(jié)角度需符合機器人關(guān)節(jié)限位的要求。機器人定位誤差補償目標(biāo)函數(shù)約束條件,描述為:
(8)
式中:I為機器人第I個關(guān)節(jié),θI為第I個關(guān)節(jié)角度,θmin、θmax分別為最小關(guān)節(jié)角度和最大關(guān)節(jié)角度,SI為機器人末端坐標(biāo),fI為定位誤差的修正向量。
1.2.2基于粒子群優(yōu)化算法的目標(biāo)函數(shù)求解
粒子群優(yōu)化(particle swarm optimization,PSO)算法依據(jù)種群的迭代進行全局尋優(yōu),即利用所有粒子之間的協(xié)作和競爭來完成最佳值的搜尋。應(yīng)用粒子群算法完成機器人定位誤差補償,即以式(7)所示的機器人定位誤差最小為目標(biāo)函數(shù),將該目標(biāo)函數(shù)作為粒子群算法尋優(yōu)的適應(yīng)度函數(shù),通過粒子群算法尋找滿足適應(yīng)度函數(shù)的最優(yōu)粒子,獲得最佳誤差補償結(jié)果。粒子群算法中,存在于搜尋空間內(nèi)的各個點被稱為粒子,所有粒子都有可能成為搜索空間中的最佳機器人定位誤差補償目標(biāo)函數(shù)尋優(yōu)結(jié)果,即所有粒子均有成為可行解的可能。位置與速度是粒子的特有屬性,粒子下一時間點所在位置取決于粒子的運行速度。
設(shè)定機器人定位誤差補償過程中,D為粒子搜尋空間的維度;Xi=(xi1,xi2,…,xiD),為粒子群中位置為i的粒子,xiD為粒子搜尋空間維度中位置為i的粒子;Vi=(vi1,vi2,…,viD),為該粒子的運動速度,viD為粒子搜尋空間維度中粒子的運動速度;pbest=(pi1,pi2,…,piD),為個體最佳位置,piD為粒子搜尋空間維度中個體位置;gbest=(gi1,gi2,…,giD),為種群最佳位置,giD為粒子搜尋空間維度中種群位置。粒子可以根據(jù)pbest和gbest對自身的速度與位置進行更新,描述為:
vid(k+1)=wvid(k)+c1r1(pid(k)-
xid(k))+c2r2(gid(k)-xid(k))
(9)
xid(k+1)=xid(k)+vid(k+1)
(10)
式中:d=1,2,…,D;k為目前迭代次數(shù);r1和r2為隨機數(shù);c1和c2為學(xué)習(xí)因子,分別表示把粒子引導(dǎo)至個體和全局最佳位置的統(tǒng)計加速項的權(quán)值;w為慣性權(quán)重,用于判斷粒子群優(yōu)化算法的局部與全局搜尋能力。
為了提高機器人定位誤差補償?shù)膶?yōu)能力,可以通過隨機權(quán)重法與自然選擇原理相結(jié)合的方法對PSO進行完善。由于w是可調(diào)節(jié)的參數(shù),因此運用隨機權(quán)重法對w進行完善,調(diào)整后的w可以提升PSO在進行機器人定位誤差補償時目標(biāo)函數(shù)求解的全局尋優(yōu)能力,避免算法早熟,使得尋求的機器人定位誤差補償結(jié)果實現(xiàn)全局最優(yōu)。隨機權(quán)重法把w設(shè)置成服從任意分布的隨機數(shù)值,w的計算表達式為:
w=δ+σ·N′(0,1)
(11)
其中:
δ=δmin+(δmax-δmin)rand(0,1)
(12)
式中:δ為隨機權(quán)重平均值;σ為方差;δmax為隨機權(quán)重最大值;δmin為隨機權(quán)重最小值;N′(0,1)為隨機數(shù),且呈標(biāo)準正態(tài)排列;rand()為生成隨機數(shù)的函數(shù)。
基于改進粒子群算法的機器人定位誤差補償目標(biāo)函數(shù)尋優(yōu)過程如下:
1)種群初始化。設(shè)定種群大小、迭代次數(shù)上限、粒子的維度、初始速度與位置以及二者的限定范圍。
2)粒子性能評估。粒子的評價函數(shù),也就是適應(yīng)度函數(shù),采用的是機器人定位誤差補償目標(biāo)函數(shù)。所有粒子的適應(yīng)度值根據(jù)式(7)計算得出,并將結(jié)果記錄在pbest中,包括所有的適應(yīng)度值及其對應(yīng)的粒子所在的位置,然后從pbest中挑選出最佳適應(yīng)度值及其對應(yīng)的粒子所在位置,記錄在gbest中。
3)通過式(9)、(10)對粒子的速度與位置進行更新,并衡量二者是否在設(shè)定范圍內(nèi),如果已超出預(yù)設(shè)范圍,則返回第1)步,重新進行初始化操作。
4)通過式(11)對慣性權(quán)重進行改進,以提高進行機器人定位誤差補償時PSO的尋優(yōu)能力。
5)由于本文的適應(yīng)度函數(shù)也是目標(biāo)函數(shù),為了實現(xiàn)機器人定位誤差最小,因此計算出的適應(yīng)度值越小越好。選取所有粒子適應(yīng)度值中最小的適應(yīng)度值與個體最佳位置pbest的適應(yīng)度值進行比較,如果其小于pbest的適應(yīng)度值,那么這個最小適應(yīng)度值對應(yīng)粒子所在位置將取代pbest,成為個體最佳位置。
6)將所有粒子的個體最佳位置中適應(yīng)度值最小的位置作為全局最佳位置。
7)采用自然選擇原理,替換種群中品質(zhì)較差的粒子,替換比例為25%。將全部粒子根據(jù)適應(yīng)度值大小升序排列,調(diào)整慣性權(quán)重,更新粒子位置。這樣就可以在pbest與gbest不發(fā)生變化的情況下,加快算法收斂速度。
8)評估是否符合算法結(jié)束要求,即達到迭代上限。如果符合要求,那么結(jié)束算法,得出全局最佳結(jié)果,反之,返回第3)步。
使用深度卷積神經(jīng)網(wǎng)絡(luò)得到最小定位誤差,將其作為目標(biāo)函數(shù)用于粒子群優(yōu)化算法的適應(yīng)度函數(shù)。通過粒子群優(yōu)化算法尋優(yōu)過程,獲取最優(yōu)的機器人定位誤差補償結(jié)果,并將該結(jié)果應(yīng)用于機器人實現(xiàn)目標(biāo)精準定位。
以某型號的6自由度機器人作為實驗對象,該機器人臂展為550 mm,機身質(zhì)量為45 kg,額定負載為10 kg,驅(qū)動方式為電氣驅(qū)動,機械手有6個自由度,也是該機器人的末端執(zhí)行器。
為了驗證本文方法的有效性,對該機器人進行了物體抓取測試,并利用本文方法對該機器人進行了定位誤差補償,相關(guān)參數(shù)見表1,得出的實驗結(jié)果如圖2、圖3所示。由圖2、圖3可知,利用本文方法對機器人的6個關(guān)節(jié)進行相應(yīng)的角位移誤差補償,再將角位移誤差補償后的結(jié)果應(yīng)用于機器人運動控制,實現(xiàn)了對目標(biāo)物體的準確抓取。實驗結(jié)果說明,本文方法可有效通過機器人定位誤差補償消除機器人目標(biāo)抓取的誤差,保障機器人實現(xiàn)物體精準抓取。
表1 實驗參數(shù)設(shè)置
圖2 機器人定位誤差補償
圖3 機器人抓取物品
實驗對隱含層分別為3層、4層、5層時的卷積神經(jīng)網(wǎng)絡(luò)模型進行性能測試。將機器人定位誤差補償預(yù)測數(shù)據(jù)集分為訓(xùn)練與測試兩部分,分配比例為7∶3。設(shè)定輸入長度、全連接層獲取的特征維度、迭代上限分別為200、3 600、1 200,最后得到不同隱含層結(jié)構(gòu)下DCNN分類預(yù)測精度,結(jié)果如圖4所示。由圖可知,迭代次數(shù)為600時,隱含層為4層的DCNN分類預(yù)測精度達99%以上,當(dāng)?shù)螖?shù)為1 200次時,分類預(yù)測精度更是達到了99.87%,接近于100%,而其他層次結(jié)構(gòu)的DCNN網(wǎng)絡(luò)模型在分類預(yù)測精度方面的表現(xiàn)則稍差一些,由此說明,在深度卷積神經(jīng)網(wǎng)絡(luò)模型中設(shè)置4層隱含層時,有著較強的分類預(yù)測能力。
圖4 不同隱含層結(jié)構(gòu)下DCNN分類預(yù)測精度
隨著機器人應(yīng)用市場的拓展,人們對機器人定位精度的要求愈加嚴格,為提高機器人本體的絕對定位精度,本文提出一種基于改進卷積網(wǎng)絡(luò)的機器人定位誤差補償方法。該方法運用改進的卷積神經(jīng)網(wǎng)絡(luò)模型對機器人定位誤差進行預(yù)測,根據(jù)預(yù)測模型構(gòu)建機器人定位誤差目標(biāo)函數(shù),通過粒子群算法對目標(biāo)函數(shù)進行求解,以此實現(xiàn)機器人定位誤差補償。實驗證明,本文方法對機器人定位誤差補償有著較好的表現(xiàn),比較適合用于此類問題的解決。