陳 飛,王 飛,劉 雷
(常熟理工學(xué)院 電氣與自動化工程學(xué)院,常熟 215500)
基于機(jī)器視覺的三維運(yùn)動裝置定位抓取系統(tǒng)
陳 飛,王 飛,劉 雷
(常熟理工學(xué)院 電氣與自動化工程學(xué)院,常熟 215500)
將機(jī)器視覺技術(shù)應(yīng)用于三維運(yùn)動裝置定位抓取上,以圓柱體工件為研究對象,設(shè)計了基于機(jī)器視覺的三維運(yùn)動裝置,采用“PC+CCD+運(yùn)動控制卡”的運(yùn)動控制方式。采用LabVIEW軟件設(shè)計監(jiān)控界面,通過調(diào)用庫函數(shù)節(jié)點(diǎn)向Galil運(yùn)動控制卡發(fā)送命令控制軸的運(yùn)動,通過固定于Z軸上的相機(jī)捕獲工件所在的XY軸位置,通過XY位置補(bǔ)正及Brenner清晰度評價算法準(zhǔn)確確定工件XYZ軸位置,繼而對其進(jìn)行抓取并置于指定位置。實(shí)驗(yàn)證明,所設(shè)計的系統(tǒng)能有效地實(shí)現(xiàn)定位抓取。
LabVIEW;機(jī)器視覺;三維運(yùn)動;Brenner算法;定位抓取
運(yùn)動控制是工業(yè)自動化應(yīng)用的重要領(lǐng)域,隨著計算機(jī)技術(shù)、現(xiàn)代電力電子技術(shù)、傳感器技術(shù)、機(jī)電一體化技術(shù)等的迅速發(fā)展及強(qiáng)勁市場需求的推動下,運(yùn)動控制技術(shù)得到了前所未有的大發(fā)展,應(yīng)用越來越廣泛。隨著生產(chǎn)線的復(fù)雜化,越來越多的技術(shù)整合到運(yùn)動控制系統(tǒng)之中,包括視覺、數(shù)據(jù)庫等,運(yùn)動控制在生產(chǎn)線的角色已不再只是控制“運(yùn)動”,對系統(tǒng)的整合性要求也日益增加[1],基于虛擬儀器技術(shù)、基于視覺引導(dǎo)的運(yùn)動控制方式成為了研究的熱點(diǎn)。
基于機(jī)器視覺的三維運(yùn)動裝置定位抓取系統(tǒng)采用“PC+CCD+運(yùn)動控制卡”的運(yùn)動控制方式,實(shí)現(xiàn)將上位機(jī)和下位機(jī)分層控制,PC作為上位機(jī),可對多軸運(yùn)動的位置、加速度、速度等參數(shù)進(jìn)行設(shè)定,完成人機(jī)界面管理、信息顯示和預(yù)處理;運(yùn)動控制卡作為下位機(jī),是運(yùn)動控制的核心,用以接收來自PC機(jī)的控制信號并進(jìn)行實(shí)時處理[2]。通過運(yùn)動控制卡來控制軸運(yùn)動使相機(jī)捕獲到圓柱形工件,通過相機(jī)拍攝工件圖片,PC機(jī)通過對圖片的處理,得出圓心坐標(biāo)像素偏移量,經(jīng)過處理轉(zhuǎn)化為電機(jī)脈沖將偏移量疊加到已計算好的位置數(shù)據(jù)來確定XY軸運(yùn)動距離,Z軸通過清晰度函數(shù)來確定運(yùn)動距離。PC機(jī)向運(yùn)動控制卡發(fā)送命令,控制各軸的運(yùn)動抓取工件并置于指定位置。采用“PC+CCD+運(yùn)動控制卡”的控制方式可充分發(fā)揮三者的優(yōu)勢——PC強(qiáng)大的數(shù)據(jù)處理能力,相機(jī)拍攝的精準(zhǔn)性,運(yùn)動控制卡對電機(jī)的精確控制,提高系統(tǒng)的可靠性和精確性[3]。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
本系統(tǒng)的運(yùn)動控制裝置控制軸數(shù)為3軸:X、Y、Z, X、Y、Z向可以單軸單方向運(yùn)動,也可以實(shí)現(xiàn)聯(lián)動控制。通過X、Y、Z 三軸配合帶動相機(jī)與鏡頭運(yùn)動精確找到需抓取的圓柱形工件,因該工件為金屬,抓取通過磁鐵來實(shí)現(xiàn)。在尋找目標(biāo)物體時,通過XY軸聯(lián)動找到目標(biāo)物體,然后通過位置補(bǔ)正和圖像清晰度函數(shù)對物體進(jìn)行精確定位。其系統(tǒng)的總體結(jié)構(gòu)如圖1所示,包括(1)三軸運(yùn)動平臺的控制系統(tǒng),其硬件主要由工控機(jī)、運(yùn)動控制卡、三軸運(yùn)動平臺、電源等構(gòu)成;(2)抓取機(jī)構(gòu);(3)視覺系統(tǒng),包括輔助定位的CCD、光源、電源等。
系統(tǒng)選擇的運(yùn)動控制板卡為GALIL運(yùn)動控制卡,所用型號為DMC-1842。該卡采用PCI bus總線,可控制4軸[4]。ICM-1900ID是一款專門為DMC-18xx、DMC-9940、DMC-21x2系列的運(yùn)動控制板卡設(shè)計的信號接口板[5]。GALIL運(yùn)動控制器和ICM-1900ID間用100芯線纜連接。三維運(yùn)動平臺選用三菱伺服電機(jī),X軸和Y軸選用HF-KN23J-S100,Z軸選用HF-KN23J-S100。伺服驅(qū)動器選用的三菱伺服放大器0.2KW MR-JE-20A (用于X軸和Y軸)和0.1KW MR-JE-10A (用于Z軸)。視覺系統(tǒng)中選用的CCD為BASLER工業(yè)相機(jī),型號為acA750-30gc,固定于Z軸上。抓取機(jī)構(gòu)采用磁鐵,固定于Z軸上。系統(tǒng)使用PCI-6514卡中的P6.0,P6.2,P6.4來控制XYZ軸伺服電機(jī)的開啟,使用數(shù)字輸出P6.7來控制磁鐵的ON與OFF。
Galil運(yùn)動控制卡為每軸準(zhǔn)備了專用的前、后極限輸入和原點(diǎn)輸入,在接口板上使用PS2505雙向光耦對輸入進(jìn)行隔離,并使用74LS07(U7、U8)將信號發(fā)送至Galil控制器。在ICM-1900D上XL、YL、ZL分別為X、Y、Z軸的限位輸入,將每軸的限位信號集中在一個5位的接線端子內(nèi),從左向右,各引腳依次為:電源-(V-)、前極限輸入(FL)、后極限輸入(RL)、原點(diǎn)輸入(HM)和電源+(V+)。V+/V-為外部輸入的DC電源,可用做限位信號傳感器的電源[4]。
系統(tǒng)軟件設(shè)計分為6個獨(dú)立的模塊,其系統(tǒng)主界面如圖2所示。登錄模塊:主要對用戶的權(quán)限進(jìn)行限制,輸入不同的用戶名與密碼,用戶所進(jìn)行的操作權(quán)限是不一樣的,起到對于一些重要參數(shù)的保護(hù)作用;總復(fù)位模塊:主要是對系統(tǒng)進(jìn)行硬件的初始化和軸的回原點(diǎn);手動測試模塊:如圖3所示該模塊包含了兩部分內(nèi)容:1)對軸的位置參數(shù)進(jìn)行設(shè)置實(shí)現(xiàn)手動控制軸的運(yùn)動;2)對相機(jī)功能的測試;相機(jī)校驗(yàn)?zāi)K:該模塊主要是通過XY軸的聯(lián)動找到所要抓取的工件,并獲取圓心坐標(biāo);自動測試模塊:該模塊是在完成相機(jī)校驗(yàn)后,通過對工件位置偏差的自動補(bǔ)正及圖像清晰度算法使相機(jī)的處于最佳拍攝距離時確定的XYZ軸運(yùn)動位置,實(shí)現(xiàn)準(zhǔn)確抓取工件,并將工件置于指定位置;退出程序模塊:當(dāng)系統(tǒng)的所有步驟完成后,用戶想停止運(yùn)動控制平臺則可以將程序退出。在整個程序設(shè)計中采用了單生產(chǎn)者多消費(fèi)者架構(gòu),便于對程序進(jìn)行維護(hù)及系統(tǒng)功能的完善。
圖2 系統(tǒng)主界面
圖3 手動測試程序前面板
手動測試程序主要是系統(tǒng)在自動運(yùn)行前對軸、相機(jī)功能的檢測,其前面板如圖3所示。相機(jī)的檢測通過NIIMAQdx選板中的相關(guān)函數(shù)對打開相機(jī)、獲取圖像、保存圖像、關(guān)閉相機(jī)進(jìn)行依次檢查。對軸的控制需具備LabVIEW關(guān)于調(diào)用庫函數(shù)相關(guān)知識。LabVIEW通過調(diào)用庫函數(shù)節(jié)點(diǎn)(Call Library Function node,簡稱CLN)實(shí)現(xiàn)對第三方硬件動態(tài)鏈接庫(DLL)和API(應(yīng)用程序接口)函數(shù)的調(diào)用。本系統(tǒng)中利用CLN調(diào)用Galil運(yùn)動控制卡DMC-1842的驅(qū)動程序。首先在框圖程序中創(chuàng)建一個空的CLN,CLN位于“函數(shù)模板→互連接口→庫與可執(zhí)行程序子模板”,繼而按照文獻(xiàn)[6]的步驟進(jìn)行相關(guān)設(shè)定,最后按照功能要求完成程序設(shè)計。圖4所示程序框圖實(shí)現(xiàn)Z軸相關(guān)參數(shù)的配置:SP是軸運(yùn)動的速度,AC是軸在運(yùn)動之初的加速度,DC是當(dāng)軸快運(yùn)動到位時的減速度,而PR是手動時設(shè)置所需要的運(yùn)動長度。將所有的設(shè)置參數(shù)放在一個數(shù)組中,經(jīng)過For循環(huán)與IGalil調(diào)用節(jié)點(diǎn)的command相連接,再將“BG Z”的指令發(fā)給command,即可使Z軸運(yùn)動到設(shè)定位置。同理,X、Y軸的運(yùn)動到點(diǎn)只需將Z改為X、Y。軸Z的停止是發(fā)送“ST Z”指令給IGalil調(diào)用節(jié)點(diǎn)的command。同理,X、Y軸的運(yùn)動停止分別發(fā)送“ST X”、“ST Y”。命令的使用及含義參見Galil_DMC-18×2使用手冊[4]。
手動測試可以實(shí)現(xiàn)對X、Y、Z軸運(yùn)動的調(diào)試,可對其位置、速度、加減速度進(jìn)行設(shè)置,如圖3所示的前面板中X軸的速度為50000計數(shù)單位/秒、X軸的位置為50000計數(shù)單位。自動運(yùn)動時需要實(shí)際距離,在手動測試中可以通過以下操作將計數(shù)單位換算成距離,以X軸為例,可以先手動讓電機(jī)停在需要的終點(diǎn)位置,然后在配置中設(shè)置絕對位置為0,再通過回原點(diǎn)指令讓電機(jī)回到原點(diǎn),電機(jī)停止運(yùn)動通過TP指令讀出此時X軸的位置即為X軸所運(yùn)動的距離。但指令中所讀出的距離單位是計數(shù)單位,因此需要對讀取的數(shù)值進(jìn)行轉(zhuǎn)換,讓電機(jī)從絕對零點(diǎn)運(yùn)行10000個計數(shù)單位讀出此時的輸出位置“坐標(biāo)顯示”,得到的比例即為10000/“坐標(biāo)顯示”,通過多次運(yùn)動計算和調(diào)整即可得出電機(jī)需要運(yùn)動的實(shí)際距離與計數(shù)單位之間的關(guān)系,Y、Z軸同理。
圖4 LabVIEW與Galil運(yùn)動控制卡交互程序框圖(部分)
相機(jī)校驗(yàn)?zāi)K主要功能是自動調(diào)整工作距離,從而確定Z軸到工件需運(yùn)動的距離,其流程如圖5所示。首先進(jìn)行相機(jī)初始化,繼而控制XY軸聯(lián)動找到目標(biāo)工件,通過相機(jī)獲取工件圖片,其次對所獲得的圖片進(jìn)行處理分析,運(yùn)用NI IMAQ VISION工具進(jìn)行ROI提取,從而得到圓的中心像素點(diǎn)坐標(biāo),對找到的工件進(jìn)行XY軸位置的補(bǔ)正。
根據(jù)Brenner算法來確定Z軸運(yùn)動位置,Brenner算法是評價圖像清晰度函數(shù),是以Brenner算子為基礎(chǔ),只計算相差兩個單元的兩個象素的灰度級差,具有簡捷實(shí)用、計算量少等特點(diǎn)[7]。一幅大小為M×N的灰度圖像f(x,y)的Brenner清晰度評價算法的定義為:
由式(1)圖像清晰度評價函數(shù)得出每次校驗(yàn)的Brenner值,再通過比較值的大小,得出最清晰的工件圖片Z的位置,即確定了完成抓取工件Z軸所需運(yùn)動的距離。
圖5 相機(jī)校驗(yàn)程序流程圖
圖6 自動測試程序流程圖
通過手動測試程序檢查運(yùn)動平臺及相機(jī)是否處于正常工作狀態(tài),相機(jī)校驗(yàn)程序用于工件圓心位置即XY軸坐標(biāo)和Z軸運(yùn)動距離的確定。自動測試程序流程圖如圖6所示,首先對相機(jī)和軸位置進(jìn)行初始化,繼而XY軸聯(lián)動尋找目標(biāo)工件(Z軸位于最佳工作距離處),找到工件后進(jìn)行拍攝并進(jìn)行處理后獲取圓心,此時圓心并未在參考坐標(biāo)系正中,因此需計算XY軸需補(bǔ)正的量,計算結(jié)束后得到新的X、Y、Z軸需運(yùn)動的距離,再一次XYZ軸聯(lián)動,同時打開磁鐵通道吸取目標(biāo)工件,運(yùn)動到放料位釋放工件。
基于機(jī)器視覺的三維運(yùn)動裝置定位抓取系統(tǒng)以“PC機(jī)+CCD+運(yùn)動控制卡”為主要硬件,以LabVIEW作為開發(fā)語言,開發(fā)效率高,可大大減少開發(fā)時間,而且調(diào)試比較方便,可以使運(yùn)動系統(tǒng)的控制更加方便和快捷。以PC機(jī)作為上位機(jī),運(yùn)用LabVIEW進(jìn)行程序設(shè)計實(shí)現(xiàn)對軸運(yùn)動的位置、加速度、速度等參數(shù)進(jìn)行設(shè)定,完成人機(jī)界面管理、信息顯示和預(yù)處理;運(yùn)動控制卡作為下位機(jī)是運(yùn)動控制的核心,用以接收來自PC機(jī)(LabVIEW)的控制命令并進(jìn)行實(shí)時處理,實(shí)現(xiàn)運(yùn)動控制;用CCD相機(jī)輔助尋找目標(biāo)工件,降低了因定位誤差而造成的運(yùn)動控制系統(tǒng)不能正確完成任務(wù),視覺的引入相當(dāng)于外部的閉環(huán)控制機(jī)制,保證運(yùn)動控制系統(tǒng)能自動補(bǔ)償由于位置變化而帶來的誤差。
[1] 運(yùn)動控制--未來先進(jìn)“智能制造”的核心[EB/OL].http://www.robot-china.com/zhuanti/show-1042.html.
[2] 賀昌勇,張厚江,祖漢松.基于虛擬儀器運(yùn)動控制技術(shù)的現(xiàn)狀與發(fā)展趨勢[J].林業(yè)機(jī)械與木工設(shè)備,2014, (2):9-12.
[3] 梁永忠.基于LabVIEW的多軸運(yùn)動控制器應(yīng)用研究[D].廣東: 廣東工業(yè)大學(xué),2010.
[4] Galil_DMC-18×2使用手冊[EB/OL], http://www.power-land.com/download.aspx?nid=46.
[5] ICM-1900ID說明書[EB/OL], http://wenku.baidu.com/link?url=d3ey3pZs9XN_XusSB7PyTLD_Oh4LLdHyEmU1WPS X9PC3RDvLQ4JsGIRoKuTY5S4VuQF16erZE1U0Rt6TQqkvhT zjx9qGULqM_gL40PpZ-Le.
[6] 陳樹學(xué),劉萱編著. LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[7] 王健,陳洪斌,周國忠,安濤.改進(jìn)的Brenner圖像清晰度評價算法[J].光子學(xué)報,2012,41(7):855-858.
A positioning and grabbing system by three-dimensional motion device based on machine vision
CHEN Fei, WANG Fei, LIU Lei
TP27
:A
:1009-0134(2017)08-0025-04
2017-04-23
陳飛(1978 -),女,浙江鄞縣人,副教授,碩士,研究方向?yàn)橛嬎銠C(jī)先進(jìn)控制技術(shù)與先進(jìn)檢測技術(shù)。