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