張 睿,張海峰,柴馨雪
(浙江理工大學 機械與自動控制學院,浙江 杭州 310018)
在高端制造[1]、微動機構[2]、醫療康復[3]、細胞生物工程[4]等領域,對機器人的精度要求較高。
提高機器人精度的方法主要有誤差預防法和運動學標定法[5,6]。誤差預防法[7]根據機器人的結構進行優化設計,改善加工精度,以提高機器人的制造精度;誤差預防法對材料和加工設備要求較高,且具有成本高、靈活性低等缺陷。
運動學標定法對機器人運動學模型中的幾何參數進行識別,通過改進幾何參數,提高機器人精度。運動學標定法分為4個步驟,即誤差建模、誤差測量、參數辨識和誤差補償。其中,誤差建模表示了機器人幾何參數誤差與末端誤差的傳遞模型。
構建準確的誤差模型是后續誤差測量、參數辨識和誤差補償等步驟的前提。構建誤差模型的方法主要有:DH(Denabit-Hartenberg)模型法[8]、POE(product of exponential)模型法[9,10]、螺旋理論法[11,12]等。
EVERETT L[13]對誤差模型提出了3種評價要求,即極小性、完整性和連續性。DH模型法先按照既定的規則,由4個參數組成構建機器人相鄰連桿間的位姿變換矩陣,再考慮連桿參數的微小誤差,構建出最終的微分誤差矩陣用以求解。其優點為表達形式簡單、應用廣泛;但在相鄰關節軸線位于平行或接近于平行的位姿時,其桿件參數的微小變動可能導致末端位姿的突變,因此不符合連續性要求[14]。
針對上述缺點,HAYATI S A[15]對平行軸線引入了一個繞y軸的旋轉參數,建立了MDH(modified-DH)誤差模型。該誤差模型消除了平行軸線的奇異問題,但當相鄰關節軸線位于垂直位姿時,MDH模型也會出現微小變動,造成位姿躍變的奇異狀態,因此不滿足完整性要求。
POE模型[16]通過指數積表達式對機器人進行建模,其參考坐標系的位置和姿態可以任意選取,具備完整性和連續性;但POE模型的關節坐標系建立大多與機器人控制器不同,因而不易實現誤差補償。通過螺旋理論法進行誤差建模,可有效分離出機器人末端不可補償的位姿誤差[17],但驅動量與誤差元素間存在耦合,需采取解耦補償。
共形幾何代數(CGA)[18]2384是一種共形空間下的幾何代數表示方式,它將運算對象由數字轉變為幾何體,對幾何體直接進行幾何計算[19]28-29,計算后的結果仍然為純幾何體,具備針對幾何建模的協變量代數和針對幾何計算的高級不變量算法[20]。因而,在幾何建模與數據計算領域,它具有突出的優勢[21]。
KIM J S[22]采用CGA對3-SPS/S并聯機構進行了正、逆運動學及奇異位形研究。張英等人[19]30-33基于CGA提出了應用于平面并聯機構正運動學的免消元計算方法。連賓賓[23]通過將CGA與螺旋理論結合,對3-RSR&SS并聯機構進行了誤差建模,在求得支鏈誤差模型后線性疊加得到整體誤差模型;但其得到的誤差源為螺旋形式的6個基本元素,與機構幾何參數不相對應,故僅進行了仿真誤差驗證。
為此,筆者首先闡述空間連桿機構運動學分析所需的CGA基本理論,其次提出基于CGA的串聯機器人誤差建模方法,再以JAKA Zu3六自由度串聯機器人為例,進行誤差建模和運動學標定實驗。
CGA是基于歐氏幾何的共形模型,由三維歐式向量空間R3與二維閔式空間R1,1延伸出一個五維空間R3+1,1[24],該空間由5個基向量{e1,e2,e3,e+,e-}構成,且滿足如下條件:
(1)
ei·e+=ei·e-=e+·e-=0
(2)
為方便研究,筆者定義e0和e∞分別為原點向量和無窮遠點向量,且滿足下式:
(3)
(4)
CGA中幾何體的變換可借助幾何積來實現:
(5)

CGA中空間幾何元素具有相互對偶的兩種表達式[18]2386-2387,如表1所示。

表1 空間幾何元素的表達式
空間中剛體的連續運動,可以分解為若干轉動運動和移動運動。在CGA中,根據驅動副的類型不同,剛體運動可分別表示為:
(6)

空間中任一剛體的連續運動可表示為:
(7)

n自由度的串聯機器人運動學模型如圖1所示。

圖1 串聯機器人的運動學模型P0-x0y0z0—基座坐標系;Pn-xnynzn—末端坐標系

相鄰坐標系間幾何參數關系如圖2所示。

圖2 相鄰坐標系間幾何參數關系
平行關節軸線的變換如圖3所示。

圖3 平行關節軸線的變換
這5個變換在CGA中的表達分別為:
(8)
式中:eij—ei∧ej。

(9)
其中:
(10)
根據運動學模型,可求得機器人末端坐標系的位姿。在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)—具體數值。
將式(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在五維空間下表示與原點和無限遠處相關的部分,可將其省略。
將上述坐標軸投影和坐標表示提取出來,整理為末端位姿矩陣,即為名義位姿矩陣TN:
(15)
其中:
在機器人操作中,末端的實際位姿矩陣TR與名義位姿矩陣TN之間存在一定的偏差dT,兩者之間的關系可表示為:
TR=TN+dT
(16)
其中,dT也可通過基座坐標系下的微分運動改變量進行描述,有:
dT=S·TN
(17)
式中:S—基座坐標系中的微分變換量。
S表達式為:

(18)
對式(17)進行整理可得:
(19)
當微分運動改變量足夠小時,可利用微分運動學模型來近似代替dT,對名義位姿矩陣進行全微分,即:

(20)
式中:dai,dαi,ddi,dθi,dβi—機器人幾何參數誤差。
由于誤差數值足夠小,筆者采用Δai,Δαi,Δdi,Δθi,Δβi對其進行表示。
S中包含位置誤差和姿態誤差,將其列寫為末端誤差矢量e,并將公式右邊以矩陣形式表達,則有:
(21)
式中:J—誤差系數矩陣;Δq—幾何參數誤差。
J為n×5n型的誤差系數矩陣,僅與機器人運動學模型和幾何參數計算有關,為幾何參數誤差模型,即:
J=(ja,jα,jd,jθ,jβ)
(22)
其中:
式(21)中的Δq是一個由需要辨識的幾何參數誤差組成的矢量,共包含5n個幾何參數誤差,可展開為:
Δq=(Δa1,…,Δan,Δα1,…,Δαn,Δd1,…,Δdn,
Δθ1,…,Δθn,Δβ1,…,Δβn)T
(23)
綜上所述,基于CGA的串聯機器人誤差建模流程如圖4所示。

圖4 誤差建模流程
筆者以JAKA Zu3六自由度串聯機器人為例,驗證基于CGA的串聯機器人誤差建模方法的正確性。JAKA Zu3機器人的連桿坐標系如圖5所示。

圖5 JAKA Zu3機器人的連桿坐標系

(24)
由式(11)得,基座坐標系的x、y、z軸和原點P0為:
(25)

(26)
JAKA Zu3六自由度串聯機器人的幾何參數如表2所示。

表2 JAKA Zu3機器人幾何參數
θi(i=1,…,6)—機器人驅動關節角數值
求得坐標軸直線和原點的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)—末端坐標系原點在基座坐標系下的位置描述,為一個標量系數(因表達式太長,此處省略)。
由式(15)以及上述坐標軸投影和坐標表示提取出來,整理矩陣形式,即為名義位姿矩陣TN,即:
(28)
其中:
筆者用dai,dαi,ddi,dθi,dβi表示機器人幾何參數誤差,對名義位姿矩陣TN進行微分運算,即:

(29)
由式(19)計算到得微分變換算子S:
(30)
又因為:
(31)
從中提取出位置誤差和姿態誤差,列寫為末端誤差矢量e:
(32)
獲得誤差系數矩陣J和幾何參數誤差矢量Δq。由于誤差模型中的誤差系數矩陣有線性相關的可能性,會影響某些誤差參數的辨識效果,使后續參數辨識的精度降低。為避免誤差系數矩陣線性相關的影響,筆者對誤差系數矩陣的冗余性進行分析,去除其中的冗余誤差參數。KHALIL W等人[25]的研究表明,奇異值分解能夠分析出矩陣的冗余列。
采用QR分解公式:
(33)
式中:Q—r×r的正交矩陣;R—c×c的上三角矩陣。
R矩陣對角線上數值為0的列所對應的誤差參數為冗余參數。通過冗余性分析,筆者得到冗余參數如表3所示。

表3 誤差系數矩陣冗余性分析
1—獨立參數;0—冗余參數
則可將Δq展開為:
Δq=(Δa1,…,Δa5,Δα1,…,Δα6,Δd1,Δd2,
Δd6,Δθ1,…,Δθ6,Δβ2,Δβ3)T
(34)
在進行標定前,需要通過仿真標定驗證誤差模型的正確性。在標定實驗過程中,存在外界擾動因素的影響,由參數辨識算法求解出的幾何參數誤差與真實的幾何參數誤差不完全相同,因此在仿真標定時,筆者模擬了標定實驗中測量系統的外界擾動因素N,以觀測外界擾動因素對參數辨識算法的計算精確度的影響。設擾動因素是一組隨機變量,其位置標準偏差為0.02 mm,姿態標準偏差為0.000 15 rad。
幾何參數誤差模型仿真驗證步驟如下:
(1)隨機選取50組機器人姿態,姿態的選取以均勻分布在其工作空間中為宜,并記錄機器人控制器返回的驅動值;
(2)通過基于CGA的運動學模型計算,求得機器人名義位姿矩陣TN;
(3)預設一組機器人的幾何參數誤差[26,27],機器人的實際幾何參數,定義為其名義幾何參數與預設幾何參數誤差相加得到的值,通過基于CGA的運動學模型計算,求得機器人實際位姿矩陣TR;
(4)將機器人名義位姿矩陣TN和實際位姿矩陣TR代入基于CGA的誤差模型,計算出誤差系數矩陣,并通過Levenberg-Marquardt算法[28]進行求解,其參數辨識公式為:
Δq=J+e=(JTJ+μI)-1JTe
(35)
式中:μ—權系數;I—單位矩陣。
參數辨識的流程圖如圖6所示。

圖6 參數辨識流程
圖6中,參數辨識的精度emax取值為0.01 mm/0.000 17 rad。
在第5次參數辨識迭代后,辨識結果與預設誤差值大致接近,如表4所示。

表4 預設誤差與辨識誤差
進行誤差補償后,位置誤差的對比如圖7所示。

圖7 仿真前后位置誤差
進行誤差補償后,姿態誤差的對比如圖8所示。

圖8 仿真前后姿態誤差
從圖(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,姿態誤差的平均值、最大值和標準差由0.005 9 rad、0.006 6 rad、0.000 4 rad下降到0.000 6 rad、0.000 8 rad、0.000 1 rad。該結果驗證了基于CGA的誤差模型的正確性。
筆者對機器人進行運動學標定,以驗證誤差模型。測量設備為LEICA公司的AT960型激光跟蹤儀,激光跟蹤儀的主要參數如表5所示。

表5 激光跟蹤儀主要參數
標定實驗的具體步驟如下:
(1)將機械控制傳感器(T-Mac)安裝在機器人末端法蘭上,利用激光跟蹤儀對T-Mac進行實時測量,測量坐標系相對于基座坐標系的旋轉矩陣Rt和平移向量rt由測量計算得到(其中,rt中的單位為mm):

(36)
標定實驗現場如圖9所示。

圖9 標定實驗現場
(2)驅動機器人運動,在工作空間中選取一系列點,將機器人控制器返回的驅動值,代入基于CGA的運動學模型,求得名義位姿矩陣TN;
(3)采用激光跟蹤儀對T-Mac進行實時測量,獲得實際位姿矩陣TR;
(4)根據幾何參數誤差模型,采用Levenberg-Marquardt算法對幾何參數誤差進行參數辨識。
筆者求解出的幾何參數誤差如表6所示。

表6 標定實驗辨識幾何參數誤差
(5)標定補償實驗。在求得辨識幾何參數誤差后,將辨識幾何參數誤差補償到機器人的運動學參數中,作為新的運動學參數,代入運動學模型中。
機器人末端位姿不變,結合新的運動學參數,通過逆運動學重新計算驅動關節驅動值,通過機器人控制器控制軌跡輸出,獲得補償后的實際位姿。
補償實驗的流程圖如圖10所示。

圖10 誤差補償流程圖
(6)在第一次補償的基礎上,重復以上工作,直到達到所滿意的定位精度要求。
各關節補償前后的驅動值對比如圖11所示。


圖11 各關節補償前后的驅動值對比圖
以折線圖的方式繪制出標定實驗前后,機器人位置誤差的對比如圖12所示。

圖12 實驗標定前后位置誤差對比圖
筆者以折線圖的方式繪制出標定實驗前后,機器人姿態誤差的對比如圖13所示。

圖13 實驗標定前后姿態誤差對比圖
對機器人進行幾何參數標定后,位置誤差的平均值、最大值和標準差由2.933 1 mm、3.920 7 mm、0.528 8 mm下降到0.615 2 mm、1.075 0 mm、0.247 5 mm;姿態誤差的平均值、最大值和標準差由0.029 7 rad、0.036 5 rad、0.004 6 rad下降到0.005 7 rad、0.007 3 rad、0.001 1 rad。
該結果驗證了基于CGA的誤差模型的正確性。
筆者提出了一種基于共形幾何代數的機器人誤差建模方法,在CGA框架下建立了機器人運動學模型,通過微分運算建立了誤差模型,并以JAKA Zu3串聯機器人為例,對該方法進行了驗證。
理論研究和實驗結果表明:
(1)該方法對機器人關節運動描述清晰、易于理解,且考慮到幾何參數的微小變化,可以實現完整的幾何誤差建模;
(2)進行運動學標定實驗后,JAKA Zu3串聯機器人的平均位置誤差由2.933 1 mm下降到0.615 2 mm,平均姿態誤差由0.029 7 rad下降到0.005 7 rad,驗證了該方法的有效性。
目前,筆者僅使用六自由度串聯機器人進行了方法驗證。在后續的研究工作中,筆者將把該方法應用于并聯機器人的誤差建模。