張 毅,王彥博,付華森,時(shí)峻峰,陳 霓
1.重慶郵電大學(xué)先進(jìn)制造工程學(xué)院,重慶市南岸區(qū)崇文路2號(hào) 400065
2.湖北省煙草公司宜昌市公司,湖北省宜昌市西陵區(qū)沿江大道42號(hào) 443000
3.湖北眾與和智能裝備科技有限公司,湖北省宜昌市西陵區(qū)黃河路8號(hào) 443000
近年來(lái)工業(yè)機(jī)器人在工業(yè)生產(chǎn)和物流運(yùn)輸領(lǐng) 域中發(fā)揮了重要作用[1],替代了大量重體力、重復(fù)性工作,而碼垛機(jī)器人在其中扮演著重要角色。目前常用的碼垛系統(tǒng)主要是對(duì)單一或規(guī)則的物體搬運(yùn)碼垛[2],在此過(guò)程中動(dòng)作固定且智能化程度較低,因此無(wú)法滿(mǎn)足多品種不規(guī)則組合碼垛需求。對(duì)此,李紅果等[3]設(shè)計(jì)了一種多垛型機(jī)器人碼垛系統(tǒng),采用一次抓取分批次放置的整體方案,提出一種基于垛型數(shù)據(jù)結(jié)構(gòu)的機(jī)構(gòu),解決了多垛型的碼垛問(wèn)題,但該系統(tǒng)仍然針對(duì)的是單一品種碼垛。童上高等[4]提出了一種基于機(jī)器視覺(jué)的多品種包件碼垛方法,通過(guò)提取包件的圖像特征進(jìn)行識(shí)別匹配,完成各品種包件識(shí)別并分類(lèi)碼垛,但各品種之間缺乏互相組合匹配的碼垛要求。在煙草物流的碼垛裝配中,由于客戶(hù)訂單的復(fù)雜性和隨機(jī)性會(huì)導(dǎo)致不同數(shù)量的條煙包裝成形狀不同的煙包,且要求條煙交叉碼放,5層為一個(gè)整體,以利于碼放的穩(wěn)定性,避免損壞條煙。因此,由25條煙組成的5×5煙包可以直接進(jìn)行碼垛,而其他不規(guī)則形狀的煙包則需要匹配成整層煙包再進(jìn)行碼垛操作。傳統(tǒng)的煙包碼垛通常由人工進(jìn)行匹配和碼放,勞動(dòng)強(qiáng)度大,工作效率低,無(wú)法滿(mǎn)足煙草物流現(xiàn)代化生產(chǎn)需求。目前機(jī)器視覺(jué)技術(shù)在生產(chǎn)制造領(lǐng)域得到廣泛應(yīng)用[5],是獲得環(huán)境信息的主要手段之一,可以有效提高系統(tǒng)的靈活性。為此,設(shè)計(jì)了一種基于機(jī)器視覺(jué)的不規(guī)則煙包校對(duì)碼垛系統(tǒng),以期實(shí)現(xiàn)條煙包裝自動(dòng)匹配,提高物流系統(tǒng)碼垛效率。
該系統(tǒng)主要由組合碼垛系統(tǒng)和視覺(jué)識(shí)別系統(tǒng)兩部分構(gòu)成,見(jiàn)圖1。通過(guò)機(jī)器視覺(jué)技術(shù)對(duì)輸送帶上的煙包動(dòng)態(tài)檢測(cè)確定其形狀,判斷是否與上位機(jī)數(shù)據(jù)庫(kù)中的煙包信息一致,核對(duì)信息無(wú)誤后進(jìn)行組合碼垛。在此過(guò)程中上位機(jī)監(jiān)控軟件對(duì)設(shè)備運(yùn)行狀態(tài)及煙包檢測(cè)結(jié)果進(jìn)行實(shí)時(shí)監(jiān)控,以方便了解系統(tǒng)工作狀況。
圖1 系統(tǒng)布局示意圖Fig.1 Schematic diagram of system layout
組合碼垛系統(tǒng)分為硬件部分和軟件部分,是整個(gè)系統(tǒng)的框架支撐,主要實(shí)現(xiàn)碼垛煙包的預(yù)排層、位姿調(diào)整、上位機(jī)界面顯示、機(jī)械臂動(dòng)作編程與信號(hào)反饋等功能。
1.1.1 硬件部分
組合碼垛系統(tǒng)的硬件部分主要由翻轉(zhuǎn)機(jī)構(gòu)、矯正裝置、碼垛機(jī)器人、機(jī)械抓手、氣動(dòng)裝備、緩沖平臺(tái)、升降平臺(tái)和托盤(pán)管理裝置等部分組成。其中,翻轉(zhuǎn)機(jī)構(gòu)對(duì)目標(biāo)煙包完成180°翻轉(zhuǎn);矯正裝置通過(guò)導(dǎo)條、擋板、氣缸和光電傳感器等調(diào)整煙包姿態(tài),以方便碼垛機(jī)器人快速抓?。粰C(jī)械臂采用德國(guó)庫(kù)卡公司生產(chǎn)的六軸機(jī)械臂,末端執(zhí)行機(jī)構(gòu)為機(jī)械抓手,適合煙包抓放且不損壞煙包;升降平臺(tái)和托盤(pán)管理裝置共同實(shí)現(xiàn)托盤(pán)的固定、自由升降和自動(dòng)輸送。
1.1.2 軟件部分
軟件部分包含上位機(jī)控制程序和底層PLC程序以及機(jī)器人執(zhí)行程序的設(shè)計(jì),見(jiàn)圖2。上位機(jī)界面程序由C#和SQL Sever實(shí)現(xiàn),完成不規(guī)則煙包的預(yù)排層算法、煙包路徑規(guī)劃和實(shí)時(shí)信息的監(jiān)控。PLC程序控制翻轉(zhuǎn)機(jī)構(gòu)、矯正裝置、抓手、升降平臺(tái)以及傳感器的信號(hào)反饋。機(jī)器人執(zhí)行程序包括接收啟動(dòng)/停止信號(hào),根據(jù)上位機(jī)發(fā)送的煙包路徑實(shí)時(shí)執(zhí)行碼垛動(dòng)作。
1.1.3 組合碼垛步驟
圖2 系統(tǒng)結(jié)構(gòu)示意圖Fig.2 Schematic diagram of system structure
在上位機(jī)中將煙包訂單信息導(dǎo)入數(shù)據(jù)庫(kù)中,使用預(yù)排層算法[6]計(jì)算出每個(gè)煙包的處理步驟,包括是否需要匹配、待匹配煙包在緩沖區(qū)的暫放位置、是否需要翻轉(zhuǎn)、在緩沖區(qū)的擺放位置、在托盤(pán)上的擺放位置等。根據(jù)預(yù)排層算法每個(gè)煙包可能進(jìn)行的操作有4種情況:①煙包內(nèi)有25條煙,則將煙包直接放置在托盤(pán)上;②緩沖區(qū)沒(méi)有可以進(jìn)行匹配的煙包,則將煙包放置在緩沖區(qū)的空閑位置上;③緩沖區(qū)有可以進(jìn)行匹配的煙包,則將煙包匹配后放置在托盤(pán)上;④煙包進(jìn)行兩次匹配,即匹配一個(gè)煙包后,在緩沖區(qū)找到另一個(gè)煙包匹配成符合要求的5層煙包。
本研究中采用碼放煙包不多于兩次匹配的方案,只有在緩沖區(qū)的煙包個(gè)數(shù)大于某一數(shù)量時(shí),才采用3個(gè)煙包進(jìn)行匹配,以快速減少緩沖區(qū)的煙包數(shù)量,提高碼垛效率。因此,完成煙包匹配需滿(mǎn)足以下3個(gè)條件。
第一,第一次匹配后的頂層或者匹配層的煙包數(shù)量大于等于3個(gè),即:
式中:a為待匹配煙包的條煙數(shù)量,取值范圍為[5,25];b為緩沖區(qū)待匹配煙包的條煙數(shù)量,取值范圍為[5,25];%為除以5之后取其余數(shù),下同。
第二,第二個(gè)緩沖區(qū)待匹配煙包要滿(mǎn)足頂層數(shù)量大于等于3個(gè),即:
式中:c為第二個(gè)待匹配煙包的條煙數(shù)量。
第三,3個(gè)煙包匹配后的層數(shù)為5層,即:
式中:/為除以5之后取其整數(shù)。
由此得到預(yù)排層算法流程,見(jiàn)圖3。經(jīng)過(guò)計(jì)算,將這些數(shù)據(jù)保存在上位機(jī)中等待PLC調(diào)用。計(jì)數(shù)器將采集到的計(jì)數(shù)值發(fā)送到上位機(jī),用于確定當(dāng)前待處理煙包的序列,上位機(jī)再將此序列煙包需要進(jìn)行的操作編碼發(fā)送給PLC,由PLC控制各設(shè)備實(shí)現(xiàn)對(duì)煙包的翻轉(zhuǎn)和矯正。
根據(jù)計(jì)算結(jié)果,系統(tǒng)最終確定煙包是否可以直接在托盤(pán)上碼放,如果不能則在緩沖區(qū)中尋找合適的煙包進(jìn)行匹配再進(jìn)行碼垛;如果仍然無(wú)法滿(mǎn)足條件,則將煙包放置在緩沖區(qū)中等待后面煙包進(jìn)行匹配。煙包的匹配和碼放均由機(jī)械臂和抓手配合完成,機(jī)械臂移動(dòng)路徑由上位機(jī)計(jì)算并由PLC控制。組合碼垛流程見(jiàn)圖4。
圖3 預(yù)排程算法流程圖Fig.3 Flowchart of pre-scheduling algorithm
視覺(jué)識(shí)別系統(tǒng)主要由光源、CCD相機(jī)、計(jì)算機(jī)、圖像處理單元、機(jī)器視覺(jué)處理軟件、人機(jī)接口、通訊接口等組成。根據(jù)碼垛系統(tǒng)的性能要求,視覺(jué)識(shí)別系統(tǒng)應(yīng)具有正確、快速和及時(shí)響應(yīng)等特性。在組合碼垛過(guò)程中保證煙包實(shí)時(shí)信息的正確非常重要,一旦因人工失誤或者包裝出錯(cuò)導(dǎo)致煙包實(shí)時(shí)信息與數(shù)據(jù)庫(kù)信息不匹配,則會(huì)造成后續(xù)操作連續(xù)錯(cuò)誤。為此,通過(guò)引入機(jī)器視覺(jué)技術(shù)對(duì)不規(guī)則煙包識(shí)別和校對(duì),及時(shí)反饋煙包信息,避免碼垛時(shí)出現(xiàn)組合匹配錯(cuò)誤,進(jìn)而提高整個(gè)系統(tǒng)的智能化程度和安全性。
圖4 組合碼垛流程圖Fig.4 Flowchart of parcel stacking
對(duì)不規(guī)則煙包的識(shí)別過(guò)程見(jiàn)圖5。采集目標(biāo)圖像信息后快速進(jìn)行圖像預(yù)處理,提取圖像特征并進(jìn)行匹配,根據(jù)匹配結(jié)果選擇組合碼垛或者出錯(cuò)報(bào)警,以保證系統(tǒng)順利運(yùn)行和煙包正確輸送。
相機(jī)直接提取的圖片中含有大量數(shù)據(jù)信息,例如灰度、顏色、邊緣、紋理等特性,以及由于相機(jī)自身或是環(huán)境影響產(chǎn)生的噪聲[7]。因圖像預(yù)處理不僅能消除部分噪聲,提升圖像質(zhì)量,還可以提高圖像的處理速度,有利于后續(xù)特征的提取和匹配。圖像預(yù)處理[8]主要包括圖像增強(qiáng)、圖像濾波、圖像二值化以及孔洞填充[9]。圖像增強(qiáng)是通過(guò)改變灰度值使圖像中目標(biāo)物體與背景差距更明顯,進(jìn)而達(dá)到增強(qiáng)對(duì)比度的效果。在采集圖像時(shí),因相機(jī)曝光時(shí)間過(guò)短等原因會(huì)出現(xiàn)圖像質(zhì)量差、對(duì)比度弱等問(wèn)題[10],可能導(dǎo)致目標(biāo)在圖像上表現(xiàn)出較為模糊的邊角特征。圖像的平滑濾波可以去除圖像在獲取及傳輸過(guò)程中所攜帶的部分噪聲,圖像二值化[11]是以閾值為標(biāo)準(zhǔn)進(jìn)行圖像分割,將目標(biāo)區(qū)域從原圖中區(qū)分出來(lái)。圖6可見(jiàn),在預(yù)處理后的目標(biāo)二值圖像中,局部區(qū)域仍然處于未分割狀態(tài),這可能是由于目標(biāo)物體所帶的毛刺噪聲以及孔洞噪聲造成的,利用數(shù)學(xué)形態(tài)學(xué)進(jìn)行運(yùn)算處理則可以消除這種影響。
經(jīng)過(guò)圖像預(yù)處理得到較為理想的目標(biāo)二值圖后就可以進(jìn)行特征提取,考慮到本系統(tǒng)中的不規(guī)則煙包由條煙組成,具有明顯的角點(diǎn)、邊緣特征[12],因此提取煙包目標(biāo)圖像中的Harris角點(diǎn)特征,通過(guò)歸一化互相關(guān)匹配法完成角點(diǎn)特征的粗匹配,再利用改進(jìn)的RANSAC算法建立特征點(diǎn)雙向斜率關(guān)系,剔除誤匹配點(diǎn),實(shí)現(xiàn)不規(guī)則煙包的準(zhǔn)確匹配。
2.2.1 Harris角點(diǎn)檢測(cè)
圖像的角點(diǎn)特征是圖像中具有強(qiáng)烈突變性的點(diǎn),例如邊緣曲線上曲率極大值的點(diǎn)或者亮度劇烈變化的點(diǎn)。角點(diǎn)特征對(duì)旋轉(zhuǎn)、亮度變化都有較強(qiáng)的魯棒性,抗干擾能力強(qiáng)[13],且角點(diǎn)提取過(guò)程簡(jiǎn)單,有利于后續(xù)特征匹配。角點(diǎn)檢測(cè)則是基于灰度檢測(cè)或者通過(guò)邊緣檢測(cè)來(lái)計(jì)算其特征[14]。其中,邊緣檢測(cè)計(jì)算量較大,而基于灰度的角點(diǎn)檢測(cè)可采用圖像梯度及曲率作為檢測(cè)信息,適用于本系統(tǒng)。圖7可見(jiàn),Harris角點(diǎn)檢測(cè)原理是通過(guò)一個(gè)小窗口使其任意移動(dòng),若窗口內(nèi)灰度值變化幅度大,則窗口內(nèi)含有角點(diǎn);若灰度值變化只在某個(gè)方向上移動(dòng),則判定為邊緣;若灰度值幾乎不發(fā)生變化,則判定為正常區(qū)域。
圖5 視覺(jué)處理流程圖Fig.5 Flowchart of visual processing
圖6 圖像預(yù)處理Fig.6 Image preprocessing
圖7 角點(diǎn)示意圖Fig.7 Schematic diagram of corner points
2.2.2 歸一化互相關(guān)匹配法
歸一化互相關(guān)匹配法是一種簡(jiǎn)單有效的角點(diǎn)匹配方法,并在一定程度上改善了錯(cuò)誤匹配問(wèn)題。其原理是通過(guò)一個(gè)窗口對(duì)比原圖與模板圖像在窗口內(nèi)灰度值的相似度,若是符合設(shè)定的閾值則判斷為匹配點(diǎn)對(duì),進(jìn)而完成角點(diǎn)特征匹配。圖8為目標(biāo)煙包與模塊庫(kù)煙包的二值圖角點(diǎn)匹配效果圖,其中大部分角點(diǎn)實(shí)現(xiàn)了正確匹配,但仍然存在少量的誤匹配點(diǎn)對(duì)。因此,提出了一種改進(jìn)的RANSAC(Random Sample Consensus)算法[15]剔除誤匹配點(diǎn)對(duì),以提高匹配精度。
圖8 歸一化互相關(guān)角點(diǎn)匹配Fig.8 NCC corner point matching
2.2.3改進(jìn)的RANSAC算法剔除誤匹配
針對(duì)歸一化互相關(guān)匹配法中存在的誤匹配點(diǎn)問(wèn)題,提出了一種改進(jìn)的RANSAC算法來(lái)改善,通過(guò)正確的匹配點(diǎn)對(duì)之間具有相對(duì)斜率的關(guān)系來(lái)篩選其中不符合要求的點(diǎn)對(duì)。設(shè)定(Ai,Aj)是目標(biāo)煙包A中的特征點(diǎn),(Bi,Bj)為模板庫(kù)中煙包的特征點(diǎn),如果兩者為正確匹配關(guān)系,則Ai和Bi的絕對(duì)斜率k(Ai,Bi)應(yīng)該等于Aj和Bj的絕對(duì)斜率k(Aj,Bj)。于是,利用特征點(diǎn)之間的雙向斜率關(guān)系完成篩選,評(píng)價(jià)函數(shù)為:
其中,R(i,j)表示Ai,Bi與各自圖像每個(gè)特征點(diǎn)斜率的相對(duì)差異;K(i,j)表示Ai,Bi與各自圖像每個(gè)特征點(diǎn)斜率。圖9可見(jiàn),經(jīng)過(guò)改進(jìn)的RANSAC算法有效剔除了其中的誤匹配點(diǎn),模板圖像與目標(biāo)圖像實(shí)現(xiàn)了精確特征點(diǎn)配對(duì)。
圖9 改進(jìn)的RANSAC算法角點(diǎn)匹配Fig.9 Corner point matching of modified RANSAC algorithm
材料:“紅金龍(硬盒)”牌卷煙(由湖北省煙草公司宜昌市公司提供)。
設(shè)備:庫(kù)卡KR 470-2 PA工業(yè)機(jī)械臂(德國(guó)庫(kù)卡機(jī)器人有限公司);歐姆龍CP1H-E型號(hào)PLC(日本歐姆龍自動(dòng)化有限公司);R-125-30uc型CCD相機(jī)(北京大恒圖像視覺(jué)有限公司),214-MP2鏡頭(日本Computar公司)。軟件:Halcon13、Visual Studio2017、OpenCV和SQL Sever;計(jì)算機(jī)CPU為Intel CORE i5。
方法:將不規(guī)則煙包視覺(jué)系統(tǒng)與組合碼垛系統(tǒng)集成整合,進(jìn)行煙包匹配和組合碼垛試驗(yàn),以驗(yàn)證系統(tǒng)的準(zhǔn)確性和穩(wěn)定性。隨機(jī)選取某一訂單總計(jì)85包,其中包含所有形狀的不規(guī)則煙包。根據(jù)上位機(jī)獲取的訂單信息按順序?qū)煱旁谳斔蛶?,依次通過(guò)視覺(jué)檢測(cè)后進(jìn)行組合碼垛,統(tǒng)計(jì)組合碼垛數(shù)據(jù);隨機(jī)取5種煙包分別重復(fù)試驗(yàn)100次,統(tǒng)計(jì)煙包識(shí)別速度、匹配正確率等數(shù)據(jù)。
表1可見(jiàn),視覺(jué)系統(tǒng)能夠準(zhǔn)確判斷輸送煙包是否有誤,出現(xiàn)錯(cuò)誤時(shí)發(fā)出報(bào)警并啟動(dòng)預(yù)排層算法重新規(guī)劃,防止因煙包錯(cuò)放而導(dǎo)致后續(xù)工序出錯(cuò)。根據(jù)煙包輸送速度和碼垛機(jī)器人運(yùn)行速度,可以滿(mǎn)足800包/h的碼垛要求。
表2可見(jiàn),采用視覺(jué)識(shí)別系統(tǒng)后,煙包匹配正確率在97%以上,特征提取時(shí)間不超過(guò)360 ms/次,總匹配時(shí)間不超過(guò)1.6 s,各項(xiàng)指標(biāo)均滿(mǎn)足煙包碼垛速度和可靠性要求,實(shí)現(xiàn)了基于機(jī)器視覺(jué)的煙包識(shí)別功能。
表1 煙包碼垛試驗(yàn)結(jié)果①Tab.1 Results of cigarette parcel stacking experiment
表2 煙包匹配試驗(yàn)結(jié)果①Tab.2 Results of cigarette parcel matching experiment
針對(duì)煙草物流中不規(guī)則煙包的碼垛流程,設(shè)計(jì)了一種基于機(jī)器視覺(jué)的不規(guī)則煙包自動(dòng)碼垛系統(tǒng)。利用翻轉(zhuǎn)機(jī)構(gòu)和矯正裝置調(diào)整煙包位姿實(shí)現(xiàn)精確定位,保證碼垛機(jī)器人的準(zhǔn)確抓取;利用機(jī)器視覺(jué)技術(shù)對(duì)煙包識(shí)別匹配并用改進(jìn)的RANSAC算法剔除誤匹配點(diǎn)對(duì),提高識(shí)別精度實(shí)現(xiàn)不規(guī)則煙包的實(shí)時(shí)校對(duì)。現(xiàn)場(chǎng)測(cè)試結(jié)果表明:煙包匹配正確率在97%以上,特征提取時(shí)間不超過(guò)360 ms/次,總匹配時(shí)間不超過(guò)1.6 s。本系統(tǒng)在保證可靠性的同時(shí)可以滿(mǎn)足碼垛生產(chǎn)要求,有效減輕工人勞動(dòng)強(qiáng)度,提高煙草物流智能化水平。