段有艷,李慧東,李光輝
(昆明冶金高等專科學(xué)校電氣與機械學(xué)院,云南 昆明 650033)
隨著“互聯(lián)網(wǎng)”和“大數(shù)據(jù)”時代的到來,多樣化消費成為當前消費增長的主流。為滿足新時代消費主體的消費需求,使產(chǎn)品在市場競爭中獲得優(yōu)勢,企業(yè)需要在所提供產(chǎn)品和服務(wù)上實現(xiàn)技術(shù)性和專有性,以充分滿足消費者的個性化需求[1]。
許多企業(yè)已開始轉(zhuǎn)變生產(chǎn)方式,從過去的大規(guī)模大批量的生產(chǎn)方式轉(zhuǎn)向了小規(guī)模小批量及定制化的柔性生產(chǎn)方式[2]。用戶特定的定制要求使得以往的標準化工業(yè)生產(chǎn)被定制化柔性生產(chǎn)方式取代,而勞動力成本的不斷上升也促進了以工業(yè)機器人和圖像視覺技術(shù)為代表的自動化技術(shù)在各行業(yè)生產(chǎn)領(lǐng)域的廣泛應(yīng)用。
機器視覺廣泛應(yīng)用于生產(chǎn)制造檢測等工業(yè)領(lǐng)域,用來保證產(chǎn)品質(zhì)量、控制生產(chǎn)流程、感知環(huán)境等,產(chǎn)品的定制化生產(chǎn),需要工業(yè)機器人和機器視覺必須能快速高效、準確地對產(chǎn)品定制化流程信息進行識別。
圖1 視覺輸出比對和機器人數(shù)據(jù)獲得Fig.1 Visual output comparison and robot data acquisition
例如加工完成一個定制化輪轂需要加工工藝“C1B1C2C3”(C1代表打磨類型1;B1代表數(shù)控類型1;C2代表打磨類型2;C3代表打磨類型3),此定制輪轂按照工藝代碼依次完成C1、B1、C2、C3的加工。傳統(tǒng)方法利用視覺系統(tǒng)的輸出比對功能來比較工藝代碼,并將此工藝代碼的索引號進行輸出。工業(yè)機器人通過獲得的索引號來進行工序的執(zhí)行,如圖1所示。
假設(shè)一個產(chǎn)品需要3種工藝來完成,每種工藝可能有N種情況,那么在識別完產(chǎn)品信息后,需要有N3種情況需要比對,也就需要在視覺系統(tǒng)中建立N3個對應(yīng)索引號進行匹配。根據(jù)實際生產(chǎn)的工藝復(fù)雜程度,產(chǎn)品的工藝流程可能有4種,也可能是5種或者是6種以上,那么比對次數(shù)將成幾何倍數(shù)增長。
如果采用此種完全枚舉法,信息比對數(shù)量繁多且不利于程序的及時調(diào)整,而通過工業(yè)機器人對從視覺系統(tǒng)發(fā)送過來的數(shù)據(jù)進行合理的提取和處理,可以減少比對次數(shù),對于新增加的工藝流程也能夠?qū)崿F(xiàn)快速調(diào)整,進而非常有效地提升產(chǎn)品的定制化生產(chǎn)進程。
圖2 ABB機器人發(fā)送和接收數(shù)據(jù)流程(視覺系統(tǒng)通訊)Fig.2 The robot sends and receives data flow(visual communication)
機器視覺系統(tǒng)是通過機器視覺產(chǎn)品將被攝取目標轉(zhuǎn)換成圖像信號,傳送給專用的圖像處理系統(tǒng),得到被攝目標的形態(tài)信息,并將其轉(zhuǎn)變成數(shù)字化信號,圖像處理系統(tǒng)對這些信號進行目標特征的抽取,再根據(jù)預(yù)設(shè)的允許度和其他條件輸出結(jié)果,實現(xiàn)自動識別功能,進而根據(jù)判別的結(jié)果來控制現(xiàn)場的設(shè)備動作。本系統(tǒng)利用視覺系統(tǒng)實現(xiàn)二維碼(生產(chǎn)工序數(shù)據(jù))數(shù)據(jù)信息的識別。
ABB工業(yè)機器人控制器可作為服務(wù)器或客戶機,利用套接字(socket)通信與機器視覺系統(tǒng)進行通信[3-4]。
ABB機器人發(fā)送和接收數(shù)據(jù)流程如圖2所示。
定制化產(chǎn)品因為需要充分滿足用戶需求,其產(chǎn)品生產(chǎn)流程可能涉及多個選擇分支,采用傳統(tǒng)方法時信息比對數(shù)量繁多且不利于程序的及時調(diào)整,因此本文提出利用ABB工業(yè)機器人強大的數(shù)據(jù)處理功能進行視覺信息的分析和提取,從而增強系統(tǒng)的可擴展性和調(diào)整的方便性。本實例中從視覺系統(tǒng)發(fā)送過來的數(shù)據(jù)格式如圖3所示,數(shù)據(jù)類型為字符型,其中“流程信息數(shù)據(jù)”部分中1個字母+1個數(shù)字組成1個代碼組,標識1個對應(yīng)的產(chǎn)品生產(chǎn)流程。視覺系統(tǒng)識別并輸出產(chǎn)品二維碼信息,工業(yè)機器人需要將視覺系統(tǒng)的信息按照加工順序進行分組提取對比,與成組索引號比對相比,其比對次數(shù)大量減少,有利于程序的調(diào)整。
圖3 獲得的字符串數(shù)據(jù)格式Fig.3 The string data format
工藝流程復(fù)雜程度不同,視覺系統(tǒng)獲得的數(shù)據(jù)長度即機器人端接收到的數(shù)據(jù)長度也不同,主要是與產(chǎn)品生產(chǎn)流程復(fù)雜程度相對應(yīng)的產(chǎn)品“流程信息數(shù)據(jù)”的長度有變化,分析如圖3所示構(gòu)成可知,數(shù)據(jù)共包含3個部分:命令執(zhí)行OK響應(yīng)、流程信息數(shù)據(jù)、校驗+結(jié)束符,其中命令執(zhí)行OK響應(yīng)、校驗和結(jié)束字符為固定數(shù)據(jù)且具有固定長度,而“流程信息數(shù)據(jù)”部分字符是所需提取的代表產(chǎn)品生產(chǎn)流程信息的數(shù)據(jù)。因此,實際要做的工作就是將這部分信息進行有效提取,比對后確定對應(yīng)的生產(chǎn)流程,驅(qū)動產(chǎn)品的生產(chǎn)流程來執(zhí)行。利用ABB工業(yè)機器人中StrPart、StrLen、For等指令進行循環(huán)提取,將代表流程信息的數(shù)據(jù)依次完全提取。
圖4 產(chǎn)品流程信息提取流程圖Fig.4 Flow chart of product flow information extraction
首先,用StrLen指令計算出數(shù)據(jù)所包含的字符串的總體長度,字符串總長度減去“命令執(zhí)行OK響應(yīng)”長度和“校驗+結(jié)束符”長度,就得到“流程信息數(shù)據(jù)”的字符長度,因為數(shù)據(jù)里與流程信息對應(yīng)的代碼(字符型數(shù)據(jù))的組成規(guī)律是1個字母+1個數(shù)字組成的1個代碼組,所以該長度再除以2,就計算出“流程信息數(shù)據(jù)”所對應(yīng)的流程數(shù),也就是對“流程信息數(shù)據(jù)”字符串的提取次數(shù),采用FOR循環(huán)語句構(gòu)成循環(huán)體,循環(huán)次數(shù)等于提取次數(shù);然后,通過StrPart指令每1次存放2個字符到string數(shù)據(jù)類型的數(shù)組shuju{}中,從而完成將第二部分所有字符按照分組形式依次存放在shuju{}數(shù)組中,并等待后續(xù)流程判斷使用。
例如string1=“OK/0DOK/0DC1B1C2C3/0D/0D”,經(jīng)過提取后,shuju{1}=“C1”,shuju{2}=“B1”,shuju{3}=“C2”,shuju{4}=“C3”。提取控制流程如圖4所示。
圖5 產(chǎn)品流程信息提取示例Fig.5 Sample of product process information extraction
按照以上方法,將需要的流程信息以2位為1組進行提取。以“OK/0DOK/0DC1B1C2C3/0D/0D”的信息為例,信息提取情況如圖5所示。
信息提取完成后,對被提取的流程信息與被定義的信息進行比對,根據(jù)比對判斷結(jié)果執(zhí)行相對應(yīng)的例行程序。
用ABB工業(yè)機器人中的TEST指令,就可以實現(xiàn)提取的產(chǎn)品流程信息與被定義輸出流程之間的比對工作,根據(jù)比對結(jié)果,執(zhí)行相對應(yīng)的產(chǎn)品生產(chǎn)程序。將存放在shuju{}數(shù)組中的產(chǎn)品流程信息數(shù)據(jù)依次取出與被定義的生產(chǎn)流程比較,從而執(zhí)行相對應(yīng)的生產(chǎn)程序。由于涉及到多個生產(chǎn)流程,用TEST、CASE語句實現(xiàn)相對應(yīng)的生產(chǎn)程序的執(zhí)行,如產(chǎn)品生產(chǎn)工序定義,信息提取后的比對和工藝流程執(zhí)行情況如表1所示。
表1 生產(chǎn)工序定義表Tab.1 Production process definition table
按照圖4的內(nèi)容,產(chǎn)品流程信息提取次數(shù)存放于cishu,產(chǎn)品流程信息編號存放在shuju{}數(shù)組中。
For b from 1 to cishu do// 循環(huán)體建立
TEST shuju// 比對流程信息
CASE “B1”: //比對到流程信息編號B1
B1; //調(diào)用B1對應(yīng)的數(shù)控加工工序程序
CASE “C2”://比對到流程信息編號C2
C2; //調(diào)用C2對應(yīng)的打磨加工工序程序
CASE “A2”://比對到流程信息編號A2
A2; //調(diào)用A2對應(yīng)的倉儲工序程序
……
ENDTEST// 比對結(jié)束
工業(yè)機器人通過socket與機器人視覺系統(tǒng)進行通訊,對接收的產(chǎn)品流程信息進行分組提取和信息比對,可以實現(xiàn)對定制化產(chǎn)品流程信息的高效提?。煌瑫r可以快速應(yīng)對生產(chǎn)流程的調(diào)整,實現(xiàn)產(chǎn)品的定制化生產(chǎn),有效解決原有方法擴展性和靈活性不足的問題。