黃騰超,陳默含,馮勇建,夏榮菲
(廈門大學航空航天學院,福建 廈門 361102)
機器視覺搭配機械臂的開發(fā)應(yīng)用具有自動化、精密化、智能化等特點,近年來被廣泛應(yīng)用于工業(yè)生產(chǎn)中.手眼標定作為機器臂匹配視覺系統(tǒng)必不可少的一環(huán),其算法的精確性、穩(wěn)定性和高效性決定了機械臂在工業(yè)生產(chǎn)中的適用性和智能化程度.然而,傳統(tǒng)標定算法[1-4]通常是對已知規(guī)格標定板上的特征點進行二維圖像坐標與三維空間坐標定位,通過計算得到相機焦距、畸變系數(shù)、像素實際大小、圖像主點等內(nèi)部參數(shù)(內(nèi)參),以及相機三維旋轉(zhuǎn)角度和偏移量等相機位姿外部參數(shù)(外參).利用相機內(nèi)參對畸變模型的泰勒級數(shù)展開進行擬合,得到消除畸變的真實圖像信息;再將真實圖像與外參構(gòu)建的旋轉(zhuǎn)矩陣和平移矩陣進行矩陣耦合運算,確定相機坐標系與世界坐標系的關(guān)系.這種算法雖然可以適用于大多數(shù)相機標定,但是其標定精度完全依賴初始的相機內(nèi)參以及旋轉(zhuǎn)矩陣和平移矩陣的求解.相機焦距、畸變系數(shù)、旋轉(zhuǎn)矩陣和平移矩陣對于標定板的規(guī)格選擇以及視覺主點的定位精度要求極高,而這些參數(shù)在求解過程中容易出現(xiàn)誤差.在大視場的環(huán)境條件下,相機內(nèi)、外參數(shù)的求解稍有誤差,便對最后的標定精度影響很大.同時,傳統(tǒng)標定算法因為對矩陣求解速度的考量,僅考慮二階以內(nèi)的徑向畸變,使得在畸變較小與較大的區(qū)域內(nèi),擬合的畸變模型無法完全匹配固有存在的高階畸變,從而使標定結(jié)果出現(xiàn)不穩(wěn)定的情況,導(dǎo)致無法預(yù)測的誤差.在實際運用中,像素為千萬級的相機在采用傳統(tǒng)算法對1.5 m×0.75 m的工作平面進行標定時,誤差精度一般在3~6 mm之間[5],無法滿足工業(yè)生產(chǎn)的精密性要求.
針對傳統(tǒng)標定算法的不足之處,本文中提出一種基于插值細分和運動限制的固定視點下的手眼標定算法.該算法利用機械臂做縱向與橫向的自動增量運動,對目標區(qū)域的位置信息進行采集,并細化標定區(qū)域,通過插值逼近算法擬合畸變曲線,使得標定平面的像素坐標系與機械臂基坐標系實現(xiàn)一一對應(yīng)的轉(zhuǎn)換關(guān)系,從而實現(xiàn)高精度的手眼標定.
機器視覺處理定位問題時的關(guān)鍵在于從相機獲取目標圖像的信息中計算出三維空間物體的幾何信息,以此對圖像中的目標進行重構(gòu)和識別.由于空間中點的三維幾何位置與其在圖像中的對應(yīng)點之間的相互關(guān)系是由相機的成像模型決定的,所以在標定過程中,標定平面的選取和對成像模型的計算決定了標定精度的水平.機器視覺系統(tǒng)中的手眼標定是為了獲取圖像坐標系(xc,yc,zc)與機械臂基坐標系(xr,yr,zr)以及世界坐標系(xw,yw,zw)三者之間的轉(zhuǎn)換關(guān)系.如圖1所示,O為圖像主點,Cx、Cy為主點圖像坐標,Sx、Sy為像素在世界坐標系的實際大小.在進行手眼標定時,若機械臂的坐標系固定,且具有較高的精度和穩(wěn)定性,可以將世界坐標系與機械臂基坐標系二者作為一個整體進行考慮,即直接尋求圖像坐標系與機械臂基坐標系之間的轉(zhuǎn)換關(guān)系[6].
圖1 坐標轉(zhuǎn)換關(guān)系Fig.1 Coordinate transforming relations
相機鏡頭上光學透鏡固有的透視失真引起的圖像畸變常見的有徑向畸變和切向畸變.但研究表明[7-9],在校正模型中引入過多的畸變校正參數(shù),可能會增加計算的復(fù)雜性,導(dǎo)致計算結(jié)果不收斂而得不到高精度的標定.一般情況下,相機的切向畸變主要是因為鏡頭透鏡與成像平面不平行而產(chǎn)生的,鏡頭模組上的安裝偏差,會導(dǎo)致采集圖像平面的偏斜.但是在實際操作中,保持鏡頭與工作平面近乎水平的條件下,就可以避免明顯的切向畸變產(chǎn)生.因此,在鏡頭與工作平面近乎水平的條件下,引入切向畸變模型,不僅對提高手眼標定精度的作用不大,而且反而會增加計算的復(fù)雜性,導(dǎo)致計算結(jié)果不收斂[10].因此,本文中只考慮徑向畸變模型.
徑向畸變[11]是沿著透鏡半徑方向分布的畸變,產(chǎn)生原因是經(jīng)過透鏡的光線發(fā)生不同程度的偏折,而導(dǎo)致圖像點在遠離主點的地方比靠近主點的地方產(chǎn)生更大的徑向位移.如圖2所示,根據(jù)產(chǎn)生徑向位移的正負向關(guān)系,徑向畸變又分為桶形畸變和枕形畸變.
圖2 枕型畸變(a)和桶型畸變(b)Fig.2 Pincushion distortion (a) and barrel distortion (b)
從圖2可知,徑向畸變成像光軸中心不產(chǎn)生畸變,沿著鏡頭圓心向邊緣移動,畸變越來越嚴重.畸變的數(shù)學模型可以用主點周圍的泰勒級數(shù)展開式的前幾項進行描述,通常取前兩項,對于畸變嚴重的鏡頭取3項或者更多項.張氏標定法[12-13]提出,畸變圖像上某點的像素點坐標可表示為:
xu=xd+(xd-xo)(k1rd+k2rd2+…),
yu=yd+(yd-yo)(k1rd+k2rd2+…).
通過上述對畸變模型的分析可知,影響標定精度的因素主要為由光學透鏡造成的徑向畸變影響,而徑向畸變可以通過泰勒函數(shù)展開式逼近來描述;但是在實際工作中,只能在誤差允許的范圍內(nèi)取有限階,通過高階泰勒函數(shù)逼近的徑向畸變模型只能近似于真實的徑向畸變.因此,泰勒多項式階數(shù)的選取對于畸變模型的還原起到至關(guān)重要的作用.但是,在實際操作中,依靠高階泰勒多項式來還原采集圖像中的徑向畸變,會降低標定算法的運算速度,無法達到實際運用中高效、精確的需求.
因此,在處理徑向畸變的標定模型上,本文中提出一種基于密集標定點的插值細分算法.插值細分算法易于產(chǎn)生性能良好的曲線曲面,且具有簡潔高效和計算速度快等優(yōu)點,符合手眼標定中快速、精確的需求.
其中,ω=1/16的極限曲線有較好的連續(xù)性.對于控制頂點集的控制點進行相同的細分規(guī)則,獲得新的插值點,循環(huán)往復(fù),通過l次細分,便可獲得2ln+1個插值點.如圖3所示,以曲線①中5點為控制頂點集,通過對控制集進行一次插值可得到9個插值點構(gòu)成的曲線②,然后再以曲線②中各點作為控制頂點集,進行二次插值則可獲得17個插值點構(gòu)成的曲線③.根據(jù)插值細分法的定理可知這些插值點收斂于一條極限曲線上[16].
圖3 插值逼近示意圖Fig.3 Diagram of interpolation approximation
插值細分在細分過程中每一步都不會改變舊控制點的位置,故在用插值逼近畸變曲線處理徑向畸變的過程中,插值曲線經(jīng)過每一次細分過程生成的控制點并不替代原控制點的位置,保證曲線的真實性.
生成標定點控制頂點集,首先要對標定平面的標定點進行采集,如圖4(a)所示,將易識別的標定特征圓架接于機械臂末端,并控制機械臂做自動增量位移,可以遵循先橫后縱的遍歷方式.機械臂每次位移2 cm,同時,用相機抓拍每一次位移的特征圓位置,利用圖像處理立即定位出標定特征圓的圓心圖像坐標,并訪問機械臂回傳參數(shù),記錄下每次位移的機械坐標,采集到的點如圖4(b)所示.
圖4 標定平面的標定點采集Fig.4 Calibration point acquisition of calibration plane
由畸變模型可知,圖像中水平直線和豎直直線上的徑向畸變曲線較為齊整,不會出現(xiàn)明顯偏折.因此,根據(jù)四點插值算法的細分規(guī)則,可對采集的標定點進行細分,便可還原現(xiàn)實中在直線上的點對應(yīng)于圖像上的畸變點.具體細分的步驟如下所述:
1) 將采集到的圖像坐標細分為若干個5×5的方塊,每個方塊都可被定義為
2) 然后按行進行提取,則可獲得5個點構(gòu)成的控制集
Pi(0)={m(i,0),m(i,1),m(i,2),m(i,3),m(i,4)},(i=0,1,…,4).
3) 根據(jù)插值細分原則,對5個控制集進行3次插值,取第一行為例:
經(jīng)過3次插值,每個控制集均可細分為出33個插值點
(i=0,1,…,4).
4) 將擴充的插值點重新歸納,則原矩陣擴充為5× 33的矩陣
5) 同理,對新矩陣M1的列進行插值細分,則有新的33個控制集數(shù)
Pj(0)={m(0,j),m(1,j),m(2,j),m(3,j),m(4,j)},
(j=0,1,…,32),
繼續(xù)進行細分,則可得擴充后的33×33矩陣
因為對應(yīng)標定點之間距離較小,所以,經(jīng)過插值算法,可生成一個間距幾近相同的密集點陣,其中每個點都包含圖像坐標與機械臂基坐標系,為方便調(diào)用可保存于矩陣文件中.
由標定原理可知,手眼標定的關(guān)鍵在于如何求出機械臂基坐標系與圖像坐標的轉(zhuǎn)換關(guān)系,根據(jù)微分原理可知,通過多次細分后,每個插值點之間的曲線可近似于直線.由于相機畸變模型的曲線較為平緩,所以可以將3次細分后的密集標定點陣切分為1 029個2×2的區(qū)域點陣,如圖5,每個點陣內(nèi)區(qū)域可用線性關(guān)系求解.
圖5 目標點落點定位Fig.5 Location of object points
圖6 實驗裝置圖Fig.6 Experimental equipment
本次實驗所用的機械臂型號為安川MOTOMAN-MH24機械臂,相機型號為??低昅V-CE100-30GM面陣相機,易識別的特征圓點直徑為4 cm,采集平面約為150 cm×70 cm,圖像大小為3 840像素×2 748像素,具體實驗裝置圖如圖6所示.此外,利用HALCON編寫特征點識別程序,并通過Visual Studio 2017編寫控制界面,兩者聯(lián)用完成數(shù)據(jù)采集和處理.
根據(jù)不同區(qū)域的畸變程度不同共設(shè)計3次實驗,每次分20組,共采集200個標定點進行標定誤差計算.第一次實驗隨機選取20個區(qū)域,讓機械臂在標定區(qū)域內(nèi)自由移動,每個區(qū)域取10個目標點,計算平均誤差.此外,為驗證插值算法擬合畸變的準確性,設(shè)計第二次實驗隨機選取圖像邊緣畸變較大區(qū)域,而第三次實驗隨機選取圖像中心附近畸變較小區(qū)域.同第一次實驗一樣,第二、三次實驗每次也取20個區(qū)域,每個區(qū)域取10次目標點.
同時,以傳統(tǒng)標定算法作為對照組進行實驗,其標定模板如圖7所示.傳統(tǒng)標定算法主要通過標定模板計算相機內(nèi)部焦距、畸變系數(shù)等參數(shù)還原畸變圖像,再利用外部旋轉(zhuǎn)矩陣和平移矩陣矯正相機位姿,從而將相機坐標系與世界坐標系聯(lián)系起來.此次傳統(tǒng)標定算法中的相機內(nèi)、外參數(shù)由HALCON自帶標定程序計算得出,參數(shù)詳見表1.
圖7 標定模板圖Fig.7 Calibration target
相機內(nèi)參相機外參名稱數(shù)值名稱數(shù)值焦距f/mm 60.353X軸旋轉(zhuǎn)角/(°)359.905畸變系數(shù)k-27.169Y軸旋轉(zhuǎn)角/(°)0.012像素大小Sx/μm40.292Z軸旋轉(zhuǎn)角/(°)359.921像素大小Sy/μm40.300X方向平移量/mm4.495圖像主點Cx1 948.004Y方向平移量/mm1.916圖像主點Cy1 129.121Z方向平移量/mm1.895
利用機器臂末端的特征點在固定標定平面上不規(guī)則的增量運動,通過比對機械臂回傳的自身位置坐標和圖像識別轉(zhuǎn)換后的位置坐標,計算出標定算法的實際誤差.設(shè)機械臂回傳的真實位置坐標為(xr,yr),根據(jù)圖像坐標轉(zhuǎn)換的位置坐標為(xt,yt),用二維歐幾里得距離E來表示誤差,則
上述的誤差是機械臂基坐標系上的誤差,機械臂每位移一次,相機采集一次圖像,比對機械臂回傳的位置坐標和圖像識別轉(zhuǎn)換位置坐標計算一次實驗誤差,設(shè)n為采集次數(shù),定義平均誤差?為:
通過平均誤差計算公式,對實驗數(shù)據(jù)進行標定精度的誤差分析,即將實驗采集數(shù)據(jù)代入誤差公式.通過對兩種標定方法在不同標定區(qū)域的平均誤差計算,根據(jù)所得數(shù)據(jù)整理得出圖8.由圖8可知,插值細分法的誤差曲線較為平穩(wěn),而傳統(tǒng)標定算法的誤差曲線穩(wěn)定性較差.插值細分法的誤差幾乎都在1 mm以內(nèi),而傳統(tǒng)標定方法誤差分布在1.5~5 mm之間,插值細分法標定精度明顯更高.
圖8 平均標定誤差Fig.8 Average calibration error
此外,由圖8中傳統(tǒng)標定法和插值細分算法在全區(qū)域的誤差曲線可以看出,6到13組的誤差明顯高于其他組.經(jīng)分析,其原因是6到13組的測試點都選取在圖像畸變嚴重的圖像邊緣.而對比圖8(a)和圖8(b)中邊緣區(qū)域與中心區(qū)域的標定誤差可發(fā)現(xiàn)在畸變嚴重區(qū)域,兩種標定方法的平均標定誤差明顯增大.但傳統(tǒng)標定算法平均誤差高達5 mm,且十分不穩(wěn)定.而插值細分法,雖在畸變明顯的區(qū)域誤差略有增大,但其最高誤差不超高1 mm,平均誤差基本穩(wěn)定在0.3 mm.實驗證明基于差值細分的標定方法可以,其標定精度滿足實際的工程運用.
圖9中(a)~(d)為插值算法運用在工業(yè)點膠機械臂上的實際效果圖.圖9(a)為圖像處理的工件邊框效果圖,通過對工件邊框進行識別定位得到工件邊框的圖像坐標,然后由插值標定算法的坐標轉(zhuǎn)換將圖像坐標轉(zhuǎn)換成機械坐標,并將數(shù)據(jù)傳給機械臂.圖9(b)~(d)為實際機械臂在工件邊框涂膠的效果圖,可以看出,膠槍走的路徑與圖像識別規(guī)劃的邊框路徑基本一致.
圖9 實際應(yīng)用效果圖Fig.9 Practical application effectiveness
根據(jù)實驗結(jié)果和實際應(yīng)用效果,針對固定視點的手眼標定系統(tǒng),本文中提出的基于差值細分算法的標定方法不僅能夠簡單快速地完成標定工作,還能減少傳統(tǒng)算法中存在的標定誤差,標定精度在1 mm以內(nèi).該方法通過機械臂的自動位移解決傳統(tǒng)標定算法中求取相機內(nèi)、外參數(shù)的繁瑣步驟,改進了目標點圖像坐標系和機械臂基坐標系之間的轉(zhuǎn)換方式,使標定更加便捷、易操作,符合現(xiàn)代工業(yè)生產(chǎn)高效率、高精度的需求.