王戰(zhàn)中,王文龍,靳超松,孫少華,石朋龍
(石家莊鐵道大學,石家莊 050043)
機器人誤差的主要來源是機器人的幾何尺寸參數誤差,其他因素比如齒輪間隙、熱變形、負載變形等也會造成機器人的末端位姿誤差。由于幾何參數誤差引起的末端位姿誤差占機器人位姿總誤差的70%~90%,而且為了降低誤差模型的復雜性,這種只考慮機器人幾何參數誤差的簡化模型是切實可行的[1]。幾何參數標定法在大多數情況下可以達到較高的精度,但是這種方法沒有考慮由于非幾何參數誤差所引起的位姿誤差?;谏窠浘W絡的機器人逆運動學標定方法[2],就是通過一定的算法得到各關節(jié)角所對應的誤差值,通過對關節(jié)角補償來驅動機器人,從而使機器人末端位置誤差減小。這種方法不僅考了幾何誤差因素,而且還考慮了非幾何等多種誤差因素,把所有因素引起的位姿誤差全部歸結為關節(jié)角誤差,無需建立復雜的誤差模型,通過修正關節(jié)角來提高標定的精度。
神經網絡是由簡單處理單元構成的具有大規(guī)模并行式分布結構的處理器,擁有極強的學習能力和泛化能力,具有存儲經驗并使之可用的優(yōu)點。人工神經網絡以其精確地逼近能力、高度非線性在系統(tǒng)優(yōu)化、智能控制、信息處理和模式識別等領域得到了廣泛應用,在機器人領域可用于機械手的路徑規(guī)劃、障礙回避、運動學模型及動力學模型的自動辨識等一系列問題[3]。
BP網絡屬于前饋網絡,由輸入層、隱含層以及輸出層組成,是神經網絡中比較常用的一種結構,學習過程包括輸入信號的前向傳遞與誤差的反向傳遞。網絡的輸入信號由輸入層通過隱含層到輸出層依次處理,如果輸出層未能達到期望輸出,則誤差反向傳遞,通過不斷調整網絡的連接權值和閾值來減小預測輸出誤差直至期望輸出,這樣反復循環(huán),從而使預測輸出逐步逼近期望輸出。
基于生物進化論以及自然界遺傳機制法則,1962年美國密歇根大學Holland教授提出了一種并行式隨即搜索函數最優(yōu)解的方法,即所謂的遺傳算法[4](Genetic Algorithms)。Holland把參數優(yōu)化形成的編碼串聯(lián)群體引入到自然界中“優(yōu)勝劣汰,適者生存”的進化原理中,結合所選擇的適應度函數,通過遺傳算法中的選擇、交叉、變異對個體進行篩選,保留適應度值好的個體,淘汰適應度值差的個體,這樣反復循環(huán),不斷逼近最優(yōu)解,所得到的新群體不僅優(yōu)于上一代,而且還繼承了上一代的信息。
遺傳算法優(yōu)化神經網絡主要包括三部分:BP神經網絡結構的確定,利用遺傳算法優(yōu)化神經網絡結構以及BP神經網絡的預測。其中,BP神經網絡結構的確定主要是確定神經網絡的輸入輸出個數,以此來確定遺傳算法中個體所需的長度;利用遺傳算法優(yōu)化神經網絡結構主要是利用遺傳算法的選擇、交叉、變異等操作優(yōu)化神經網絡的結構,確定最適合神經網絡結構的權值和閾值,計算個體適應度值并找出對應的最優(yōu)個體;BP神經網絡的預測主要是利用遺傳算法獲得的最優(yōu)個體對網絡結構參數進行賦值,網絡經訓練后預測函數輸出[5]。遺傳算法優(yōu)化BP神經網絡算法流程如圖1所示。
圖1 遺傳算法優(yōu)化BP神經網絡算法流程
在實驗中,由于有6個輸入(6個關節(jié)角)、6個輸出(對應關節(jié)角誤差),根據試湊法確定最佳隱含層節(jié)點數,于是BP神經網絡的結構可以設置為6-12-6,即輸入層有6個節(jié)點,隱含層有12個節(jié)點,輸出層有6個節(jié)點,共6×12+12×6=144個權值,12+6=18個閾值,即遺傳算法個體編碼長度為144+18=162。
遺傳算法優(yōu)化BP神經網絡的主要步驟包括:
1)種群初始化
種群中個體的編碼方式一般應用實數編碼,每一個個體都由輸入層與隱含層連接權值、隱含層閾值、隱含層與輸出層連接權值以及輸出層閾值4個部分組成,并且每個個體都可以表示成一組實數串,其中包含了網絡結構所有的權值和閾值,所以當神經網絡結構已知時,根據權值和閾值就可以確定神經網絡。
2)適應度函數
BP網絡的初始權值和閾值可以通過種群中的個體獲得,經過訓練后的神經網絡可以預測函數的輸出,個體適應度值可以通過預測輸出與函數期望輸出的絕對值和F來表示,其公式可寫作:
式中,n表示網絡輸出的節(jié)點總數;k表示個體適應度值的系數;第i個節(jié)點的期望輸出為yi;第i個節(jié)點的預測輸出為oi。
3)選擇操作
遺傳算法中的選擇操作往往包括多種方法,比較常用的為輪盤賭法和錦標賽法,考慮到個體適應度的比例選擇問題,這里采用輪盤賭法,則每個個體i的選擇概率pi可以表示為:
式中,k表示概率系數;N表示種群個體數目;個體i的適應度值為Fi,因為適應度值越小越好,所以在個體選擇前,需要對適應度值求倒數。
4)交叉操作
交叉又被稱為基因重組,它是按一定的交叉概率Pc(一般選Pc=0.65~0.85)從群體中隨機配對,進行基因重組,信息交換,由父代產生新的子代。
交叉操作的編碼方式取決于種群中個體的編碼方式,由上述可知交叉操作應該采用實數編碼法,所以在個體的j位,第k個染色體ak和第l個染色體al的交叉操作公式為:
式中,b是[0,1]間的隨機數。
5)變異操作
變異是按一定的變異概率Pm(一般選Pm=0.005~0.01)從群體中選擇個體,對選中的個體進行變異操作,模擬自然界中的基因突變,由父代產生全新的子代。
選取第i個個體的第j個基因aij進行變異,變異操作方法如下:
若遺傳算法的代數滿足收斂條件或達到所設定值時停止,否則轉到步驟3)。
結合BP神經網絡理論和遺傳算法,應用MATLAB軟件編寫基于遺傳算法優(yōu)化BP神經網絡的函數程序。其中,遺傳算法各參數設置為:種群規(guī)模為100,交叉概率為0.65,變異概率為0.01。
以6自由度串聯(lián)機器人為例,建立其連桿坐標系,如圖2所示。由于本文采用仿真的方式來驗證機器人標定的誤差模型,所以要先計算機器人的末端位姿誤差[6]。連桿的D-H參數及給定的初始條件如表1所示,將各個連桿的變換矩陣相乘,可得到末端執(zhí)行器的位姿矩陣:
圖2 機器人各連桿坐標系
采用RPY角表示機器人的末端姿態(tài),根據式(1)可以求得機器人末端執(zhí)行器的姿態(tài)表示為:
位置表示為:
若用上角標字母N表示理論值,字母R表示實際值。則位置總誤差可以表示為:
姿態(tài)總誤差:
機器人理論關節(jié)角QN,經正運動學(理論D-H參數)計算得出理論末端位姿TN,理論末端位姿經逆運動學(實際D-H參數)求解得實際關節(jié)角QR,于是可得關節(jié)角誤差e=QR-QN。
以理論關節(jié)角作為神經網絡的輸入,關節(jié)角誤差值作為神經網絡的輸出訓練神經網絡,整個補償過程如圖3所示。
圖3 關節(jié)角補償過程
根據機器人各個關節(jié)角的變化范圍及其實際工作的需要,取:
表1 預給定機器人連桿參數名義值與誤差值
根據各個關節(jié)角的取值,可以生成3×3×3×9×9×9=19683組關節(jié)角度組合,取其中前19000組數據用于神經網絡的訓練,后683組數據用于檢驗。
將后683組輸入數據代入已訓練好的神經網絡系統(tǒng),由式(2)、式(3)得位置及姿態(tài)總誤差如圖4所示。
圖4 位姿總誤差(檢驗數據)
由于輸入數據是按一定規(guī)律生成的,可以看出未標定前的683組輸入所產生的誤差呈現(xiàn)一定的規(guī)律性,為了驗證輸入數據的一般性,隨機生成200組數據,代入已訓練完成的神經網絡系統(tǒng)進行仿真計算,位置及姿態(tài)總誤差如圖5所示。
圖5 位姿總誤差(隨機數據)
通過分析圖4、圖5中的數據得表2、表3,可以看出經BP神經網絡標定后,檢驗數據與未標定前相比,平均位置誤差降低了82.09%,平均姿態(tài)誤差降低了71.19%;經GA-BP標定后,平均位置誤差降低了92.72%,平均姿態(tài)誤差降低了86.44%。
表2 檢驗數據分析
表3 隨機數據分析
隨機數據與未標定前相比,平均位置誤差降低了87.40%,平均姿態(tài)誤差降低了74.41%;經GA-BP標定后,平均位置誤差降低了93.03%,平均姿態(tài)誤差降低了79.06%。
針對機器人的位姿誤差,本文提出把所有因素引起的誤差都歸結為關節(jié)角誤差,通過對關節(jié)角的補償來減小末端位姿誤差的方法,經過實驗仿真驗證表明可以提高標定精度。由BP神經網絡系統(tǒng)可以預測任意時刻關節(jié)角所對應的誤差值,以補償后的關節(jié)角驅動機器人?;谶z傳算法的BP神經網絡,通過遺傳算法優(yōu)化神經網絡的連接系數,使得標定精度有了進一步提高。
[1] 王東署,遲健男.機器人運動學標定綜述[J].計算機應用研究, 2007, 9(24),8-11.
[2] 彭疆,周國榮.基于神經網絡的機器人逆運動學算法[J].企業(yè)技術開發(fā),2005,3(24),30-32.
[3] 張德豐.MATLAB神經網絡仿真與應用[M].北京:電子工業(yè)出版社,2009.
[4] 史峰,王小川,郁磊,李洋.MATLAB神經網絡30個案例分析[M]. 北京:北京航空航天大學出版社,2010.
[5] Dali Wang,Ying Bai and Jiying Zhao. Robot manipulator calibration using neural network and a camera-based measurement system. Transactions of the Institute of Measurement and Control, 2012,105-121.
[6] 周煒,廖文和,田威,萬世明,劉勇.基于粒子群優(yōu)化神經網絡的機器人精度補償方法研究[J].中國機械工程,2013(24),174-179.