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