侯義鋒,高文秀
(1.廣西機器視覺與智能控制重點實驗室,廣西梧州,543002;2.梧州學(xué)院,廣西梧州,543002)
在日常生活中,茄子是我們餐桌上經(jīng)常食用的蔬菜,茄子營養(yǎng)極其豐富,而且還含有多種礦物質(zhì)和維生素,對于身體健康有極高的功效和作用,長期食用茄子對胃癌的治療、抗衰老、降低膽固醇和保護心血管等具有很好的效果。茄子在全世界都有廣泛的種植,亞洲、非洲、地中海沿岸、歐洲中南部、中美洲等地均種植。但是就目前為止我國茄子的栽種面積不僅占據(jù)世界第一,產(chǎn)量也是遙遙領(lǐng)先,是很重要的茄子出口大國。但我國人口的老齡化越來越嚴(yán)重,農(nóng)業(yè)勞動力不斷減少,而目前如此大量的茄子采摘還是手工采摘,耗時又耗力。為了降低成本,減輕勞動量,提高效率,我們有必要提高農(nóng)業(yè)機械自動化,研究茄子采摘機器人代替人工采摘。近年來很多人在研究果蔬采摘機器人細節(jié)和整體方面提出了很多有參考價值的方案,推動我國農(nóng)業(yè)自動化有了很大的突破,哈爾濱商業(yè)大學(xué)的王維強研究了自然環(huán)境下茄子采摘機器人目標(biāo)識別方法,與傳統(tǒng)的識別方法相比,準(zhǔn)確率有了很大的提高[1];山東農(nóng)業(yè)大學(xué)王思玉等人對于典型果蔬采摘機器人研究現(xiàn)狀和趨勢做出分析[2];南京農(nóng)業(yè)大學(xué)李國利對多末端蘋果采摘機器人進行設(shè)計與研究,設(shè)計了杯狀和筒狀結(jié)構(gòu)末端執(zhí)行器,能夠存儲少量果實,滿足連續(xù)采摘作業(yè)要求[3];華南理工大學(xué)張勤等人提出了基于RGB-D信息融合和目標(biāo)檢測的番茄串采摘點識別定位的方法,該方法可在復(fù)雜近色背景下,實現(xiàn)番茄串采摘點識別定位[4];趙文峰等人提出了集成多執(zhí)行器采收機器人的設(shè)想,認為集成多執(zhí)行器采收機器人適合我國溫室番茄單果采收[5]。馮碩,李旗結(jié)合計算機視覺、嵌入式控制系統(tǒng)和卷積神經(jīng)網(wǎng)絡(luò)算法,設(shè)計了一套奇異果采摘機器人機械臂控制系統(tǒng),能夠?qū)崿F(xiàn)目標(biāo)果實的立體定位和精準(zhǔn)采摘[6]。龍潔花等人研究了改進Mask R-CNN的溫室環(huán)境下不同成熟度番茄果實分割的方法[7]。王雯等人研究了XELA3D觸覺傳感器感知獼猴桃成熟度的方法[8]。為此本文也嘗試設(shè)計了茄子采摘機器人的識別系統(tǒng),該系統(tǒng)嘗試采用顏色傳感器識別紫色的茄子。
本設(shè)計采用的是TCS34725顏色傳感器,其是一款成本偏低,性價比偏高的RGB全彩顏色識別傳感器,帶有4個高亮LED進行補光,保證了傳感器在弱光的環(huán)境下仍然可以使用,TCS34725光數(shù)字轉(zhuǎn)換器包含一個3×4的光電二極管陣列,光感應(yīng)器件可以更高效地接觸環(huán)境光,內(nèi)部含有AD轉(zhuǎn)換器,顏色傳感器以白光照射物體,物體反射的光被光電二極管吸收,產(chǎn)生光電效應(yīng),產(chǎn)生光電電流,4個積分AD轉(zhuǎn)換器可以將放大的光電流同時轉(zhuǎn)換成16位數(shù)字值。轉(zhuǎn)換周期完成后,得到原始結(jié)果并傳送到數(shù)據(jù)寄存器,再根據(jù)此傳感器的RGBC寄存器地址將數(shù)據(jù)讀取出來。并且此傳感器具有雙緩沖的功能,從而提高了得到數(shù)據(jù)的完整程度。若獲取的顏色值與實際的有差別,可以通過對積分時間和增益倍數(shù)兩個參數(shù)的調(diào)節(jié),得到相對準(zhǔn)確的值。據(jù)此我們可以得到茄子成熟時紫色的值的范圍為(13,12,13)~(16,15,15),茄子未成熟時青色的值的為(48,50,30)~(62,62,40);記下兩個顏色的值RGB值,通過當(dāng)前數(shù)值比對來判斷是否為紫色,選出成熟度達標(biāo)的果實。
硬件控制系統(tǒng)的電路主要有以下幾部分組成:主控模塊STM32、顏色采集模塊、按鍵模塊、液晶顯示模塊、電源模塊組成,系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
圖2 TCS34725顏色傳感器電路圖
本模塊采用的是以TCS34725 彩色光數(shù)字轉(zhuǎn)換器為核心的顏色傳感器,該傳感不僅靈敏度高,而且動態(tài)范圍也寬。此芯片工作電壓、邏輯電壓都為3.3~5V,I2C快速模式兼容接口,與單片機進行I2C通信,不需要占用太多的引腳資源,如下原理圖中的右側(cè)圖是雙電平轉(zhuǎn)換電路,保證了通信的正常進行,SCL是I2C的時鐘輸入和單片機的PB10連接,SDA是I2C數(shù)據(jù)輸入和單片機的PB11連接。
從難度和成本上考慮,此系統(tǒng)采用STM32F103單片機,該單片機的片內(nèi)外設(shè)非常豐富。此芯片有32K~128K字節(jié)的FLASH存儲器、6K~20K字節(jié)的SRAM,且存儲器具有多重自舉功能;內(nèi)嵌4~16MHz高速晶體振蕩器、使用外部32kHz晶體的RTC振蕩器;2個12位A/D轉(zhuǎn)換器具有雙采樣和保持的功能,有SWD串行線調(diào)試、JIAG口、串行外設(shè)接口SPI;有靈活的7通道DMA控制器可以管理存儲器,設(shè)備到存儲器和存儲器到設(shè)備的數(shù)據(jù)傳輸,無須CPU任何干預(yù);多達80個快速I/O端口;7個定時器,3個同步16位定時器,每個定時器有4個用于輸入/輸出比較PWM或脈沖計數(shù)的通道,1個16位6通道方便于電機控制的PWM高級定時器,具有死區(qū)控制和快速剎車的功能,1個獨立看門狗,1個窗口性看門狗;并且內(nèi)含9個豐富的通信接口。綜上所述該單片機的性價比相對比較高,該單片機完全可以滿足該系統(tǒng)的核心控制。
本模塊我們選擇的是OLED128×64白色液晶屏,該屏幕相比于一些其他的屏幕不僅具有的分辨率比較高,而且在單位面積擁有較多的像素點;超廣可視角度大于160度,在顯示屏中可視角度屬于最大的一種屏幕;并且功耗也極低,一般情況只有0.06W;最重要的是具有寬供電范圍,直接兼容常用的3.3V和5V的供電系統(tǒng),所以無需接其他的電壓轉(zhuǎn)換電路,直接與單片機進行連接就可以。
圖3 最小系統(tǒng)電路圖
顏色識別部分采用的是TCS34725顏色傳感器,使用C語言編程,通過顏色傳感器對茄子的顏色進行采集,將采集到的數(shù)據(jù)發(fā)送給單片機進行識別。顏色識別的程序首先是初始化,對復(fù)位和時鐘控制器、寄存器進行配置,開啟外部高速時鐘,半周期訪問使能,預(yù)取值緩存使能,外部高速時鐘為PLL時鐘輸入源,為9倍頻,使能PLL時鐘,PLL時鐘作為系統(tǒng)時鐘,對HCLK時鐘配置為一分頻,使AHB時鐘等于系統(tǒng)時鐘,對PLCK1時鐘配置為二分頻,使APB1時鐘等于HCLK(AHB)時鐘的一半,對PCLK2時鐘配置為一分頻,使APB2時鐘等于HCLK(AHB)時鐘;然后對GPIO口進行初始化配置,對GPIOA、GPIOB、GPIOC和復(fù)位端口進行使能,選用與LED燈連接的PA3端口,模式配置為推挽輸出,頻率設(shè)置為10MHz,LED燈上電的初始模式為點亮;對TCS34725進行初始化配置,在其初始化函數(shù)中首先對I2C進行初始化,對I2C與TCS34725連接的GPIO口進行配置,PB10外接I2C的時鐘(SCL)總線,PB11外接I2C的數(shù)據(jù)傳輸(SDA)總線,IO口模式設(shè)置為通用推挽輸出,頻率設(shè)置為50MHz,引腳初始狀態(tài)為高電平有效,通過TCS34725的ID來判斷TCS34725與單片機是否連接成功,連接成功將顯示“Initial OK!”的字樣,連接失敗后將進行再次連接,若連接成功之后將會對TCS35725顏色傳感器的時間積分和增益進行設(shè)置,時間積分和增益數(shù)值的設(shè)置將會影響獲取數(shù)值的真實性,對TCS34725顏色傳感器進行使能;對白平衡進行調(diào)整,有利于減小顏色的偏差;設(shè)置之前測得的紫色和青色茄子的閾值范圍;對串口進行初始化配置,波特率設(shè)置為115200Bd,字長為8位數(shù)據(jù)格式,一個停止位,無奇偶校驗位,無硬件數(shù)據(jù)流控制,具有收發(fā)模式,初始化串口,開啟串口中斷,使能串口;對定時器進行初始化配置,配置定時器的自動重裝載值為999,時鐘預(yù)分頻數(shù)為71,設(shè)置定時器的計數(shù)模式為向上計數(shù),允許定時器進行更新中斷,對定時器進行使能,開啟中斷定時,若定時時間1達到10msLED指示燈亮,定時時間1進行清零;若定時時間2達到50ms時,進行R、G、B顏色值的讀取和時間的清零,在讀取過程中,為了防止讀取的數(shù)據(jù)由于某些因素的影響而出現(xiàn)錯誤,所以R、G、B顏色值必須要連續(xù)進行兩次的讀取,然后將兩次讀取的數(shù)值進行比對,如果兩次讀取的數(shù)據(jù)不一致,則證明讀取的數(shù)據(jù)受到干擾,數(shù)據(jù)不準(zhǔn)確,不能作為有效數(shù)據(jù)處理,之后在重新進行讀取數(shù)據(jù);直到相鄰2次讀取的數(shù)據(jù)一致的時候,則說明數(shù)據(jù)具有準(zhǔn)確性,將讀取的R、G、B值輸出并進行顏色判斷,通過對讀取的顏色的值和設(shè)置的閾值進行比對,如果讀取的值滿足紫色條件則判斷為紫色,如果在青色范圍則判斷為青色。流程圖如圖4所示。
圖4 系統(tǒng)軟件總體流程圖
通過該系統(tǒng)對茄子的顏色進行測試。測試時要保證測試環(huán)境的明亮。表1為測試結(jié)果,其中數(shù)據(jù)是經(jīng)過100次測試求平均值)。
表1 茄子檢測顏色誤差表
從表1的結(jié)果分析,可以得到以下的結(jié)論:
識別出紫色整體的結(jié)果比識別出青色的效果要好,識別出紫色的誤差相比青色要小一些,因此可以證實在此背景下識別出紫色的茄子要比識別出青色的茄子更精準(zhǔn)。
誤差分析:
(1)在光照強度、和光照時間不同的程度下,茄皮表面含有的花青素不同,所以導(dǎo)致了識別錯誤。
(2)背景顏色帶來的誤差,因為茄子的藤蔓是綠色的,所以和青色的茄子沒有形成強烈而有鮮明的顏色對比,整體來說再識別青色的茄子的時候出錯率較高,不太適合識別青色的茄子。
(3)TCS34725顏色傳感器的精確度存在一定的誤差,因為獲取的顏色的準(zhǔn)確值是可以通過調(diào)節(jié)積分時間和增益倍數(shù)兩個參數(shù)進行改變的,但是實際在采摘識別的時候目標(biāo)物的顏色有的和我們之前設(shè)定的閾值略微存在點誤差,導(dǎo)致誤差的存在。
總之通過的數(shù)據(jù)分析表格,會發(fā)現(xiàn)雖然在識別的準(zhǔn)確程度上存在略微的誤差,但是整體來說效果還是比較理想的,所以此茄子采摘機適合對紫色茄子的識別,為紫色茄子的采摘機器人提供了能識別茄子的簡單方法。