田立國,熊 磊
(漢中職業(yè)技術(shù)學(xué)院 汽車與機(jī)電工程學(xué)院,漢中 723000)
智能機(jī)器人的應(yīng)用范圍日益擴(kuò)大,對(duì)機(jī)器人定位的準(zhǔn)確性提出了更高的要求[1-3]。在實(shí)際工作中,機(jī)器人通常會(huì)處于持續(xù)運(yùn)轉(zhuǎn)的狀態(tài),這樣便會(huì)出現(xiàn)關(guān)節(jié)磨損、連桿變形、電機(jī)發(fā)熱、負(fù)載量大等問題,造成其末端期望與實(shí)際位姿的偏離,產(chǎn)生一定的定位誤差[4-6]。因此,為了使機(jī)器人能夠高效、平穩(wěn)地完成既定工作任務(wù),對(duì)其定位誤差進(jìn)行估計(jì)與補(bǔ)償非常必要。
近年來,有學(xué)者通過立方體網(wǎng)格建立以角度與距離為偏差的誤差傳輸函數(shù),根據(jù)該函數(shù)提出機(jī)器人定位誤差補(bǔ)償方法,對(duì)定位點(diǎn)每個(gè)方向的誤差進(jìn)行相應(yīng)補(bǔ)償[7];有學(xué)者利用圖卷積網(wǎng)絡(luò)構(gòu)建機(jī)器人定位誤差預(yù)測(cè)模型,獲取機(jī)器人定位誤差,并將誤差補(bǔ)償問題轉(zhuǎn)換成優(yōu)化問題,利用遺傳算法對(duì)優(yōu)化問題進(jìn)行求解,進(jìn)而達(dá)到補(bǔ)償誤差的目的[8]。上述2種方法雖然對(duì)機(jī)器人定位誤差起到了一定補(bǔ)償作用,但是第一種方法通過空間網(wǎng)格法對(duì)機(jī)器人定位進(jìn)行采樣,缺少泛化能力,在實(shí)際工作中應(yīng)用性不強(qiáng);第二種方法則在構(gòu)建機(jī)器人定位誤差預(yù)測(cè)模型時(shí),涉及大量的編碼與解碼操作,運(yùn)算量較大,增加了算法的實(shí)現(xiàn)難度。
深度學(xué)習(xí)網(wǎng)絡(luò)通常是指具有多個(gè)隱含層的神經(jīng)網(wǎng)絡(luò),可以含有多個(gè)非線性變換,擅長對(duì)各種類型數(shù)據(jù)中的復(fù)雜模式進(jìn)行識(shí)別,有著較強(qiáng)的模型擬合以及提取特征的能力[9-10]。因此本文提出基于深度學(xué)習(xí)網(wǎng)絡(luò)的機(jī)器人定位誤差估計(jì)與補(bǔ)償方法,可以準(zhǔn)確、合理地對(duì)機(jī)器人定位誤差進(jìn)行估計(jì)與補(bǔ)償,具有較強(qiáng)的應(yīng)用性。
由于機(jī)器人定位誤差的初始狀態(tài),需要通過采樣點(diǎn)數(shù)據(jù)才能反映出來,所以對(duì)機(jī)器人定位誤差進(jìn)行估計(jì)的前提,便是要選擇適當(dāng)?shù)牟蓸狱c(diǎn)。對(duì)于機(jī)器人定位誤差而言,其采樣點(diǎn)不僅要包括機(jī)器人整體位置移動(dòng)的信息,還要包括其末端姿態(tài)的信息,這是因?yàn)楫?dāng)機(jī)器人到達(dá)某一目標(biāo)位置時(shí),其姿態(tài)也會(huì)產(chǎn)生不同的變化,進(jìn)而會(huì)使機(jī)器人的有關(guān)關(guān)節(jié)角度發(fā)生改變,由此說明機(jī)器人定位誤差與其整體移動(dòng)位置和關(guān)節(jié)角度,也就是位姿有著較強(qiáng)的相關(guān)性。在工作空間內(nèi),為了使機(jī)器人定位誤差得到準(zhǔn)確估計(jì)與有效補(bǔ)償,選擇采樣點(diǎn)時(shí)應(yīng)注意要最大程度覆蓋所有關(guān)節(jié),以及采樣點(diǎn)個(gè)數(shù)的設(shè)置要合理。為此本文使用拉丁超立方體采樣(LHS)方法來規(guī)劃機(jī)器人定位采樣點(diǎn)。該方法通過分層隨機(jī)抽樣的方式,從變量分布區(qū)域進(jìn)行快速采樣,利用此方法可以在機(jī)器人工作間中得到適當(dāng)?shù)牟蓸狱c(diǎn)集合。
設(shè)定采樣變量維度用δ 描述,采樣點(diǎn)個(gè)數(shù)用N描述,隨機(jī)某個(gè)采樣變量用sij(i=1,2,…,N;j=1,2,…,δ)描述,其分布函數(shù)用Aij描述,在區(qū)間(0,1)內(nèi)生成的隨機(jī)數(shù)用ζij描述,則采樣變量sij為
如果機(jī)器人關(guān)節(jié)角度空間維度為l,把所有維度中的變量進(jìn)行隨機(jī)分布,產(chǎn)生數(shù)量是N 的采樣點(diǎn)集合,那么關(guān)于s 的矩陣可以描述為
為了評(píng)估采樣點(diǎn)在機(jī)器人工作空間里分布的均勻性,可以引進(jìn)點(diǎn)集偏差理論。設(shè)定機(jī)器人工作空間Z 中,數(shù)量是N 的采樣點(diǎn)用s′1,s′2,…,s′N描述,則第i 組采樣點(diǎn)相應(yīng)區(qū)間[0,si]中的體積函數(shù)F(si)可以描述為
設(shè)定s′1,s′2,…,s′N在Z 中的點(diǎn)集偏差用e 描述,存在于[0,si]中的采樣點(diǎn)集合的個(gè)數(shù)用N(si)描述,當(dāng)使用點(diǎn)集偏差理論評(píng)估采樣點(diǎn)分布是否均勻時(shí),e 越小,說明其相對(duì)應(yīng)的點(diǎn)集分布越均勻,反之亦然。e 用公式描述為
利用抽樣的方式產(chǎn)生多組采樣點(diǎn),再通過計(jì)算就可獲取所有采樣點(diǎn)的e 值,而最終使用的采樣點(diǎn)則是e 值最小的那組點(diǎn)集,由此便得到維度為l 的機(jī)器人定位空間中的采樣點(diǎn)。利用獲取的采樣點(diǎn)就可以對(duì)機(jī)器人定位誤差進(jìn)行估計(jì)與補(bǔ)償。
機(jī)器人在工作時(shí),通常情況下都會(huì)在其末端配置執(zhí)行器,通過末端執(zhí)行器來完成工作任務(wù),因此對(duì)機(jī)器人末端的位姿進(jìn)行分析非常重要。在笛卡爾空間內(nèi),設(shè)定機(jī)器人末端到達(dá)某個(gè)目標(biāo)點(diǎn)的理論位姿坐標(biāo)用Pt(xt,yt,zt)描述,實(shí)際位姿坐標(biāo)P′(x′,y′,z′),那么在該目標(biāo)點(diǎn)處的定位誤差矢量E 可以描述為
機(jī)器人絕對(duì)定位誤差通過歐氏距離可以描述為
1.3.1 GPSO-DNN 網(wǎng)絡(luò)模型的構(gòu)建
本文采用深度神經(jīng)網(wǎng)絡(luò)(DNN)模型對(duì)機(jī)器人定位誤差進(jìn)行估計(jì)。設(shè)定用于機(jī)器人定位誤差估計(jì)的DNN 模型的輸入量用[x1,x2,…,xn]描述,輸出量用[y1,y2,…,ym]描述,二者分別為機(jī)器人末端理論位姿數(shù)據(jù)與機(jī)器人末端定位誤差,而二者的維度決定了DNN 模型中輸入與輸出層中節(jié)點(diǎn)的數(shù)量。如果DNN 中共有L 個(gè)隱含層,那么位置是l 的隱含層的輸出可以描述為
式中:wl為l 與l-1 層節(jié)點(diǎn)的連接權(quán)值矩陣,cl為閾值向量;μ(x)為ReLU 激活函數(shù),可以描述為
在DNN 網(wǎng)絡(luò)模型中,影響模型的機(jī)器人定位誤差估計(jì)性能及估計(jì)結(jié)果較為重要的因素就是隱含層的層數(shù)與節(jié)點(diǎn)個(gè)數(shù),本文使用經(jīng)驗(yàn)法對(duì)DNN模型的隱含層最優(yōu)節(jié)點(diǎn)個(gè)數(shù)范圍進(jìn)行確定,描述為
式中:DNN 模型內(nèi)輸入與輸出兩層內(nèi)節(jié)點(diǎn)個(gè)數(shù)用n與m 描述,常數(shù)用σ∈[1,10]描述。
對(duì)于DNN 模型來說,初始化權(quán)值與閾值方法的好壞,直接關(guān)系其收斂速度的快慢。傳統(tǒng)算法中通常采用隨機(jī)的方式進(jìn)行初始化操作,降低了DNN模型的收斂效率。所以本文通過粒子群算法(PSO)獲取深度神經(jīng)網(wǎng)絡(luò)權(quán)值與閾值的最佳初始值,達(dá)到優(yōu)化DNN 的目的。
(1)在PSO 算法的初始階段,粒子呈隨機(jī)分布的狀態(tài),這便導(dǎo)致部分粒子的適應(yīng)度會(huì)產(chǎn)生較大誤差,影響收斂速度。因此,可以把GA 算法的自然選擇策略融入其中,對(duì)PSO 進(jìn)行改進(jìn),加速收斂。
(2)粒子在進(jìn)行速度更新時(shí),包含了搜索速度快慢與搜索方向2 個(gè)方面,因此可以融入GA 的交叉思想,在不改變粒子速度快慢的前提下,改變搜索方向的更新規(guī)則,這樣可以提升粒子的記憶與認(rèn)知能力。
通過上述方法對(duì)PSO 的改進(jìn)后,形成GPSO 算法,該算法可以減少記憶性對(duì)粒子運(yùn)動(dòng)的干擾,防止出現(xiàn)重復(fù)路線,有效提升收斂速度,避免發(fā)生局部最優(yōu)的問題。通過GPSO 能夠得到深度神經(jīng)網(wǎng)絡(luò)模型中權(quán)值與閾值的最佳初始值,進(jìn)而可以利用優(yōu)化后的深度神經(jīng)網(wǎng)絡(luò)完成對(duì)機(jī)器人定位誤差的估計(jì)。
綜上所述,GPSO-DNN 網(wǎng)絡(luò)模型構(gòu)建過程可以描述為
(1)對(duì)機(jī)器人定位誤差樣本進(jìn)行歸一化操作,并將樣本分為訓(xùn)練與測(cè)試兩部分。
(2)根據(jù)式(9),對(duì)DNN 網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)個(gè)數(shù)的取值大致范圍進(jìn)行初步確定,并在該范圍內(nèi)利用遍歷的方法,獲取最優(yōu)的隱含層層數(shù)與節(jié)點(diǎn)個(gè)數(shù)。
(3)通過GPSO 算法,獲取目前DNN 網(wǎng)絡(luò)結(jié)構(gòu)下最佳權(quán)值與閾值。
(4)對(duì)獲取到最佳權(quán)值與閾值的DNN 網(wǎng)絡(luò)實(shí)行訓(xùn)練與測(cè)試操作,并對(duì)其網(wǎng)絡(luò)結(jié)構(gòu)與估計(jì)結(jié)果進(jìn)行留存。
(5)按照順序?qū)NN 網(wǎng)絡(luò)中隱含層層數(shù)與節(jié)點(diǎn)個(gè)數(shù)取值范圍內(nèi)的所有元素進(jìn)行遍歷操作,如果不符合遍歷終止要求,那么返至第(3)步;如果符合遍歷終止要求,那么終止遍歷操作,選取精度最優(yōu)的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與估計(jì)數(shù)據(jù)。
1.3.2 機(jī)器人定位誤差估計(jì)與補(bǔ)償?shù)膶?shí)現(xiàn)
利用GPSO-DNN 網(wǎng)絡(luò)模型對(duì)機(jī)器人定位誤差進(jìn)行估計(jì)與補(bǔ)償?shù)倪^程如下:
(1)在機(jī)器人工作空間內(nèi),利用LHS 方法對(duì)機(jī)器人位姿進(jìn)行采樣規(guī)劃,獲取機(jī)器人定位采樣點(diǎn)理論位姿Psample;
(2)利用Psample對(duì)GPSO-DNN 進(jìn)行訓(xùn)練,得到最優(yōu)的GPSO-DNN 網(wǎng)絡(luò)模型;
(3)將機(jī)器人末端理論位姿Ptarget輸入至已訓(xùn)練好的GPSO-DNN 網(wǎng)絡(luò)模型內(nèi),獲取到機(jī)器人定位誤差估計(jì)值Etarget;
(4)對(duì)機(jī)器人末端理論位姿坐標(biāo)反向迭加Etarget,這樣便可得到經(jīng)過補(bǔ)償后的機(jī)器人末端位姿坐標(biāo)P,并將其傳輸至機(jī)器人,至此便實(shí)現(xiàn)了機(jī)器人定位誤差的補(bǔ)償。
以某六自由度智能機(jī)器人作為實(shí)驗(yàn)對(duì)象,該機(jī)器人整體機(jī)身重量為25 kg,臂展長度為75 cm,額定負(fù)載為20 kg,驅(qū)動(dòng)方式為電氣驅(qū)動(dòng),機(jī)械爪是第6 個(gè)自由度,也是該機(jī)器人的末端執(zhí)行器。
為了驗(yàn)證本文方法的有效性,實(shí)驗(yàn)對(duì)該機(jī)器人進(jìn)行了定位誤差估計(jì)與補(bǔ)償,并進(jìn)行了物體抓取測(cè)試。實(shí)驗(yàn)隨機(jī)選擇1000 個(gè)目標(biāo)點(diǎn)作為GPSO-DNN網(wǎng)絡(luò)模型的訓(xùn)練樣本,150 個(gè)目標(biāo)點(diǎn)作為測(cè)試樣本,其他相關(guān)參數(shù)如表1 所示,實(shí)驗(yàn)結(jié)果如圖1、圖2 所示。由圖1、圖2 可知,利用本文方法對(duì)該機(jī)器人的17 處位置補(bǔ)償點(diǎn)與6 個(gè)關(guān)節(jié)進(jìn)行了相應(yīng)的移動(dòng)位置與關(guān)節(jié)角度誤差補(bǔ)償,并將誤差補(bǔ)償后的結(jié)果傳送至該六自由度機(jī)器人上,使其實(shí)現(xiàn)了對(duì)目標(biāo)物體的精確抓取。由此可以看出,通過本文方法能夠有效補(bǔ)償機(jī)器人的定位誤差,進(jìn)而保障機(jī)器人可以順利完成指定工作。
圖1 機(jī)器人定位誤差補(bǔ)償情況Fig.1 Compensation for robot positioning error
圖2 機(jī)器人抓取物品Fig.2 Robot grasping items
表1 實(shí)驗(yàn)參數(shù)設(shè)置Tab.1 Experimental parameter settings
為了衡量本文方法所提GPSO-DNN 網(wǎng)絡(luò)模型的性能,實(shí)驗(yàn)對(duì)該六自由度機(jī)器人工作時(shí)歷史數(shù)據(jù)進(jìn)行了采樣,并將獲取的800 個(gè)數(shù)據(jù)樣本作為GPSO-DNN 網(wǎng)絡(luò)模型的訓(xùn)練樣本,對(duì)該網(wǎng)絡(luò)模型的訓(xùn)練損失情況進(jìn)行了測(cè)試,得出的結(jié)果如圖3 所示。由圖3 可知,GPSO-DNN 網(wǎng)絡(luò)模型訓(xùn)練損失隨著迭代次數(shù)的增加而下降。本次實(shí)驗(yàn)共計(jì)迭代140次,前40 次迭代,網(wǎng)絡(luò)損失下降幅度較大;當(dāng)?shù)螖?shù)在40~100 次之間時(shí),GPSO-DNN 網(wǎng)絡(luò)模型訓(xùn)練損失下降趨勢(shì)變緩;而當(dāng)?shù)螖?shù)大于100 次之后,GPSO-DNN 網(wǎng)絡(luò)模型的網(wǎng)絡(luò)波動(dòng)較小,逐漸呈收斂態(tài)勢(shì)且訓(xùn)練損失也趨于0。由此說明GPSO-DNN模型網(wǎng)絡(luò)損失小,收斂速度快。
圖3 GPSO-DNN 訓(xùn)練損失情況Fig.3 GPSO-DNN training loss situation
不同類型機(jī)器人誤差補(bǔ)償后的定位精度如圖4所示。由圖4 可知,通過本文方法在不同數(shù)量采樣點(diǎn)條件下,對(duì)不同類型機(jī)器人進(jìn)行定位誤差補(bǔ)償后,隨著采樣點(diǎn)數(shù)量的增加機(jī)器人定位精度逐步提升。尤其當(dāng)采樣點(diǎn)數(shù)量為330 時(shí),三種類型的機(jī)器人定位精度均在99.8%以上,即使是在采樣點(diǎn)數(shù)量僅為30 時(shí),定位精度也達(dá)到了99%,由此可以看出,本文方法具有較高的準(zhǔn)確性與穩(wěn)定性。
圖4 不同類型機(jī)器人誤差補(bǔ)償后的定位精度Fig.4 Positioning accuracy of different types of robots after error compensation
隨著科技的更新,機(jī)器人更多地被應(yīng)用于復(fù)雜的工作環(huán)境中,這便促使人們對(duì)機(jī)器人定位精度的要求愈加嚴(yán)格,為提高機(jī)器人的定位精度,本文提出一種基于深度學(xué)習(xí)網(wǎng)絡(luò)的機(jī)器人定位誤差估計(jì)與補(bǔ)償方法。該方法運(yùn)用具有較強(qiáng)學(xué)習(xí)能力的深度神經(jīng)網(wǎng)絡(luò),對(duì)機(jī)器人定位誤差進(jìn)行預(yù)測(cè)估計(jì),并對(duì)該誤差進(jìn)行相應(yīng)補(bǔ)償,以此實(shí)現(xiàn)機(jī)器人的精準(zhǔn)定位。通過實(shí)驗(yàn)證明,本文方法在機(jī)器人定位誤差補(bǔ)償方面有著較好的表現(xiàn),比較適合用于此類問題的解決。