戴福全,劉路杰
(1.福建工程學(xué)院 機(jī)械與汽車工程學(xué)院,福建 福州350118;2.福建海源復(fù)合材料科技股份有限公司,福建 福州350101)
近年來,工業(yè)界廣泛采用機(jī)器人與視覺配合的方式實(shí)現(xiàn)生產(chǎn)線的上下料、分揀任務(wù),相關(guān)的研究也成為熱點(diǎn)[1]。葉卉等[2]采用雙目相機(jī)立體視覺,通過OpenCV和Triclops庫,搭建了一套抓取系統(tǒng),實(shí)現(xiàn)了對圓柱體和長方體薄板的分類位姿識別。解明利等[3]對傳統(tǒng)的Hough算法進(jìn)行了改進(jìn),設(shè)計(jì)了一套基于機(jī)器視覺的分揀系統(tǒng)。陳立挺等[4]研究了一種基于MLP分類器的視覺算法,實(shí)現(xiàn)了對工件的識別。在實(shí)際的企業(yè)生產(chǎn)中,線激光相機(jī)的應(yīng)用相對與單目相機(jī)還是較少的,單目相機(jī)只能獲取物體的二維平面數(shù)據(jù),無法獲取物體高度數(shù)據(jù)。本研究采用3D線激光相機(jī)和單目相機(jī)相結(jié)合,基于視覺處理平臺Halcon,在Qt軟件框架下進(jìn)行二次開發(fā),實(shí)現(xiàn)了對分揀對象的位姿估計(jì)及中心坐標(biāo)的求取,構(gòu)建了機(jī)器人視覺引導(dǎo)的自動(dòng)抓取和分類軟件框架,為實(shí)際生產(chǎn)提供參考。
抓取系統(tǒng)硬件部分主要包括ABB機(jī)器人、EPSON機(jī)器人、激光相機(jī)、單目相機(jī)、LED光源、工控機(jī)(上位機(jī))、光電開關(guān)傳感器、PCI數(shù)據(jù)采集卡、傳送帶和控制柜等,如圖1所示。系統(tǒng)由抓取和分揀兩個(gè)子系統(tǒng)組合構(gòu)成,可以實(shí)現(xiàn)對無序堆疊的多類物塊進(jìn)行抓取、分類并按照一定的角度擺放。抓取子系統(tǒng)采用的是3D視覺方案,ABB機(jī)器人負(fù)責(zé)抓取無序堆疊擺放的物塊,放置到傳送帶上。分揀子系統(tǒng)采用的是2D視覺方案,EPSON機(jī)器人從傳送帶上抓取物塊,并按照一定角度分類擺放在托盤上。工控機(jī)作為兩個(gè)子系統(tǒng)共同的主控,負(fù)責(zé)協(xié)調(diào)兩個(gè)子系統(tǒng)中機(jī)器人的動(dòng)作,工控機(jī)與相機(jī)、機(jī)器人之間通過TCP/IP獲取圖像和發(fā)送控制命令[5-6]。
圖1 抓取分類系統(tǒng)組成Fig.1 Composition of the grasping and classification system
抓取子系統(tǒng)中激光相機(jī)安裝在六軸機(jī)器人端部,隨著機(jī)器人而移動(dòng),并且分別連著機(jī)器人和工控機(jī),機(jī)械手根據(jù)其所在位置,通過I/O接口發(fā)送命令給相機(jī),控制相機(jī)掃描獲取圖像。分揀子系統(tǒng)中,傳送帶兩側(cè)安裝有兩對光電開關(guān)傳感器,其通過PCI數(shù)據(jù)采集卡連接到工控機(jī),以實(shí)現(xiàn)將模擬信號轉(zhuǎn)換為數(shù)字信號,其中第一對傳感器控制安裝在其正上方的單目相機(jī)獲取圖像,第二對傳感器控制機(jī)械手抓取物塊。
在視覺處理過程中,激光相機(jī)和單目相機(jī)都需要進(jìn)行內(nèi)參、外參標(biāo)定,內(nèi)參標(biāo)定用于畸變矯正,外參標(biāo)定用于相機(jī)坐標(biāo)和機(jī)器人坐標(biāo)的變換[7-10]。標(biāo)定完成,抓取系統(tǒng)的3D相機(jī)可以調(diào)用標(biāo)定信息對圖像進(jìn)行畸變矯正,經(jīng)過視覺處理后得到物塊的中心點(diǎn)坐標(biāo)高度值。根據(jù)高度值選出堆疊物體中最高的物塊,再計(jì)算此物塊在相機(jī)坐標(biāo)系下的位姿,在經(jīng)過坐標(biāo)轉(zhuǎn)換后得到最終機(jī)器人坐標(biāo)系下的位姿。分揀子系統(tǒng)采用的是模板匹配方法來判斷物塊類型,以及獲取中心坐標(biāo)和旋轉(zhuǎn)角度。模板匹配的方法眾多,其中基于外型輪廓的模板匹配應(yīng)用最為廣泛,對復(fù)雜物體同樣適用,物體表面輪廓特征越多,效果越好,此處選取較為典型的圓形物體、矩形物體和六邊形物體作為實(shí)驗(yàn)對象。
抓取子系統(tǒng)針對無序堆疊的物塊抓取首先需要獲取其三維位姿,步驟如下:
(1)相機(jī)在機(jī)器人帶動(dòng)下掃描物體區(qū)域,得到一幅高度圖像。
(2)通過Halcon算子將掃描得到的圖像按照點(diǎn)云的x、y、z坐標(biāo)轉(zhuǎn)換為灰度值,得到Image_X、Image_Y和Image_Z 圖3張圖片。
(3)通過算子“xyz_to_object_model_3d”將Image_X、Image_Y和Image_Z圖轉(zhuǎn)換為三維模型,再通過“select_object_model_3d”選出3D模型中的物塊部分。接著通過算子“get_object_model_3d_params”查詢?nèi)S模型的屬性,獲取物塊中心坐標(biāo)的高度值Z,選取Z值最大的為待抓取物塊。
(4)利用算子“moments_object_model_3d”計(jì)算出相機(jī)坐標(biāo)系中的位姿。對該位姿使用標(biāo)定參數(shù)校正,得到三維姿態(tài),再通過坐標(biāo)變換轉(zhuǎn)換為機(jī)器人坐標(biāo)系的位姿,并將其發(fā)送給ABB機(jī)器人。
分揀系統(tǒng)通過面陣相機(jī)獲取傳送帶上待分類物體圖像,再通過視覺算法計(jì)算物體的中心坐標(biāo),從而實(shí)現(xiàn)機(jī)器人對物體的分揀,具體步驟為:
(1)創(chuàng)建模板。模板創(chuàng)建是在標(biāo)準(zhǔn)的物體圖像選擇ROI區(qū)域,并將其保存。本實(shí)驗(yàn)中一共有3種不同的對象需要分揀,包括圓形物體、矩形物體和六邊形物體,故需要?jiǎng)?chuàng)建3種不同的模板。
(2)模板匹配。匹配過程先調(diào)用“read_shape_model”算子讀取模板,再通過“find_shape_model”算子進(jìn)行匹配,當(dāng)匹配分值大于0.95時(shí)判定為匹配成功。由于存在3種對象,匹配過程先采用一種模板進(jìn)行分值計(jì)算,若分值大于0.95則認(rèn)為成功匹配,否則繼續(xù)讀取下一個(gè)模板,再進(jìn)行匹配,直到匹配成功為止。如圖2為匹配結(jié)果,從匹配結(jié)果可以看出物塊類型、中心坐標(biāo)、角度以及消耗時(shí)間。
圖2 模板匹配結(jié)果Fig.2 Results of template matching
軟件主要的核心算法代碼是在Halcon環(huán)境下編寫,并進(jìn)行程序功能驗(yàn)證后,導(dǎo)出為C++代碼,然后移植到Qt框架中,再通過UI構(gòu)建整個(gè)功能界面,最后生成應(yīng)用程序。通過此方法實(shí)現(xiàn)了Qt和Halcon的聯(lián)合混編,實(shí)現(xiàn)抓取分類功能。
上位機(jī)軟件根據(jù)模塊化設(shè)計(jì)思路設(shè)計(jì),其架構(gòu)按照主要功能分為4個(gè)模塊:通信模塊(與機(jī)器人及相機(jī)數(shù)據(jù)交換)、相機(jī)模塊(獲取圖像)、圖像處理模塊(處理圖像獲取需要的數(shù)據(jù))、可視化模塊(顯示圖像處理結(jié)果)、傳感器模塊(控制光電開關(guān)傳感器),如圖3所示。
圖3 軟件架構(gòu)Fig.3 Architecture of the software
系統(tǒng)軟件交互界面的主要功能包括:相機(jī)和機(jī)器人之間的通信、采集圖像畫面顯示、實(shí)時(shí)消息顯示、機(jī)械手坐標(biāo)補(bǔ)償調(diào)整及計(jì)數(shù)等等。相機(jī)和機(jī)器人之間的通信基于TCP/IP協(xié)議[11],主要功能是進(jìn)行數(shù)據(jù)交換,其優(yōu)點(diǎn)是傳輸速度快、效率高,有效地保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性。圖像顯示模塊的主要功能是顯示圖像處理結(jié)果,從相機(jī)獲取圖像開始到圖像處理過程中的每一步都實(shí)時(shí)顯示在窗口中。實(shí)時(shí)消息框的功能則是打印系統(tǒng)每一步的運(yùn)行狀態(tài),包括下位機(jī)返回的數(shù)據(jù)以及上位機(jī)發(fā)送的數(shù)據(jù)等等。通過圖像和消息的顯示,可實(shí)時(shí)監(jiān)控系統(tǒng)運(yùn)行的情況,有效保證了系統(tǒng)運(yùn)行的穩(wěn)定性。由于標(biāo)定存在不可避免的誤差,通過機(jī)械手坐標(biāo)補(bǔ)償調(diào)整功能,微調(diào)偏移量,可提高系統(tǒng)精度。
系統(tǒng)首先通過3D相機(jī)對無序堆疊的零件進(jìn)行掃描定位,再由6軸機(jī)器人抓取至傳送帶,2D相機(jī)識別傳送帶上零件種類后,SCARA機(jī)器人將零件抓取至分類位置。具體來說,6軸機(jī)器人先帶動(dòng)3D相機(jī)進(jìn)行掃描。當(dāng)機(jī)器人運(yùn)動(dòng)至掃描區(qū)域前端時(shí),機(jī)器人通過I/O接口發(fā)送命令給激光相機(jī),打開激光線開始掃描獲取圖像。獲取的圖像經(jīng)由工控機(jī)程序處理后得到物塊位姿,再將位姿發(fā)送至機(jī)器人抓取零件,然后放置在傳送帶上。當(dāng)零件移動(dòng)到相機(jī)正下方傳感器處時(shí),傳感器觸發(fā)相機(jī)拍照,再經(jīng)視覺軟件處理后判斷零件類別。同時(shí),視覺軟件計(jì)算得到物塊中心坐標(biāo)及角度,SCARA機(jī)器人基于這些信息移動(dòng)至傳感器2處。當(dāng)零件到達(dá)傳感器2時(shí)發(fā)出到達(dá)信號,SCARA機(jī)器人即吸取零件將其分類放置。分揀子系統(tǒng)布局結(jié)構(gòu)如4所示。
圖4 分揀子系統(tǒng)布局結(jié)構(gòu)示意圖Fig.4 Schematic illustration of the layout structure of the sorting subsystem
抓取系統(tǒng)將無序堆疊的物體抓取至傳送帶,分揀系統(tǒng)將傳送帶上物體分類擺放。利用前面提到的方法,系統(tǒng)能夠順利實(shí)現(xiàn)無序堆疊的物體抓取及分類擺放,實(shí)驗(yàn)結(jié)果如表1所示。
表1 模板匹配結(jié)果Tab.1 Results of template matching
從表1可見,系統(tǒng)可以準(zhǔn)確識別物塊的類型、中心坐標(biāo)及角度,模板匹配精度都大于95%。另外,每張圖的匹配時(shí)間在65 ms以內(nèi),識別一次所需時(shí)間平均值為47 ms。視覺定位結(jié)果與機(jī)械手末端實(shí)際抓取位置的放置誤差在0.1~1.5 mm內(nèi)(企業(yè)要求誤差在±5 mm以內(nèi)),擺放角度在5°以內(nèi),具有較高的定位精度,可以較好滿足企業(yè)生產(chǎn)要求。 此外,試驗(yàn)還對抓取分揀系統(tǒng)的分揀效率進(jìn)行了驗(yàn)證,如表2所示,正常企業(yè)員工的分揀速度為50個(gè)/min左右,而采用機(jī)器人分揀最少可以達(dá)到82個(gè)/min左右,生產(chǎn)效率提高了將近62%,物塊的識別分類能夠達(dá)到100%,大大提高了企業(yè)的生產(chǎn)效率,節(jié)約了人工成本。然而,由于未在傳送帶上加入編碼器,機(jī)器人無法提前預(yù)知物塊位置,隨著傳送帶速度的提高,機(jī)器人在抓取銜接處不易對準(zhǔn)容易滑落,抓取率也有所下降。
表2 單位時(shí)間內(nèi)分揀個(gè)數(shù)與抓取成功率結(jié)果Tab.2 Results of the sorting number and grasping success rate in a time unit
基于機(jī)器視覺,通過計(jì)算中心矩和模板匹配的方式獲取物塊位姿和坐標(biāo),提出了利用六自由度串聯(lián)工業(yè)機(jī)器人和SCARA四軸機(jī)器人對物體抓取分類的方法,并編寫了上位機(jī)控制軟件,搭建了一套抓取分類系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)滿足預(yù)定設(shè)計(jì)要求,生產(chǎn)效率提高了62%左右。下一步將針對三維位姿估計(jì)算法進(jìn)行研究,提高抓取速度,結(jié)合深度學(xué)習(xí)對產(chǎn)品進(jìn)行分類和判別。由于視覺標(biāo)定存在不可避免的誤差,所以對于抓取點(diǎn)坐標(biāo)的準(zhǔn)確度有待提高。