林志剛 高懷棟 莆田學(xué)院信息工程學(xué)院 指導(dǎo)老師:宋娜
關(guān)鍵字:攝像頭識別 機械臂抓取 分類采摘
柑橘是我國生產(chǎn)的主要果品,柑橘類屬蕓香科柑橘亞科柑橘族的植物,其年產(chǎn)量是非??捎^的,柑橘因種植地的不同,叫法也不一樣,在古代有南橘北枳一說。目前,柑橘和枳收獲作業(yè)主要還是靠人工完成,但柑橘樹干高低不一,采摘危險性高、作業(yè)環(huán)境差,分類運輸成本高,既耗時又費力,給果農(nóng)帶來了很多麻煩?!币虼耍谶@樣的現(xiàn)狀設(shè)計了一款水果采摘裝置,解決了大量的柑橘采摘問題。
柑橘全自動采摘一體機,它能夠通過履帶式自由行走,在果園內(nèi)通過攝像頭識別果樹上形狀標識符,使它能夠識別果樹位置,從而到達果樹的可采摘范圍之內(nèi)。
它能夠通過攝像頭進行顏色預(yù)識別,分辨出成熟柑橘,控制機械臂,移動攝像頭位置,使柑橘處于攝像頭成像平面的正中心,通過末端機械臂抓取、剪切、最終實現(xiàn)摘取柑橘。柑橘采摘完后抓取裝置松開,柑橘掉入到軟性傳送裝置,連接到果樹分類裝置。軟性傳送可以保證在整個采摘過程中不會造成磕碰損傷柑橘。柑橘到達分類處,經(jīng)過稱重傳感器,對柑橘的大小進行識別,識別數(shù)據(jù)傳輸?shù)街骺匦酒?,通過預(yù)先設(shè)計的柑橘重量的數(shù)據(jù)對柑橘進行分類,并且控制舵機將柑橘撥到不同的框中存放。當籃框內(nèi)的柑橘到達一定數(shù)量,紅外傳感器可以通過檢測遮擋物判斷框柑橘已滿。采摘車可以返回到起點處,人工卸下柑橘并繼續(xù)進行采摘過程,或者通過蜂鳴器報警提醒。
以往設(shè)計往往采用大型車體結(jié)構(gòu),對水果的采摘采用的是卷入式設(shè)備,就是把果實與樹葉枝干通通卷進來,在進行過濾篩分離,此種方式無法實現(xiàn)果實的二次采摘,而且對果樹也會造成傷害。本設(shè)計可以做到識別成熟果實,且降低對柑橘的損傷程度。
本設(shè)計由三大部分組成:攝像頭果實圖像識別抓取剪切、車身行走結(jié)構(gòu)、果實分類傳送裝置。設(shè)計思路是首先通過OpenMV攝像頭識別到果實然后用機械臂使剪鉗準確到達果實所在位置實現(xiàn)抓取,后通過傳輸裝置收集果實。在整個過程中我們主要使用了攝像頭模塊,機械臂模塊,主控芯片,電機驅(qū)動等幾大模塊。
攝像頭使用OpenMV模塊,這是一款低價、可擴展、支持Python的及其視覺模塊。本項目主要使用這款攝像頭進行圖像的采集和處理,這款攝像頭有自己專用的IDE,這款I(lǐng)DE具有自動提示,代碼高亮且有一個圖像窗口可以直接看到攝像頭的圖像有利于提高編程效率,下面就具體實現(xiàn)方法進行說明。
對采摘果樹進行彩色圖像采集,提取彩色圖像的RGB三個單通道灰度圖像,根據(jù)水果的顏色分量特征,對選取的單通道圖像進行圖像預(yù)處理。獲取水果目標在坐標系的位置,與圖像的中心平面像素位置取差值,進而將像素差值返回到主控芯片上,主控芯片控制機械臂在與成像平面平行的平面內(nèi)移動Δx和Δy,使目標位于成像平面中心。
機械臂是整個果實摘取結(jié)構(gòu)的關(guān)鍵,通過機械臂實現(xiàn)x,y,z三軸的自由聯(lián)動,可以配合攝像頭識別系統(tǒng)進實現(xiàn)柑橘的準確抓取。機械臂是具有六個舵機的平行四邊形機械臂,每個舵機的轉(zhuǎn)動范圍是500-2500,換算成角度大約是0-180度。用機械臂伸到相應(yīng)的識別位置并通過剪鉗抓取,機械臂的伸縮角度范圍是0到180,滿足在采摘時所需要的所有角度范圍。
采用的是STM32F103C8這種類型的芯片,這是一款基于ARM Cortex-M 內(nèi)核STM32系列的32位的微控制器,相比于其他單片機,它的優(yōu)點是具有主流的cortex內(nèi)核,保證了它的高性能,其豐富的外設(shè)、串口、定時器等滿足采摘機的工作需求。
電機驅(qū)動模塊使用東芝半導(dǎo)體公司生產(chǎn)的TB6612FNG驅(qū)動模塊,這款驅(qū)動是雙驅(qū)動,可以驅(qū)動兩個電機。該模塊相對于傳統(tǒng)的L298N效率上提高很多,體積上也有大幅度的減小,在額定范圍內(nèi),芯片基本不發(fā)熱,這款驅(qū)動具有四種電機控制模式:制動/停止/正轉(zhuǎn)/反轉(zhuǎn),滿足小車行進的基本需求,而且PWM支持頻率可以達到100kHz,也讓小車的運動更加靈活有力。驅(qū)動電路如圖1所示。
圖1 驅(qū)動電路
軟件部分主要由物體顏色識別,形狀分析,機械臂控制,電機控制等部分組成。
圖像處理使用Openmv。圖像的識別包括圖像顏色識別與圖像形狀識別。在顏色識別方面使用thresholds()函數(shù)設(shè)置顏色閾值,顏色閾值選取通過OpenMV的IDE進行圖像二值化,可以得到成熟柑橘的LAB閾值為(51,79,7,-60,61,14),對不同成熟期的柑橘進行圖像二值化可以得到不同的LAB閾值,通過修改thresholds()函數(shù)的閾值可以采摘不同成熟期的柑橘。然后通過find_blobs()函數(shù)來查找此閾值的圖像,并使用roi標記圖像區(qū)域,然后返回圖像上對應(yīng)的x,y值可以確定柑橘在成像面上的位置。形狀識別方面使用area()函數(shù)識別柑橘形狀的區(qū)域,使用img.get_statistics()函數(shù)進行像素的顏色統(tǒng)計,當區(qū)域中的眾數(shù)在所設(shè)置的閾值范圍,就說明這個區(qū)域為需要尋找的物體。
機械臂作為柑橘抓取的主要部件,需要做到的就是精確的尋找到柑橘的位置。在圖像處理上,由Openmv識別到的柑橘在圖像上的坐標位置,與圖像中心點的差值通過串口返回到STM32主控芯片上,主控芯片控制機械臂各個關(guān)節(jié)的舵機旋轉(zhuǎn)角度彌補差值,從而將柑橘圖像置于成像中心點,此時機械臂末端分離式剪切裝置將柑橘剪下落入傳送帶進入籃筐。具體程序流程圖如圖2所示。
圖2 程序流程圖
基于以上的分析以及本項目的模擬實踐可知,這款智能采摘裝備基本能夠滿足生活中果實采摘的需求,使用STM32主控,加大了系統(tǒng)的可拓展性,日后如果需要外加功能,如添加WIFI控制小車行進,自動跟蹤系統(tǒng)了解小車所處位置,皆可以在此基礎(chǔ)上改造完成,總的來說這是一款穩(wěn)定實用,可拓展性強的智能采摘小車。