張 睿,張海峰,柴馨雪
(浙江理工大學 機械與自動控制學院,浙江 杭州 310018)
在高端制造[1]、微動機構(gòu)[2]、醫(yī)療康復(fù)[3]、細胞生物工程[4]等領(lǐng)域,對機器人的精度要求較高。
提高機器人精度的方法主要有誤差預(yù)防法和運動學標定法[5,6]。誤差預(yù)防法[7]根據(jù)機器人的結(jié)構(gòu)進行優(yōu)化設(shè)計,改善加工精度,以提高機器人的制造精度;誤差預(yù)防法對材料和加工設(shè)備要求較高,且具有成本高、靈活性低等缺陷。
運動學標定法對機器人運動學模型中的幾何參數(shù)進行識別,通過改進幾何參數(shù),提高機器人精度。運動學標定法分為4個步驟,即誤差建模、誤差測量、參數(shù)辨識和誤差補償。其中,誤差建模表示了機器人幾何參數(shù)誤差與末端誤差的傳遞模型。
構(gòu)建準確的誤差模型是后續(xù)誤差測量、參數(shù)辨識和誤差補償?shù)炔襟E的前提。構(gòu)建誤差模型的方法主要有:DH(Denabit-Hartenberg)模型法[8]、POE(product of exponential)模型法[9,10]、螺旋理論法[11,12]等。
EVERETT L[13]對誤差模型提出了3種評價要求,即極小性、完整性和連續(xù)性。DH模型法先按照既定的規(guī)則,由4個參數(shù)組成構(gòu)建機器人相鄰連桿間的位姿變換矩陣,再考慮連桿參數(shù)的微小誤差,構(gòu)建出最終的微分誤差矩陣用以求解。其優(yōu)點為表達形式簡單、應(yīng)用廣泛;但在相鄰關(guān)節(jié)軸線位于平行或接近于平行的位姿時,其桿件參數(shù)的微小變動可能導(dǎo)致末端位姿的突變,因此不符合連續(xù)性要求[14]。
針對上述缺點,HAYATI S A[15]對平行軸線引入了一個繞y軸的旋轉(zhuǎn)參數(shù),建立了MDH(modified-DH)誤差模型。該誤差模型消除了平行軸線的奇異問題,但當相鄰關(guān)節(jié)軸線位于垂直位姿時,MDH模型也會出現(xiàn)微小變動,造成位姿躍變的奇異狀態(tài),因此不滿足完整性要求。
POE模型[16]通過指數(shù)積表達式對機器人進行建模,其參考坐標系的位置和姿態(tài)可以任意選取,具備完整性和連續(xù)性;但POE模型的關(guān)節(jié)坐標系建立大多與機器人控制器不同,因而不易實現(xiàn)誤差補償。通過螺旋理論法進行誤差建模,可有效分離出機器人末端不可補償?shù)奈蛔苏`差[17],但驅(qū)動量與誤差元素間存在耦合,需采取解耦補償。
共形幾何代數(shù)(CGA)[18]2384是一種共形空間下的幾何代數(shù)表示方式,它將運算對象由數(shù)字轉(zhuǎn)變?yōu)閹缀误w,對幾何體直接進行幾何計算[19]28-29,計算后的結(jié)果仍然為純幾何體,具備針對幾何建模的協(xié)變量代數(shù)和針對幾何計算的高級不變量算法[20]。因而,在幾何建模與數(shù)據(jù)計算領(lǐng)域,它具有突出的優(yōu)勢[21]。
KIM J S[22]采用CGA對3-SPS/S并聯(lián)機構(gòu)進行了正、逆運動學及奇異位形研究。張英等人[19]30-33基于CGA提出了應(yīng)用于平面并聯(lián)機構(gòu)正運動學的免消元計算方法。連賓賓[23]通過將CGA與螺旋理論結(jié)合,對3-RSR&SS并聯(lián)機構(gòu)進行了誤差建模,在求得支鏈誤差模型后線性疊加得到整體誤差模型;但其得到的誤差源為螺旋形式的6個基本元素,與機構(gòu)幾何參數(shù)不相對應(yīng),故僅進行了仿真誤差驗證。
為此,筆者首先闡述空間連桿機構(gòu)運動學分析所需的CGA基本理論,其次提出基于CGA的串聯(lián)機器人誤差建模方法,再以JAKA Zu3六自由度串聯(lián)機器人為例,進行誤差建模和運動學標定實驗。
CGA是基于歐氏幾何的共形模型,由三維歐式向量空間R3與二維閔式空間R1,1延伸出一個五維空間R3+1,1[24],該空間由5個基向量{e1,e2,e3,e+,e-}構(gòu)成,且滿足如下條件:
(1)
ei·e+=ei·e-=e+·e-=0
(2)
為方便研究,筆者定義e0和e∞分別為原點向量和無窮遠點向量,且滿足下式:
(3)
(4)
CGA中幾何體的變換可借助幾何積來實現(xiàn):
(5)
CGA中空間幾何元素具有相互對偶的兩種表達式[18]2386-2387,如表1所示。
表1 空間幾何元素的表達式
空間中剛體的連續(xù)運動,可以分解為若干轉(zhuǎn)動運動和移動運動。在CGA中,根據(jù)驅(qū)動副的類型不同,剛體運動可分別表示為:
(6)
空間中任一剛體的連續(xù)運動可表示為:
(7)
n自由度的串聯(lián)機器人運動學模型如圖1所示。
圖1 串聯(lián)機器人的運動學模型P0-x0y0z0—基座坐標系;Pn-xnynzn—末端坐標系
相鄰坐標系間幾何參數(shù)關(guān)系如圖2所示。
圖2 相鄰坐標系間幾何參數(shù)關(guān)系
平行關(guān)節(jié)軸線的變換如圖3所示。
圖3 平行關(guān)節(jié)軸線的變換
這5個變換在CGA中的表達分別為:
(8)
式中:eij—ei∧ej。
(9)
其中:
(10)
根據(jù)運動學模型,可求得機器人末端坐標系的位姿。在CGA中,基座坐標系的x、y、z軸和原點P0可由基向量e1、e2、e3兩兩外積求得,即:
(11)
(12)
求得坐標軸和原點的CGA表達式如下:
xn=xn1e23+xn2e13+xn3e12+xn4e10+xn5e1∞+xn6e20+
xn7e2∞+xn8e30+xn9e3∞
yn=yn1e23+yn2e13+yn3e12+yn4e10+yn5e1∞+yn6e20+
yn7e2∞+yn8e30+yn9e3∞
zn=zn1e23+zn2e13+zn3e12+zn4e10+zn5e1∞+zn6e20+
zn7e2∞+zn8e30+zn9e3∞
Pn=Pn1e1+Pn2e2+Pn3e3+Pn4e0+Pn5e∞
(13)
式中:xni,yni,zni(i=1,…,9)—具體數(shù)值。
將式(11)代入上式,化簡得:
xn=(xn1x0+xn2y0+xn3z0)+xn4e10+xn5e1∞+xn6e20+
xn7e2∞+xn8e30+xn9e3∞
yn=(yn1x0+yn2y0+yn3z0)+yn4e10+yn5e1∞+yn6e20+
yn7e2∞+yn8e30+yn9e3∞
zn=(zn1x0+zn2y0+zn3z0)+zn4e10+zn5e1∞+zn6e20+
zn7e2∞+zn8e30+zn9e3∞
Pn=(Pn1e1+Pn2e2+Pn3e3)+Pn4e0+Pn5e∞
(14)
式中:xni,yni,zni(i=1,2,3)—坐標軸xn,yn,zn分別在坐標軸x0,y0,z0上的投影;Pni(i=1,2,3)—末端坐標系原點在基坐標系下的坐標表示。
包含有e0和e∞的部分為CGA在五維空間下表示與原點和無限遠處相關(guān)的部分,可將其省略。
將上述坐標軸投影和坐標表示提取出來,整理為末端位姿矩陣,即為名義位姿矩陣TN:
(15)
其中:
在機器人操作中,末端的實際位姿矩陣TR與名義位姿矩陣TN之間存在一定的偏差dT,兩者之間的關(guān)系可表示為:
TR=TN+dT
(16)
其中,dT也可通過基座坐標系下的微分運動改變量進行描述,有:
dT=S·TN
(17)
式中:S—基座坐標系中的微分變換量。
S表達式為:
(18)
對式(17)進行整理可得:
(19)
當微分運動改變量足夠小時,可利用微分運動學模型來近似代替dT,對名義位姿矩陣進行全微分,即:
(20)
式中:dai,dαi,ddi,dθi,dβi—機器人幾何參數(shù)誤差。
由于誤差數(shù)值足夠小,筆者采用Δai,Δαi,Δdi,Δθi,Δβi對其進行表示。
S中包含位置誤差和姿態(tài)誤差,將其列寫為末端誤差矢量e,并將公式右邊以矩陣形式表達,則有:
(21)
式中:J—誤差系數(shù)矩陣;Δq—幾何參數(shù)誤差。
J為n×5n型的誤差系數(shù)矩陣,僅與機器人運動學模型和幾何參數(shù)計算有關(guān),為幾何參數(shù)誤差模型,即:
J=(ja,jα,jd,jθ,jβ)
(22)
其中:
式(21)中的Δq是一個由需要辨識的幾何參數(shù)誤差組成的矢量,共包含5n個幾何參數(shù)誤差,可展開為:
Δq=(Δa1,…,Δan,Δα1,…,Δαn,Δd1,…,Δdn,
Δθ1,…,Δθn,Δβ1,…,Δβn)T
(23)
綜上所述,基于CGA的串聯(lián)機器人誤差建模流程如圖4所示。
圖4 誤差建模流程
筆者以JAKA Zu3六自由度串聯(lián)機器人為例,驗證基于CGA的串聯(lián)機器人誤差建模方法的正確性。JAKA Zu3機器人的連桿坐標系如圖5所示。
圖5 JAKA Zu3機器人的連桿坐標系
(24)
由式(11)得,基座坐標系的x、y、z軸和原點P0為:
(25)
(26)
JAKA Zu3六自由度串聯(lián)機器人的幾何參數(shù)如表2所示。
表2 JAKA Zu3機器人幾何參數(shù)
θi(i=1,…,6)—機器人驅(qū)動關(guān)節(jié)角數(shù)值
求得坐標軸直線和原點的CGA如下:
x6=(x61x0+x62y0+x63w0)+x64e10+x65e1∞+x66e20+
x67e2∞+x68e30+x69e3∞
y6=(y61x0+y62y0+v63w0)+y64e10+y65e1∞+y66e20+
y67e2∞+y68e30+y69e3∞
z6=(z61x0+z62y0+z63w0)+z64e10+z65e1∞+z66e20+
z67e2∞+z68e30+z69e3∞
P6=(P61e1+P62e2+P63e3)+P64e0+P65e∞
(27)
式中:x6i,y6i,z6i(i=1,2,3)—坐標軸x6,y6,z6分別在坐標軸x0,y0,z0上的投影;P6i(i=1,2,3)—末端坐標系原點在基座坐標系下的位置描述,為一個標量系數(shù)(因表達式太長,此處省略)。
由式(15)以及上述坐標軸投影和坐標表示提取出來,整理矩陣形式,即為名義位姿矩陣TN,即:
(28)
其中:
筆者用dai,dαi,ddi,dθi,dβi表示機器人幾何參數(shù)誤差,對名義位姿矩陣TN進行微分運算,即:
(29)
由式(19)計算到得微分變換算子S:
(30)
又因為:
(31)
從中提取出位置誤差和姿態(tài)誤差,列寫為末端誤差矢量e:
(32)
獲得誤差系數(shù)矩陣J和幾何參數(shù)誤差矢量Δq。由于誤差模型中的誤差系數(shù)矩陣有線性相關(guān)的可能性,會影響某些誤差參數(shù)的辨識效果,使后續(xù)參數(shù)辨識的精度降低。為避免誤差系數(shù)矩陣線性相關(guān)的影響,筆者對誤差系數(shù)矩陣的冗余性進行分析,去除其中的冗余誤差參數(shù)。KHALIL W等人[25]的研究表明,奇異值分解能夠分析出矩陣的冗余列。
采用QR分解公式:
(33)
式中:Q—r×r的正交矩陣;R—c×c的上三角矩陣。
R矩陣對角線上數(shù)值為0的列所對應(yīng)的誤差參數(shù)為冗余參數(shù)。通過冗余性分析,筆者得到冗余參數(shù)如表3所示。
表3 誤差系數(shù)矩陣冗余性分析
1—獨立參數(shù);0—冗余參數(shù)
則可將Δq展開為:
Δq=(Δa1,…,Δa5,Δα1,…,Δα6,Δd1,Δd2,
Δd6,Δθ1,…,Δθ6,Δβ2,Δβ3)T
(34)
在進行標定前,需要通過仿真標定驗證誤差模型的正確性。在標定實驗過程中,存在外界擾動因素的影響,由參數(shù)辨識算法求解出的幾何參數(shù)誤差與真實的幾何參數(shù)誤差不完全相同,因此在仿真標定時,筆者模擬了標定實驗中測量系統(tǒng)的外界擾動因素N,以觀測外界擾動因素對參數(shù)辨識算法的計算精確度的影響。設(shè)擾動因素是一組隨機變量,其位置標準偏差為0.02 mm,姿態(tài)標準偏差為0.000 15 rad。
幾何參數(shù)誤差模型仿真驗證步驟如下:
(1)隨機選取50組機器人姿態(tài),姿態(tài)的選取以均勻分布在其工作空間中為宜,并記錄機器人控制器返回的驅(qū)動值;
(2)通過基于CGA的運動學模型計算,求得機器人名義位姿矩陣TN;
(3)預(yù)設(shè)一組機器人的幾何參數(shù)誤差[26,27],機器人的實際幾何參數(shù),定義為其名義幾何參數(shù)與預(yù)設(shè)幾何參數(shù)誤差相加得到的值,通過基于CGA的運動學模型計算,求得機器人實際位姿矩陣TR;
(4)將機器人名義位姿矩陣TN和實際位姿矩陣TR代入基于CGA的誤差模型,計算出誤差系數(shù)矩陣,并通過Levenberg-Marquardt算法[28]進行求解,其參數(shù)辨識公式為:
Δq=J+e=(JTJ+μI)-1JTe
(35)
式中:μ—權(quán)系數(shù);I—單位矩陣。
參數(shù)辨識的流程圖如圖6所示。
圖6 參數(shù)辨識流程
圖6中,參數(shù)辨識的精度emax取值為0.01 mm/0.000 17 rad。
在第5次參數(shù)辨識迭代后,辨識結(jié)果與預(yù)設(shè)誤差值大致接近,如表4所示。
表4 預(yù)設(shè)誤差與辨識誤差
進行誤差補償后,位置誤差的對比如圖7所示。
圖7 仿真前后位置誤差
進行誤差補償后,姿態(tài)誤差的對比如圖8所示。
圖8 仿真前后姿態(tài)誤差
從圖(7,8)中可知:仿真標定前后,機器人位置誤差的平均值、最大值和標準差由1.498 0 mm、1.802 4 mm、0.199 5 mm下降到0.136 4 mm、0.213 7 mm、0.055 7 mm,姿態(tài)誤差的平均值、最大值和標準差由0.005 9 rad、0.006 6 rad、0.000 4 rad下降到0.000 6 rad、0.000 8 rad、0.000 1 rad。該結(jié)果驗證了基于CGA的誤差模型的正確性。
筆者對機器人進行運動學標定,以驗證誤差模型。測量設(shè)備為LEICA公司的AT960型激光跟蹤儀,激光跟蹤儀的主要參數(shù)如表5所示。
表5 激光跟蹤儀主要參數(shù)
標定實驗的具體步驟如下:
(1)將機械控制傳感器(T-Mac)安裝在機器人末端法蘭上,利用激光跟蹤儀對T-Mac進行實時測量,測量坐標系相對于基座坐標系的旋轉(zhuǎn)矩陣Rt和平移向量rt由測量計算得到(其中,rt中的單位為mm):
(36)
標定實驗現(xiàn)場如圖9所示。
圖9 標定實驗現(xiàn)場
(2)驅(qū)動機器人運動,在工作空間中選取一系列點,將機器人控制器返回的驅(qū)動值,代入基于CGA的運動學模型,求得名義位姿矩陣TN;
(3)采用激光跟蹤儀對T-Mac進行實時測量,獲得實際位姿矩陣TR;
(4)根據(jù)幾何參數(shù)誤差模型,采用Levenberg-Marquardt算法對幾何參數(shù)誤差進行參數(shù)辨識。
筆者求解出的幾何參數(shù)誤差如表6所示。
表6 標定實驗辨識幾何參數(shù)誤差
(5)標定補償實驗。在求得辨識幾何參數(shù)誤差后,將辨識幾何參數(shù)誤差補償?shù)綑C器人的運動學參數(shù)中,作為新的運動學參數(shù),代入運動學模型中。
機器人末端位姿不變,結(jié)合新的運動學參數(shù),通過逆運動學重新計算驅(qū)動關(guān)節(jié)驅(qū)動值,通過機器人控制器控制軌跡輸出,獲得補償后的實際位姿。
補償實驗的流程圖如圖10所示。
圖10 誤差補償流程圖
(6)在第一次補償?shù)幕A(chǔ)上,重復(fù)以上工作,直到達到所滿意的定位精度要求。
各關(guān)節(jié)補償前后的驅(qū)動值對比如圖11所示。
圖11 各關(guān)節(jié)補償前后的驅(qū)動值對比圖
以折線圖的方式繪制出標定實驗前后,機器人位置誤差的對比如圖12所示。
圖12 實驗標定前后位置誤差對比圖
筆者以折線圖的方式繪制出標定實驗前后,機器人姿態(tài)誤差的對比如圖13所示。
圖13 實驗標定前后姿態(tài)誤差對比圖
對機器人進行幾何參數(shù)標定后,位置誤差的平均值、最大值和標準差由2.933 1 mm、3.920 7 mm、0.528 8 mm下降到0.615 2 mm、1.075 0 mm、0.247 5 mm;姿態(tài)誤差的平均值、最大值和標準差由0.029 7 rad、0.036 5 rad、0.004 6 rad下降到0.005 7 rad、0.007 3 rad、0.001 1 rad。
該結(jié)果驗證了基于CGA的誤差模型的正確性。
筆者提出了一種基于共形幾何代數(shù)的機器人誤差建模方法,在CGA框架下建立了機器人運動學模型,通過微分運算建立了誤差模型,并以JAKA Zu3串聯(lián)機器人為例,對該方法進行了驗證。
理論研究和實驗結(jié)果表明:
(1)該方法對機器人關(guān)節(jié)運動描述清晰、易于理解,且考慮到幾何參數(shù)的微小變化,可以實現(xiàn)完整的幾何誤差建模;
(2)進行運動學標定實驗后,JAKA Zu3串聯(lián)機器人的平均位置誤差由2.933 1 mm下降到0.615 2 mm,平均姿態(tài)誤差由0.029 7 rad下降到0.005 7 rad,驗證了該方法的有效性。
目前,筆者僅使用六自由度串聯(lián)機器人進行了方法驗證。在后續(xù)的研究工作中,筆者將把該方法應(yīng)用于并聯(lián)機器人的誤差建模。