經(jīng)小龍, 胡 源, 郭為忠
(上海交通大學 機械與動力工程學院, 上海 200240)
圖1 臂裝線激光與P1R2P3機械臂的手眼結(jié)構(gòu)
將傳感器(攝像頭、線結(jié)構(gòu)激光位移傳感器)安裝于機器人的末端連桿上,構(gòu)成對環(huán)境具有一定感知能力的智能機器人是機器人的主要發(fā)展趨勢[1].線激光傳感器具有高測量速度和高精度等特點,時常用在諸如焊接定位等高精度作業(yè)中.但是,線激光傳感器每次只能測量激光掃描平面內(nèi)的二維輪廓信息,實現(xiàn)三維感知則需通過手眼矩陣將這種二維輪廓信息轉(zhuǎn)換為相對于末端連桿坐標系的三維點云信息,然后將三維信息轉(zhuǎn)換到全局坐標系.手眼矩陣的測量過程即為手眼標定,又稱為外參標定.
對于傳感器的手眼標定,目前最為廣泛使用的是建立形如GX=XF的手眼方程[2]后再對其進行求解,但該方法難以直接用于線結(jié)構(gòu)激光的手眼標定.Che等[3]將激光二維坐標系和測量裝置掃描軸組合成非正交坐標系,并建立起該非正交坐標系到全局坐標系的數(shù)學模型和求解算法,進而求得手眼矩陣.然而,這種方法操作不便、計算復雜,且非正交坐標系變換會引入非線性誤差,難以用于線結(jié)構(gòu)激光這種高精度傳感器的手眼標定.此外,利用多傳感器[4-5]的特點和相關(guān)約束關(guān)系求解手眼矩陣也受到某些研究者的青睞,但多傳感器的使用增加了實驗的難度和不確定性.內(nèi)外參數(shù)同時標定[6-8]也獲得了廣泛的研究,但這對于已進行過內(nèi)參出廠預標定的線結(jié)構(gòu)激光傳感器并無必要,且會增加標定和計算的復雜度.使用立方體3個互相垂直的3條邊構(gòu)成中間坐標系進行手眼標定[9-11],針對特定機器人的手眼標定[12-14]以及手眼標定的相關(guān)優(yōu)化算法[15-17]也受到了較大的關(guān)注.針對線激光的手眼標定,最為經(jīng)典的方法是定點變位姿(FPDP)法[1, 18-19]及其改進方法[20-21],由于其操作和計算的簡便與快捷性,受到很多研究者的青睞.但這種方法受到機械臂的制造誤差、裝配誤差、電機回程誤差等影響較大,并可能會在某些機構(gòu)構(gòu)型的機械臂中失效.此外,文獻[22]提出一種利用中間坐標系間接求取手眼坐標系的方法,可消除運動學誤差的影響.但是,該方法需要借助一塊嵌有9個標準球體的平面基板,操作較為復雜,且難以應(yīng)用于激光等二維視覺傳感器上.
臂裝線激光與P1R2P3機械臂的手眼結(jié)構(gòu)如圖1所示.線結(jié)構(gòu)激光傳感器安裝于P1R2P3焊接機械臂的第3個關(guān)節(jié)P3上.線激光的測量平面為OL-xLzL,其測量結(jié)果為線激光坐標系下的二維輪廓
CL={mi=(xi,0,zi),i=0,1,…,k}
(1)
式中:mi為二維輪廓點云的第i個點.
假設(shè)手眼矩陣X已知,可通過齊次變換進行三維重建,獲得的全局坐標系中的三維點云為
(2)
圖3 多坐標系轉(zhuǎn)換法原理圖
由于關(guān)節(jié)位移可通過電機編碼器反饋獲得, 所以可通過Denavit-Hartenberg (D-H)方法求得球心在全局坐標系下的坐標Qi(i=1,2,…,n).由于標定球和全局坐標系始終保持不變,所以存在關(guān)系
圖2 定點變位姿法原理圖
通過最小二乘法即可快速求得手眼變換矩陣X.但是,該方法對機械臂本體的制造誤差、裝配誤差、電機回程誤差、運動學模型的誤差非常敏感,計算結(jié)果往往誤差較大,無法直接用于高精度點云的三維重建.
(5)
(1) 控制轉(zhuǎn)動關(guān)節(jié)R2旋轉(zhuǎn)使靶球沿圓弧運動,激光跟蹤儀記錄靶球球心在T中的運動軌跡.通過最小二乘法對軌跡進行擬合,獲得該圓弧軌跡的圓心記為OA,圓弧軸線記為nA.
(2) 控制移動關(guān)節(jié)P3移動使靶球沿直線運動,激光跟蹤儀記錄其運動軌跡,該直線軌跡所在直線向量記為nB.
(3) 已知靶球球心與關(guān)節(jié)P3上表面的垂直高度為h0,關(guān)節(jié)R2的D-H坐標系2原點與關(guān)節(jié)P3上表面的垂直高度為h1.
則關(guān)節(jié)R2的D-H坐標系2相對于T的齊次變換矩陣為
(6)
移動關(guān)節(jié)P3的電機編碼器讀數(shù)為q3,則有
(7)
(3) 將靶球球心位置作為原點,兩個法向量分別作為x、y方向的坐標軸,構(gòu)建臨時坐標系K,則該臨時坐標系K相對于激光跟蹤儀坐標系T的齊次變換矩陣為
(8)
(4) 保持靶球和標準塊位置固定不動,記錄此時關(guān)節(jié)P3位移為q30.控制移動關(guān)節(jié)P3移動,同時線激光不斷掃描獲得一系列二維輪廓數(shù)據(jù),記錄每一幀輪廓CL={mi,i=1,2,…,k}及其對應(yīng)的關(guān)節(jié)廣義輸入q3i,通過齊次變換即可得每一幀輪廓在激光坐標系中的坐標為
(9)
由上述所有輪廓線所組成的三維點云為C為
C=∪Ci
(10)
(11)
(12)
最后,根據(jù)式(5)即可計算出手眼變換矩陣X.
實驗機器人為圖1所示的P1R2P33自由度串聯(lián)機械臂,線激光傳感器為Gocator2340,其單次掃描輪廓點數(shù)為 1 280,測距范圍為190~210 mm,測量精度為0.037 mm.為方便比較,可根據(jù)手眼矩陣X計算其旋轉(zhuǎn)軸v,旋轉(zhuǎn)角度θ和平移矩陣p,并在4.3節(jié)的誤差分析中分別用ev,eθ,ep表示各自的測量誤差.
(13)
θ=
(14)
(15)
通過定點變位姿法進行3次標定實驗,每次實驗測量16組數(shù)據(jù),其中1次的測量結(jié)果如表1所示.其中:x、y分別為激光所截截圓形輪廓線的圓心坐標;d1、θ2、d3分別為驅(qū)動關(guān)節(jié)P1R2P3的廣義輸入.
通過式(3)~(4)和式(13)~(15)計算,可獲得3次實驗的結(jié)果分別為
表1 定點變位姿法的一次標定實驗數(shù)據(jù)
Tab.1 One of the experimental data of fixed point from different poses methods
組數(shù)x/mmy/mmrc/mmd1/mmθ2/(°)d3/mm116.00-10.93-27.67171.673.3590.92215.12-15.02-26.70172.044.0792.37???????1534.5512.55-18.76180.07-13.3890.18
通過多坐標系轉(zhuǎn)換法進行3次標定實驗,其過程示意如圖4所示,其中1次測量結(jié)果如表2所示.
圖4 多坐標系變換法測量手眼矩陣實驗
表2 MCT法的1次標定實驗數(shù)據(jù)
通過式(5)~(15)計算,可獲得3次實驗的結(jié)果分別為
下文將分別對定點變位姿法和多坐標系轉(zhuǎn)換法的標定結(jié)果進行誤差分析,由于事先不知道手眼標定矩陣的準確值,所以取3次實驗的平均值作為手眼標定矩陣的無偏估計.由于手眼標定矩陣的旋轉(zhuǎn)矩陣部分和平移矩陣部分量綱不同,所以分別對其旋轉(zhuǎn)軸、旋轉(zhuǎn)角度、平移矩陣進行誤差分析.
圖5 手眼矩的陣旋轉(zhuǎn)軸、旋轉(zhuǎn)角度、平移矩陣誤差
由圖5可知,F(xiàn)PDP法測量手眼矩陣誤差大、精度低、測量結(jié)果不穩(wěn)定.這是由于FPDP法在整個過程中需要不斷運動所有關(guān)節(jié)并多次記錄各個關(guān)節(jié)的廣義輸入,所以手眼矩陣精度對機械臂關(guān)節(jié)的加工精度、裝配精度、電機回程誤差、運動學模型誤差等因素非常敏感.這一影響在平移矩陣的計算結(jié)果上體現(xiàn)得尤為明顯,其平移矩陣的誤差甚至達到5 mm以上,這在對精度要求非常高的應(yīng)用場合是無法接受的.另一方面,其平移矩陣p在y方向的值py=0恒成立,但事實上這不是正確的結(jié)果.這是由于FPDP法在求解式(3)時需要將該式轉(zhuǎn)化為形如GX=F的方程,然后再通過最小二乘法求解,但是該方程中矩陣G不滿秩,因此造成求解結(jié)果中py的缺失.這也是FPDP法的另一缺陷,F(xiàn)PDP法在測量某些機構(gòu)位型的手眼矩陣時會造成缺項,不具備普適性.
另一方面,使用所提的MCT法測量手眼矩陣,其精度有了極大的提升.在不同的實驗條件下,手眼矩陣的計算結(jié)果相差極小,各次計算所得的旋轉(zhuǎn)軸線誤差ev<0.001,旋轉(zhuǎn)角度誤差eθ≤0.07°,位移矩陣誤差ep≤0.25 mm,相比于FPDP法,其誤差極大地降低了.這是由于在測量過程中,僅需機械臂末端的兩個關(guān)節(jié)產(chǎn)生運動,完全消除了機械臂末端兩關(guān)節(jié)之前的關(guān)節(jié)加工誤差、裝配誤差、電機誤差的影響.此外,最后兩個關(guān)節(jié)僅在最初運動一次后即固定不再改變,并未在整個標定過程中多次取值,因此也極大地減小了因這最后兩個關(guān)節(jié)的誤差對結(jié)果精度的影響,從而進一步提高了測量精度.此外,MCT法通過借助臨時坐標系間接測量手眼矩陣的思想,僅使用最后兩個關(guān)節(jié)之間的D-H參數(shù),不需要最小二乘法求解,不會出現(xiàn)矩陣不滿秩而無法計算X某些項的情況,可用于任何二自由度及以上的臂載線結(jié)構(gòu)激光的手眼矩陣的精確標定.
本文提出一種用于臂載線結(jié)構(gòu)激光手眼矩陣精確標定的新方法——多坐標系轉(zhuǎn)換法.該方法借助激光跟蹤儀和標定物,找到末端連桿坐標系E和線結(jié)構(gòu)激光坐標系L相對于激光跟蹤儀坐標系T的齊次變換矩陣,從而間接計算末端連桿與線激光坐標系的手眼矩陣.該方法操作簡便、誤差小、精度高,并且對實驗器材沒有嚴格要求.實驗結(jié)果顯示,由該方法測量所得手眼矩陣的旋轉(zhuǎn)軸誤差小于0.001,旋轉(zhuǎn)角度誤差小于0.07°,位移矩陣誤差小于0.25 mm.經(jīng)過對比發(fā)現(xiàn),其性能優(yōu)于傳統(tǒng)的定點變位姿法.該方法不受傳感器類型的影響,既適用于可獲得二維信息的傳感器,如線激光,也適用于可獲得三維信息的傳感器,如三維激光和雙目攝像頭.此外,該方法不受機構(gòu)位型的影響,適用于任何兩自由度及以上的串聯(lián)機械臂手眼結(jié)構(gòu)的標定.