馬超,曹國華,2,丁紅昌,2
(1.長春理工大學(xué)機電工程學(xué)院,吉林長春 130022;2.長春理工大學(xué)重慶研究院,重慶 401135)
近年來,隨著工業(yè)自動化程度的不斷加深,通過工業(yè)機器人進行自動化裝配已經(jīng)逐漸代替人工裝配。而軸孔裝配在自動化裝配中占有主要的地位,由于軸孔裝配要求的精度較高,所以對待裝配工件上的圓孔參數(shù)測量與定位在軸孔裝配中是尤為重要的一步。
相比于傳統(tǒng)的檢測方法,基于視覺的孔測量與定位方法具有操作靈活、低成本、無需接觸工件、不損傷工件等優(yōu)點。LYU等[1]將一維單應(yīng)性應(yīng)用于圓姿態(tài)測量,該方法可以將線性求解結(jié)果優(yōu)化,但此方法對噪聲的魯棒性不佳,所以不能將此方法應(yīng)用于實際復(fù)雜的工作場景中。LI等[2]通過單目視覺測量系統(tǒng)測量孔位姿,但是單目視覺測量系統(tǒng)對于深度的測量穩(wěn)定性與精度均不是很理想。李振[3]利用雙目立體視覺、三維重建等方法對孔位姿進行測量,但是在橢圓檢測時若獲得的圓孔輪廓為不完整輪廓,該算法就會失效。WU等[4]針對金屬零件弱紋理的特點,采用了錐退化的方法來測量圓形工件位姿,最后實現(xiàn)六自由度機器人對工件實施抓取,但是應(yīng)用該方法若光照與圖像分辨率選擇不當(dāng),則會導(dǎo)致橢圓擬合時產(chǎn)生一定的誤差,并且無法將其應(yīng)用到高精度的軸孔裝配上。LIU等[5]針對三維柔性視覺檢測系統(tǒng),提出了一種基于結(jié)構(gòu)光視覺傳感器的兩步空間圓定位方法,但該方法僅獲得圓的中心位置,無法確定方向。XIA 等[6]提取孔邊緣并利用其邊緣點對圓孔進行三維重建,得到圓孔位姿。LIN等[7]提出一種基于視覺的位姿估計方法定位工業(yè)機器人工作空間中軸孔。JIANG 等[8]采用雙目立體視覺對空間孔三維重建,實現(xiàn)機器人軸孔裝配自動化。KORTA等[9]使用OpenCV庫搭建了工業(yè)機器人的電路裝配視覺系統(tǒng)。綜上所述,基于立體視覺的孔位姿與法向檢測雖然取得了一定的成就,但是針對金屬弱紋理工件匹配點稀疏的情況與在邊緣殘缺情況下檢測橢圓時算法的魯棒性仍然有待提升。
本文作者將以弱紋理的金屬孔板工件為研究對象,基于工業(yè)六軸機器人,針對上述問題,提出一種在立體視覺極線約束下的圖像引導(dǎo)孔位姿與法向的檢測方法。首先對兩幅圖像進行橢圓輪廓檢測,然后利用極線約束找到兩幅圖像中對應(yīng)的輪廓匹配點,得到視差關(guān)系,最后進行三維重建。
此檢測系統(tǒng)在采集完圖像后,首先通過雙目標(biāo)定得到的相機參數(shù)對雙目圖像進行立體校正,然后通過文中所提出的基于弧段的橢圓檢測算法提取圓孔邊緣輪廓,接著通過SURF+RANSAC的算法對雙目圖像粗匹配,得到雙目圖像的基礎(chǔ)矩陣,進一步通過極線約束的精立體匹配獲得精準(zhǔn)的視差信息,最后根據(jù)雙目三角幾何原理,進行三維重建,計算得到孔工件位姿。具體檢測流程如圖1所示。
圖1 圓孔位姿檢測工作流程
由于相機在成像過程中,會出現(xiàn)相機光軸不在圖像的中心和相機在X、Y方向的縮小系數(shù)無法保持一致的問題,故需對相機進行標(biāo)定,得到相機的內(nèi)參數(shù)與畸變系數(shù)來對圖像校正。另一方面,文中是通過平行移動機械臂帶著單目工業(yè)相機獲取雙目圖像,由于機械臂重復(fù)定位精度有限,所以需要對雙目圖像進行立體標(biāo)定,得到外參數(shù)來得到精確的極線距離,并且還可以用得到的外參對雙目圖像進行立體校正,使得雙目圖像的對應(yīng)點在同一水平線上,即2個像平面完全對準(zhǔn),以保證后續(xù)處理圖像得到的視差信息更加準(zhǔn)確。
因為圖像在穩(wěn)定光照環(huán)境下采集,所以在提取圖像邊緣輪廓前僅需要采用高斯濾波對圖像中的高斯噪聲進行濾除即可。之后,利用由Qtsu改進的自適應(yīng)閾值Canny算子獲取圖像中的邊緣點。并且,在邊緣檢測過程中可以得到邊緣點水平方向梯度值Gx與垂直方向的梯度值Gy,邊緣點的坐標(biāo)(x,y)。將所有邊緣點都定義為Pi=(xi,yi,θi),i=1,2,…,n。并且將邊緣點按照式(1)進行分類,同時剔除Gx=0或Gy=0的邊緣點。
(1)
然后通過搜索在邊緣點Pi的八鄰域中是否存在與其同類別的邊緣點Pi+1,直到出現(xiàn)不同類別的邊緣點或者邊緣點鄰域內(nèi)不存在其他邊緣點時結(jié)束搜索,形成弧段ζ并對弧段進行去偽?;《翁崛×鞒倘鐖D2所示。
圖2 弧段提取流程Fig.2 Arc segment extraction process
其中圖2中的弧段α去偽方法為:通過計算弧段上邊緣點的弓弦比σ,若弧段α上存在弓弦比σ大于設(shè)定閾值T的邊緣點時,保留該弧段,否則當(dāng)作偽弧段剔除。圖3所示為弧段α上邊緣點的弓弦比示意。
圖3 弧α弓弦比示意Fig.3 Arc α schematic of bowstring ratio
若弧段α上存在一邊緣點為Pi(x0,y0),弧段兩端點為L(x1,y1)、R(x2,y2),則邊緣點Pi處的弓弦比σ可由式(2)計算得出。通過理論分析與實驗檢測,文中設(shè)定弓弦比閾值為0.125。
(2)
(3)
在得到Ⅰ、Ⅱ、Ⅲ、Ⅳ 4種類別的弧段后,通過式(4)可得到橢圓輪廓的弧段三元組。
(4)
其中:ζa、ζb、ζc表示3條不同的弧段;Ⅰ、Ⅱ、Ⅲ、Ⅳ為弧段分類中的4種類別。橢圓平行弦中線定理:橢圓平行弦的中點共線,且該線經(jīng)過橢圓中心。如圖4所示:在2條弧段上做2組平行弦,將2組平行弦中點連接成2條直線,2條直線相交點即為橢圓中心。通過理論分析與實驗測試,設(shè)定2條弧段之間的平行弦數(shù)量閾值應(yīng)不少于16。
圖4 平行弦定理求橢圓中心示意
通過上述過程已經(jīng)得到橢圓的中心坐標(biāo)(Ox,Oy),還剩下橢圓長軸a、短軸b、傾斜角θ3個參數(shù)。因為橢圓中心在長軸所在的直線上,設(shè)長軸的斜率為ka,根據(jù)式(5)便可以得出其直線方程:
kaX-Y+(Oy-kaOx)=0
(5)
若在弧段上存在點P(x0,y0),則點P到長軸所在直線的距離d可由式(6)計算得出:
(6)
根據(jù)橢圓相關(guān)幾何知識可知,橢圓的長軸將會平分與其垂直的弦。通過式(6)可以得到弦兩端點到長軸的距離,以此判斷該弦是否被長軸平分。若存在多條這樣的弦,則該假設(shè)的長軸斜率正確,否則需換一個新的斜率重復(fù)上述過程。
在確定長軸的斜率后,也就確定了橢圓的傾斜角θ,并且還可以通過kakb=-1計算得出短軸b的斜率kb。
在得知上述參數(shù)后,在長軸上以橢圓中心點為分界線,在中心點兩側(cè)選取焦點F1、F2。再任取弧段上的一點M,則根據(jù)式(7)即可得到半長軸α與半短軸β的長度:
(7)
式中:c為橢圓的焦距。
由于銀白色金屬工件存在弱紋理甚至無紋理的情況,這就導(dǎo)致了若使用傳統(tǒng)的SURF與RANSAC等算法進行立體匹配時,會出現(xiàn)匹配點稀疏、缺失重要特征點視差信息等問題。為了解決這種現(xiàn)象,文中將采用基于極線約束的立體匹配方法來解決以上述問題?;跇O線約束的立體匹配示意如圖5所示。
圖5 基于極線約束的立體匹配示意
如圖5所示,點a為空間中的某一點,點Ol與點Or分別是左右圖像的投影中心,二者之間的連線被稱為基線,平面aOlOr為極平面。點el與點er分別被稱為左極點與右極點,點al與點ar分別是空間點在左右投影平面上的投影點,而左投影點al與左極點el的連線叫做左極線,右投影點ar與右極點er的連線叫做右極線。基于極線約束立體匹配,就是將左右兩幅圖像上的投影點與極線的關(guān)系一一對應(yīng),將匹配點的匹配維度從二維平面搜索轉(zhuǎn)化為一維極線搜索上。這樣不僅能很好地克服弱紋理工件的匹配精度問題,還可以大幅提升匹配速度。
在進行基于極線約束的立體精匹配前,還需要求解出雙目圖像的基本矩陣。雖然通過SURF+RANSAC算法得到的雙目圖像匹配點比較稀疏,但是卻可以通過這些匹配點得到較為準(zhǔn)確的基本矩陣。然后再結(jié)合第1.2節(jié)中提取到的圓孔邊緣輪廓點的坐標(biāo)信息,通過極線約束求得兩幅圖像中的同名點坐標(biāo)。方法如下:
若已知左圖像上的一點D1,則D1對應(yīng)的右圖像上的極線L2可由式(8)來表示:
L2=F·D1
(8)
同理,若已知右圖像上一點E1,則E1在左圖像中對應(yīng)的極線L1可由式(9)表示:
L1=FT·E1
(9)
同時還可以得到左右圖像上任意對應(yīng)匹配點之間的轉(zhuǎn)換關(guān)系如式(10)所示:
(10)
其中每一條極線Li都是由(a,b,c)3個參數(shù)描述的,極線可以表示成式(11)的形式:
ax+by+c=0
(11)
根據(jù)左圖像中的一點P1求解出右圖像中對應(yīng)的極線后,由于點P1與在右圖像中的同名點P2的縱坐標(biāo)是相同的,所以只需要通過式(9)即可得到同名點P2的橫坐標(biāo)。
綜上所述,在得到左圖像或右圖像的橢圓輪廓上任意一點時,都可以通過上述的方法求得在對應(yīng)圖像上的精確匹配點,獲得精準(zhǔn)的視差信息。
在得到精準(zhǔn)的視差信息后,便可以運用雙目視覺模型中的三角幾何關(guān)系進行三維重建。平行雙目視覺模型如圖6所示。
圖6 平行雙目視覺模型Fig.6 Parallel binocular vision model
在圖6中點P(xc,yc,zc)為一三維空間點。左右兩幅圖像分別為機械手臂帶著單目手眼相機經(jīng)過水平移動獲取,(xleft,yleft)與(xright,yright)為空間點P在左右圖像上的投影坐標(biāo),yleft=yright=y,f為焦距,相機主點的像素坐標(biāo)為(x0,y0),B為基線長度,視差為:Ddisparity=xleft-xright。根據(jù)式(12)可計算出空間點P在相機坐標(biāo)系下的三維坐標(biāo)為
(12)
如圖7所示,在得到橢圓邊緣上若干邊緣點三維坐標(biāo)后,設(shè)3個邊緣點三維坐標(biāo)為A(x0,y0,z0)、B(x1,y1,z1)、C(x2,y2,z2)。則向量AB=(x1-x0,y1-y0,z1-z0)=(x3,y3,z3),向量AC=(x2-x0,y2-y0,z2-z0)=(x4,y4,z4)??梢杂嬎愕贸鰣A孔所在平面的法向量為:AB×AC=(y3z4-y4z3)i-(x3z4-x4z3)j+(x3y4-x4y3)k,而圓孔的軸線向量為:n=[(y3z4-y4z3),-(x3z4-x4z3),(x3y4-x4y3)]。
圖7 計算孔端面法線示意Fig.7 Schematic of calculating the normal of hole end face
求得圓孔軸線后便可計算得出圓孔位姿,計算過程如下式:
(13)
其中:α、β、γ分別是圓孔軸線向量與世界坐標(biāo)系xW、yW、zW的夾角。i=(1,0,0)、j=(0,1,0)、k=(0,0,1)分別為空間各坐標(biāo)軸的單位向量。
為了驗證文中所提出的基于工業(yè)機器人的圖像引導(dǎo)圓孔定位檢測方法的有效性與高精度。文中將搭建單目立體視覺系統(tǒng),并對平面直孔工件進行檢測驗證。系統(tǒng)硬件包括:(1)AUBO-I5六軸機器人,最大工作半徑為886.5 mm,定位精度可達到0.02 mm。(2)大恒MER-502-79U3M工業(yè)相機,分辨率為2 448像素×2 048像素,幀率為79幀/s。(3)相機鏡頭為50 mm定焦鏡頭。其中手眼相機的安裝方式為眼在手上。系統(tǒng)軟件程序平臺為Visual Studio 2017 C++與MATLAB2018a,其中在MATLAB上將實現(xiàn)雙目標(biāo)定、圖像立體校正等前期工作。而文中所提出的主要算法將由OpenCV在Visual Studio 2017上實現(xiàn)。系統(tǒng)構(gòu)成如圖8所示。
圖8 系統(tǒng)構(gòu)成Fig.8 System configuration
為了驗證文中提出的基于弧段的橢圓檢測算法在實際工作場景中應(yīng)用的性能與準(zhǔn)確性,文中將對所要檢測的孔板工件進行實驗。為了清晰地展示提取孔輪廓的過程與效果,圖9只展示孔板工件其中一個孔。圖9(b)為經(jīng)過Canny算子進行邊緣提取后的輪廓弧段圖像,其中包含了大量的短弧、直弧等偽弧。通過篩選候選弧段,得到了圖9(c),但是仍含有偽弧。圖9(d)為通過弓弦比的方法去偽后的輪廓弧段,圖9(e)為傳統(tǒng)的霍夫變換得到的橢圓擬合效果,圖9(f)為運用橢圓平行弦中線定理進行橢圓擬合的效果??梢钥闯觯河捎跈E圓輪廓的殘缺,傳統(tǒng)的霍夫變換算法擬合的橢圓遠離了真實的橢圓邊緣;而文中算法有效克服了由于邊緣殘缺而導(dǎo)致橢圓檢測算法失效的問題。并且還可以看到運用文中所提出的橢圓檢測算法得到的橢圓曲線十分接近圓孔的輪廓,可見文中算法行之有效。
圖10所示為AUBO-I5六軸機器人帶著手眼相機在2個水平位置采集的圖像,經(jīng)過SURF特征點檢測,再經(jīng)過RANSAC算法提純的效果圖。
圖10 立體匹配效果Fig.10 Stereo matching effect
經(jīng)過SURF特征點檢測與RANSAC算法誤配點提純后得到212對精確匹配點,但是大多數(shù)匹配點都分布在工件邊緣,而位于孔輪廓上的匹配點則寥寥無幾,匹配點示意如圖11所示。這將會導(dǎo)致關(guān)鍵視差信息缺失,影響后續(xù)三維重建工作。但是卻可以通過這些匹配點計算出兩幅圖像的基本矩陣,用于下面的基于極線約束的立體匹配。
圖11 SURF+RANSAC特征點檢測效果
通過計算基本矩陣與兩幅圖像中像素點的關(guān)系可以得到基本矩陣F為
通過上述獲得的圓孔輪廓邊緣點信息與雙目圖像的基本矩陣,進行基于極線約束的立體匹配。文中將在孔板工件中選取一排3個孔輪廓進行實驗,實驗效果如圖12所示。
圖12 基于極線約束的立體匹配效果
從圖12中可以看出:相比于傳統(tǒng)的SURF+RANSAC特征點檢測,對于金屬弱紋理孔工件,采用文中算法可以精確地得到孔輪廓上的若干匹配點,解決了由于弱紋理導(dǎo)致的匹配點稀疏、關(guān)鍵視差信息丟失的問題。
通過第2.2節(jié)中實驗得到的兩幅圖中對應(yīng)的孔輪廓點對,根據(jù)第1.4節(jié)中相關(guān)原理以及孔軸線的求解方法,文中對孔心間距30 mm且水平放置的孔板工件進行實驗,并對其中的以極線約束立體匹配后的3個孔輪廓進行三維重建,實驗效果如圖13所示。
圖13 圓孔輪廓三維重建效果
從表1—表2中可以看出:通過文中方法檢測得到圓孔工件參數(shù),誤差在1 mm以內(nèi);工件位姿參數(shù)誤差在0.3°以內(nèi)。
表1 重建孔位姿參數(shù)Tab.1 Reconstructed hole position parameters
表2 孔軸線向量與世界坐標(biāo)系的夾角
為了驗證文中方法的可靠性,對多組不同位姿的工件進行檢測。通過機器人末端執(zhí)行器得到的理論位姿與文中方法比較得出誤差曲線如圖14所示。
由圖14可知:x、y、z坐標(biāo)與孔心距的平均誤差分別為0.67、0.65、0.68、0.6 mm,最大誤差為1 mm;與世界坐標(biāo)系x、y、z夾角的平均誤差為0.22°、0.2°、0.21°,最大誤差為0.3°。綜上所述,文中所用的位姿檢測方法具有較高的精確度與可信度,實現(xiàn)了對圓孔的高精度定位。
圖14 位姿參數(shù)誤差
文中研究了一種基于工業(yè)機器人的圖像引導(dǎo)圓孔定位方法,實現(xiàn)了對圓孔工件參數(shù)與圓孔工件位姿的高精度檢測。提出一種基于弧段的橢圓檢測算法,之后通過基于極線約束的特征點匹配得到了準(zhǔn)確的雙目圖像匹配點,進而通過雙目平行立體模型進行三維點計算與三維重建。實驗分別驗證了孔輪廓提取的魯棒性,孔位參數(shù)與孔位姿檢測的精度,并利用孔心距、與世界坐標(biāo)系各軸夾角等參數(shù)進行精度評價。文中方法提升了對孔輪廓提取的魯棒性,提升了通過圖像引導(dǎo)進行參數(shù)與位姿檢測的精度。通過實驗表明,圓孔工件參數(shù)誤差可達到1 mm以內(nèi),位姿誤差可達到0.3°以內(nèi)。滿足目前工業(yè)領(lǐng)域?qū)o損檢測所需求的高效率、高精度等要求。