牛 晨,魯照權(quán),魯 飛
(合肥工業(yè)大學電氣與自動化工程學院,安徽合肥 230009)
工業(yè)化生產(chǎn)過程中,大部分工業(yè)機器人往往無法直接獲得工件的位姿信息,執(zhí)行抓取任務時一般都是采用人工示教的方式,抓取位姿與工件位姿都需要預先規(guī)定。但當工件的位姿因為不確定因素發(fā)生變動時,會產(chǎn)生抓取誤差[1]。近年來,隨著機器視覺技術(shù)的發(fā)展,人們利用機器視覺技術(shù)對工件進行定位,并將工件的視覺信息傳輸給機器人,讓機器人具有“感知能力”進而完成定位和抓取任務。雙目視覺技術(shù)是機器視覺的重要組成部分,當抓取任務需要目標物空間位姿時,不同于單目視覺只能獲取目標的二維信息,雙目視覺具備獲取目標三維信息的能力。
本文利用目標物的點、線特征及其本身幾何約束建立一種基于雙目視覺的空間位姿求解模型。該模型可分為5部分:雙目攝像機標定、目標檢測、特征點提取、立體匹配、位姿計算。利用SURF算法旋轉(zhuǎn)和尺度不變性[2]搜索匹配模板以檢測目標物所在區(qū)域。位姿檢測的重點在于如何提取出目標物上的特征點,特征角點的檢測精度將直接影響到目標物空間位姿的估算精度。而一般的角點檢測算法如Harris角點檢測算法存在誤檢和漏檢情況[3],檢測精度不高。本文對目標區(qū)域進行邊緣檢測[4],利用霍夫變換提取特征邊緣,求解直線交點擬合出目標物的特征點,提升了角點的檢測精度。采用基于灰度函數(shù)的雙向區(qū)域匹配算法[5],對左右兩圖像所檢測出來的特征角點進行雙向確認,有效減少了誤匹配的發(fā)生。
最后結(jié)合雙目視覺模型建立圖像特征角點像素坐標與用戶坐標間的映射關(guān)系計算目標物在用戶坐標系下的位姿信息。
機械臂抓取箱體工件的位姿需要知道其在用戶坐標系的位置范圍及相對朝向。對于箱體工件而言,由于其本身的幾何約束,只需要求出工件表面的特征點坐標,經(jīng)過計算便可確定其位姿信息[6],位姿計算示意圖如圖1所示。
圖1 位姿計算示意圖
在圖1中,O-XYZ為用戶坐標系,P1、P2、P3為箱體工件平面上的角點。P4為與P1、P2、P3異面的點。以這4個點建立目標物坐標系O′-X′Y′Z′,經(jīng)過平移、旋轉(zhuǎn)操作使目標物坐標系與用戶坐標系重合,可得到目標物坐標系繞用戶坐標軸的旋轉(zhuǎn)參數(shù)(θx,θy,θz)。
工件特征角點Pi在用戶坐標系的坐標Pi=(xi,yi,zi),將2坐標系重合可分為4個步驟:
(1)通過平移使兩坐標系原點重合,平移向量為t,平移后各特征角點用戶坐標為
(1)
特征角點的新坐標為
(2)
(3)
當θy為負時,令θy=π+θy。
(3)在步驟(2)的基礎上繞用戶坐標系X軸旋轉(zhuǎn)角度θx,使目標物坐標系Z′軸與用戶坐標系Z軸重合,旋轉(zhuǎn)矩陣為
特征角點的新坐標為
(4)
(5)
(4)在Z′坐標軸與Z坐標軸重合后,繞用戶坐標系Z軸旋轉(zhuǎn)角度θz便可使兩坐標系重合,旋轉(zhuǎn)矩陣為
特征角點的新坐標為
(6)
(7)
(θx,θy,θz)反映了工件相對于用戶坐標的位姿角度。此外,用箱體工件的重心坐標(xM,yM,zM)表示工件的總體位置,公式如式(8)。
(8)
攝像機的線性成像模型如圖2所示。
圖2 線性成像模型
空間點P的用戶坐標為(XW,YW,ZW)與投影點p像素坐標(u,v)映射關(guān)系如式(9)所示。
(9)
式中:M1屬于相機內(nèi)參數(shù),由fx,fy,u0,v0決定;M2屬于相機外參數(shù),由旋轉(zhuǎn)矩陣R和平移向量T決定。
將內(nèi)外參數(shù)矩陣合并,并將左、右2個相機線性模型聯(lián)立可有:
將其消元整理后,可得到左、右相機像素坐標與用戶坐標的映射關(guān)系:
(10)
通過張正友標定法[8]得到參數(shù)矩陣中的參數(shù)。在拍攝過程中,可能存在誤差和噪聲,一般取式(10)的最小二乘解作為理論值。通過該映射關(guān)系,便可用空間點P在左、右相機中的像素坐標估算出其用戶坐標(XW,YW,ZW)。
空間位姿檢測流程如圖3所示。
工件所處的環(huán)境一般比較復雜,對所拍攝的圖片進行目標檢測有利于甄別目標并檢測目標所在區(qū)域,減小后續(xù)圖像處理的計算量。經(jīng)典的目標檢測算法如采用基于HSV空間的目標識別方法[9]在目標物顏色并不鮮明時,檢測效果并不理想,且受光照影響較大。SURF算法是基于SIFT算法的基礎上提出的一種改進算法。其在特征點的提取和匹配速度方面達到近乎實時的水平?;赟URF算法檢測分離目標區(qū)域具體步驟如下:
(1)在單一背景下,目標物每旋轉(zhuǎn)45°,左攝像頭便采集1幅圖片,手動標記目標物輪廓,建立離線目標物圖片模板庫。
(2)采集場景圖片,并與模板庫中的圖片用SURF算法逐一匹配,設定檢測閾值(本文閾值設為7)。特征點匹配個數(shù)超過這一閾值則認為找到目標物,否則繼續(xù)與模板庫下一張圖片匹配直至搜索完成。若直至最后仍未超過閾值則認為目標物不在此場景中。模板匹配效果如圖4所示。
圖4 模板匹配
(3)由匹配成功點求解模板圖片與場景圖片間的單應矩陣[10],將模板圖片的4個頂點坐標由單應矩映射到場景圖片中,獲得映射坐標A(xA、yA)、B(xB、yB)、C(xC,yC)、D(xD,yD)。以(xmin,ymin)為矩形的左上頂點坐標,(xmax,ymax)為矩形右下頂點坐標截取目標區(qū)域。其中xmax、xmin、ymax、ymin分別表示A、B、C、D映射像素坐標橫坐標的最大值、最小值和縱坐標的最大值、最小值。檢測效果如圖5所示。窗口截取區(qū)域即為目標區(qū)域。
圖5 目標區(qū)域截取
確定目標物所在區(qū)域后,為了獲得箱體工件特征點的像素坐標,需要對目標區(qū)域做相應處理,處理步驟包括邊緣檢測、直線檢測和特征直線篩選。
邊緣檢測的目的是為了提取目標物的幾何輪廓,本文采用經(jīng)典Canny算法。當目標物因光照和遮擋等原因使圖像出現(xiàn)亮度低和對比度低等情況時,Canny算法的檢測效果并不理想。適當增強圖像的對比度,使得目標物與背景顏色對比更為明顯以便適度增大Canny算法梯度閾值以去除無關(guān)邊緣和噪聲干擾。對圖5中目標區(qū)域邊緣檢測效果如圖6所示。
圖6 目標物邊緣檢測
檢測出目標物的邊緣輪廓后,利用霍夫變換[11-12]以提取特征直線。
一條特征直線可能對應霍夫變換檢測出的多條線段。為了檢測結(jié)果的準確性,要根據(jù)實際情況選擇兩點之間的距離閾值(小于此閾值則認為這兩點屬于同一條線段)、線段長度閾值(大于此閾值則返回該線段參數(shù))?;舴蜃儞Q檢測的直線會有多條,需要從中篩選出特征直線。特征直線的篩選需滿足以下條件:
(1)線段是目標物與背景的分界線,一側(cè)像素為背景色,一側(cè)像素偏目標物表面顏色?;叶忍荻炔町愝^大,屬于強邊緣。
(2)雖然目標物上各條平行的棱在圖片上不會嚴格平行,但其θ值差異不會過大,如圖6中線段1、2、3的θ值相近。因此以強邊緣特征直線θ值為基準,設置偏差閾值,經(jīng)多次試驗,閾值取±15°時篩選的特征直線較為可靠?;舴蜃儞Q檢測特征直線效果如圖7所示。
圖7 霍夫變換直線篩選
篩選出特征直線后,為了防止直線處于垂直狀態(tài)時斜截式無法表示,直線應用兩點式表示。計算它們的交點坐標。
用上述方法對左、右圖像做同樣處理,得到各候選特征點的左、右圖像像素坐標。
立體匹配的目的是為了確定左右圖像中的特征點的對應關(guān)系[13]。利用霍夫變換檢測直線進而擬合出特征角點計算工件的位姿,僅需利用特征點像素周圍的局部信息計算匹配代價,匹配左、右圖像中所檢測出的特征點。同時,局部立體匹配算法相較于其他立體匹配算法,具有計算復雜度低,時間效率高的優(yōu)點[14]。采用雙向灰度相關(guān)匹配,對一個匹配特征點進行雙向確認,以減少誤匹配的發(fā)生。
特征點立體匹配流程圖如圖8所示。
圖8 特征點立體匹配流程圖
考慮相機的安裝偏差因素,圖像的搜索區(qū)域高度設置為[vk-5,vk+5],寬度為[uk-d,uk+d]。d表示圖像寬度的1/4,灰度相關(guān)函數(shù)[15]為
(11)
由式(11)計算出的相關(guān)分值區(qū)間為[-1,1],匹配窗口完全相似時分值為1,完全不相似時分值為-1。取n=m=5,匹配閾值設為0.85。
本文采用張正友標定法對2個攝像頭分別進行標定。標定物為標準棋盤格,左、右攝像頭內(nèi)外參數(shù)標定結(jié)果見表1、表2。
表1 左攝像頭內(nèi)外參數(shù)表
表2 右攝像頭內(nèi)外參數(shù)表
為便于測量工件角點實際坐標,工件均水平放置。本文共進行了30組實驗,從中選取3組P1~P4坐標實驗數(shù)據(jù)見表3。
表3 位姿檢測實驗數(shù)據(jù)表 mm
表3(續(xù))
實驗所用工件長a=150 mm,寬b=100 mm,高h=40 mm,利用式(12)可以計算得出抓取平面各邊的理論長度,進而得到其與實際長度的誤差。其對比見表4。
表4 抓取平面邊長與實際邊長對比 mm
(12)
由表4可知本文測量模型得到的抓取平面各邊理論邊長與實際邊長相差很小,其平均誤差不超過1mm。
根據(jù)表3實驗數(shù)據(jù)可計算得出用戶坐標系下工件重心位置坐標和工件姿態(tài)角度。其重心坐標理論值和實際數(shù)據(jù)對比見表5。
表5 重心坐標理論值與實際值對比 mm
由表5可知重心理論坐標與實際坐標最大平均誤差為1.57 mm,不超過2 mm,滿足誤差要求。
工件在用戶坐標系下姿態(tài)角理論值與實際值對比見表6。
表6 姿態(tài)角理論值與實際值對比 (°)
由于工件均是水平放置,θx、θy理論上為0°。本文測量模型計算的θx、θy均接近于0°,且θz理論值與實際值最大誤差為3.33°,不超過4°,滿足誤差要求。
實驗中,特征點與相機間的深度距離與其橫坐標成正比,與縱坐標成反比。當把工件重心的縱坐標分別設置為0、25、50、75、100 mm時,工件重心坐標Z值的絕對誤差與橫、縱坐標間的關(guān)系如圖9所示。
圖9 不同位置下三維坐標Z的誤差
由圖9可以看出,Z的絕對誤差隨著深度距離的增大,總體呈增大趨勢。且誤差的波動幅度隨著深度距離的增大而變大。
本文建立了一種基于雙目視覺的箱體工件空間位姿檢測模型。該位姿檢測模型結(jié)構(gòu)簡單,易于實現(xiàn)。在目標檢測部分,采集目標物在不同角度下的圖片建立模板庫,再對場景圖片利用SURF算法搜索匹配該模板庫,結(jié)合匹配結(jié)果確定不同場景下目標物所在區(qū)域;在特征點提取部分,利用霍夫變換擬合提取特征點,減小了角點的檢測誤差。最終,結(jié)合雙目視覺原理,實現(xiàn)了目標的識別和位姿檢測。為后續(xù)機械臂執(zhí)行抓取任務奠定了基礎。實驗結(jié)果顯示重心坐標平均檢測誤差不超過2 mm,姿態(tài)角度檢測誤差不超過4°,驗證了該方法的可行性。