彭金柱, 張建新, 曾慶山
(鄭州大學(xué) 電氣工程學(xué)院, 河南 鄭州 450001)
近年來,隨著機器人技術(shù)日益廣泛應(yīng)用,對多自由度機器人的需求更加迫切。目前,應(yīng)用最廣泛的是串聯(lián)機器人,具有工作空間大、結(jié)構(gòu)簡單、成本低等特點[1]。但是,串聯(lián)機器人只有一條控制鏈,存在誤差積累效應(yīng),且負(fù)載能力較弱[2]。相較而言,并聯(lián)機器人負(fù)載能力強且包含多自由度,已被應(yīng)用到多個行業(yè)[3-6]。
并聯(lián)機器人結(jié)構(gòu)復(fù)雜,包含較多的關(guān)節(jié)與鉸鏈,在工作過程中存在精度誤差。影響機器人精度的參數(shù)很多,Roth等[7]將所有參數(shù)分為3個級別:關(guān)節(jié)參數(shù)、運動學(xué)參數(shù)及非運動學(xué)參數(shù)。為了消除各種參數(shù)對精度的影響,需要對參數(shù)進(jìn)行標(biāo)定,即通過外部手段,對這些影響精度的參數(shù)進(jìn)行辨識,使其更加接近機器人的實際參數(shù)。Judd等[8]在研究中發(fā)現(xiàn),運動學(xué)參數(shù)的標(biāo)定對機器人精度的提高具有最顯著的效果。機器人的運動學(xué)標(biāo)定問題主要分為誤差建模、標(biāo)定位形測量、參數(shù)辨識及精度補償[9]。
運動學(xué)參數(shù)辨識根據(jù)實際運動數(shù)據(jù)和建立的理論模型來確定模型中涉及的參數(shù)值,使辨識出的參數(shù)能夠更好地符合實際情況,從而減小誤差。精準(zhǔn)的運動學(xué)參數(shù)是確保機器人精度的關(guān)鍵,因此,高精度參數(shù)辨識的方法尤為重要。目前,多種優(yōu)化算法被應(yīng)用到參數(shù)辨識領(lǐng)域,且取得了良好的效果[10-12]。Wang等[13]改進(jìn)基礎(chǔ)粒子群(PSO)算法,并將其用于機器人標(biāo)定中的最佳位姿選擇。姜一舟等[14]結(jié)合Metropolis接受準(zhǔn)則與差分進(jìn)化(DE)算法提出一種MDE算法,對6自由度串聯(lián)機器人進(jìn)行了運動學(xué)參數(shù)辨識與標(biāo)定,提高了DE算法優(yōu)化能力,但收斂速度變慢。寇斌等[15]提出一種LDPSO-BT算法對工業(yè)機器人幾何參數(shù)進(jìn)行標(biāo)定,克服了傳統(tǒng)PSO算法收斂速度慢的缺點。Luo等[16]使用LM算法和DE算法對機器人運動學(xué)參數(shù)進(jìn)行分步辨識標(biāo)定,提高了機器人定位精度。
基于上述研究,本文以3-RPS并聯(lián)機器人為實驗對象,建立了其逆運動學(xué)模型和誤差模型,并對引起誤差的運動學(xué)參數(shù)進(jìn)行了標(biāo)定。為了確保參數(shù)標(biāo)定的效果,在DE算法的基礎(chǔ)上提出了一種基于競爭的多變異策略差分進(jìn)化(CMDE)算法。利用CMDE算法辨識出的參數(shù)對逆運動學(xué)理論模型進(jìn)行修正,并通過Adams驗證了修正后逆運動學(xué)模型的準(zhǔn)確性。
3-RPS并聯(lián)機器人結(jié)構(gòu)如圖1所示,主要由靜平臺、動平臺、3條對稱支鏈3部分組成。在工作過程中,靜平臺固定在下方,通過驅(qū)動3條支鏈控制動平臺運動。由圖1可以看出,靜平臺和動平臺由3條支鏈連接,每條支鏈包含1個轉(zhuǎn)動副、1個移動副、1個球副。其中,移動關(guān)節(jié)為主動關(guān)節(jié),轉(zhuǎn)動關(guān)節(jié)和球關(guān)節(jié)為被動關(guān)節(jié),動平臺在3條支鏈的約束下可實現(xiàn)旋轉(zhuǎn)和平移功能[17]。
圖1 3-RPS并聯(lián)機器人模型Figure 1 Model of 3-RPS parallel robot
在初始位姿下,分別在靜平臺與動平臺上建立如圖2所示的坐標(biāo)系。坐標(biāo)系{a}建立在靜平臺上,原點位于靜平臺中心處,3個轉(zhuǎn)動副呈正三角形分布,其外接圓半徑為r。坐標(biāo)系建立在動平臺上,原點位于動平臺中心,動平臺與靜平臺結(jié)構(gòu)相似,其外接圓半徑為R1。
圖2 3-RPS坐標(biāo)系Figure 2 Coordinate system of 3-RPS
圖2中,Ai代表轉(zhuǎn)動副的鉸點,Pi代表球副的鉸點,其中i=1,2,3。由正三角形特性可知,Ai與Pi在各自坐標(biāo)系下的空間坐標(biāo)為
(1)
(2)
(3)
在并聯(lián)機器人工作過程中,靜平臺固定不動,動平臺以坐標(biāo)系{a}為世界坐標(biāo)系旋轉(zhuǎn)平移后,坐標(biāo)系相對于坐標(biāo)系{a}的旋轉(zhuǎn)矩陣和平移矩陣分別為
(4)
旋轉(zhuǎn)平移后,Pi在坐標(biāo)系{a}中空間坐標(biāo)為
Pia=RPib+P。
(5)
由于轉(zhuǎn)動副的限制,球副在以下3個平面運動:
(6)
將Pia的空間坐標(biāo)分別代入上式,可得出該并聯(lián)機器人的約束方程式:
(7)
由式(7)可知,該機構(gòu)繞Z軸旋轉(zhuǎn)的角度γ受到繞X軸與Y軸旋轉(zhuǎn)角度α、β的約束,沿著X軸和Y軸的平移量受到旋轉(zhuǎn)角度α、β、γ的約束。因此,該并聯(lián)機器人只有3個獨立自由度。在本文中的逆運動學(xué)分析時也僅涉及3個獨立自由度,以此為輸入對運動學(xué)參數(shù)進(jìn)行標(biāo)定。
逆運動學(xué)模型,即給定末端執(zhí)行器的位姿參數(shù),求解在該位姿下驅(qū)動關(guān)節(jié)的數(shù)值。對于本文中的3-RPS并聯(lián)機器人,給定動平臺的轉(zhuǎn)角α、β以及沿Z軸的平移量z,求解該位姿下3個驅(qū)動桿的位移量。由式(1)~式(3)可算出初始位姿下Pi在坐標(biāo)系中的空間坐標(biāo)和Ai在坐標(biāo)系{a}中的空間坐標(biāo)。給定動平臺的轉(zhuǎn)角α、β以及沿Z軸的平移量z,通過式(4)可求得該位姿下的變換矩陣,從而通過式(5)解出坐標(biāo)系{a}中Pi的空間坐標(biāo)。對于3-RPS并聯(lián)機器人,Pi與Ai之間的距離即為給定位姿下驅(qū)動桿的長度,故只需知道初始位姿下驅(qū)動桿長度L0i就可求出驅(qū)動桿的位移量。因此,該3-RPS并聯(lián)機器人的逆運動學(xué)模型可表示為
mi=‖Pia-Aia‖-L0i,i=1,2,3。
(8)
由式(8)可知每個驅(qū)動桿的單位矢量為
(9)
在并聯(lián)機器人的構(gòu)型設(shè)計、尺寸設(shè)計、加工為成品、投入使用的整套流程中,存在多種因素會引起設(shè)計尺寸與實際尺寸的偏差,從而影響精度[18]。不僅如此,在并聯(lián)機器人工作過程中,往往需要添加傳感器來獲取運動數(shù)據(jù),這又帶來測量偏差。因此,按照設(shè)計參數(shù)建立的逆運動學(xué)模型控制并聯(lián)機器人的運動,其控制效果往往不盡人意。為了避免這種狀況的發(fā)生,必須對并聯(lián)機器人進(jìn)行參數(shù)標(biāo)定,并通過標(biāo)定后的運動學(xué)參數(shù)對逆運動學(xué)模型進(jìn)行修正補償,從而使其達(dá)到理想的精度標(biāo)準(zhǔn)[19]。
由式(8)和式(9)可以得出每個連桿的矢量表達(dá)式:
Liui=RPib+P-Aia。
(10)
式中:Li為每個連桿的長度;ui為由Ai指向Pi的單位矢量。
對式(10)兩端進(jìn)行微分,可得
(11)
由機器人微分關(guān)系,可得
(12)
由旋轉(zhuǎn)矩陣的攝動矩陣得
(13)
(14)
式(14)可化為
dLi=J1dM+J2dK。
(15)
對式(15)進(jìn)行化簡,可得其誤差模型:
(16)
式中:dM=[dPdω]T,表示動平臺位姿誤差;dK=[dPibdAia]T,表示球副和轉(zhuǎn)動副引起的誤差。
按照圖2建立的坐標(biāo)系與式(16)建立的誤差模型對引起位姿誤差的參數(shù)進(jìn)行分析。設(shè)球副鉸點的位置Pi與坐標(biāo)系中的X′軸的夾角為ai,則Pi在坐標(biāo)系中的空間坐標(biāo)為
Pib=[R1cosaiR1sinai0]T,i=1,2,3。
(17)
由圖1可知,轉(zhuǎn)動副鉸點不位于靜平臺所在平面,因此,按照圖2所建立的坐標(biāo)系,轉(zhuǎn)動副鉸點Ai在坐標(biāo)系{a}中的Z軸分量不為0。設(shè)Ai與坐標(biāo)系{a}中的X軸夾角為bi,則Ai在坐標(biāo)系{a}中的空間坐標(biāo)為
Aia=[rcosbirsinbiΔzi]T,i=1,2,3。
(18)
把Pib和Aia的空間坐標(biāo)代入式(8)建立的逆運動學(xué)模型,可以得出一個多元函數(shù)表達(dá)式,其數(shù)學(xué)形式為
Fi(R1,r,ai,bi,Δzi,L0i,mi,α,β,z)=0,i=1,2,3。
(19)
式中:α、β、z為3-RPS并聯(lián)機器人的3個獨立自由度,在逆運動學(xué)模型中作為輸入變量;mi為在某一位姿下3個驅(qū)動桿的位移量,是逆運動學(xué)模型中的輸出變量;其余6個變量為3-RPS并聯(lián)機器人的實際參數(shù),如果這6個參數(shù)不準(zhǔn)確,就會引起動平臺的位姿誤差。在精密儀器制造領(lǐng)域中,絲毫誤差都會造成巨大的經(jīng)濟損失,因此,尋找一種在參數(shù)標(biāo)定領(lǐng)域表現(xiàn)優(yōu)異的算法是不可或缺的。
差分進(jìn)化(DE)算法是一種基于種群的全局優(yōu)化算法,由Storn等[20]提出,該方法涉及的參數(shù)較少且具有良好的收斂性。但是,對于一些復(fù)雜模型,其參數(shù)空間具有較多局部最優(yōu)解,這對側(cè)重于全局搜索的DE算法是一個嚴(yán)峻挑戰(zhàn)。為了避免在3-RPS并聯(lián)機器人的逆運動學(xué)模型和誤差模型參數(shù)求解過程中陷入局部最優(yōu),本文在DE算法的基礎(chǔ)上提出CMDE算法。該算法設(shè)計2個分別側(cè)重局部開發(fā)和全局搜索的種群,每個種群包含3種變異策略,并在種群中的變異策略之間加入競爭環(huán)節(jié),有效地彌補了DE算法不擅于局部開發(fā)的缺陷。
DE算法主要包括4個流程:種群初始化、變異、交叉和選擇。其中變異是DE算法的核心操作,通過變異使種群產(chǎn)生變異個體,擴展種群的多樣性。下面是常用的6種變異策略[21]。
DE/best/1:
(20)
DE/best/2:
(21)
DE/rand/1:
(22)
DE/rand/2:
(23)
DE/current-to-rand/1:
(24)
DE/current-to-best/1:
(25)
式中:r1,r2,…,r5為在[1,NP]中隨機選擇的整數(shù)且各不相同,NP為種群規(guī)模;F為變異因子;g為當(dāng)前迭代次數(shù);Xbest為當(dāng)前種群中最優(yōu)的個體。
(26)
式中:CR為交叉因子;D為問題維度;j′為[1,D]區(qū)域中隨機選的一個整數(shù),用來確保至少存在一個變異個體。
DE算法的性能對于變異策略的選擇以及變異因子、交叉因子的設(shè)置較為敏感[22]。連續(xù)變化的因子能夠根據(jù)進(jìn)程不斷調(diào)整來適應(yīng)問題,彌補常值因子的缺陷,但是需要耗費較多的計算時間。為了避免進(jìn)化過程中過多的計算,3個離散的參數(shù)組(F=1.0,CR=0.1)、(F=1.0,CR=0.9)、(F=0.8,CR=0.2)被使用在自適應(yīng)進(jìn)化算法中[23]。由于每種變異策略都具有各自的特性,包含多種變異策略的種群側(cè)重點不同[24],為了充分發(fā)揮每種策略的獨特優(yōu)勢,本文提出CMDE算法。在CMDE算法中,每次迭代都從上述3個離散參數(shù)組中隨機挑選一組,避免常值因子帶來的僵硬性,且減少了不必要的計算。同時根據(jù)側(cè)重能力不同設(shè)計2個種群,分別側(cè)重全局探索和局部開發(fā),每個種群都包括3種變異策略。
DE/current-to-best/1策略對于解決旋轉(zhuǎn)問題有獨特優(yōu)勢,在2個種群中都加入該策略。種群1更加側(cè)重于全局搜索能力,使用DE/rand/1和DE/rand/2兩種變異策略,并通過制定一種競爭規(guī)則篩選出兩種策略中表現(xiàn)較好的變異向量繼續(xù)進(jìn)行交叉操作。與之相似,種群2更加側(cè)重于局部開發(fā)能力,使用DE/best/1和DE/best/2兩種變異策略,同樣引入競爭,表現(xiàn)較好的變異向量才能繼續(xù)進(jìn)行交叉選擇。通過競爭環(huán)節(jié)的引入,每次迭代都能從兩種策略中選出最具競爭力的變異個體,使2個種群的側(cè)重優(yōu)勢更加凸顯,制定的競爭規(guī)則為
(27)
為了充分利用2個種群的獨特優(yōu)勢,設(shè)計了權(quán)重分配函數(shù)。該函數(shù)能夠在進(jìn)化過程的前期,為側(cè)重全局探索的種群分配較大的權(quán)重;在中后期,為側(cè)重局部開發(fā)的種群分配較大的權(quán)重。對于2個種群的權(quán)重分配,采用如下方式:
(28)
(29)
上述算法的偽代碼如下所示。
輸入:種群規(guī)模NP,最大迭代次數(shù)gmax,問題維度D,參數(shù)池,group1,group2。
輸出:種群中的最優(yōu)解。
③whileg ④ fori=1:NP; ⑤從3組參數(shù)池隨機選擇1組參數(shù); ⑥分別代入group1,group2進(jìn)行變異操作; ⑦根據(jù)式(27)挑選競爭力強的變異個體; ⑧根據(jù)式(26)分別計算2個種群中產(chǎn)生的交叉?zhèn)€體; ⑨根據(jù)式(29)計算最終的交叉?zhèn)€體; 其中,目標(biāo)函數(shù)objective_f為式(19)所表示的3-RPS并聯(lián)機器人逆運動學(xué)模型的均方根誤差。 本文分別采用粒子群(PSO)算法、DE算法和CMDE算法對建立的逆運動學(xué)模型進(jìn)行了參數(shù)標(biāo)定,并使用標(biāo)定后的參數(shù)對逆運動學(xué)模型進(jìn)行修正。利用Adams軟件對修正后的逆運動學(xué)模型進(jìn)行仿真驗證分析,通過對比標(biāo)定前后理想位姿與實際位姿的誤差,驗證了CMDE算法相對于其他2種算法的優(yōu)勢以及修正后的逆運動學(xué)模型的高精確性。 本實驗硬件平臺配置:AMD5800 H處理器,16 G內(nèi)存(3 200 MHz)。實驗對象是由Solidworks設(shè)計的3-RPS并聯(lián)機器人模型,仿真平臺為Adams2020版本,該并聯(lián)機器人設(shè)計參數(shù)見表1。 表1 3-RPS并聯(lián)機器人模型設(shè)計參數(shù)Table 1 Design parameters of 3-RPS parallel robot model 3-RPS并聯(lián)機器人的參數(shù)標(biāo)定具體操作步驟如下: (1)設(shè)定多組目標(biāo)位姿(α,β,z); (2)通過逆運動學(xué)模型計算桿長位移量mi; (3)將mi代入Adams仿真得到實際位姿(α*,β*,z*); (4)以式(19)的均方根誤差建立目標(biāo)函數(shù); (5)通過優(yōu)化算法對目標(biāo)函數(shù)進(jìn)行優(yōu)化; (6)用優(yōu)化得出的參數(shù)修正逆運動學(xué)模型; (7)重復(fù)步驟(3)和步驟(4),對修正后的模型進(jìn)行驗證。 參數(shù)標(biāo)定流程如圖3所示。 圖3 參數(shù)標(biāo)定流程Figure 3 Parameter calibration process 在本文中,需要標(biāo)定的參數(shù)共6個,因此,必須設(shè)定大于6組的位姿才能通過優(yōu)化算法得出實際參數(shù)。在本次實驗中,共采用12組不同的位姿以式(19)的均方根誤差為目標(biāo)函數(shù)對其優(yōu)化,優(yōu)化過程中目標(biāo)函數(shù)適應(yīng)度變化曲線如圖4所示。 由圖4可知,CMDE算法大約經(jīng)過60代達(dá)到收斂,而DE算法大約經(jīng)過120代達(dá)到收斂,說明CMDE算法的收斂速度相較于DE算法得到顯著提升,提升了50%。不僅如此,對于同一目標(biāo)函數(shù),CMDE算法優(yōu)化得到的最小適應(yīng)度值均小于DE算法,說明在相同解空間,CMDE算法的全局搜索能力更強。為了對比CMDE對3-RPS并聯(lián)機器人參數(shù)標(biāo)定的效果,采用PSO、DE、CMDE 3種算法進(jìn)行標(biāo)定,并對比3種算法標(biāo)定后的3個獨立自由度的誤差。表2為數(shù)據(jù)標(biāo)定前和3種算法標(biāo)定后3個自由度的絕對誤差均值對比。 圖4 目標(biāo)函數(shù)收斂曲線Figure 4 Convergence curve of objective functions 表2 標(biāo)定前后α、β、z誤差均值對比Table 2 Comparison of α,β,z errors mean value before and after calibration 通過表2可知,3種算法對該并聯(lián)機器人的參數(shù)標(biāo)定效果很好,且CMDE標(biāo)定效果較其余2種更強,3個自由度的精度較標(biāo)定前分別提升73.5%、88.7%、95.2%。在對目標(biāo)函數(shù)優(yōu)化過程中3種算法的初始種群都為隨機生成,為了削弱隨機性對參數(shù)標(biāo)定帶來的影響,對每種算法都運行10次,采取優(yōu)化效果最好的一組參數(shù)。在10次優(yōu)化過程中,3種算法對于不同連桿建立的3個目標(biāo)函數(shù)優(yōu)化效果如圖5所示。 圖5 目標(biāo)函數(shù)優(yōu)化效果Figure 5 Optimization effect of objective functions 由圖5可知,對于同一目標(biāo)函數(shù),CMDE算法多次運行優(yōu)化得到的最小值相同,受到種群隨機初始化帶來的影響較小且優(yōu)化效果強于其余2種算法。這種現(xiàn)象表明,對于本文建立的目標(biāo)函數(shù),在相同解空間,CMDE算法對于最優(yōu)解的搜索相較于PSO算法和DE算法更為徹底,每次都能搜尋出目標(biāo)函數(shù)的全局最優(yōu)解。 本文建立了3-RPS并聯(lián)機器人的逆運動學(xué)模型,通過分析該機構(gòu)產(chǎn)生誤差的原因,建立了該并聯(lián)機器人的誤差模型,并提出了一種基于競爭的多變異策略差分進(jìn)化(CMDE)算法。以并聯(lián)機器人的仿真誤差最小為目標(biāo)建立了目標(biāo)函數(shù),分別采用PSO、DE和CMDE 3種算法對3-RPS并聯(lián)機器人進(jìn)行了參數(shù)標(biāo)定。使用標(biāo)定后的參數(shù)對逆運動學(xué)模型進(jìn)行修正,并通過Adams仿真軟件對修正后的模型進(jìn)行了實驗驗證。結(jié)果表明,CMDE算法收斂速度較傳統(tǒng)DE算法收斂速度有明顯提高,尋優(yōu)能力更強;優(yōu)化過程中,CMDE算法對隨機性帶來的干擾抗衡能力更強,每次都能收斂到同一目標(biāo)函數(shù)最小值;CMDE算法對于參數(shù)標(biāo)定的效果強于PSO、DE 2種算法。修正后的運動學(xué)模型相比標(biāo)定前模型在較大程度上提高了3-RPS并聯(lián)機器人的精度。3 實驗結(jié)果與對比
4 結(jié)論