蘇 波,鄭孟州
(河南理工大學(xué)電氣工程與自動(dòng)化學(xué)院,河南 焦作 454000)
機(jī)器視覺具有信息量大、精度高、檢測范圍廣等特點(diǎn)[1],可以有效提高生產(chǎn)系統(tǒng)的效率和柔性,已被廣泛應(yīng)用于各領(lǐng)域。但是傳統(tǒng)的機(jī)器視覺系統(tǒng)受限于工業(yè)現(xiàn)場的環(huán)境條件,獲取的圖像需要經(jīng)過一系列的圖像處理才能使用,增加了系統(tǒng)的復(fù)雜性,且魯棒性差。隨著近二十年設(shè)備和技術(shù)的發(fā)展,3D視覺已成為機(jī)器視覺領(lǐng)域發(fā)展的焦點(diǎn)[2]。
三維激光掃描智能傳感器以精度高、速度快、抗干擾性強(qiáng)的方式作業(yè),對物體發(fā)射激光束,獲取大量點(diǎn)云數(shù)據(jù),對點(diǎn)云數(shù)據(jù)進(jìn)行處理、建模可快速還原物體的真實(shí)面貌[3],已成為視覺系統(tǒng)中常用的方法。3D智傳感器集激光器、傳感器和測量軟件于一身,具有運(yùn)行穩(wěn)定可靠,維護(hù)方便簡單,運(yùn)行和構(gòu)建成本低廉等特點(diǎn)[4],可用于三維位姿智能化測量。
基于上述原因,本文提出利用智能傳感器獲取工件位姿的方法。
該方法利用三維視覺技術(shù),利用表面匹配技術(shù)在點(diǎn)云構(gòu)建的模型中匹配獲取工件位姿。結(jié)果表明,該方法能夠智能化識別工件獲取位姿信息,能較好應(yīng)用于工業(yè)現(xiàn)場。
單目視覺系統(tǒng)的三維位姿智能化測量已成為工業(yè)自動(dòng)化的主要發(fā)展方向[5]。為了滿足柔性裝配系統(tǒng)對工件位姿的感知力,適應(yīng)智能化生產(chǎn)系統(tǒng),搭建了工件位姿檢測系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
該系統(tǒng)的硬件主要包括智能傳感器、工件傳送平臺、數(shù)據(jù)傳輸線和I/O線、轉(zhuǎn)換器及上位機(jī)。智能傳感器選用Gocator2350。該3D傳感器把2D相機(jī)、鏡頭、激光器、標(biāo)定算法集成在一起,出廠前標(biāo)定完畢,開箱即可用于測量,開發(fā)周期較短。轉(zhuǎn)換器選用HF150W-S-48,并采用符合傳感器使用要求的系統(tǒng)和瀏覽器計(jì)算機(jī)。根據(jù)傳感器的參數(shù)表,調(diào)整架設(shè)高度并完成傳感器的安裝和接線,其他硬件按照相應(yīng)的技術(shù)要求安裝連接。完成相應(yīng)的連接后,進(jìn)行編碼器和平臺校準(zhǔn),并在 Web 應(yīng)用界面上設(shè)置好曝光值、采集間距、有效區(qū)域等各類相關(guān)參數(shù),即可以開始進(jìn)行圖像的采集[6]。
HALCON是德國MVTec公司開發(fā)的一套完善的標(biāo)準(zhǔn)機(jī)器視覺算法包,擁有應(yīng)用廣泛的機(jī)器視覺集成開發(fā)環(huán)境。它能節(jié)約產(chǎn)品的成本,縮短軟件的開發(fā)周期,在歐洲及日本的工業(yè)界是公認(rèn)的具有極佳效能的機(jī)器視覺軟件。它是一套圖像處理庫,由多個(gè)各自獨(dú)立的算子以及底層的數(shù)據(jù)管理核心構(gòu)成[7]。HALCON支持Windows、Linux和Mac OS X操作環(huán)境,它保證了投資的有效性。整個(gè)函數(shù)庫可以用C、C++、C#、Visual Basic和Delphi等多種普通編程語言訪問。HALCON為大量的圖像獲取設(shè)備提供接口,保證了硬件的獨(dú)立性。進(jìn)行開發(fā)時(shí),在 HALCON 圖像處理軟件的 HDevelop 環(huán)境下進(jìn)行開發(fā)會相對比較容易,代碼的執(zhí)行速度也比較快。所以HALCON成為目前業(yè)內(nèi)功能最完善、效率最高的軟件之一,已被廣泛應(yīng)用于工業(yè)生產(chǎn)中的各個(gè)方面,如汽車制造、公路檢測、包裝檢測、電子器件加工等領(lǐng)域。
3D表面被認(rèn)為是表示和識別三維對象的最有前景的工具之一。而表面匹配是三維計(jì)算機(jī)視覺領(lǐng)域的基本技術(shù)。因此,三維表面匹配被廣泛應(yīng)用于三維物體識別、檢索、分類等[8-9]。對于兩個(gè)給定的三維表面,一個(gè)模板表面為M(x,y,z),另一個(gè)搜索表面為S(x,y,z)。二者具有重疊的區(qū)域O(x,y,z),且O=MIS。一般采用七參數(shù)空間相似性變換模型描述兩個(gè)獨(dú)立的3D坐標(biāo)系的外部變換關(guān)系,假設(shè)模板上任意點(diǎn)P(x,y,z),對應(yīng)搜索表面共軛點(diǎn)為O(x′,y′,z′),且P、Q應(yīng)滿足P∈(MIO),Q∈(SIO),則Q=t+mRP,即:
(1)
式中:tx、ty、tz為沿坐標(biāo)軸方向的三個(gè)平移分量,像素(Px);φ、ω、k為繞坐標(biāo)軸旋轉(zhuǎn)的三個(gè)角度參數(shù),(°);m為空間坐標(biāo)系尺度[9]。
表面匹配的目標(biāo)是尋找M(x,y,z)和S(x,y,z)之間空間幾何變換關(guān)系的正形變換參數(shù)T,使得:
S(x,y,z)=T{M(x,y,z)}
(2)
為了獲得正形變換T,引入隨機(jī)真誤差向量V(x,y,z),使得:
V(x,y,z)=S(x,y,z)-M(x,y,z)
(3)
求解上述方程,即可確定正形變換參數(shù)T。設(shè)P、Q,則:
D=(x-x′)2+(y-y′)2+(z-z′)2
(4)
理論上,匹配完成后共軛點(diǎn)間距平方和值D為0,但是通常情況下不能達(dá)到理論值,而且點(diǎn)云數(shù)據(jù)計(jì)算比較復(fù)雜。使用HALCON中的算子則可以很好地解決計(jì)算問題。
在構(gòu)建的試驗(yàn)平臺下,提出的適用于工業(yè)現(xiàn)場的智能傳感器的工件位姿獲取方法。首先利用智能傳感器獲取工件的三維點(diǎn)云數(shù)據(jù),然后通過獲取的信息構(gòu)建三維模型,最后通過3D表面匹配技術(shù)獲取工件的位姿。
①Gocator智能傳感器采集的圖片為16位的RGB圖。圖像的高度信息、灰度信息和參數(shù)信息分別保存在R、G、B三個(gè)通道中。運(yùn)用算子Go2GenTL_ParseData(Image,HeightMap,Intensity,frameCount,timestamp,encoderPosition,encoderIndex,inputs,xOffset,xResolution,yOffset,yResolution,zOffset,zResolution,width,height,hasIntensity)進(jìn)行圖像拆分,得到高度圖和灰度圖。各參數(shù)所代表的意義如下:Image為圖像,HeightMap為高度圖,Intensity為灰度圖,frameCount為幀計(jì)數(shù),timestamp 為時(shí)間標(biāo)志,encoderPosition為編碼器位置,encoderIndex為編碼器序列,inputs為輸入,xOffset為X方向偏移,xResolution為X方向分辨率,yOffset為Y方向偏移,yResolution為Y方向分辨率,zOffset為Z方向偏移,zResolution為Z方向分辨率,width為圖像寬,height為圖像高,hasIntensity為是否有灰度值。圖像的寬度和高度表示x和y軸的尺寸,每個(gè)3D點(diǎn)像素代表現(xiàn)實(shí)世界坐標(biāo)中的一個(gè)點(diǎn)。根據(jù)像素坐標(biāo)(Px,Py,Pz),計(jì)算世界坐標(biāo)(X,Y,Z):
(5)
工件位姿獲取方法流程如圖2所示。
圖2 工件位姿獲取方法流程圖
然而智能傳感器在獲得的參數(shù)信息中并沒有X圖像和Y圖像,只有校準(zhǔn)的深度圖像,即“Z圖像”可用。因此,可以創(chuàng)建對應(yīng)的X和Y圖像:X和Y圖像必須具有與Z圖像相同的尺寸。通過將Z圖像的列號分配給X圖像的每一行來創(chuàng)建X圖像,并且通過將Z圖像的行號分配給Y圖像的每一列來創(chuàng)建Y圖像,這樣創(chuàng)建的X、Y和Z圖像可以轉(zhuǎn)換成3D模型。
②通過上述方法獲得X、Y和Z圖像,而且X、Y和Z圖像已經(jīng)包含3D對象模型所需的信息。因此,可以使用運(yùn)算符xyz_to_object_model_3d,從X,Y和Z圖像中導(dǎo)出3D對象模型。
③create_surface_model表面模型是通過對具有一定距離的3D對象模型進(jìn)行采樣而創(chuàng)建的。采樣距離必須在參數(shù)采樣距離中指定。表面模型的創(chuàng)建要求3D對象模型包含點(diǎn)和法線,而上述方法利用xyz_to_object_model_3d算子構(gòu)建3D模型,再創(chuàng)建的表面模型中則包含點(diǎn)和2D映射信息。通過上述方法構(gòu)建的表面模型如圖3所示。
圖3 表面模型
④通過運(yùn)算符find_surface_model,在3D場景ObjectModel3D中查找表面模型SurfaceModelID的最佳匹配。找到的對象實(shí)例的3D姿態(tài)在Pose中返回。運(yùn)算符find_surface_model(::SurfaceModelID,ObjectModel3D,RelSamplingDistance,KeyPointFraction,MinScore,ReturnResultHandle,GenParamName,GenParamValue:Pose,Score,SurfaceMatchingResultID)參數(shù)如上所示。算子的匹配過程分為三個(gè)步驟。
首先,從ObjectModel3D中傳遞的場景中統(tǒng)一采樣點(diǎn)。采樣結(jié)果可由參數(shù)RelSamplingDistance和KeyPointFraction控制。RelSamplingDistance為采樣距離,KeyPointFraction為關(guān)鍵點(diǎn)比例。減小采樣距離和增加關(guān)鍵點(diǎn)比例,會降低匹配速度,但可以獲得更穩(wěn)定的匹配效果。反之,則會降低匹配穩(wěn)定性提高匹配速度,可以利用這兩個(gè)參數(shù)來尋找合適的穩(wěn)定與速度結(jié)合的匹配方案。對于每個(gè)選定的關(guān)鍵點(diǎn),通過將關(guān)鍵點(diǎn)與所有其他采樣場景點(diǎn)配對,找到表面模型上具有相似距離和相對方向的點(diǎn)對來計(jì)算表面模型的最佳姿態(tài)。對象上采樣的場景點(diǎn)數(shù)量被認(rèn)為是姿勢的得分。
其次,稀疏姿態(tài)細(xì)化。將前一步中找到的近似姿態(tài)進(jìn)一步細(xì)化,這增加了姿勢的準(zhǔn)確性和分?jǐn)?shù)值的重要性。稀疏姿態(tài)細(xì)化使用來自近似匹配的采樣場景點(diǎn)。姿態(tài)被優(yōu)化,使得從采樣的場景點(diǎn)到最近的模型點(diǎn)的平面的距離是最小的。
最后,密集的姿勢細(xì)化。準(zhǔn)確地細(xì)化前面步驟中找到的姿勢。此步驟與稀疏姿態(tài)細(xì)化類似,并將場景點(diǎn)與最近模型點(diǎn)的平面之間的距離最小化。不同之處在于,只有前一步得分最高的才會被提煉,而且ObjectModel3D中傳遞的場景中的所有點(diǎn)都用于細(xì)化,從場景中取得所有點(diǎn)提高了細(xì)化的準(zhǔn)確性。
完成系統(tǒng)的構(gòu)建后,對上述工件位姿獲取方法進(jìn)行了試驗(yàn)驗(yàn)證。仿真試驗(yàn)從智能傳感器采集的在不同場景中工件的位姿信息建立場景,并從中隨機(jī)選取5個(gè)場景進(jìn)行匹配試驗(yàn)分析。在各場景中獲得的匹配結(jié)果如圖4所示,表面匹配獲得的工件位姿數(shù)據(jù)如表1所示。
圖4 匹配結(jié)果
場景X軸平移 Y軸平移 Z軸平移 X軸旋轉(zhuǎn) Y軸旋轉(zhuǎn) Z軸旋轉(zhuǎn) 119.414126.27310.571 00.022354.852121.2612-48.260-173.69411.366 3355.716359.6763.0693130.205-163.02712.334 6357.8502.974323.1374120.135-17.345-12.530 75.205 17353.732327.9325153.675-47.49613.425 4357.4194.230327.361
本文以專業(yè)的機(jī)器視覺處理軟件HALCON為平臺,配合使用3D智能傳感器Gocator2350,提出了智能傳感器位姿獲取方法。該方法利用智能傳感器獲取工件表面點(diǎn)云數(shù)據(jù),并利用數(shù)據(jù)構(gòu)建表面模型,最后通過3D表面匹配的方法獲取場景中工件的位姿。仿真試驗(yàn)表明,該方法可以有效排除工業(yè)現(xiàn)場環(huán)境因素的干擾,獲取準(zhǔn)確的位姿數(shù)據(jù),具有較好的工業(yè)應(yīng)用價(jià)值。