王安妮,劉興德
(1.吉林化工學院 信息與控制工程學院,吉林 吉林 132022;2.吉林化工學院 機電工程學院,吉林 吉林 132022)
在很多機械生產企業中,為了節省時間成本以及減少人工作業的風險,通常都采用自動裝置完成工作,而在自動制造流程中,機器視覺技術也被應用到工件上料以及尺寸檢測等領域,相機校準作為機器視覺的前期準備工作,直接關系檢測結果的正確性[1,2]。由于機器視覺技術在智能制造與測量方面的廣泛應用,更多的從業者開始對標定領域開展深入研究[3]。婁群[4]等人提出了一種基于亞像素邊緣檢測的雙目相機標定方法,該方法可以識別標記點并對其進行排序,從而實現了復雜環境下相機的高精度校準。李嘉欣[5]等人針對精密棋盤標定板制作難度大、成本高等問題,采用了一種附有編碼標志的棋盤格并提出了一種角點編碼的方法。這種方法既克服了傳統棋盤格標定對于影像獲取的局限,又讓相機標定變得更高效。
SUN W Y[6]等人提出了一種有效的手眼校準方法,該方法通過點集配準和估計校準轉換,實現了0.70 mm的平均距離偏差和0.68°的平均角度偏差。FANG S[7]等人利用三維相機的點云數據,提出了一種基于單個標記的手眼校準方法。通過多組單標記三維坐標數據,構建基于手眼標定誤差的非線性優化問題,依次求解單標記廣義工具中心點(TCP)位置和手眼標定矩陣。該方法不僅保證了手眼標定的精度,而且使手眼標定更加方便。胡木連[8]針對以參數化投影模型為代表的相機標定帶來的所求參數多、計算效率低等問題,建立了一種以廣義成像模型為代表的相機標定方法,直接建立物方平面標定板與像方成像面投影之間的關系。利用列文伯格-馬夸爾特算法(LM算法)與多項式畸變模型迭代、最小二乘法完成標定,并在Z軸和X軸滿足精度要求。赫美琳[9]等人以棋盤格板定板為研究對象,建立了一種快速獲取單目相機內部參數的標定方法,對高精度相機內參獲取十分有效。上述專業科研人員的相機標定研究,針對棋盤格標定的精度低、邊緣識別差等問題,采用標定點排序、非線性優化算法等方法解決上述問題,但是由于2D單目相機仍存在棋盤格黑白邊緣識別效果差和獲取的交點參數未能滿足工件上下料要求的缺點。可以用機器視覺軟件Mech Vision對非對稱圓點標定板進行相機標定研究,檢測每個特征圓的圓心,把真實的圓心提取出來,降低圓心存在的偏心誤差。
一個完整的工業視覺系統主要是由相機、鏡頭、光源、標定板、工作平臺及視覺相關軟件等組成,單目視覺系統通常是指系統中有且僅有一個工業相機。圖1(a)是以工件上下料作為案例而搭建的單目3D視覺測量工作系統示意圖,其中相機、鏡頭和光源主要是對工件進行圖像采集,主要是通過調節曝光時間和激光強度、設置圖像采集區域的方法進行圖像采集,然后通過視覺相關軟件進行工作流程的搭建實現特征區域提取并發送位姿信息給機器人實現上下料抓取。圖1(b)是六軸機器人相機標定的示意圖,采用的方式是ETH方式(相機單獨固定,標定板固定于機器人末端)。

(a)
我們在機器人末端安裝固定好所選取的實驗標定板,通過相機拍照采集,可以得到相對于機器人基坐標C的標定板上每個圓點的圖像,從而得到標定板上每個圓形特征的坐標B,則相機與機器人基坐標之間的位姿關系A就為待求量。上述變量中A、B、C形成等式(1)~(3),其中C為標定板上的各圓點相對于機器人基坐標的坐標,B為相機拍照獲得標定板上每個圓點的坐標,A為B和C基坐標之間的位姿關系的待求量。標定板到法蘭末端位置關系D未知,通過標定板在標定過程中的一系列相對移動,使用數值方法計算得到標定板到法蘭末端的位置關系,進而計算得到C。通過移動機器人,變換標定板相對于相機的位姿,可以得到多組等式,對這些等式的值進行擬合優化計算,最終得到最優的A值[10,11]。位姿關系如圖1單目3D相機測量系統工作平臺所示。
B1·A·D1=C,
(1)
B2·A·D2=C,
(2)
B1·A·D1=B2·A·D2。
(3)
相機標定主要是為了獲得相機的內外參數,防止相機在拍照采集過程中出現畸變情況,實際上就是實現圖像的二維平面像素坐標與三維世界坐標的轉換。然而轉換過程中,需要計算出相機的內部參數和外部參數[9]。因此,獲取相機內部參數和外部參數是相機校準的主要目的。
標定過程實質是機器視覺坐標系的轉換。假設在世界中存在一點,其世界坐標為(Xw,Yw,Zw,1),相機坐標為(Xc,Yc,Zc,1)。該點世界坐標系和相機坐標系的轉化是通過旋轉R和平移T兩個過程完成的,則:
(4)
其中,R=R(γ)R(δ)R(θ),為3×3旋轉矩陣;T=T(Xt,Yt,Zt),為3×1平移矩陣,三維空間中的任一點的世界坐標系與像素坐標系的關系有:
(5)

Mech Vision軟件是一種新型的視覺編程軟件。通過插放不同的功能模塊、調節工作參數和搭建工作流程,就可以實現無序抓取、上下料、缺陷檢測等機械視覺的應用。軟件內置有高精度3D相機標定工具,可以配合機器人進行自動外參、內參及雙相機融合標定。圖2為利用Mech Vision軟件的相機標定流程。

圖2 相機標定流程圖
首先我們需要打開機器視覺相關軟件,如Mech Vision軟件,新建工程進行搭建工作流程,本次實驗是以建立好的工件上下料工程為例,打開工程后點擊界面已有的相機標定,建立新的標定文件,選擇手眼標定類型,其手眼標定類型有三種,包括ETH標定、EIH標定(標定板單獨固定并將相機固定于機器人末端)、ETH標定(尖點觸碰)。選擇ETH標定和六軸機器人,根據左右手定則選擇機器人對應的歐拉角,連接好相機,將標定板移動到相機拍照范圍中心計算內參,然后移動標定板,將基于機器人基坐標下的X,Y,Z方向的位姿坐標手動輸入并記錄,最后重新計算內參并查看偏移量誤差是否合格。
通過Mech Vision軟件內置相機標定工具,可以配合機器人進行相機標定,本次實驗采用的是BDB-7型號的非對稱圓點標定板,采用爾必地六軸機器人,通過示教器手搖的方式,分別記錄如圖3所示的標定板平移、旋轉的坐標點。
本次實驗使用的是型號為LSR L,分辨率為深度圖:2048×1536,RGB為2 000×1 500的3D工業相機。標定板為 4×5陣列,圓心之間的距離是50 mm。采用VS 2015和OpenCV進行標定程序的編寫。
為保證標定的準確性,首先采集多張不同角度的標定板照片,一般需要采集的圖片數量大于3張即可,但本次實驗為保證嚴謹性,總共采集了17張圖像,如圖4所示。在使用示教器對機器人末端固定的標定板進行移動時需要注意將標定板的20個圓形均展示在相機視野范圍內,如圖4所示,以便對標定點的數據提取與驗證,尤其是圓心坐標和圓間距。

圖4 標定點檢測結果示意圖
將非對稱圓點標定板固定在爾必地機器人的法蘭末端,由于案例是工件上下料工作實驗平臺,將其固定在磁鐵端。在成像范圍內四個角落的位置更容易產生畸變,因此采用機器人示教器通過X、Y軸不同方向進行平移。如圖5所示為標定板在某一高度時標定板中20個圓心在三維空間中的展示。在不同高度下平移標定板和沿X、Y、Z各軸旋轉標定板并記錄機器人位置點,某一位置下的標定板圓心坐標如表1所示,20個特征圓的圓心坐標均可計算出來。


表1 標定板的圓心坐標點合集表

圖5 標定板位置三維坐標圖
如表1所示的數據,我們將17張采集到的標定板數據都寫入程序中,經過一系列計算得到如下的標定結果:
相機內參矩陣
鏡頭畸變系數
k1=-0.0589,k2=0.0867,k3=-0.00023,P1=-1.8342936743704765e-0.5,P2=0
采用兩種方法對標定點數據進行檢查,其一是在已經搭建好的Vision工程中運行工作流程,通過示教器手搖工作流程完成后給出的參數值,檢查一下法蘭位姿與工程搭建運行后發送的位姿信息是否一致。圖6中從左向右依次是表2需要1至3的位姿示意圖,通過表2數據分析計算可得平均誤差在0到0.03內,滿足工業中工件上下料的精度要求。

圖6 不同擺放情況的抓取位姿示意圖
其二是檢查標定點“平均標定圓間隔測量值誤差”是否超出標準值,在標定圖像及位姿列表面板選中標定點,在下方消息框中查看平均標定圓間隔測量值誤差。平均標定圓間隔測量誤差為0.18%,小于誤差上線標準2.2%。對于標定好的外參數據,需要判斷其是否滿足精度要求。本次標定實驗小于4 mm的誤差98.052%,小于4.5 mm的誤差99.351%,小于5 mm的誤差100%,參照表3的誤差精度要求,滿足工件上下料案例的精度要求。

(a)(b)(c)

表3 不同工作場景下的誤差精度要求
本文提出了一種基于非對稱圓形陣列標定板的3D相機標定法,對采集到的17張標定板圖像中的特征圓進行邊緣提取、圓心提取和圓點距計算,通過3D梅卡相機和一系列視覺軟件進行相機標定得到了相機的較為準確的內外參數和畸變參數。實驗結果證明,這種采用非對稱圓點標定板進行手眼標定的方法高效便捷,達到了機械制造業對標定精度的要求。
在相機手眼標定過程中,需要注意標點板平移和旋轉的位姿點采集圖像數量足夠,移動記錄標定點的位姿點過程中,在計算內參即標定板中特征圓坐標時,若計算內參失敗,可以通過畫輔助圓的方式重新計算。重新計算內參時,我們需要觀察每個位置的標點板的圓點是否均有坐標點,若不滿足每個特征圓點出現在模擬3D環境中,需將其刪除重新計算標定誤差參數。
由于早晚自然光照強度不同,可能存在工件識別不到或者抓取位姿不正確的問題,面臨這種問題時,可以采取遮光板等對實驗設備進行有效避光,保證實驗設備光照強度在一定范圍內。