崔旭東 譚 歡 王平江 余凌波 陳吉紅
(①鞍山師范學院計算中心,遼寧 鞍山 114007;②華中科技大學機械科學與工程學院,湖北 武漢430074)
機器視覺因其具有適應性好、柔性強、非接觸等特點,被廣泛用于自動化生產線的工件尺寸檢測、缺陷檢測以及分揀中。使用機器視覺進行測量并配合多關節機器人進行工件的分揀,可以提高作業效率,降低工人作業的勞動強度。在自動化生產線中,零部件的抓取及安放,是一個非常重要的環節,也是目前自動化產線消耗人力最大的一個環節。有些類型的工件,若使用機械振動分揀裝置,不僅可靠性低,而且振動噪聲非常巨大,嚴重影響工人的身體健康[1]。
隨著企業越來越重視柔性化、自動化制造技術的應用,采用基于三維視覺的機器人技術,對散亂堆放的工件進行自動、高效的分揀,其需求越來越迫切,應用也越來越受到重視。從散亂堆放的料框中分揀出單一工件并按照要求的姿態擺放到指定的上料工位,若使用人工的方式進行,枯燥乏味還浪費人工。使用機器視覺技術進行散亂堆放工件的位置姿態檢測,再規劃機器人抓取的軌跡及抓取的位姿,具有柔性化程度高、緩解企業用工壓力、無環境影響、24小時作業的優點[2-3]。
本文針對散亂堆放工件的基于機器視覺的機器人分揀技術的難點,進行了有益探索,提出了切實可行的解決方案。
為了能夠精確地重建料框中散亂堆放工件可視面的三維點云數據,本文采用雙目立體視覺加結構光格雷碼[4-5]、相位移的方式[6],進行三維點云數據的獲取。雙目測距的基本原理[7]如圖1所示,依據圖1中的相似三角形,可以得到公式:
(1)
(2)

圖1中,OR、OT分別為左、右相機成像主光點。左、右相機成像感光平面到其各自光心的距離均為焦距f。若P為三維空間中某待測的目標點,P在兩個相機成像平面中的成像點分別為p和p′;p和p′到各自成像平面左側邊緣距離分別為xR和xT;B為左右兩個相機間的基線長度,則Z為P點到基線的距離即為雙目3D視覺測量所得點的空間位置。
圖2為整個三維視覺測量系統硬件構成,包括:兩個工業相機1、數字激光投影的面結構光投影儀2、六軸機器人3以及存放工件的料框4。散亂堆放工件可視面三維測量過程為,首先用DLP投影儀依次將若干幅格雷碼圖像與4幅相位移圖像,投影于散亂堆放的工件表面。同時用相機依次采集工件可視面成像圖像,如圖3所示,即可根據格雷碼編碼規則、相位移移相規則及立體視覺的極線約束原理,確定左右相機拍攝的空間同一點P在左右相機圖像上點(p,p′)的對應關系。


根據文獻[6-7]所述雙目測量原理,計算視場中眾多工件表面的三維點云數據。對散亂堆放的工件進行測量所重建的三維點云效果如圖4所示。

要確定散亂堆放的某工件位姿,首先須獲得用于進行三維匹配的模板點云Ω0,再將Ω0與料框中已測量且已經分割的目標工件三維重建點云Ωi進行三維匹配,最后得到散亂堆放在料框中的目標工件的位置以及姿態信息。
獲得工件三維匹配的模板點云Ω0有兩種方式。如圖5所示為從生產單位獲得的工件的CAD理論模型,經離散處理得到的整個工件外表面的點云數據;圖6為通過本文研發的三維測量系統對單個工件實物進行現場測量、重建、拼接而形成的模板點云數據。雖然通過CAD模型生成的模板點云Ω0,具有更好的細節表現,但是通過現場測量得到模板三維點云Ω0的方法,具有使用簡單、操作方便的優點。本文研究表明,兩者在三維匹配中的匹配精度及使用效果基本相同。


從一堆散亂堆放的工件的三維點云中進行目標工件的分割,目前還沒有很好的方法。考慮到本測量系統采用的是雙目視覺,并通過多幅序列圖像而進行的重建,且投影儀的投光模式是可控的,因而可以通過投射一幅均勻的、強度可控的照明光源,獲得散亂堆放狀態下工件的二維圖像。再通過對該二維圖像的分割,將二維圖像劃分成不同的區域,那么在三維場景中也將對應二維圖像區域的三維點云進行不同的劃分,從而可以大致區分出屬于不同工件個體的三維點云數據子集。從二維圖像出發,對料框中的散亂工件進行分割,是減少三維空間分割算法復雜性、提高三維匹配效率的可行方法。
常見的二維圖像分割算法有二值化法、分水嶺法[8]、邊緣法[9-10]等。圖7所示為測試圖像采用邊緣法分割處理的結果。本文采用該方法對料框中散亂堆放的工件進行二維圖像上的分割,以初步確定目標工件及其所屬的三維點云子集。

三維點云之間的匹配已有多種實現方法,如特征點匹配[11-12]、ICP(iterative closest point)匹配[13-14]等。
特征點法主要通過三維點云的局部點云分布情況,確定該子區域的特征子。比對目標以及模板的特征子,查找最接近的組合,進一步求解得到目標與模板點云之間的空間剛體變換矩陣。特征點匹配速度上較快,但是如果特征點較少或者特征點分布在無關區域(例如工件邊界處),則容易產生匹配失效的情況[15]。
ICP匹配,是一種通過最近距離原則確立匹配點對,迭代計算出目標點云與模板點云之間的三維剛體空間變換矩陣的算法[16]。
使用ICP算法時,通常需要使用PCA(principal component analysis)方法[14],以獲得良好的初始位姿,從而提高ICP配準的速度與準確度。PCA姿態變換過程如下:
若點云由m個點構成,設X是包含所有點坐標的3×m矩陣;點云的重心坐標為μ。首先,需要對點云進行平移,新坐標系的坐標原點為點云的重心μ,平移變換后得到點云新的3×m矩陣Xμ。通過構造協方差矩陣covX,并獲得covX最大特征值對應的特征向量,進一步構造正交且滿足右手系規則的旋轉變換矩陣R;使用旋轉變換R對Xμ進行旋轉變換,得到Xout。Xout為先平移再旋轉變換后包含所有點坐標的3×m矩陣。如圖8所示,為PCA變換的概念及其結果,其中“·”為變換前的點云,“*”為變換后的點云。PCA變換后,點云的重心為新坐標系原點并且主成分方向與原坐標系X坐標軸方向一致。
Xμ=X-μ
(3)
(4)
Xout=R×Xμ
(5)

模板點云Ω0及目標點云Ω1,是都經過PCA變換后的點云(此時模板點云Ω0及目標點云Ω1都是在各自的重心坐標系下進行描述的),再進一步進行ICP匹配,即可得到最終的三維點云位姿匹配結果。ICP匹配過程如下:
(1)采用最近距離原則得到模板點集M= {qi}(i=1,2,3,…,L)與目標點集S= {pj}(j=1,2,3,…,K)中對應點關系,得到一一配對的點的集合{(q1,p1);(q2,p2);…;(qi,pi)…;(qN,pN)}。圖9中“·”為目標點集S,“*”為模板點集M,連線表示點之間的配對關系。配對后N≤min(L,K)。R,T為目標點集與模型點集之間的旋轉變換矩陣與平移變換矩陣。

(2)分別求配對后的模型點集M與目標點集S,點云的重心坐標CM、CS;pi經過R矩陣變換后的新的位置為pi′;令ICP所求變換匹配中的平均配對距離為E;ICP迭代的目的是求出R使得E最小。
(6)
(7)
(8)
(9)
(3)由數學推導[17]可知,求旋轉變換矩陣R使得E最小,可轉換為求旋轉變換R使得R×G矩陣的跡最大;其中G=P×QT,P為第i列為pi-CS構造的矩陣,Q為第i列為qi-CT;
P=[p1-CSp2-CS…pN-CS]
(10)
Q=[q1-CMq2-CM…qN-CM]
(11)
G=P×QT
(12)
f(R)=Tr(R×G)
(13)
通過奇異值分解得到G矩陣的U,V,W;
[U,V,W]=svd(G)
(14)
(4)使得f(R)最大的旋轉變換R為:
R=W×UT
(15)
(5)平移變換T為:
T=CM-R×CS
(16)
(6)通過上述所計算的旋轉變換R以及平移變換T,變換更新目標點集S;
ρi′=R×pi+T
(17)
pi=ρi′
(18)
(7)判斷(2)中E是否小于閾值以及迭代次數是否大于設定值,否則重復以上步驟。
本試驗的抓取對象為如圖10所示的白色包裝瓶。該目標工件的二維圖像有著良好的邊緣特性。首先進行雙目視覺系統中左相機采集圖像并進行邊緣分割,以便能夠區分并標記單個個體。對如圖10所示的圖像進行邊緣處理的結果如圖11所示。


經過圖像邊緣處理后的圖像,往往存在如圖12所示的邊緣斷裂現象,對于采用連通域法來進行物體的分割是十分不利的,必須進行有效的邊緣修補。


本文采用的方式為:對邊緣圖像,利用高斯模板進行濾波,對于靠近黑色像素的白色像素會計算一個高斯值,使得白色像素灰度值降低。邊緣圖像應用高斯模板后,再進行二值化,增大了邊緣線的寬度,有效的填補了邊緣算子計算時所導致的局部斷裂。圖13、圖14為應用高斯濾波模板以及二值化處理后的局部以及整體邊緣圖像。由圖14可以看出,經過處理后的圖像已經能較好分割不同工件二維成像區域。


邊緣分割只是將二維圖像劃分為不同的區域,并不能判定該區域是否為工件二維成像區域。在相機視野中,由于邊框、燈光、工件邊界交錯均會產生局部分割區域。為了減少三維匹配運算量,應盡可能的刪除面積過大或者過小的連通域。通過對面積篩選后的連通域進行標記,得到圖15所示的圖像。
通過圖15的單個聯通區域的二維圖像,標記雙目測量中的三維點云,如圖16所示。將被標記區部分的點云數據單獨取出,進行PCA變換操作。在圖17中,PCA變換將任意姿態下的點云數據變換為點云主成分方向與測量坐標系方向一致。將PCA變換后的點云與模型點云進行ICP運算,得到ICP變換矩陣。圖18為對單個目標工件進行ICP匹配的結果。通過PCA和ICP的計算步驟,即可得到目標相對于測量坐標系的變換矩陣。以此類推得到其他目標的姿態,將姿態顯示在測量點云中,獲得圖19的結果。




如圖20所示,通過搭建依靠格雷碼結構光和相位移結構光的雙目三維測量系統,實現了對散亂堆放工件場景的三維重建。為了能夠正確的將散亂件分割、并匹配目標工件的三維位姿,本文利用了散亂堆放工件的邊緣特性,首先在二維圖像上加以分割,得到目標工件的圖像區域,再利用光學幾何成像原理,以二維分割圖像為基準,對三維點云進行分割。

在計算散亂堆放的目標工件的姿態時,采用了PCA變換與ICP匹配的方式。通過分割后的點云以及模型點云的PCA變換與ICP匹配運算,得到散亂工件堆中可抓取工件集的三維位姿。并應用位姿匹配的結果,控制機器人執行抓取動作,實現散亂堆放工件的分揀工作。圖21為通過散亂工件三維視覺檢測結果控制六軸機器人進行散亂工件抓取的效果。