楊正華,朱健
(靖江市亞泰物流裝備有限公司,江蘇 靖江 214500)
球閥是生產(chǎn)、生活中不可或缺的一種零件(圖1),其應(yīng)用廣、需求大,在國民經(jīng)濟(jì)中占有舉足輕重的地位。閥芯裝配是球閥生產(chǎn)的后置工序,在球閥生產(chǎn)中占據(jù)重要的地位[1]。而目前國內(nèi)制造業(yè)仍然以傳統(tǒng)的人工方式目視方法進(jìn)行裝配,效率和精度低下,勞動強(qiáng)度大,無法滿足現(xiàn)代化智能制造的發(fā)展要求。為此研究高精度自動機(jī)器視覺裝配技術(shù)尤其必要。文獻(xiàn)[2]中基于Halcon系統(tǒng)標(biāo)定構(gòu)建了一套在線機(jī)器視覺的機(jī)器人本體裝配系統(tǒng); 文獻(xiàn)[3]中提出一種基于機(jī)器視覺的增強(qiáng)現(xiàn)實(shí)盲區(qū)裝配方法,并采用unity3D和C/C++實(shí)現(xiàn)了其開發(fā)過程; 文獻(xiàn)[4]基于輕量化網(wǎng)絡(luò),開發(fā)了酒瓶異物檢測算法。以上構(gòu)建的機(jī)器視覺系統(tǒng)要么需要進(jìn)行復(fù)雜的系統(tǒng)標(biāo)定,要么需要進(jìn)行繁重的文本格式代碼編寫; 還需要開發(fā)者在多種開發(fā)平臺之間來回轉(zhuǎn)換,因此如何提高機(jī)器視覺系統(tǒng)的開發(fā)效率,縮短開發(fā)周期成為現(xiàn)行裝配視覺系統(tǒng)開發(fā)者必須關(guān)注問題。
本文以LabVIEW和Vision Assistant為軟件平臺開發(fā)一套基于機(jī)器視覺的閥芯自動裝配系統(tǒng),該系統(tǒng)通過CCD相機(jī)獲取零件圖像,使用Vision Assistant對帶有畸變的圖像加以修正,包括系統(tǒng)標(biāo)定、采集圖像的預(yù)處理和標(biāo)定以及模式匹配、邊緣檢測等操作。在系統(tǒng)上位機(jī)程序中,以LabVIEW調(diào)用Vision Assistant節(jié)點(diǎn),得出零件的實(shí)際位置和角度信息,將這些信息通過以太網(wǎng)實(shí)時反饋給下位機(jī),動態(tài)地改變機(jī)器人的抓取操作,從而提高裝配的柔性和效率。該系統(tǒng)結(jié)構(gòu)簡單、穩(wěn)定可靠、識別速度快,同時對環(huán)境要求不高,具有很好的應(yīng)用前景。
圖1 球閥零件
球閥裝配涉及閥體、閥蓋、閥桿、閥芯以及密封圈等諸多零件,而其中閥芯零件裝配最為耗時、費(fèi)力。這是由閥芯本身的結(jié)構(gòu)特點(diǎn)所造成的,如果采用人工裝配,在裝配過程中工人注意力不夠集中,就很難將閥芯槽與閥桿末端扁榫準(zhǔn)確配對,勢必會影響裝配的效率;而采用傳統(tǒng)裝配機(jī)器人裝配,如果閥芯零件出現(xiàn)稍微的位置偏移,不在預(yù)定位置上,機(jī)器人便不能準(zhǔn)確抓取零件,同樣無法裝配成功。針對上述問題,本文提出一種基于視覺的自動裝配系統(tǒng),該系統(tǒng)基本結(jié)構(gòu)設(shè)計(jì)如圖2所示。整個系統(tǒng)可分為視覺系統(tǒng)、圖像處理系統(tǒng)和裝配系統(tǒng)3個主要部分。視覺系統(tǒng)通過固定在工作臺上方以及機(jī)器人末端的CCD相機(jī)獲得待裝配零件的圖像;圖像處理系統(tǒng)負(fù)責(zé)對采集的圖像進(jìn)行處理、識別和定位,并將結(jié)果反饋給下位機(jī);裝配系統(tǒng)根據(jù)處理結(jié)果,動態(tài)調(diào)整機(jī)械手抓取零件,完成自動裝配操作。其中圖像處理系統(tǒng)需完成對閥芯圖像的采集、處理、識別和定位等操作,是機(jī)器人完成柔性裝配的核心部分,本文的重點(diǎn)工作就是針對此部分展開的。
圖2 系統(tǒng)原理圖
機(jī)器視覺系統(tǒng)識別物體的位置和角度等信息,需要先確定空間位置與圖像上像素的映射關(guān)系以及攝像機(jī)的內(nèi)部和外部參數(shù)(即攝像機(jī)的標(biāo)定)。傳統(tǒng)的標(biāo)定方法很多,如Tsai兩步法、Weng迭代法、張正友雙平面法等,應(yīng)用都比較廣泛,但實(shí)際的標(biāo)定過程比較繁瑣,用標(biāo)定的結(jié)果修正數(shù)據(jù)也不方便。而基于視覺開發(fā)模塊Vision Assistant的標(biāo)定方法可以用優(yōu)化的算法將復(fù)雜的標(biāo)定信息與圖像信息結(jié)合,實(shí)現(xiàn)像素坐標(biāo)到實(shí)際工件坐標(biāo)的轉(zhuǎn)換,并將標(biāo)定的結(jié)果與模式識別模板、無損文字疊加等信息一起保存為PNG文件,方便地應(yīng)用到后續(xù)處理中[4]。
系統(tǒng)利用視覺模塊Vision Assistant的圖像處理功能來創(chuàng)建和編輯。運(yùn)行相應(yīng)的視覺算法,能方便快捷地對機(jī)器視覺系統(tǒng)進(jìn)行標(biāo)定。標(biāo)定的過程可以分為幾步: 選取標(biāo)定模板、標(biāo)定模板的學(xué)習(xí)、標(biāo)定信息的調(diào)用、坐標(biāo)變換[5]。
1)本系統(tǒng)選取LabVIEW自帶的均勻分布的黑色圓形點(diǎn)陣模板,該模板中黑色圓點(diǎn)的半徑為2mm,相鄰圓點(diǎn)圓心間的距離為1cm,如圖3所示。
圖3 黑色圓點(diǎn)標(biāo)定模板
2)在Vision Assistant模塊中進(jìn)行模板學(xué)習(xí)。為了實(shí)現(xiàn)精確測量,要充分考慮非線性徑向畸變的影響,需選擇Distorition Model(Grid)模式,此模式在矯正非線性畸變的同時也對線性畸變進(jìn)行矯正。學(xué)習(xí)的過程中,可以手動選定計(jì)算方法,包括帶有1個畸變系數(shù)、3個畸變系數(shù)加切向畸變等。這些方法能快捷地將畸變的圖像標(biāo)定并且保存為PNG文件,無需經(jīng)過大量的復(fù)雜數(shù)學(xué)計(jì)算,如圖4所示。同時設(shè)定視場模板最右下角的黑色圓點(diǎn)為圖像坐標(biāo)系原點(diǎn),向上為x軸,向左為y軸。最后將標(biāo)定好的結(jié)果保存為PNG格式文件,以便后續(xù)調(diào)用。
圖4 Vision Assistant標(biāo)定算法選擇
3)標(biāo)定信息包含在之前存儲好的PNG格式文件中,用LabVIEW中的Vision Assistant節(jié)點(diǎn)可以進(jìn)行調(diào)用。經(jīng)過此節(jié)點(diǎn)后,零件圖像顯示并沒有發(fā)生變化,但其標(biāo)定工作已完成,之后的測量可直接得出實(shí)際結(jié)果,其單位為模板學(xué)習(xí)過程中所設(shè)置的Unit。需要注意的是,標(biāo)定時用的圖像和用于測量的圖像必須有相同的類型和分辨率,只要相機(jī)與工作平面的相對位置不變就不需要重復(fù)標(biāo)定。
4)為了便于裝配工作簡潔、高效地運(yùn)行,將裝配機(jī)器人工作的局部坐標(biāo)系與步驟2)中標(biāo)定的圖像坐標(biāo)系設(shè)為一致。即需將零件放置在此模板區(qū)域內(nèi),同時在此區(qū)域內(nèi)完成裝配動作。
在閥芯視覺自動裝配系統(tǒng)中,確定閥芯和閥芯槽的位置是整個裝配過程中最為關(guān)鍵的環(huán)節(jié),為此須在實(shí)驗(yàn)工作臺上方安裝一臺CCD相機(jī)來確定閥芯在標(biāo)定坐標(biāo)系中的坐標(biāo),同時在機(jī)器人末端安裝一臺同樣的相機(jī),以識別、定位閥芯槽的位置。圖5所示為相機(jī)采集圖像的整個流程圖。
圖5 相機(jī)采集圖像的整個流程圖
一般情況下,成像系統(tǒng)獲取的圖像(即原始圖像)由于受到各種條件限制和隨機(jī)干擾,往往不能在視覺系統(tǒng)中直接使用,必須在視覺的早期階段對原始圖像進(jìn)行噪聲過濾、增強(qiáng)等圖像預(yù)處理[6]。
1)噪聲過濾。在進(jìn)行圖像采集過程中,不可避免地受到各種干擾而混入隨機(jī)噪聲。為了減少識別誤差,需對圖像進(jìn)行濾波處理。中值濾波是一種非線性濾波算法,能夠在濾除隨機(jī)噪聲的同時,很好地保持圖像的邊緣信息,適應(yīng)性強(qiáng)[7]。對于二維中值濾波,濾波窗口可以定義為
(1)
式中{xij(i,j)∈I2}表示圖像各點(diǎn)的灰度值。
2)圖像增強(qiáng)是將圖像中感興趣的特征有選擇地突出,而不必逼近原圖像,在時域內(nèi)主要方法為直方圖均衡[8]。若一幅數(shù)字圖像灰度等級為M,各像素灰度值為rk(k= 0,1,2,…,M- 1),灰度值的概率估計(jì)pr(k)為
pr(k)=nk/n(k=0,1,…,M-1)
(2)
式中:nk為灰度值的像素點(diǎn)數(shù);n為像素點(diǎn)總數(shù)。
直方圖均衡就要使其線性化,使含有像素多的幾個灰度級間隔被拉大,壓縮像素少的幾個灰度級,從而增大視覺接受的信息量,使圖像變得清晰。在Vision Assistant中通過調(diào)用Filters、Lookup Table等命令來對黑白圖像進(jìn)行濾波、增強(qiáng)處理[9],處理結(jié)果如圖6所示。
圖6 濾波、增強(qiáng)后圖像
1)閥芯的初次定位
在試驗(yàn)臺上方的攝像頭采集閥芯圖像過程中,系統(tǒng)利用Vision Assistant中的模式匹配來粗略定位閥芯的位置。模板匹配是指在檢測前定義一幅較小的標(biāo)準(zhǔn)模板圖像,然后將此模板與待檢圖像進(jìn)行比較,由此可以確定在待檢圖像中是否存在與該模板相同或相似的區(qū)域,若該區(qū)域存在,還可確定其位置并提取該區(qū)域[10]。模板匹配原理如圖7所示,定義1個模板w(x,y)(K×L像素),被檢測圖像f(x,y)(M×N像素),其中K≤M,L≤N,模板w(x,y)在被檢測圖像f(x,y)上移動,采用絕對差值法來衡量w(x,y)和f(x,y)在點(diǎn)(i,j)之間的誤差,其計(jì)算式為
(3)
式中:i=0,1,…,M-1;j=0,1,…,N-1。
圖7 模板匹配原理圖
2)閥芯的二次定位
在閥芯的初次定位基本上給出了機(jī)械手所需的移動坐標(biāo),但對現(xiàn)場裝配工藝要求來說,其精度還不夠,因此需要二次定位,以求出機(jī)械手移動坐標(biāo)的精確值。為此可在閥芯的粗略位置設(shè)定ROI區(qū)域,繼而以Vision Assistant的FinDGe來檢測閥芯口,并設(shè)定參數(shù)[11]??梢缘玫介y芯口中心在標(biāo)定坐標(biāo)系中的精確坐標(biāo)值F(xf,yf,z),其中z為閥芯高的一半,為定值,處理后效果圖如圖8所示。
圖8 二次定位處理后效果圖
3)閥芯抓取位置的確定
在確定了閥芯在標(biāo)定坐標(biāo)系中的位置之后,將信息傳輸至機(jī)器人,控制機(jī)器人末端運(yùn)動至圖9所示A(xa,ya,z,rx,ry,rz)點(diǎn)位置,其中xa、ya由xf、yf加上一段固定的距離所得,rx、ry、rz由機(jī)械手事先示教所得。此時開啟機(jī)械手末端攝像頭,并繞著閥芯的軸向方向連續(xù)采集圖像。通過Vision Assistant的Pattern Matching來尋找閥芯槽的位置,當(dāng)檢測到閥芯槽的位置后停止末端相機(jī)的采集工作,同時通過試驗(yàn)臺上方的相機(jī)確定此時機(jī)械手末端在標(biāo)定坐標(biāo)系中的位置B(xb,yb,z,rx,ry,rz+θ),其中θ為A、B點(diǎn)之間繞z軸的旋轉(zhuǎn)角度。為了滿足閥芯的裝配工藝要求,必須使機(jī)械手末端先移動至C(xc,yc,z,rx,ry,rz+θ+90。)點(diǎn)處,再緩慢移至D點(diǎn)處抓取閥芯零件[12]。由圖可知,C點(diǎn)的坐標(biāo)可由以下關(guān)系式求出:
(4)
進(jìn)而D點(diǎn)的坐標(biāo)可由以下關(guān)系式得出:
(5)
圖9 閥芯抓取位置定位
通過Vision Assistant對圖像進(jìn)行一系列處理之后,可以方便、快速地得出閥芯和閥芯槽的坐標(biāo)和角度信息[13]。在系統(tǒng)上位機(jī)中,基于NI的Max和DAQmx devices技術(shù),圖像采集程序可以方便地以在LabVIEW中調(diào)用IMAQ Grab Acquire. vi等子VI的方法實(shí)現(xiàn);圖像處理程序包括圖像的標(biāo)定、濾波、定位等可以以直接調(diào)用Vision Assistant節(jié)點(diǎn)的方式實(shí)現(xiàn),其部分程序如圖10所示;系統(tǒng)通信功能的實(shí)現(xiàn),可以藉由LabVIEW中豐富的通信函數(shù)來實(shí)現(xiàn),本系統(tǒng)即主要基于TCP連接函數(shù)實(shí)現(xiàn)與下位機(jī)的通信目的。
圖10 閥芯槽定位處理程序
在工作臺上進(jìn)行機(jī)器人裝配實(shí)驗(yàn),如圖11所示。下位機(jī)使用STAUBLI工業(yè)機(jī)器人CS8C控制器;光源使用LED環(huán)形光源,采用低角度照明方式;圖像采集設(shè)備采用分辨率可達(dá)1 280×960且?guī)в蠫ige接口的Prosilica GC1290黑白相機(jī)以及Computar M1614-Mp2鏡頭,可以直接通過網(wǎng)線與上位機(jī)連接通信。系統(tǒng)以一臺PC機(jī)為上位機(jī),負(fù)責(zé)圖像的采集、處理和識別定位,并將處理結(jié)果通過以太網(wǎng)TCP/IP反饋給下位機(jī)CS8C控制器,進(jìn)而動態(tài)控制機(jī)器人的抓取動作。同時機(jī)器人工作采用自動循環(huán)方式,以接收完零件圖像處理數(shù)據(jù)為觸發(fā)條件,即接受完數(shù)據(jù)后,機(jī)械手臂自動上電動作,運(yùn)行結(jié)束后將手臂斷電,等待下一次數(shù)據(jù)的輸入,部分實(shí)驗(yàn)參數(shù)如表1所示。
圖11 抓取實(shí)驗(yàn)
表1 抓取實(shí)驗(yàn)參數(shù)
本文綜合運(yùn)用NI視覺技術(shù)和機(jī)器人技術(shù),構(gòu)建了一套相對完善的零件自動裝配系統(tǒng)。該系統(tǒng)經(jīng)過試驗(yàn)驗(yàn)證,結(jié)果證明:具有較好的裝配精度,可以滿足一般生產(chǎn)裝配需求?;赩ision Assistant的相機(jī)標(biāo)定方法可以快速有效地對相機(jī)進(jìn)行標(biāo)定,減小圖像畸變,其快速簡潔的特性是傳統(tǒng)方法所不能比擬的,提高了相機(jī)標(biāo)定效率,而且在Vision Assistant中只需對采集的圖像進(jìn)行預(yù)處理、標(biāo)定以及模式匹配和邊緣檢測、設(shè)置相關(guān)參數(shù)即可,無需經(jīng)過繁瑣的計(jì)算和復(fù)雜的程序編寫?;跈C(jī)器視覺的閥芯自動裝配系統(tǒng)能快速、高效地完成裝配工作,可以大大提高生產(chǎn)效率,節(jié)約人力成本,提高自動化程度。