鄒 鯤,王 偉
ZOU Kun, WANG Wei
(東華大學(xué) 機(jī)械工程學(xué)院,上海 201620)
LabVIEW是美國(guó)NI公司開發(fā)的基于G語(yǔ)言(圖形化編程語(yǔ)言)的虛擬儀器軟件。LabVIEW采用的圖形化編程是采用數(shù)據(jù)流的方式編寫程序,圖標(biāo)表示函數(shù)或者實(shí)現(xiàn)某個(gè)功能的模塊,連線表示數(shù)據(jù)的流向。圖形化編程簡(jiǎn)單易學(xué),極大的提高了程序編寫的速度,縮短了項(xiàng)目開發(fā)的時(shí)間。同時(shí),作為NI設(shè)計(jì)平臺(tái)的核心,LabVIEW集成了龐大的函數(shù)庫(kù)并且提供了大量的硬件驅(qū)動(dòng)方便用戶使用。因此,LabVIEW在科研,教學(xué)以及工業(yè)現(xiàn)場(chǎng)都有大量的應(yīng)用。
相機(jī)根據(jù)輸出圖像類型的不同可以分為模擬相機(jī)和數(shù)字相機(jī),其中模擬相機(jī)需要配備圖像采集卡才能與計(jì)算相連接。而數(shù)字相機(jī)根據(jù)接口的不同又可分為USB相機(jī),1394相機(jī)和GigE相機(jī)。其中USB相機(jī)使用目前世界上應(yīng)用最廣泛的USB接口,可以非常方便的與計(jì)算機(jī)連接,并且USB相機(jī)通過(guò)USB接口直接為相機(jī)供電,不需要為相機(jī)單獨(dú)準(zhǔn)備電源。因此在中低速工業(yè)應(yīng)用中,選擇USB相機(jī)可以大大減少用戶成本。
在小樣織機(jī)的研發(fā)中,針與孔板的定位問(wèn)題一直沒有獲得很好的解決。隨著結(jié)項(xiàng)時(shí)間的臨近,急需一種能夠快速實(shí)現(xiàn)的解決方案。而在現(xiàn)今的機(jī)器視覺應(yīng)用領(lǐng)域,缺乏這種不需要高速處理,精度要求也不高,卻對(duì)硬件成本和項(xiàng)目開發(fā)成本有較高要求的應(yīng)用實(shí)例?;谶@樣的考慮,結(jié)合項(xiàng)目具體問(wèn)題本文探索了一種低成本,快速開發(fā),適用于中低速應(yīng)用的解決方案。
如圖1所示是小樣織機(jī)對(duì)針系統(tǒng)的結(jié)構(gòu)示意圖,其中孔板上規(guī)則地分布著大量的小孔,插針會(huì)如同“插秧”一般將紗線以“U”字形插入小孔。因此針和孔板的相對(duì)位置必須非常精確,才能保證針能夠順利的插入每個(gè)小孔。
圖1 小樣織機(jī)對(duì)針系統(tǒng)結(jié)構(gòu)示意圖
在圖1中,插針只能進(jìn)行一維運(yùn)動(dòng)。因此,在進(jìn)行圖像采集時(shí),需要在針關(guān)于孔板對(duì)稱的一側(cè)安裝相機(jī),同時(shí)為避免運(yùn)動(dòng)干涉,需要采用長(zhǎng)焦鏡頭以增大物距,因此相機(jī)的安裝位置比較固定。而經(jīng)過(guò)反復(fù)試驗(yàn),無(wú)法找到良好的打光角度以實(shí)現(xiàn)圖片質(zhì)量的最佳效果。這樣在復(fù)雜的光線背景下,如果通過(guò)模式識(shí)別等復(fù)雜算法進(jìn)行全自動(dòng)的圖像處理必然會(huì)需要更長(zhǎng)的開發(fā)周期,對(duì)系統(tǒng)的軟硬件水平也會(huì)提出更高的要求。因此考慮采用交互式圖像處理方法,而小樣織機(jī)工程機(jī)上已經(jīng)配置了工控機(jī),只需在工控機(jī)上安裝LabVIEW,通過(guò)USB接口把工業(yè)相機(jī)接入系統(tǒng)即可。對(duì)針系統(tǒng)的實(shí)物圖如圖2所示。
圖2 對(duì)針系統(tǒng)實(shí)物圖
本系統(tǒng)采用LabVIEW2011作為開發(fā)平臺(tái),在安裝了LabVIEW2011基礎(chǔ)版以后,還需要到NI官網(wǎng)下載安裝IMAQ Vision,這樣才能把機(jī)器視覺功能模塊以及圖像處理函數(shù)庫(kù)集成到LabVIEW中。隨著NI的不斷開發(fā),視覺開發(fā)模塊的內(nèi)容也越來(lái)越豐富,如各種邊緣檢測(cè)算法、濾波器、閾值檢測(cè)、傅里葉變換、小波變換等。硬件方面本系統(tǒng)選用130萬(wàn)像素的USB2.0免驅(qū)工業(yè)相機(jī),加裝YX15系列大變倍比顯微鏡頭。
按照機(jī)器視覺系統(tǒng)的功能結(jié)構(gòu), 在LabVIEW程序中分別編程實(shí)現(xiàn)。
1)圖像獲取模塊
圖像獲取模塊,首先對(duì)接入計(jì)算機(jī)端口的設(shè)備進(jìn)行枚舉,以便用戶進(jìn)行端口選擇,選定端口以后,從硬件設(shè)備(相機(jī))讀取數(shù)字圖像數(shù)據(jù),并且在系統(tǒng)中創(chuàng)建存儲(chǔ)空間以保存從相機(jī)獲取的圖像數(shù)據(jù)。
圖3 圖像獲取部分的程序框圖
如圖3所示為圖像采集模塊的程序框圖。程序運(yùn)行后,首先啟動(dòng)相機(jī)進(jìn)行圖像獲取,存儲(chǔ)在系統(tǒng)創(chuàng)建的緩沖區(qū)中,然后復(fù)制到存儲(chǔ)路徑的位置,并通過(guò)“Image display”控件進(jìn)行前端顯示。
2)圖像處理模塊
利用NI提供的圖像處理函數(shù)可以進(jìn)行大部分的機(jī)器視覺圖像處理,如果需要自己編寫圖像處理算法,進(jìn)行大量的數(shù)據(jù)運(yùn)算則建議使用MATLAB Script節(jié)點(diǎn)這樣就可以利用MATLAB豐富的數(shù)據(jù)處理和圖像算法進(jìn)行混合編程。用戶可以根據(jù)實(shí)際情況去選擇是否混合編程。本系統(tǒng)中,采用交互式圖像處理的方式,通過(guò)在復(fù)雜環(huán)境中拍攝的照片上直接選擇相關(guān)特征體進(jìn)行定位,主要借助相機(jī)長(zhǎng)焦鏡頭的放大作用以及計(jì)算機(jī)的精確計(jì)算取得良好的標(biāo)定效果。
圖4 圖像獲取部分的程序框圖
在獲取圖像以后,針對(duì)圓孔和針(針的剖面圖呈矩形)選用不同的控件(分別為“Select Rectangle”和“Select Annulus”)來(lái)獲取圓心和針的中心。程序框圖如圖4所示。
用戶界面如圖5所示,在交互式圖像處理中,通過(guò)界面來(lái)微調(diào)針和孔的位置是很重要的一步。因此在用戶界面中設(shè)計(jì)了很多的按鈕來(lái)控制孔板的微調(diào)運(yùn)動(dòng),右側(cè)的圖像顯示控件可以實(shí)時(shí)顯示相機(jī)拍攝的內(nèi)容以監(jiān)控孔板的位置選取合適的圖像采集位置。
圖5 程序用戶界面
相比于傳統(tǒng)對(duì)針?lè)绞?,本系統(tǒng)通過(guò)對(duì)操作順序和方法的調(diào)整大大提高了對(duì)針效率,具體對(duì)針過(guò)程如下:首先,在安裝孔板之前先提取針的空間位置,控制針左右動(dòng)作進(jìn)入工作區(qū)域,如圖6所示,獲取針中心坐標(biāo)值,在安裝孔板之前完成針的坐標(biāo)提取,由于針只有一維運(yùn)動(dòng)因此在垂直于針的平面內(nèi)這個(gè)坐標(biāo)是固定不變的。然后,安裝孔板,這樣在獲取針坐標(biāo)以后安裝孔板就避免了針前進(jìn)到工作位置時(shí)可能會(huì)撞擊到孔板。最后通過(guò)獲取孔板的圖像得到左上孔的圓心坐標(biāo),如圖7所示。剩下的工作由程序自身完成。具體內(nèi)容有,計(jì)算針中心坐標(biāo)和孔中心坐標(biāo)的差值,根據(jù)相機(jī)參數(shù)把像素差值轉(zhuǎn)化為實(shí)際空間差值,通過(guò)串口通信把差值數(shù)據(jù)傳送給微控制器。
圖6 選取針圖像的樣張
圖7 選取孔圖像的樣張
在系統(tǒng)硬件系統(tǒng)搭建完成,軟件調(diào)試通過(guò)后,對(duì)系統(tǒng)的定位精度進(jìn)行了實(shí)驗(yàn)測(cè)試,在選取130w像素?cái)z像頭,配合顯微鏡頭的情況下,手動(dòng)選取矩形和圓形,本例中孔的直徑為2.5mm,矩形長(zhǎng)1.7mm,寬1.0mm,在圖像中圓孔直徑大約為500個(gè)像素,平均每個(gè)像素0.005mm,進(jìn)行上百次選取試驗(yàn)后發(fā)現(xiàn),在讓圓或者矩形與圓孔或者針重合的時(shí)候,邊緣誤差一般不超過(guò)5個(gè)像素,因此標(biāo)定誤差不超過(guò)0.05mm。系統(tǒng)要求針能順利插入孔中,經(jīng)過(guò)計(jì)算這要求我們的定位精度不低于10%,也即0.1mm,因此我們的結(jié)果完全可以滿足系統(tǒng)的精度要求。
一個(gè)完善的機(jī)器視覺系統(tǒng)不僅僅需要簡(jiǎn)便的圖像獲取途徑,良好的圖像處理算法,還需要及時(shí)的分析和快速的反饋。這樣的一個(gè)機(jī)器視覺系統(tǒng)才能在工業(yè)自動(dòng)化和信息化中有現(xiàn)實(shí)意義。如果一個(gè)機(jī)器視覺系統(tǒng)開發(fā)以后還需要花大精力去開發(fā)底層驅(qū)動(dòng)以實(shí)現(xiàn)與工業(yè)現(xiàn)場(chǎng)的連接,會(huì)大量增加項(xiàng)目開發(fā)時(shí)間和成本。LabVIEW提供了工業(yè)現(xiàn)場(chǎng)使用的如RS232、GPIB、VXI等接口的硬件設(shè)備的驅(qū)動(dòng),并且免費(fèi)提供了世界知名儀器儀表廠商的數(shù)百種產(chǎn)品的源碼級(jí)儀器驅(qū)動(dòng),為用戶的二次開發(fā)提供了極大的便利。
本系統(tǒng)根據(jù)圖像處理的結(jié)果,通過(guò)LabVIEW可以輕松實(shí)現(xiàn)和系統(tǒng)其他組件的通信互聯(lián)以及對(duì)工業(yè)現(xiàn)場(chǎng)設(shè)備如電機(jī)、氣缸、繼電器等的控制,提高了整個(gè)系統(tǒng)的自動(dòng)化程度。
本系統(tǒng)基于虛擬儀器技術(shù),通過(guò)LabVIEW附帶的視覺開發(fā)模塊進(jìn)行程序開發(fā),采用交互式圖像處理的方式,創(chuàng)新性的修改了傳統(tǒng)對(duì)針流程,在未安裝孔板的情況下首先進(jìn)行針的定位,這樣分別完成對(duì)針和孔板的初始定位,避免了兩者相互干涉的情況,不需要設(shè)計(jì)復(fù)雜的模式識(shí)別算法,提高了系統(tǒng)運(yùn)行速度,也降低了對(duì)系統(tǒng)硬件的要求,用于小樣織機(jī)中針與孔板的標(biāo)定,取得了良好的實(shí)用效果,提高了機(jī)器視覺的實(shí)際使用價(jià)值。
[1] 丁晟,蔣曉瑜,汪熙.基于LabVIEW的圖像處理技術(shù)研究[J].微計(jì)算機(jī)信息,2010(2):204-205.
[2] 楊樂(lè)平,李海濤,楊磊.LabVIEW程序設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[3] 宋凡峰.基于LabVIEW與MATLAB的現(xiàn)代光測(cè)圖像處理系統(tǒng)[D].南京:南京航空航天大學(xué),2007:37-41.
[4] 王鵬,趙彥玲,劉獻(xiàn)禮,張國(guó)亮.基于LabVIEW的機(jī)器視覺系統(tǒng)開發(fā)與應(yīng)用[J].哈爾濱理工大學(xué)學(xué)報(bào),2004.
[5] 陳錫輝,張銀鴻.LabVIEW8.2程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007:55-68.