陸 藝, 沈添秀, 羅 哉, 郭 斌
(1. 中國計量大學(xué) 計量測試工程學(xué)院, 浙江 杭州 310018; 2. 杭州沃鐳智能科技股份有限公司, 浙江 杭州 310018)
工業(yè)機器人雖然重復(fù)定位精度很高,但由于絕對定位精度很低限制了工業(yè)機器人的應(yīng)用,因此提高絕對定位精度能擴展工業(yè)機器人的應(yīng)用范圍[1,2]。提高機器人絕對定位精度通常通過參數(shù)標定,即運用測量手段和適當?shù)膮?shù)辨識方法辨識出機器人的準確參數(shù)。機器人標定通常包含運動學(xué)建模、位姿測量、參數(shù)辨識、誤差補償4個過程[3]。其中位姿測量是標定的一個重要步驟,測量的方法直接影響標定的效果。目前工業(yè)機器人標定技術(shù)可大致分為2類:開環(huán)標定和閉環(huán)標定法[4]。開環(huán)標定法涉及測量末端執(zhí)行器的姿態(tài),需要利用外部儀器(如坐標測量機和激光跟蹤儀[5])進行測量,存在成本高,耗時長,不便于操作等問題。閉環(huán)標定法[6,7]是通過機器人自身的關(guān)節(jié)角測量,對末端執(zhí)行器施加一些約束,并且僅使用關(guān)節(jié)讀數(shù)通過運動閉環(huán)方程來標定機器人。文獻[8~10]研究了一種稱為虛擬封閉運動鏈的方法,該方法與普通閉環(huán)方法不同,它不需要物理約束,僅需將激光工具附加到機器人末端執(zhí)行器并且瞄準遠處物體上的任意固定點,但是該方法是人為判斷激光點與固定點重合,存在人工誤差,且需建立復(fù)雜約束方程組等問題。
為此,本文提出一種基于線結(jié)構(gòu)光傳感器的工業(yè)機器人標定方法,該方法將線結(jié)構(gòu)光傳感器安裝在機器人末端,并且僅將一固定點作為標定特征點。傳感器在不同關(guān)節(jié)角配置下測量該固定點的三維坐標,直接得到固定點與基座標的位置關(guān)系。建立以該坐標值的理論值與實際值偏差的誤差模型,并以此建立較為簡單的標定方程組便于求解。
工業(yè)機器人標定系統(tǒng)由工業(yè)機器人和線結(jié)構(gòu)光傳感器組成,傳感器安裝在工業(yè)機器人末端,工業(yè)機器人看做一個載體。傳感器坐標系中的測量數(shù)據(jù)可以通過標定系統(tǒng)模型轉(zhuǎn)換到工業(yè)機器人基坐標系中。標定系統(tǒng)模型包括線結(jié)構(gòu)光傳感器模型、機器人模型和手眼關(guān)系模型。
線結(jié)構(gòu)光傳感器數(shù)學(xué)模型如圖1所示,該傳感器包括CCD相機以及一字線激光器2部分。其中Owxwywzw為世界坐標系,Ouv為圖像坐標系,Ocxcyczc為相機坐標系。
圖1 傳感器測量模型
假設(shè)被測點P在圖像坐標系下坐標為(u,v),像主點坐標為(u0,v0),在相機坐標系下坐標表示為(xc,yc,zc),在世界坐標系下坐標表示為(xw,yw,zw)。則P點在圖像坐標系和相機坐標系的關(guān)系及相機坐標系和世界坐標系的關(guān)系分別表示為:
(1)
(2)
其中:kx,ky為相機xc軸,yc軸放大系數(shù);Mc為相機內(nèi)參數(shù)矩陣;Mw-c相機坐標和世界坐標轉(zhuǎn)換關(guān)系即外參數(shù)矩陣,包括旋轉(zhuǎn)矩陣R和平移矩陣T。
假設(shè)在相機坐標系下光平面方程表示為:
z=Ax+By+C
(3)
式中A、B、C為線結(jié)構(gòu)光內(nèi)參數(shù)。
結(jié)合式(1)和式(3),可得到點P在相機坐標下的坐標為:
(4)
根據(jù)式(4),在已知光平面在相機下的方程時即可得知空間某一點在相機坐標系下的坐標。
機器人的各個部分由一系列連續(xù)的關(guān)節(jié)組成,相鄰關(guān)節(jié)間的運動學(xué)關(guān)系可由D-H齊次變換矩陣表示。D-H[11]齊次變換矩陣取決于4個連接參數(shù),即關(guān)節(jié)角θi,連桿扭角αi,連桿長度ai和偏置di。對于n個自由度的工業(yè)機器人可由D-H模型描述,從關(guān)節(jié)i-1到關(guān)節(jié)i的轉(zhuǎn)換關(guān)系可用次變換矩陣Ai表示。但當相鄰關(guān)節(jié)平行時D-H模型出現(xiàn)奇異性,此時結(jié)合MDH模型,即在關(guān)節(jié)軸線平行時,引入繞y軸旋轉(zhuǎn)的轉(zhuǎn)角參數(shù)βi。則相鄰的2個關(guān)節(jié)坐標系間的D-H變換矩陣為:
(5)
式中C和S分別代表cos和sin,i=1,3,4,5,6。
采用MDH建模法,得到二、三關(guān)節(jié)間的MDH變換矩陣A2為:
(6)
如圖2所示,為機器人運動學(xué)模型及手眼關(guān)系模型。自由度為6的工業(yè)機器人基座標系Ob與末端坐標系Oe間轉(zhuǎn)換關(guān)系由矩陣Td表示,傳感器Oc與基座標Ob之間轉(zhuǎn)換關(guān)系由矩陣Ts表示,末端坐標系Oe與傳感器坐標系Oc轉(zhuǎn)換關(guān)系由矩陣H(即手眼矩陣)表示,其中H為一個固定但未知的矩陣,可由手眼標定得到。
圖2 機器人運動學(xué)模型及手眼關(guān)系
Td可由Ai表示為:
Td=A1A2…A5A6
(7)
則:
TS=TdH
(8)
假設(shè)一被測點X在傳感器坐標系下齊次坐標為xc,在機器人基座標系下齊次坐標為xb,由標定系統(tǒng)模型xb表示為:
xb=TdHxc=TSxc
(9)
實驗以研華LNC-S6000六自由度工業(yè)機器人為標定對象,連接的線結(jié)構(gòu)光傳感器選用分辨率為1 280×960像素的工業(yè)相機,波長為650 nm的紅外線一字線激光器。整個標定過程包括3個部分:傳感器標定[12,13]、手眼關(guān)系標定、工業(yè)機器人參數(shù)標定。
由1.2節(jié)機器人運動學(xué)建模,結(jié)合機器人本身結(jié)構(gòu)特性,得到參數(shù)名義值,如表1所示。
表1 建模名義參數(shù)
表1中θ1e,θ2e,…,θ6e為編碼器關(guān)節(jié)角讀數(shù)值。根據(jù)表1中名義參數(shù)值數(shù)據(jù),由式(5)、式(6)可得:
傳感器標定包括相機標定[14]和光平面標定。其中相機標定根據(jù)文獻[15]基于棋盤格的標定方法。將標定板固定放置在工業(yè)機器人工作空間內(nèi),控制工業(yè)機器人帶動線結(jié)構(gòu)光傳感器不同姿態(tài)得到靶標圖像。通過相機標定獲得相機內(nèi)參數(shù)Mc,即kx、ky、u0、v0,同時可以獲得靶標平面相對與相機坐標系轉(zhuǎn)換矩陣Mw-c。光平面標定則是將靶標上角點和激光條形成交點作為標定特征點。由式(2)得到這些特征點在相機坐標系下的坐標,獲取多組標定特征點在相機坐標系下的坐標,由此可擬合相機坐標系下的光平面方程,獲得線結(jié)構(gòu)光內(nèi)參數(shù)A、B、C。
采用如圖3所示精度為3 μm棋盤格標定板作為平面靶標,棋盤格為7×7的方形靶標,單個棋盤格大小為11 mm×11 mm。
圖3 棋盤格標定板
具體標定步驟有:1) 在激光器關(guān)閉情況下,使機器人在不同位姿拍攝20張棋盤格圖片,相機標定工具箱進行相機標定,得到相機內(nèi)參數(shù)矩陣。2) 在得到相機內(nèi)參數(shù)后,進行光平面參數(shù)標定。在某一個位置下保持相機和棋盤格不動的情況下,分別打開激光器和關(guān)閉激光器拍攝3組一一對應(yīng)的圖片。得到不包含激光線條的棋盤格圖片的3組外參數(shù)矩陣。在每張包含激光線條的圖片上選取3~4個點作為特征點,通過相機內(nèi)參數(shù)和對應(yīng)圖片的外參數(shù)得到10個這樣的點的坐標值。3) 將這10組坐標值擬合平面。實驗結(jié)果如下:
相機內(nèi)參數(shù)矩陣:
3組圖片對應(yīng)外參數(shù)矩陣:
得到光平面參數(shù)為:A=-0.460 2;B=0.004 9;C=481.637 5;即在相機坐標系下的平面方程為:
z=-0.460 2x+0.004 9y+481.637 5
由此,通過式(4)得到被測點在傳感器坐標系下的三維坐標值。
手眼關(guān)系標定指確實機器人末端和傳感器之間的關(guān)系,即轉(zhuǎn)換矩陣H。如圖4所示,以固定點P作為手眼標定特征點,機器人帶動傳感器不同位姿下拍攝該點,并使該點處于激光面上。
圖4 手眼關(guān)系標定原理示意圖
將該點在傳感器坐標系下坐標記為Pc,在機器人基座標下的坐標記為Pb,手眼矩陣記為H,分別以齊次坐標表示它們?yōu)?
(10)
(11)
對固定點進行N次測量,則有:
(12)
由式(11)和式(12)可得:
Td1HPc1=TdiHPci,i=2,3,…,12
(13)
對式(13)進行求解,可得到手眼矩陣H。選取棋盤格上一固定點為特征點,控制傳感器在12個位姿下對該點進行測量。得到12張圖片,計算圖片在點在傳感器下坐標值Pc,帶入關(guān)節(jié)角計算對應(yīng)的Td。將計算值帶入式(12)求得手眼矩陣H為:
機器人運動學(xué)參數(shù)標定是基于機器人誤差模型獲取機器人運動學(xué)參數(shù)誤差,將誤差補償?shù)皆忻x參數(shù)上達到機器人標定的目的。
3.3.1 誤差模型
用dαi,dai,ddi,dθi,dβi表示運動學(xué)模型中工業(yè)機器人參數(shù)誤差,對式(9)進行轉(zhuǎn)換,由于這些誤差足夠小,用Δα,Δa,Δd,Δθ,Δβ表示,可忽略高次項有:
(14)
可將式(14)表示為:
dxb=JΔp
(15)
(16)
Δp為需辨識的運動學(xué)參數(shù)誤差。
Δp=[ΔαΔaΔdΔθΔβ]T
(17)
3.3.2 定點約束的機器人參數(shù)標定原理
對于固定點在機器人基座標系下的坐標可由機器人名義參數(shù)得到,但由于運動學(xué)參數(shù)的不準確,該目標點的實際坐標值不同于由名義值得到的坐標值。在第i個位置、第j個位置對其進行測量的實際坐標x′b可由名義值坐標xb與誤差值dxb表示為:
x′b=xbi+dxbi
(18)
x′b=xbj+dxbj
(19)
其中xbi和xbj可由式(8)中名義參數(shù)得到。
用式(19)減去式(18)可得如下關(guān)系:
xbj-xbi=(Ji-Jj)Δp
(20)
Δxji=xbj-xbi,Dij=Ji-Jj,則式(20)可寫為:
Δxji=DijΔp
(21)
假設(shè)進行m次測量(m≥4n,n為工業(yè)機器人自由度),參數(shù)誤差Δp可由最小二乘法辨識:
Δp=(DTD)-1DTΔX
(22)
3.3.3 機器人參數(shù)標定步驟
如圖5所示,選取棋盤格標定板為標定平面,將其放置在工業(yè)機器人工作空間內(nèi),將棋盤格中間角點作為標定點M。根據(jù)2.3.2節(jié)標定原理進行標定實驗,具體步驟如下:1) 操作機器人示教器手動模式調(diào)整機器人在不同位姿帶動傳感器拍攝標定點圖片,并保存圖片,記錄與圖片對應(yīng)的關(guān)節(jié)角數(shù)據(jù);2) 建立的標定方程個數(shù)需要大于或等于待標定參數(shù)個數(shù)(24個),選擇了25組位姿進行測量實驗,則重復(fù)步驟1)25次得到足夠數(shù)量的位姿建立標定方程組;3) 根據(jù)前面所求的光平面參數(shù),手眼矩陣,計算出每一次測量點的位置坐標。根據(jù)記錄的關(guān)節(jié)角已經(jīng)讀取圖片信息計算得到傳感器下坐標。帶入標定方程組,得到運動學(xué)參數(shù)的各個參數(shù)誤差值,得到標定后運動學(xué)參數(shù)值如表2所示。
圖5 標定系統(tǒng)實物圖
表2 標定后運動學(xué)參數(shù)
為了驗證參數(shù)標定效果,控制機器人帶動傳感器14次測量如圖6中A、B、C的值,將名義參數(shù)值和實驗中記錄的關(guān)節(jié)角向量代入到式(9)中,再將修正后的結(jié)構(gòu)參數(shù)和實驗中記錄的關(guān)節(jié)角向量一起代入到式(9)中,可以求出對應(yīng)于點A、B、C的標定前后理論坐標,得到相應(yīng)線段如AB、AC標定前后的測量尺寸,將測量所得的標定前后尺寸與實際尺寸相比較。圖6中每一小格距離為11 mm,則AB=77 mm、AC=11 mm。測量數(shù)據(jù)如表3所示。
圖6 測量點示意圖
表3 標定前后誤差
由表3數(shù)據(jù)分析可知,當驗證點之間距離為77 mm時,最大誤差由3.0376 mm減小到1.4672 mm;平均誤差由1.8460 mm減小到0.8529 mm,減少了52.567%;標準差由0.5877 mm減少到0.3217 mm,標準差減少45.26%。當驗證點之間距離為11 mm時,最大誤差由2.8562 mm減小到1.3572 mm;平均誤差由1.7256 mm減小到0.8595 mm,減少了57.226%;標準差由0.5900 mm減少到0.3412 mm,減少了42.17%。通過標定穩(wěn)定減小了誤差,從而證明了此標定方法提高了工業(yè)機器人絕對定位精度。
提出一種基于線結(jié)構(gòu)光傳感器的工業(yè)機器人運動學(xué)參數(shù)標定方法,通過傳感器獲得標定目標點的三維坐標,結(jié)合D-H建模直接得到標定點與工業(yè)機器人基座標系的位置關(guān)系。然后建立該位置關(guān)系偏差的誤差模型,建立標定方程,利用最小二乘法求解得到運動學(xué)參數(shù)誤差。此方法通過傳感器得到約束點的三維坐標,簡化了需要對末端約束建立大量約束方程,且目標靶標易于測量,成本較低。標定前后平均誤差及標準差2個評價指標穩(wěn)定減小,驗證了此標定方法提高了工業(yè)機器人的絕對定位精度。