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