(南京航空航天大學機電學院,南京210016)
隨著《中國制造2025》強國戰(zhàn)略的推進,機器人在飛機裝配、柔性磨削、激光切割等高精度制造領(lǐng)域中的應(yīng)用越來越廣泛。應(yīng)用機器人進行高精度作業(yè)任務(wù)主要依靠其絕對定位精度,通常情況下,機器人絕對定位精度較低,達到±1~2mm[1-3]。因此研究提高機器人絕對定位精度的精度補償方法,是推動智能制造技術(shù)發(fā)展的重要基礎(chǔ)。
現(xiàn)有的提高機器人絕對定位精度的方法,根據(jù)機器人控制方式分為在線檢測反饋補償方法和離線標定前饋補償方法。在線檢測反饋補償方法通常是在機器人系統(tǒng)中附加外部檢測裝置來提高機器人絕對定位精度,一般可以達到±0.2mm 以內(nèi)[4-6],但此類方法高度依賴外部的檢測設(shè)備,且在復(fù)雜部件的工業(yè)現(xiàn)場實施存在難度。
離線標定前饋補償方法又分為運動學模型和非運動學模型標定方法。運動學模型標定方法[7-9]的基本原理:通過一定測量手段和參數(shù)辨識方法獲取機器人運動學參數(shù)誤差,以修正機器人運動學模型。該方法的不足在于建模和參數(shù)辨識過程繁雜,且模型忽略了占總誤差源的10%~20%的非幾何誤差源[10],使得精度補償效果有限,因此精度高且通用性強的非運動學模型應(yīng)運而生。
非運動學模型標定方法如神經(jīng)網(wǎng)絡(luò)法[11]、空間插值法[3,12]等不僅考慮到幾何誤差因素,還包含了如齒輪間隙、負載變化、熱效應(yīng)等非幾何誤差因素影響。周煒等[3,12]提出了一種基于空間插值的精度補償方法,通過反距離加權(quán)來估計機器人定位點處的位置誤差來進行補償,但此方法補償效果受采樣步長大小影響顯著。Xu等[13]利用前饋神經(jīng)網(wǎng)絡(luò)預(yù)測關(guān)節(jié)角度誤差,并將其應(yīng)用到控制系統(tǒng)中進行誤差修正。Nguyen 等[14]提出利用人工神經(jīng)網(wǎng)絡(luò)補償非幾何誤差,以3個關(guān)節(jié)角作為神經(jīng)網(wǎng)絡(luò)輸入得到非幾何誤差的預(yù)測值。王龍飛等[15]通過ELM算法建立目標點實際坐標與理論坐標間映射模型,使機器人絕對定位精度提高了45%,該方法空間采樣范圍太小,難以應(yīng)用到實際工程問題中。上述方法都沒有考慮到目標點姿態(tài)對定位誤差的影響,因此補償精度受限。
針對上述問題,本文提出一種基于遺傳粒子群算法優(yōu)化深度神經(jīng)網(wǎng)絡(luò)(GPSO-DNN)的機器人定位誤差補償方法,同時考慮目標位置和姿態(tài)對定位誤差的影響來建立定位誤差預(yù)測模型,對誤差進行預(yù)測并補償,同時與其他誤差補償模型進行試驗對比,驗證本文中基于GPSO-DNN的誤差補償方法的準確性和實用性。
由于采樣點數(shù)據(jù)直接反映了機器人定位誤差的原始狀態(tài),采樣點規(guī)劃方法對機器人定位誤差補償效果有顯著影響。因此研究合理有效的采樣點規(guī)劃方法是保證機器人定位誤差補償精度的關(guān)鍵步驟之一?,F(xiàn)有機器人采樣點規(guī)劃方法有兩種:基于可觀測度指數(shù)[16]和空間網(wǎng)格[3]的采樣點規(guī)劃。前者是根據(jù)運動學參數(shù)模型得到的,不適用于非運動學模型標定方法,后者只能對空間位置進行采樣點規(guī)劃。
拉丁超立方采樣(Latin Hypercube Sampling,LHS)[17-19]是一種用于采樣試驗的統(tǒng)計學方法,其目的是在空間采樣選取一部分試驗點,并使該組試驗點能夠均勻分布于采樣空間中。
假設(shè)采樣維度為N,采樣樣本數(shù)為M,LHS的基本原理步驟為:
(1)將每一維變量si按定義域范圍等分為M個子區(qū)間,在每個子區(qū)間隨機選取一個變量值sij。
(2)將變量s1的M個變量值{s11,s12,…,s1M}與變量s2的M個變量值{s21,s22,…,s2M}隨機配對組合。
(3)將得到的二元集合{s1j,s2j}(j=1,2,…,M)與變量s3的M個變量值{s31,s32,…,s3M}再隨機配對組合;繼續(xù)上述相同的隨機配對操作直至形成M個N元集合{s1j,s2j,…,sNj}(j=1,2,…,M),即得到M個拉丁超立方采樣樣本,可表示為:
其中,矩陣S的每列表示一個拉丁超立方采樣得到的樣本向量,每行表示每個變量的M個變量值的任意排列組合。
為保證采樣點能夠盡可能地反映機器人整個工作空間狀態(tài),利用LHS 方法在機器人笛卡爾空間采樣,規(guī)劃一個尺寸為500mm×700mm×700mm 且目標點姿態(tài)角(a,b,c)均在±10°范圍內(nèi)的長方體區(qū)域作為采樣空間,如圖1所示。易知采樣維度N=6,設(shè)定采樣樣本數(shù)M=150,LHS 方法的采樣結(jié)果如圖2所示,可見通過LHS 方法獲取的采樣點能均勻地分布于采樣空間中。
在機器人的笛卡爾空間中,設(shè)某一目標點的理論位置坐標為Pt(xt,yt,zt),測量得到的實際位置坐標為Pa(xa,ya,za),則該點的定位誤差矢量E為:
圖1 機器人笛卡爾空間采樣范圍示意圖Fig.1 Cartesian space sampling range of robot
其絕對定位誤差由歐氏距離表示:
相關(guān)研究[20]表明,對于六自由度轉(zhuǎn)動關(guān)節(jié)機器人,前3個關(guān)節(jié)主要影響其位置精度,后3個關(guān)節(jié)主要影響其姿態(tài)精度。但在實際應(yīng)用中發(fā)現(xiàn)由于安裝、負載等誤差因素,后3個關(guān)節(jié)也影響了機器人的定位精度,因此研究目標點姿態(tài)對定位精度的影響有重要意義。
圖2 機器人笛卡爾空間LHS采樣點集合示意圖Fig.2 Schematic diagramof LHS point set in Cartesian space of robot
依據(jù)前文中的LHS 方法在KUKA KR500-3型工業(yè)機器人的600mm×700mm×1000mm 空間中規(guī)劃了10個定位點,每個定位點對應(yīng)30組姿態(tài)(a、b、c均在±15°內(nèi)),通過測量得到此300個目標點的絕對定位誤差。表1列出了上述10個定位點30組姿態(tài)角下的定位誤差分布范圍,可以看出不同定位點的誤差離散程度不同,其中誤差分布范圍最大的為定位點(x1962.3,y257.1,z591.4),其誤差極差有0.65mm。定位點(x1962.3,y257.1,z591.4)30組姿態(tài)下的絕對定位誤差分布如圖3所示,可以更加直觀地看出,由于姿態(tài)角的差異,該點絕對定位誤差分布在0.80~1.50mm范圍內(nèi)。通過上述試驗結(jié)果可以發(fā)現(xiàn),同一定位點不同姿態(tài)角下的定位誤差存在較大差異,這表明目標點姿態(tài)的變化對機器人精度的影響較大,因此對機器人進行定位誤差補償也要充分考慮目標點姿態(tài)對定位精度的影響。
因此,為保證加工精度,應(yīng)根據(jù)加工范圍合理地規(guī)劃采樣點,確保采樣點能夠均勻分布在全加工范圍內(nèi),同時誤差補償方法也要考慮目標位置和姿態(tài)因素來保證精度補償效果。
表1 定位點30組姿態(tài)下的誤差分布范圍Table1 Error distribution range of 30 groups of attitude of positioning points
圖3 (x1962.3,y257.1,z591.4)30組姿態(tài)的絕對定位誤差Fig.3 Absolute positioning error of 30 groups of attitude of (x1962.3,y257.1,z591.4)
針對PSO算法在尋優(yōu)進化初期收斂快,但進化后期早熟收斂且效率不高等缺陷[21],本文提出一種遺傳粒子群優(yōu)化算法(Genetic Particle Swarm Optimization,GPSO),該算法引入遺傳算法的選擇交叉因子,有效提高了算法的收斂速度和全局尋優(yōu)性能。
粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)[22]是一種源于模擬鳥群捕食行為的全局優(yōu)化算法,通過群體內(nèi)個體信息共享和群體迭代在解空間中尋找最優(yōu)解。設(shè)搜索空間維度為D,種群大小為n,粒子i的位置和速度矢量分別為Xi,Vi:
其中,j=1,2,…,n。
在每次迭代進化過程中,粒子通過個體極值和群體極值來更新自身的速度和位置,更新公式如下:
式中,Pi為個體極值;Pg為群體極值;t為當前迭代次數(shù);ω為慣性權(quán)重;c1,c2為非負常數(shù)學習因子;r1,r2為區(qū)間[0,1]內(nèi)的隨機數(shù)。
本文的GPSO算法借鑒了遺傳算法的選擇交叉思想,利用選擇交叉操作產(chǎn)生新的種群,拓展了粒子群的搜索空間。在每次更新粒子群位置和速度后,選擇種群中適應(yīng)度值較小的前一半粒子直接成為下一代;同時復(fù)制上述適應(yīng)度值較小的一半粒子進行交叉操作產(chǎn)生子代,選擇子代和父代中適應(yīng)度值較小的前一半粒子再進入下一代,實現(xiàn)粒子群的更新。由于粒子為實數(shù)編碼,因此交叉操作方法采用實數(shù)交叉法,種群中的粒子兩兩隨機配對,以一定的概率p交叉得到新粒子,其位置和速度如下:
式中,Xchildk,Xparentk為子代和父代粒子位置,Vchildk,Vparentk為子代和父代粒子速度,k=1,2;交叉概率p為[0,1]內(nèi)隨機數(shù)。
深度前饋神經(jīng)網(wǎng)絡(luò)(DNN)是深度學習領(lǐng)域結(jié)構(gòu)最簡單但應(yīng)用最廣泛的模型,相鄰層節(jié)點間采用全連接,一般通過誤差反向傳播算法進行網(wǎng)絡(luò)參數(shù)調(diào)整,圖4為一個包含三隱層的DNN網(wǎng)絡(luò)結(jié)構(gòu)。
DNN的輸入層和輸出層的節(jié)點數(shù)分別由輸入量[x1,x2,…,xn]和輸出量[y1,y2,…,ym]的維度確定,隱層層數(shù)及節(jié)點數(shù)由待解決問題及樣本數(shù)據(jù)特性等因素決定。假設(shè)DNN 包含L個隱層,則第l(l=1,…,N+1)層輸出的表達式為:
其中,Wl是第l-1層與第l層節(jié)點間的連接權(quán)值矩陣,bl是第l層節(jié)點的閾值向量。σ(x)函數(shù)為修正線性單元(ReLU),相較于傳統(tǒng)常用的sigmoid 或tanh 激活函數(shù),能使網(wǎng)絡(luò)具有更好的收斂性和稀疏性,其公式表示為:
相關(guān)研究表明[23],DNN的隱層層數(shù)及節(jié)點數(shù)的選擇對網(wǎng)絡(luò)性能和預(yù)測結(jié)果有顯著影響。隱層層數(shù)或節(jié)點數(shù)增多,網(wǎng)絡(luò)精度提高但訓練時間增加,且容易出現(xiàn)“過擬合”現(xiàn)象。深層網(wǎng)絡(luò)比淺層網(wǎng)絡(luò)具有更高的參數(shù)效率,且DNN網(wǎng)絡(luò)越往高層其冗余性越強,因此采取隱層節(jié)點數(shù)遞減策略有利于提高網(wǎng)絡(luò)參數(shù)效率,減少模型訓練時間。目前還沒有確切方法確定最佳隱層層數(shù)和節(jié)點數(shù),一般參考經(jīng)驗法則如式(14)所示來大致確定最佳隱層節(jié)點數(shù)的范圍[24]:
其中,n,m分別是輸入層和輸出層節(jié)點數(shù);常數(shù)a={1,2,…,10}。最佳隱層層數(shù)和節(jié)點數(shù)通過在遍歷其取值區(qū)間內(nèi)元素進行反復(fù)試驗來確定。
圖4 三隱層的DNN網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 Schematic diagram of three hidden layers of DNN
同時,權(quán)值和閾值的初始化方法對神經(jīng)網(wǎng)絡(luò)算法的收斂性能也至關(guān)重要,而常用的隨機初始化方法容易將網(wǎng)絡(luò)訓練的參數(shù)搜索范圍放在非優(yōu)區(qū)間內(nèi),使網(wǎng)絡(luò)收斂速度慢。因此,本文提出一種GPSO-DNN(GPSO 優(yōu)化DNN)算法來獲得DNN 最優(yōu)的初始權(quán)值和閾值,使優(yōu)化后的DNN模型能更好地實現(xiàn)數(shù)據(jù)預(yù)測。本文以粒子群中粒子位置表示網(wǎng)絡(luò)的權(quán)值和閾值,將DNN的實際輸出與期望輸出間的均方誤差作為GPSO算法的適應(yīng)度函數(shù),如式(15)所示。因此可知,適應(yīng)度函數(shù)值越小,DNN模型的預(yù)測誤差也就越小。
式中,yi表示訓練樣本實際值;yi'表示訓練樣本的網(wǎng)絡(luò)輸出值。
GPSO算法優(yōu)化DNN的流程如圖5所示,GPSO算法優(yōu)化DNN的過程大致如下:
(1)歸一化處理樣本數(shù)據(jù),并劃分為訓練樣本和測試樣本。
(2)初步確定隱層層數(shù)和節(jié)點數(shù)的取值范圍,并設(shè)定其初值。
(3)GPSO算法優(yōu)化DNN,獲取當前網(wǎng)絡(luò)結(jié)構(gòu)下的最優(yōu)權(quán)值和閾值。
圖5 GPSO算法優(yōu)化DNN流程圖Fig.5 Flowchart of DNN optimized by GPSO algorithm
(4)進行網(wǎng)絡(luò)訓練和測試,并保存網(wǎng)絡(luò)結(jié)構(gòu)和預(yù)測結(jié)果。
(5)依次遍歷隱層層數(shù)和節(jié)點數(shù)取值范圍內(nèi)元素,若不滿足遍歷結(jié)束條件,則返回步驟(3);若滿足結(jié)束條件,則停止遍歷,選擇預(yù)測精度最高的網(wǎng)絡(luò)結(jié)構(gòu)和預(yù)測數(shù)據(jù)。
與只考慮幾何誤差源的傳統(tǒng)運動學模型標定等方法不同,深度神經(jīng)網(wǎng)絡(luò)模型可以同時兼顧幾何和非幾何誤差源,能夠很好地建立輸入量與輸出量間復(fù)雜的映射關(guān)系,實現(xiàn)機器人定位誤差預(yù)測。實質(zhì)上,機器人各項誤差源都綜合反映在定位誤差上,結(jié)合前文中的試驗分析可知,機器人定位誤差不僅與目標點位置有關(guān),也與目標點姿態(tài)有關(guān)。因此將目標點的理論位姿Pt=(xt,yt,zt,at,bt,ct)T作為模型的輸入量,目標點的實際定位誤差E=(Δx,Δy,Δz)T作為模型的輸出量。故模型的輸入層節(jié)點為6,輸出層節(jié)點為3,根據(jù)式(14)確定最佳隱層節(jié)點范圍為[4,13],為進一步保證網(wǎng)絡(luò)精度,適當擴大隱層節(jié)點數(shù)范圍為[3,16],由于機器人精度補償并非極其復(fù)雜的問題,設(shè)定隱層層數(shù)范圍為[1,6]。
基于GPSO-DNN的機器人定位誤差補償方法是一種前饋控制補償方法,原理如圖6所示。首先根據(jù)前文中的LHS 方法在機器人工作空間進行采樣規(guī)劃得到采樣點Psample,通過測量獲得采樣點實際定位誤差Esample;其次利用采樣點理論位姿Psample和實際定位誤差數(shù)據(jù)Esample訓練GPSO-DNN模型;然后將目標點理論位姿Ptarget輸入訓練好的模型,得到其定位誤差預(yù)測值Etarget;最后對目標點理論坐標反向迭加其定位誤差的預(yù)測值,獲得補償修正后的目標點坐標Pmodified,輸給機器人。
搭建如圖7所示的試驗平臺對基于GPSO-DNN模型的機器人定位誤差補償方法進行試驗驗證,其中試驗驗證載體為KUKAKR500-3型號機器人,其法蘭盤上裝有制孔末端執(zhí)行器,測量設(shè)備為API Radian 激光跟蹤儀,激光跟蹤儀靶球安置在末端執(zhí)行器的某一固定位置。機器人的重復(fù)定位精度為±0.06mm,激光跟蹤儀的絕對測距精度為±10μm+3.5μm/m。
本文中目標點位姿實質(zhì)上是工具坐標系相對于機器人基坐標系的坐標轉(zhuǎn)換關(guān)系,為進行精度補償試驗,需利用激光跟蹤儀建立機器人基坐標系、法蘭盤坐標系和工具坐標系,其中機器人基坐標系建立過程如下:
圖6 基于GPSO-DNN的機器人定位誤差補償原理圖Fig.6 Principle diagram of robot positioning error compensation based on GPSO-DNN
(1)保持其他軸不動,轉(zhuǎn)動A1軸,利用激光跟蹤儀測量獲取轉(zhuǎn)動過程的靶球點數(shù)據(jù),并擬合得到圓O1;方法同上,只轉(zhuǎn)動A2軸并擬合測量點得到圓O2。
(2)過圓O1的圓心,作平面1平行于圓O2,將圓O2的圓心投影在此平面上,得到投影點C2'。
(3)過投影點C2'作平面2平行于圓O1,將平面2沿法線向下平移1045mm 獲得機器人基座平面,此平面法向即為基坐標系Z軸。
(4)分別將圓O1的圓心和圓O2的圓心投影點C2'投影到機器人基座平面上,得到基坐標系的原點和X軸上一點。
(5)利用獲得原點、X軸上一點和Z軸建立機器人基坐標系。
根據(jù)機器人理論運動學模型確定法蘭盤坐標系相對于基坐標系的坐標轉(zhuǎn)換關(guān)系,在基坐標系基礎(chǔ)上建立法蘭盤坐標系。設(shè)置工具坐標系的原點為圖7中靶球的中心點,為直觀地確定目標點的位姿,設(shè)置其姿態(tài)與基坐標系姿態(tài)相同。
本試驗在機器人運動范圍內(nèi)規(guī)劃了一個尺寸為600mm×1200mm×800mm 且目標點姿態(tài)角(a、b、c)均在±10°范圍內(nèi)的區(qū)域作為試驗空間,且此范圍為機器人的極限工作空間。依據(jù)拉丁超立方采樣方法隨機生成2000個目標點的理論位姿和100個驗證點的理論位姿。將上述理論點和驗證點輸入至機器人控制系統(tǒng)中,控制機器人運行至相應(yīng)點位,同時利用激光跟蹤儀測量得到相應(yīng)點的實際位置坐標,將實際和理論位置坐標代入式(2),即可獲取上述目標點和驗證點的實際定位誤差。
將目標點的理論位姿作為模型輸入,目標點的實際定位誤差作為模型輸出,任意取1900個目標點作為訓練樣本,剩下100個目標點作為測試樣本。其中模型最大訓練次數(shù)為500,學習率為0.01,訓練目標最小誤差為10-3。
圖7 試驗平臺Fig.7 Experimental platform
經(jīng)過多次模型訓練調(diào)試確定模型最佳預(yù)測精度的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),其中模型的隱層節(jié)點數(shù)為[15,10,5],種群規(guī)模20,進化代數(shù)50,學習因子c1=c2=1.4962,個體速度和位置范圍皆為[-1,1],交叉因子p=0.2,網(wǎng)絡(luò)的訓練結(jié)果如圖8所示。使用訓練好的模型對100個驗證點進行誤差預(yù)測,獲得其定位誤差預(yù)測量,與實際定位誤差對比計算得到的模型預(yù)測偏差在0.25mm 以內(nèi),如圖9所示。
將驗證點的定位誤差預(yù)測量迭加到驗證點的理論位置坐標上,其姿態(tài)保持不變,將修正后的驗證點坐標輸給機器人控制器,用激光跟蹤儀測量機器人實際到達位置,根據(jù)式(3)計算得到模型補償后的絕對定位誤差。
為體現(xiàn)本文模型的準確性和優(yōu)越性,選擇3種模型:極限學習機(ELM)[15]、參數(shù)辨識[25]和傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)(DNN)與其進行對比,圖10為4種模型補償前后的絕對定位誤差對比圖,對其結(jié)果進一步分析得到表2。
圖8 網(wǎng)絡(luò)訓練結(jié)果Fig.8 Thetraining results of DNN
圖9 模型預(yù)測誤差Fig.9 Prediction deviation of the model
對圖10和表2的試驗結(jié)果分析可知:(1)經(jīng)過補償后的驗證點絕對定位誤差都明顯小于未補償前的,且GPSO-DNN的補償精度高于其他3種模型;(2)經(jīng)過GPSO-DNN模型的補償后,100個驗證點的最大絕對定位誤差由補償前的1.529mm減小為0.343mm,平均值由補償前的0.754mm減小至0.223mm。機器人的最大和平均絕對定位誤差分別降低了77.57%和70.42%,且標準差只有0.06mm,誤差波動范圍很小。試驗結(jié)果表明,本文的誤差補償方法能夠有效提高機器人的絕對定位精度。
進一步分析ELM、參數(shù)辨識和傳統(tǒng)DNN模型的算法本質(zhì)可以發(fā)現(xiàn),ELM模型中只考慮了采樣點位置而忽略了采樣點姿態(tài)對實際定位誤差的影響;參數(shù)辨識模型是基于運動學模型標定方法,只考慮了幾何誤差因素,未考慮非幾何誤差因素;傳統(tǒng)的DNN模型采用簡單的參數(shù)隨機初始化方法,導致模型收斂性能較差。由于分別存在上述問題,ELM、參數(shù)辨識和傳統(tǒng)DNN模型的補償精度受限。
圖10 4種模型補償前后的絕對定位誤差對比圖Fig.10 Absolute positioning errors before and after compensation by four models
表2 4種模型補償結(jié)果數(shù)據(jù)對比Table2 Data comparison of compensation results of four models
為提高機器人本體的絕對定位精度,本文采用拉丁超立方采樣方法對機器人工作空間進行采樣規(guī)劃,并在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上提出了基于遺傳粒子群優(yōu)化深度神經(jīng)網(wǎng)絡(luò)(GPSO-DNN)的機器人定位誤差補償方法,并與ELM、參數(shù)辨識和傳統(tǒng)DNN 等模型的試驗補償結(jié)果進行對比。試驗驗證結(jié)果表明,本文提出的基于GPSO-DNN的定位誤差補償方法補償精度較高,由補償前的1.529mm減小到0.343mm,使機器人的定位精度大幅提高了77.57%,驗證了該方法的準確性和實用性。