張永貴,牟亞雄,馮飛翔
(蘭州理工大學(xué)機電工程學(xué)院,甘肅 蘭州 730000)
隨著機器人的發(fā)展,對機器人的誤差研究越來越多,其中主要采用標(biāo)定法,此方法可以提高機器人精度的目的,但是只能補償由于連桿參數(shù)靜態(tài)因素引起的誤差,是目前應(yīng)用最多的誤差補償方法。但在標(biāo)定法中常用的是預(yù)測誤差法和運動學(xué)標(biāo)定法[1]。預(yù)測誤差法是盡可能減少加工誤差和裝配誤差,盡量使用高性能的控制器提高控制精度,這樣在源頭上減少機器人誤差[2]。運動學(xué)標(biāo)定是通過對機器人建模,測量,辨識和補償四個步驟來提高機器人精度[3]。對于機器人建模及運動學(xué)標(biāo)定,其中最經(jīng)典的是D-H法,文獻[4]首先指出當(dāng)相鄰的關(guān)節(jié)平行或者接近平行時,經(jīng)典D-H模型存在奇異點的缺陷,在參數(shù)辨識中可能會出現(xiàn)無法辨識的現(xiàn)象。雖然后來他又提出了修正的D-H法,即MD-H(在經(jīng)典的D-H法上增加一個繞y軸旋轉(zhuǎn)的附加角β)來克服奇異點的缺陷,但這也說明該模型參數(shù)不具備連續(xù)性[5]。文獻[6]建立多種構(gòu)型的六自由度機器人利用POE方法和遺傳算法求機器人正逆解。
對于上述模型的不足,提出基于指數(shù)積公式(POE)以MOTOMAN UP50為研究對象,對該機器人進行建模。與D-H法建模相比,POE法建模簡單只需要建立兩個坐標(biāo)系即可,同時也避免了奇異解的問題。通過實驗驗證了所建立的運動學(xué)誤差模型以及參數(shù)辨識方法能夠提高該機器人的絕對定位精度。
對于MOTOMAN UP50機器人來說,該工業(yè)機器人具有六個關(guān)節(jié),而且六個關(guān)節(jié)都是旋轉(zhuǎn)關(guān)節(jié),如果采用D-H法對機器人建模,則需要對機器人每個關(guān)節(jié)都要建立坐標(biāo)系,對六軸機器人來說要建立六個關(guān)節(jié),相比之下采用指數(shù)積公式只需要建立兩個坐標(biāo)系,即基礎(chǔ)坐標(biāo)系{B}和工具坐標(biāo)系{T}與末端執(zhí)行器相關(guān)聯(lián),對于六軸機器人就有六個關(guān)節(jié)旋量。MOTOMAN UP50型工業(yè)機器人的運動學(xué)模型,如圖1所示。圖中機器人的尺寸是根據(jù)標(biāo)準機器人來繪制的,即a1=145mm,a2=870,a3=110mm,d4=1025mm,d6=175mm。
圖1 MOTOMAN UP50機器人的幾何模型Fig.1 Geometric Model of MOTOMAN UP50 Robot
假設(shè)機器人基礎(chǔ)坐標(biāo)為{B}和與末端執(zhí)行器固連的工具坐標(biāo)為{T},則機器人運動學(xué)正解的指數(shù)積公式為:
公式中θi表示第i各關(guān)節(jié)的旋轉(zhuǎn)角度或者平動關(guān)節(jié)的位移,gbt(0)表示機器人在i位于參考位形時{T}和{B}之間的剛體變換,也就是當(dāng)θ=[θ1,θ2,…,θn]時工具坐標(biāo)系到基礎(chǔ)坐標(biāo)系的位姿變換矩陣,表示第i個關(guān)節(jié)的旋量,運動旋量具有以下的形式:
其中,ν=[ν1,ν2,ν3]T∈R3,ω∧∈SO(3)為向量ω=[ω1,ω2,ω3]T∈R3的反對稱矩陣,即:
對于第i個是旋轉(zhuǎn)關(guān)節(jié)時,ξi可表示為:
式中:ω—為該軸方向的單位矢量;q—旋轉(zhuǎn)軸上的任意一點。對于第i個平動關(guān)節(jié),ξi可表示為:
由Rodriguez公式可知:
其中,v=-ω×q+hω,在純轉(zhuǎn)動情況下,h=0 且與旋量有關(guān)的運動旋量簡化為:
當(dāng)在純移動情況下,若設(shè)θ為移動量,則由旋量表示的剛體運動為式(9),即運動旋量可簡化為ξ=(v,0)。
根據(jù)所建立的坐標(biāo)系,如圖1所示。可得各個關(guān)節(jié)軸線矢量和各個關(guān)節(jié)軸線上指定點的位置矢量,如表1、表2所示。
表1 MOTOMAN UP50機器人各關(guān)節(jié)軸線矢量Tab.1 MOTOMAN UP50 Axis Vector of Each Joint
表2 MOTOMAN UP50機器人各關(guān)節(jié)軸線上位置矢量Tab.2 MOTOMAN UP50 Position Vector on Axis of Each Joint
由公式以及表1和表2的矢量值可得關(guān)節(jié)旋量參數(shù)如下:
即MOTOMAN UP50工業(yè)機器人整個運動學(xué)正解方程為:
θi=0時基礎(chǔ)坐標(biāo)系與工具坐標(biāo)系的變換為:
當(dāng)機器人在初始狀態(tài)時,即θi=0(i=1…6),帶入式中可得:
從計算的結(jié)果可知與圖1所示的末端執(zhí)行器的位姿一致。
對于MOTOMAN UP50機器人的運動學(xué)正解POE式(11)中,θ=0時工具坐標(biāo)相對于基礎(chǔ)坐標(biāo)的位姿gbt(0)可以寫成某個常量的指數(shù)形式,即gbt(0)=可得:
對于機器人誤差補償模型通過對運動學(xué)方程等式兩邊微分可得[7]:
其中,ξ=[ξ1,ξ2…ξ6]∈R6×6,ξbt∈R6。
從式(13)可知,機器人末端執(zhí)行器的幾何參數(shù)誤差是由δξ,δξbt和δθ造成的,這些誤差可以看成是旋量誤差和關(guān)節(jié)誤差δθ共同作用。其中δθ可表示為δθ=[δθ1δθ2δθ3δθ4δθ5δθ6]帶入式(12)可得:
上式是僅考慮僅存在關(guān)節(jié)誤差時的誤差模型討論,這里是以指數(shù)積公式對機器人建模,以旋量理論為依據(jù),所以旋量誤差應(yīng)該是最大的誤差源,假設(shè)只有旋量誤差,記機器人旋量實際值為,可得:
由式(14)和式(15)可得:
對于關(guān)節(jié)的零位置誤差可以歸結(jié)為旋量誤差,不必單獨辨識[8]。關(guān)節(jié)的零位偏置誤差可以看作是旋量誤差的一個誤差源,在運動學(xué)參數(shù)的標(biāo)定過程中僅需識別補償旋量誤差[9],則式(13)可寫成:
在機器人的參數(shù)識別過程中,總是需要建立一個測量坐標(biāo)系{N},所有的測量數(shù)據(jù)都應(yīng)該在該坐標(biāo)系下表示,一般情況下測量坐標(biāo)系的建立應(yīng)與基礎(chǔ)坐標(biāo)系重合,但是通常情況下很難重合,為了能夠解決這一情況需要引入一個齊次變換矩陣來表示由測量坐標(biāo)系到基礎(chǔ)坐標(biāo)坐標(biāo)系的位姿變換,記這個齊次變換矩陣為g0。對式(12)寫成矩陣的形式,做以下的調(diào)整:
對式(19)兩邊微分可得:
由式(13)可知:
式(20)和式(13)可知機器人末端點的誤差δg與基礎(chǔ)坐標(biāo)系誤差以及關(guān)節(jié)旋量誤差和各關(guān)節(jié)偏置誤差及初始誤差之間的關(guān)系。對于δξbt,δθ和δgbt(0)無法同時辨識,有時要單獨辨識,有時還要假設(shè)δθ和δξbt中沒有誤差,只考慮關(guān)節(jié)旋量誤差δξ和機器人基礎(chǔ)坐標(biāo)系誤差δξbt。則式(20)可表示為:
其中,I3∈R3×3表示單位矩陣∈so(3)表示三維向量g(θ)的反對稱矩陣,其中:
令y=(δgg-1)∧則式(22)可改寫成:
其中,J=[J1,J2,J3,J4,J5,J6,Jbt]∈R6×48;
x=[δξ1,δq1,…,δξ6,δq6,δξbt]T∈R48,Ji的表達式如下:
基于指數(shù)積公式的機器人運動學(xué)參數(shù)辨識實際就是一個最小二乘問題,目的是為了找到一組旋量參數(shù)使得根據(jù)運動學(xué)模型計算得到的末端執(zhí)行器端點的位置盡可能逼近實際測量值,即:
式中:m—測量次數(shù),則最小二乘的解:
經(jīng)過每一次迭代之后更新x,把更新后的x作為下一次更新的初值,不斷的迭代,使得達到預(yù)設(shè)的迭代次或者‖‖x的值小于給定的求解精度。
參數(shù)辨識的過程,如圖2所示。首先讓機器人進行某零件的修型加工,然后得到在運動過程中的標(biāo)定位姿,即末端執(zhí)行器的位姿和各軸的旋量坐標(biāo)值,計算末端執(zhí)行器的名義值及各關(guān)節(jié)的變量值,然后根據(jù)式(27)最小二乘公式對x進行求解,通過不斷的迭代更新δξi和δξbt,使得整個迭代過程中x逼近某個值或‖‖x小于給定的精度值即可結(jié)束。
圖2 參數(shù)辨識過程流程圖Fig.2 Parameter Identification Process Flow Chart
這里主要是以MOTOMAN UP50型機器人為研究對象,而該機器人控制器是采用D-H模型進行控制的,在上文中我們采用的是指數(shù)積公式辨識出來的參數(shù)是旋量參數(shù),不能直接在示教器上修改,所以應(yīng)當(dāng)把D-H轉(zhuǎn)換成旋量坐標(biāo)參數(shù)。采用文獻[10]提出的轉(zhuǎn)換方法,就得到D-H參數(shù)與旋量參數(shù)之間的相互轉(zhuǎn)換,為后面參數(shù)辨識實驗數(shù)據(jù)處理提供方便。
通過對MOTOMAN UP50型安川工業(yè)機器人標(biāo)定仿真實驗,在機器人工作空間范圍內(nèi)隨機測量產(chǎn)生30組機器人不同位姿,通過示教器上讀取機器人各個關(guān)節(jié)的轉(zhuǎn)角,分別代入式(4)和式(6)計算各指數(shù)值,把表3各關(guān)節(jié)軸旋量值帶入式(1)運動學(xué)方程可得末端執(zhí)行器的名義位姿,同時也可根據(jù)旋量真實值計算末端執(zhí)行器的實際位姿。按照圖2進行參數(shù)辨識,完成旋量坐標(biāo)的迭代識別,如圖3所示。當(dāng)?shù)螖?shù)達到10次時運動學(xué)參數(shù)已經(jīng)收斂到穩(wěn)定值。參數(shù)識別的結(jié)果,如表3所示。
表3 MOTOMAN UP50 機器人各關(guān)節(jié)軸旋量坐標(biāo)Tab.3 MOTOMAN UP50 Screw Coordinates of Each Joint Axis of Robot
圖3 末端執(zhí)行器在迭代過程的位置誤差Fig.3 Position Error of End-Effector During Iteration
根據(jù)表3的名義值,真實值以及辨識值,利用式(16)分別計算末端執(zhí)行器理論值,真實值及補償值,分別計算各個測試位置上的各個測試點的值,然后對誤差值進行補償,如圖4所示。在隨機產(chǎn)生30個測試位置上末端執(zhí)行器的位置誤差都有明顯的降低,由辨識前位置誤差的標(biāo)準方差4.705mm 降低到辨識后的0.124mm可知此參數(shù)辨識方法能夠提高機器人的絕對定位精度。
圖4 末端執(zhí)行器在各測試點的位置誤差Fig.4 Position Error of End Effector at Each Test Point
(1)主要以指數(shù)積公式為基礎(chǔ),對MOTOMAN UP50 機器人建模仿真,與以往D-H法相比該方法建模相對簡單能夠避免DH法變換時出現(xiàn)的奇異性。
(2)利用指數(shù)積公式對該機器人運動學(xué)建模并推導(dǎo)誤差模型,通過最小二乘法對其參數(shù)辨識。雖然在研究的過程中利用了D-H參數(shù)與旋量之間的轉(zhuǎn)換公式,只是為了數(shù)據(jù)之間的轉(zhuǎn)換,對于這里研究內(nèi)容還是基于指數(shù)積公式。實驗表明該方法能夠?qū)OTOMAN UP50機器人運動學(xué)參數(shù)修正,提高了其絕對定位精度,說明其方法的可行性。
(3)不足之處在于機器人實驗時未考慮周圍環(huán)境對其影響,比如實驗室溫度以及噪音等都會對測量有影響,此外在測量數(shù)據(jù)時是從機器人示教器上直接讀取,因為機器人本身可能有制造誤差會造成讀取數(shù)據(jù)精度不高等,但這些因素的影響在這里研究的誤差可控的范圍之內(nèi),而多種因素的影響有待后續(xù)研究。