楊京兆 王莉 陳鑫 杜天赟
(1上海交通大學(xué),上海 200240;2上海市計量測試技術(shù)研究院,上海 201203)
機器視覺是通過對所拍攝圖像進行分析處理,得到物體的尺寸、位置、表面特征等信息,以供軟件系統(tǒng)進一步進行數(shù)據(jù)處理的技術(shù)。
目前機器視覺技術(shù)已經(jīng)在許多工業(yè)制造領(lǐng)域得到了應(yīng)用。主要功能有尺寸測量、機械手輔助定位、OCR字符識別、讀碼四大類,相關(guān)應(yīng)用涵蓋汽車制造、生物制藥、航空航天等高精尖產(chǎn)業(yè)。
針對不同行業(yè)特點,機器視覺軟件需要適應(yīng)不同工況需求,本軟件主要針對環(huán)形器生產(chǎn)過程中的自動檢測。檢測過程主要包括環(huán)形器二維碼讀取,機械手抓取定位,環(huán)形器pin腳高度尺寸測量,次品剔除四個功能模塊。
基于以上需求,本文設(shè)計的環(huán)形器檢測軟件系統(tǒng),通過多相機協(xié)同拍攝的方式,對零件進行拍攝取圖,通過對圖像的處理,進行二維碼識別,同時給出環(huán)形器的位置角度信息,以供機械手抓取調(diào)節(jié),并根據(jù)需要對環(huán)形器pin腳進行尺寸測量,根據(jù)測量結(jié)果進行次品篩選。結(jié)合本軟件,得以實現(xiàn)環(huán)形器檢測的自動化,通過連續(xù)3個月的統(tǒng)計,誤判率低于0.01%,測量結(jié)果滿足要求,通過進一步優(yōu)化,軟件處理速度已至毫秒級,與機械手、運動機構(gòu)協(xié)作已做到無縫銜接。
本軟件為單機運行軟件。各工位安裝的工業(yè)相機以及執(zhí)行結(jié)果的機械手均通過千兆網(wǎng)線與主機連接,軟件通過相機驅(qū)動進行圖像采集,采集成功的圖片按各工位要求進行圖像處理,得出的結(jié)果再按特殊協(xié)議發(fā)送給機械手執(zhí)行。
本軟件在開發(fā)時強調(diào)了系統(tǒng)的可用性、可維護性以及穩(wěn)定性,并對軟件的部署進行了優(yōu)化處理,使其具備了后期更易升級的特點,為客戶后期的功能升級提供了基礎(chǔ)。
本軟件主要包含以下功能:
1)多相機并行處理功能:實現(xiàn)多相機單獨設(shè)置,并行處理。
2)多機械手連接功能:實現(xiàn)機械手與視覺軟件聯(lián)動。
3)具備二維碼識別及定位功能:支持4*4mm以上的二維碼識別。
4)具備對來料進行特征點的識別與角度計算功能:根據(jù)來料信息計算產(chǎn)品位置信息。
5)具備尺寸測量功能:根據(jù)來料進行低于0.5像素分辨率的尺寸測量。
6)具備圖像保存功能:可根據(jù)需求保存圖像。
本軟件基于Visual Studio 2010開發(fā)環(huán)境,采用MFC單文檔框架,采用OPENCV開源算法庫進行開發(fā)的具有特色的機器視覺應(yīng)用系統(tǒng),本系統(tǒng)主要應(yīng)用于環(huán)形器自動化檢測設(shè)備及環(huán)形器自動化裝配流水線等。
本軟件的數(shù)據(jù)輸入為工業(yè)相機采集的圖像,經(jīng)過一系列的圖像處理軟件處理得到結(jié)果,將結(jié)果輸出給機械手執(zhí)行,實現(xiàn)對機械手的引導(dǎo)、來料測量篩選等工作。
軟件的關(guān)鍵組成如下所示:
1)相機的驅(qū)動程序
主要用來連接相機,由于各相機廠商生產(chǎn)的相機都有各自的使用方法,所以在使用相機前需要根據(jù)相機廠家提供的SKD軟件包進行相機驅(qū)動程序的開發(fā)。開發(fā)完驅(qū)動程序后可實現(xiàn)對相機進行曝光、設(shè)置等操作。
2)機械手的驅(qū)動程序與傳輸協(xié)議
機械手一般通過網(wǎng)絡(luò)接口與主機相連,但需要在主機上開發(fā)驅(qū)動程序,以實現(xiàn)與機械手之間進行命令、數(shù)據(jù)的相互傳輸。開發(fā)完的驅(qū)動程序可以將數(shù)據(jù)以特定格式協(xié)議發(fā)送給機械手,也可以接收機械手傳達(dá)的命令,執(zhí)行拍攝工作。
3)二維碼識別算法程序
二維碼分為各種不同形式,如QR碼,DM碼等,每一種二維碼根據(jù)不同規(guī)則進行編碼。對二維碼的識別即是解碼工作,首先需要對二維碼定位,定位完成后需要查找二維碼的特征點或線,然后再執(zhí)行具體的解碼算法。
4)來料的定位算法程序
本軟件可以對具體的來料按指定特征進行定位,基本處理流程為,首先通過圖像預(yù)處理,然后根據(jù)模板匹配找到特征區(qū)域,進一步對特征區(qū)域處理從而得到特征點的位置與角度。
5)PIN腳平面度測量程序
該算法是對來料的PIN腳進行平面度測量,測量的位置為PIN腳的下端面與來料外殼的底面之間的距離。圖像先通過預(yù)處理,得到清晰的二值圖,在設(shè)定的測量區(qū)域,找到PIN腳的下端面值。然后再重新設(shè)置參數(shù),找到外殼底面的值。根據(jù)這兩個值與標(biāo)準(zhǔn)值進行對比,最后得出結(jié)果。
本軟件主要包含工業(yè)相機驅(qū)動、參數(shù)設(shè)置、機械手連接配置、二維碼識別參數(shù)設(shè)置、定位參數(shù)設(shè)置、平面度測量參數(shù)設(shè)置、各相機圖像顯示主界面等。
軟件主界面如圖1所示,主要包含5個相機的圖像顯示區(qū)域、二維碼的識別結(jié)果、機械手的手動控制,以及機械手與相機的狀態(tài)等。每個圖像顯示區(qū)域上同時顯示對應(yīng)功能得到的結(jié)果和圖像的相關(guān)信息。
圖1 主界面
各相機的控制窗口列表框會列出所有已連接的相機,通過點擊可選擇手動連接,且每個相機可與不同工位綁定,以及調(diào)整相機的曝光時間參數(shù),直至調(diào)整到合適的值。
機械手配置界面可以修改一個4軸機械手和一個6軸機械手的IP地址及端口,也可以設(shè)置機械手的連接方式是自動連接或是手動連接。
讀碼相機中主要實現(xiàn)二維碼識別,當(dāng)環(huán)境變化時可通過這個界面調(diào)整相機的曝光時間以適應(yīng)新的環(huán)境;同時可以調(diào)整二維碼識別的參數(shù),這樣可實現(xiàn)對不同二維碼、不同來料做到最優(yōu)處理結(jié)果。其中包含二值化閾值、形態(tài)學(xué)處理閾值與次數(shù)、特征面積最大值及最小值、二維碼識別的超時時間等。也可以通過單選按鍵選擇二維碼識別或者OCR識別。
定位相機主要用于定位,對3個標(biāo)準(zhǔn)測量位的來料進行定位,所以具備C2-1、C2-1、C2-3三個模塊的標(biāo)定功能,記錄標(biāo)準(zhǔn)位置的相關(guān)值,同時也具備相機像素與實際機械手坐標(biāo)之間的標(biāo)定功能。
測量相機主要功能是測量環(huán)形器PIN腳與外殼底部的平面度,環(huán)形器來料最多有3個PIN腳,所以有3個基臺值的參數(shù)需要設(shè)置,每一個基臺值對應(yīng)一個PIN腳,同時具有正負(fù)值補償,允許誤差設(shè)置。同樣具備圖像處理的基本參數(shù)設(shè)置,可以通過調(diào)整參數(shù)完成對圖像的優(yōu)化處理。
本軟件每一張圖像處理結(jié)果都可以保存在以相機名稱命名的文件夾內(nèi),以供品質(zhì)部門查閱。每個相機都單獨保存結(jié)果圖像,同時會生成一個總的EXCEL文件記錄所有結(jié)果,結(jié)果數(shù)據(jù)與每一張圖像編號一一對應(yīng)。
基于機器視覺的環(huán)形器檢測軟件在環(huán)形器自動生產(chǎn)過程中已經(jīng)不可或缺。結(jié)合機械手目前已達(dá)到2秒/件,檢測效率數(shù)倍于人工30秒/件,為企業(yè)節(jié)省了大量人工成本。同時通過軟件系統(tǒng)進行測量,數(shù)據(jù)真實性,穩(wěn)定性都優(yōu)于人工。在環(huán)形器全檢過程中,又保存了每個樣品的歷史圖片??梢栽诔霈F(xiàn)質(zhì)量問題時通過圖像回溯問題源頭,進一步保障了產(chǎn)品質(zhì)量。