黃美璇,駱旭坤
(黎明職業(yè)大學(xué)信息與電子工程學(xué)院,福建泉州 362000)
隨著我國(guó)“互聯(lián)網(wǎng)+”、“中國(guó)制造2025”的提出,物聯(lián)網(wǎng)、人工智能和大數(shù)據(jù)等信息技術(shù)的發(fā)展,工業(yè)智能化開始進(jìn)入實(shí)質(zhì)階段[1]。智能工廠作為工業(yè)智能化發(fā)展的重要實(shí)踐模式,受到廣泛關(guān)注。經(jīng)調(diào)研,泉州制造業(yè)生產(chǎn)企業(yè),尤其是中小企業(yè),多數(shù)仍然采用傳統(tǒng)的工廠模式。傳統(tǒng)工廠效率低下、產(chǎn)品質(zhì)量參差不齊、管理混亂等缺點(diǎn)日漸突出,迫切需要引入新技術(shù)、新工藝以促進(jìn)企業(yè)的技術(shù)創(chuàng)新與完善管理,提高生產(chǎn)效率。目前,對(duì)基于機(jī)器視覺的智能工廠的研究,有學(xué)者提出總體解決方案和相關(guān)技術(shù)研究,但尚未涉及關(guān)鍵技術(shù)的應(yīng)用及具體實(shí)施方式[2—5]。本文結(jié)合云平臺(tái)、物聯(lián)網(wǎng)、人工智能技術(shù)設(shè)計(jì)了一套基于機(jī)器視覺的智能工廠中樞系統(tǒng)。系統(tǒng)提出將云平臺(tái)和物聯(lián)網(wǎng)技術(shù)相結(jié)合,使用MQTT 技術(shù)打破內(nèi)網(wǎng)限制,實(shí)現(xiàn)云辦公管理,多生產(chǎn)線統(tǒng)一管理,智能監(jiān)控生產(chǎn)線狀態(tài),聯(lián)動(dòng)顯示實(shí)時(shí)生產(chǎn)數(shù)據(jù)和遠(yuǎn)程控制執(zhí)行。將機(jī)器視覺和工業(yè)機(jī)器人相結(jié)合,基于TensorFlow+Keras的深度學(xué)習(xí)框架完成對(duì)產(chǎn)品的識(shí)別和定位,采用MoveIt 框架進(jìn)行機(jī)械臂的運(yùn)動(dòng)控制,完成產(chǎn)品生產(chǎn)整體自動(dòng)化過程。該系統(tǒng)為企業(yè)規(guī)范管理、提高效率、安全生產(chǎn)、產(chǎn)品溯源起到了一定的促進(jìn)作用。
基于機(jī)器視覺的智能工廠中樞系統(tǒng)主要由數(shù)據(jù)采集模塊、視頻監(jiān)控模塊、云平臺(tái)模塊、機(jī)器人分揀模塊和通信模塊組成。其中數(shù)據(jù)采集模塊主要采集生產(chǎn)過程中的產(chǎn)量、能耗和設(shè)備狀態(tài)等數(shù)據(jù),進(jìn)行備品備件管理,以實(shí)現(xiàn)生產(chǎn)過程的全程追溯。視頻監(jiān)控模塊主要由網(wǎng)絡(luò)攝像頭監(jiān)控設(shè)備機(jī)器狀態(tài),同時(shí)采用溫濕度傳感器檢測(cè)周圍環(huán)境的溫度和濕度,遇異常情況可以做出判斷,并以最快和最佳的方式發(fā)出警報(bào)或觸發(fā)其他動(dòng)作。云平臺(tái)模塊涉及數(shù)據(jù)庫(kù)設(shè)計(jì)、SSM 網(wǎng)站開發(fā)及MQTT 消息推送等技術(shù),主要負(fù)責(zé)企業(yè)員工管理、倉(cāng)儲(chǔ)管理、訂單管理、產(chǎn)品管理及聯(lián)動(dòng)顯示實(shí)時(shí)工作信息數(shù)據(jù)。機(jī)器人分揀模塊采用桌面型4 個(gè)自由度的機(jī)械臂、深度的結(jié)構(gòu)光攝像頭及樹莓派等共同搭建基于機(jī)器視覺的機(jī)械手分揀平臺(tái),通過結(jié)構(gòu)光攝像頭拍攝傳送帶上的高質(zhì)量圖像,由OpenCV 對(duì)圖像進(jìn)行處理,隨后進(jìn)行目標(biāo)識(shí)別分類和定位,最終通過機(jī)械臂抓取以實(shí)現(xiàn)對(duì)產(chǎn)品的柔性分揀。通信模塊主要由華為的S1724G 千兆二層交換機(jī)和外圍設(shè)備組成,提供網(wǎng)絡(luò)支持。系統(tǒng)整體架構(gòu)如圖1 所示。
圖1 系統(tǒng)整體架構(gòu)圖
1.2.1 MQTT 協(xié)議 作為物聯(lián)網(wǎng)技術(shù)的核心,MQTT長(zhǎng)連接一直是實(shí)現(xiàn)物聯(lián)網(wǎng)的關(guān)鍵。通過這項(xiàng)技術(shù),云端可以主動(dòng)訪問本地設(shè)備。如何在本地搭建一個(gè)可以加入MQTT 服務(wù)的硬件是關(guān)鍵所在。系統(tǒng)采用ESP32 底板作為MQTT 服務(wù)的載體,以ESP32 為核心連接周邊各類傳感器,快速部署了一個(gè)物聯(lián)網(wǎng)環(huán)境。
1.2.2 Quartz 插件 在基于機(jī)器視覺的智能工廠中樞系統(tǒng)中,服務(wù)器需要處理的任務(wù)量和數(shù)據(jù)量巨大。為了盡量避免服務(wù)器發(fā)生故障或出現(xiàn)任務(wù)bug,要求服務(wù)器具有自我審核和及時(shí)補(bǔ)救的能力。系統(tǒng)采用Java 插件Quartz,它能定期對(duì)采集的傳感器數(shù)據(jù)進(jìn)行清理,也能及時(shí)發(fā)現(xiàn)任務(wù)流程中出現(xiàn)的假死、卡機(jī)等情況,回滾任務(wù)。同時(shí),Quartz 還能監(jiān)控傳感器相關(guān)數(shù)據(jù),一旦數(shù)值變動(dòng)導(dǎo)致出現(xiàn)異常,也能立刻反應(yīng)。
1.2.3 MongoDB+MySQL+Redis 數(shù)據(jù)庫(kù) 由于多變的實(shí)體類型的需要,把數(shù)據(jù)變成MySQL 數(shù)據(jù)庫(kù)對(duì)象并不能滿足系統(tǒng)的任務(wù)要求,所以系統(tǒng)選用了MongoDB+MySQL+Redis 數(shù)據(jù)庫(kù)架構(gòu)的解決方案。各個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)功能為:將基礎(chǔ)任務(wù)流程的相關(guān)數(shù)據(jù)保存在MySQL 數(shù)據(jù)庫(kù)中;授權(quán)密鑰的認(rèn)證信息保存在Redis 數(shù)據(jù)庫(kù)中;MongoDB 數(shù)據(jù)庫(kù)則主要用于實(shí)時(shí)存儲(chǔ)硬件數(shù)據(jù)。并且系統(tǒng)使用Spring+MyBatis 將三個(gè)數(shù)據(jù)庫(kù)整合起來,各司其職。為了保證數(shù)據(jù)的可靠性和可用性,各個(gè)數(shù)據(jù)庫(kù)分別作了主從備份,MySQL 和Redis 配置了主從,MongoDB 配置了切片[6]。
1.2.4 基于機(jī)器視覺的智能分揀模塊 機(jī)器人分揀模塊是系統(tǒng)的核心模塊。模塊將機(jī)器視覺和工業(yè)機(jī)器人相結(jié)合,利用結(jié)構(gòu)光攝像頭對(duì)傳送帶上放置的產(chǎn)品進(jìn)行視頻采集,通過Frp 內(nèi)網(wǎng)穿透技術(shù)將本地的視頻流推送到外網(wǎng)的云服務(wù)器上,利用云服務(wù)器的優(yōu)秀性能進(jìn)行視頻流處理工作以及OpenCV 進(jìn)行圖像分割、特征提取,結(jié)合基于TensorFlow+Keras 的深度學(xué)習(xí)框架完成對(duì)產(chǎn)品的識(shí)別和定位[7],并將處理結(jié)果發(fā)送給機(jī)械臂控制器,采用MoveIt 框架進(jìn)行機(jī)械臂的運(yùn)動(dòng)控制,再由機(jī)械臂對(duì)產(chǎn)品進(jìn)行抓取、篩選,完成產(chǎn)品生產(chǎn)整體自動(dòng)化過程。機(jī)器人分揀流程圖如圖2 所示。
圖2 機(jī)器人分揀流程圖
(1)相機(jī)標(biāo)定。系統(tǒng)采用OpenCV+棋盤格進(jìn)行相機(jī)標(biāo)定。目標(biāo)要在各個(gè)方向、位置面對(duì)攝像機(jī)進(jìn)行拍照,至少保留10 張圖片。隨后系統(tǒng)在這些圖片中查找角點(diǎn),得到每張圖所有角點(diǎn)的坐標(biāo),并結(jié)合其實(shí)際的寬高和大小,進(jìn)行相機(jī)標(biāo)定計(jì)算[8]。執(zhí)行相機(jī)標(biāo)定的關(guān)鍵代碼如下:
該函數(shù)在給定一組對(duì)象點(diǎn)、對(duì)應(yīng)的圖像投影以及相機(jī)矩陣和失真系數(shù)的情況下,估計(jì)對(duì)象姿勢(shì)。該函數(shù)能找到一個(gè)使重新投影誤差最小的姿勢(shì),即重新觀察誤差,也就是觀察到的像素點(diǎn)投影imagePoints 與物體投影(projectPoints())objectPoints之間的平方距離之和[10]。系統(tǒng)基于RANSAC 可以避免異常值對(duì)結(jié)果的影響,使用RANSAC 方案可以從3D-2D 點(diǎn)對(duì)應(yīng)關(guān)系中查找對(duì)象姿態(tài)。3D 重建效果如圖3、圖4 所示。
圖3 重建坐標(biāo)系效果圖
圖4 重建立方體效果圖
最后,系統(tǒng)基于ROS 的MoveIt 框架搭建MoveIt環(huán)境,使用rviz 控制路徑規(guī)劃進(jìn)行機(jī)械臂的運(yùn)動(dòng)控制,最終實(shí)現(xiàn)目標(biāo)分揀。
1.3.1 服務(wù)器部署 系統(tǒng)共部署了3 臺(tái)阿里云服務(wù)器,用于分擔(dān)服務(wù)器壓力。其中,人工智能服務(wù)器主要負(fù)責(zé)視頻流的傳輸,人工智能技術(shù)對(duì)采集數(shù)據(jù)的處理。為了獲取視頻流,通過安裝Frp 服務(wù)器端獲取來自客戶端的內(nèi)網(wǎng)突破請(qǐng)求;安裝OpenCV 用于視頻采集與預(yù)處理。最后部署基于Tensorflow+Keras的人工智能環(huán)境進(jìn)行深度學(xué)習(xí),完成對(duì)產(chǎn)品的識(shí)別和定位,并將數(shù)據(jù)保存在Tomcat 下的SSM 項(xiàng)目中,以供前端調(diào)用處理結(jié)果。前端Web 服務(wù)器主要負(fù)責(zé)對(duì)口用戶使用,采用node.js 來處理可能出現(xiàn)的高并發(fā)請(qǐng)求?;谇昂蠓蛛x思想,服務(wù)器主要搭載前端部分,完全拋棄了以往的jsp 界面,直接在服務(wù)器渲染前端界面。系統(tǒng)利用Ajax 請(qǐng)求調(diào)用后端服務(wù)器,后臺(tái)返回json 格式數(shù)據(jù),使操作簡(jiǎn)潔化。后端持久服務(wù)器主要用于對(duì)數(shù)據(jù)進(jìn)行持久化操作,并且作為整個(gè)智能中樞的核心服務(wù)器對(duì)其他服務(wù)器進(jìn)行統(tǒng)籌管理。云平臺(tái)的項(xiàng)目后臺(tái)開發(fā)環(huán)境如圖5 所示。軟件設(shè)計(jì)數(shù)據(jù)及相關(guān)接口如表1~表2 所示。
表2 軟件相關(guān)接口
圖5 項(xiàng)目后臺(tái)開發(fā)環(huán)境
表1 軟件設(shè)計(jì)數(shù)據(jù)
1.3.2 硬件搭建 系統(tǒng)采用樹莓派搭建本地Frp 客戶端,通過中轉(zhuǎn)將結(jié)構(gòu)光攝像頭的視頻流傳送到服務(wù)器上。為了確保攝像頭的信息能第一時(shí)間傳輸?shù)皆贫耍脴漭蒐inux 系統(tǒng)的特性,啟動(dòng)Frp 腳本,確保樹莓派和結(jié)構(gòu)光攝像頭在同一局域網(wǎng)。結(jié)構(gòu)光攝像頭作為產(chǎn)品識(shí)別的關(guān)鍵,需要固定在合適的位置,并確保拍攝區(qū)域的照明情況良好。另外,ESP32所需要的部署比較少,需要先燒寫底板的內(nèi)核程序,確保代碼寫入時(shí)能正常運(yùn)行。其中一個(gè)ESP32 配合各類傳感器使用,收集機(jī)器工作狀態(tài)的數(shù)據(jù),以確保機(jī)器運(yùn)轉(zhuǎn)正常;另一個(gè)ESP32 則作為桌面型機(jī)械臂的控制執(zhí)行單元。系統(tǒng)部分硬件搭建如圖6 所示。
圖6 系統(tǒng)部分硬件搭建
云平臺(tái)使用MQTT 技術(shù)打破內(nèi)網(wǎng)限制,將SSM+N 技術(shù)作為后端服務(wù)器的核心框架。前端運(yùn)用JQ、Angular 搭建PC 客戶端,Ionic 搭建手機(jī)客戶端,使用Frp 技術(shù)將視頻流推送至云端,利用OpenCV 對(duì)視頻流進(jìn)行采樣,運(yùn)用TensorFlow+Keras 深度學(xué)習(xí)框架對(duì)產(chǎn)品進(jìn)行識(shí)別分類[7],成功實(shí)現(xiàn)了外網(wǎng)云平臺(tái)訪問內(nèi)網(wǎng)設(shè)備以及機(jī)器視覺技術(shù)對(duì)產(chǎn)品的識(shí)別定位。系統(tǒng)利用了SpringMCV 4.2 以后版本對(duì)跨域的便利之處,結(jié)合SpringMCV 的Interceptor 對(duì)外網(wǎng)請(qǐng)求進(jìn)行認(rèn)證處理這一特性,對(duì)于未授權(quán)請(qǐng)求一律進(jìn)行屏蔽處理,成功解決了前后端跨域和安全性問題。云平臺(tái)主要負(fù)責(zé)企業(yè)員工管理、倉(cāng)儲(chǔ)管理、訂單管理、產(chǎn)品管理及智能監(jiān)控生產(chǎn)線狀態(tài),聯(lián)動(dòng)顯示實(shí)時(shí)生產(chǎn)數(shù)據(jù)和遠(yuǎn)程控制執(zhí)行。系統(tǒng)實(shí)現(xiàn)了企業(yè)管理和業(yè)務(wù)流程全程在云平臺(tái)上的追蹤,并在云端匯總成直觀數(shù)據(jù)信息,有利于企業(yè)進(jìn)行產(chǎn)品溯源及信息化管理,從而為將來實(shí)現(xiàn)生產(chǎn)大數(shù)據(jù)做好準(zhǔn)備。云平臺(tái)部分功能及數(shù)據(jù)如下:實(shí)現(xiàn)泉州某生產(chǎn)型企業(yè)銷售數(shù)據(jù)分類、匯總功能,如圖7 所示;企業(yè)行政部云管理員工簽到情況、修改員工管理權(quán)限等,如圖8 所示;企業(yè)銷售部利用云平臺(tái)開啟訂單、關(guān)閉訂單、執(zhí)行訂單管理等,如圖9 所示;企業(yè)生產(chǎn)部實(shí)時(shí)監(jiān)控生產(chǎn)車間溫濕度傳感器數(shù)據(jù)、機(jī)床信息等生產(chǎn)數(shù)據(jù),必要時(shí)進(jìn)行遠(yuǎn)程控制執(zhí)行,如圖10 所示。
圖7 云平臺(tái)生產(chǎn)數(shù)據(jù)匯總頁(yè)
圖8 員工管理
圖9 訂單管理
圖10 智能監(jiān)控和遠(yuǎn)程控制
分揀平臺(tái)具有一定穩(wěn)定性和安全保護(hù)機(jī)制,配有緊急停止和復(fù)位功能。若工作區(qū)溫度超過50 ℃,工作區(qū)亮紅燈,蜂鳴器會(huì)報(bào)警;若工作區(qū)溫度超過70 ℃,后臺(tái)會(huì)控制工作區(qū)停止工作,待溫度降低后,重啟工作區(qū),警報(bào)取消,工作記錄會(huì)自動(dòng)回溯到停止時(shí)的記錄。異常記錄將會(huì)記錄到數(shù)據(jù)庫(kù),方便檢查。
分揀所用數(shù)據(jù)集來源于某鞋業(yè)企業(yè)的10 款運(yùn)動(dòng)鞋,共1 500 張圖片。系統(tǒng)使用OpenCV 將圖片縮放到199×199 尺寸,并轉(zhuǎn)為灰度圖片,生成199×199的像素點(diǎn)值,并且使用LabelImg 標(biāo)注工具對(duì)圖像進(jìn)行標(biāo)注[11],使用TensorFlow+Keras 完成最終的模型構(gòu)建。系統(tǒng)識(shí)別效果如圖11、表3 所示。
圖11 機(jī)器視覺識(shí)別結(jié)果
表3 基于機(jī)器視覺的運(yùn)動(dòng)鞋分揀結(jié)果
本文結(jié)合云平臺(tái)、物聯(lián)網(wǎng)、人工智能技術(shù)設(shè)計(jì)了一套基于機(jī)器視覺的智能工廠中樞系統(tǒng)。系統(tǒng)具有云辦公管理,多生產(chǎn)線統(tǒng)一管理,智能監(jiān)控生產(chǎn)線狀態(tài),聯(lián)動(dòng)顯示實(shí)時(shí)生產(chǎn)數(shù)據(jù)和遠(yuǎn)程控制執(zhí)行功能,實(shí)現(xiàn)了工廠的辦公、管理自動(dòng)化。由實(shí)驗(yàn)結(jié)果得出以下結(jié)論:系統(tǒng)對(duì)目標(biāo)的識(shí)別時(shí)間小于2 s,定位精度誤差小于0.3 mm,識(shí)別準(zhǔn)確率達(dá)到91.72%,抓取成功率達(dá)到100%。這也表明,分揀平臺(tái)能完成運(yùn)動(dòng)鞋的識(shí)別定位及抓取,達(dá)到了較好的分揀效果。整個(gè)系統(tǒng)為企業(yè)規(guī)范管理、提高效率、安全生產(chǎn)、產(chǎn)品溯源起到了一定的促進(jìn)作用。
下一階段的主要任務(wù)是繼續(xù)擴(kuò)充鞋類樣本,提高系統(tǒng)分揀的泛化能力;對(duì)模型的個(gè)別參數(shù)進(jìn)行調(diào)整優(yōu)化,增強(qiáng)魯棒性,使其能夠適應(yīng)更普遍的實(shí)際應(yīng)用場(chǎng)景。