李志明
(南京鐵道職業(yè)技術(shù)學(xué)院,江蘇南京,210031)
近年來,我國深入實(shí)施黨中央國務(wù)院提出的“藏糧于地,藏糧于技”農(nóng)業(yè)戰(zhàn)略,加快建設(shè)農(nóng)業(yè)強(qiáng)國,推進(jìn)農(nóng)業(yè)科技現(xiàn)代化。農(nóng)業(yè)生產(chǎn)在數(shù)字化、智能化進(jìn)行了全面升級改造。各種農(nóng)業(yè)機(jī)器人取代傳統(tǒng)農(nóng)業(yè)勞作,提高了生產(chǎn)效率。在水果采摘領(lǐng)域,也有學(xué)者、工程師不斷進(jìn)行研究開發(fā)各種水果采摘機(jī)器人。
許子康老師在論文提出了基于STM32 的六足農(nóng)業(yè)仿生機(jī)器人研究[2],主要為了解決農(nóng)業(yè)生產(chǎn)中噴霧,施肥,收割的農(nóng)業(yè)勞作,用仿生的方式解決機(jī)器人在勞作區(qū)域穩(wěn)定行走的問題。孫永芳老師提出GPS 位置定位功能為保證實(shí)時(shí)獲取農(nóng)業(yè)采摘機(jī)器人的具體位置,用超聲波控制機(jī)械抓手與水果距離,實(shí)現(xiàn)水果采摘[1]。但是超聲波在實(shí)際應(yīng)用中會受到各種干擾,比如樹葉、樹枝和水果本身的反射、折射等等,給距離估算帶了不可忽略的誤差。閔小翠老師提出[3],為提升農(nóng)業(yè)采摘機(jī)器人運(yùn)動(dòng)協(xié)作控制性能,降低機(jī)器人碰撞概率,利用D-H 法優(yōu)化設(shè)計(jì)機(jī)器人運(yùn)動(dòng)協(xié)作控制系統(tǒng)防止多機(jī)器人協(xié)同工作時(shí)碰撞問題,這里主要解決了多機(jī)器人同時(shí)勞作時(shí)行走問題??梢钥吹侥壳皩μ岣咚烧实难芯坎皇翘啵⑶宜烧獧C(jī)器人的成功采摘率還都有待提高。
本設(shè)計(jì)為基于STM32 單片機(jī)的水果采摘機(jī)器人設(shè)計(jì)。機(jī)器人系統(tǒng)通過使用矩陣鍵盤或者遠(yuǎn)程發(fā)出控制指令,用圖像識別方法確定水果位置,通過控制電機(jī)操控機(jī)械手對目標(biāo)水果進(jìn)行手動(dòng)或者自動(dòng)采摘。
本系統(tǒng)機(jī)械機(jī)構(gòu)如圖1 所示。水果采摘機(jī)器人采用STM32 單片機(jī)控制機(jī)械臂在三條直線導(dǎo)軌上進(jìn)行前后、左右和上下運(yùn)動(dòng),完成三維自由采摘水果。X 軸為左右移動(dòng)導(dǎo)軌,Y 軸是上下移動(dòng)的導(dǎo)軌,Z 軸為前后運(yùn)動(dòng)的導(dǎo)軌。每一條導(dǎo)軌都采用帶編碼器的直流減速電機(jī)驅(qū)動(dòng),在導(dǎo)軌兩端部同樣裝有一個(gè)防碰撞的行程開關(guān)。
圖1 水果采摘機(jī)器人機(jī)械結(jié)構(gòu)
圖2 水果采摘機(jī)器人系統(tǒng)整體設(shè)計(jì)
Z 軸安裝的機(jī)械抓手采用舵機(jī)作為驅(qū)動(dòng)源,機(jī)械手內(nèi)側(cè)安裝了一個(gè)壓力傳感器,測量抓取果實(shí)的力量。機(jī)器抓手的下部裝有一個(gè)攝像頭,系統(tǒng)讀取攝像頭數(shù)據(jù)進(jìn)行圖像分析,判斷果實(shí)的顏色和位置,從而驅(qū)動(dòng)并控制機(jī)械抓手采摘水果。
系統(tǒng)還安裝了桿式電位器控制板,通過電線與控制器相連,實(shí)現(xiàn)手動(dòng)控制采摘水果。
本系統(tǒng)主要由微處理器(STM32F103ZET6)控制傳感模塊、輸入輸出模塊、驅(qū)動(dòng)模塊和無線模塊,整個(gè)系統(tǒng)由電源模塊提供穩(wěn)定的直流電。
電源模塊主要完成220V 交流電轉(zhuǎn)化為穩(wěn)定的12V,5V和3.3V 的直流電。
輸入輸出模塊主要由鍵盤、顯示器和語音播報(bào)模塊組成。系統(tǒng)可以通過鍵盤輸入控制指令,設(shè)置水果采摘機(jī)器人的采摘范圍和工作模式。手動(dòng)采摘模式下,通過手動(dòng)控制搖桿驅(qū)動(dòng)機(jī)械臂運(yùn)動(dòng),采摘水果。自動(dòng)采摘模式下,系統(tǒng)通過掃描設(shè)定采摘范圍,自動(dòng)識別水果顏色和形狀大小,定位水果實(shí)際位置,實(shí)現(xiàn)設(shè)備自動(dòng)采摘水果,如果采摘成功,則可以語音播報(bào)當(dāng)前采摘水果的個(gè)數(shù)。
驅(qū)動(dòng)模塊包括直流電機(jī)和舵機(jī)以及相關(guān)電路,主要是完成機(jī)械臂的三維運(yùn)動(dòng)和機(jī)械手的抓取動(dòng)作。三臺直流減速電機(jī)驅(qū)動(dòng)分別驅(qū)動(dòng)機(jī)械臂在X 軸,Y 軸和Z 軸的導(dǎo)軌進(jìn)行運(yùn)動(dòng)。機(jī)械臂的前端安裝機(jī)械抓手。系統(tǒng)通過舵機(jī)控制機(jī)械臂,可以進(jìn)行0~180 度角度旋轉(zhuǎn),方便準(zhǔn)確抓取水果。
傳感模塊主要包括遙感電位器、電容式位移傳感器和OV7725 攝像頭。在手動(dòng)采摘模式下,微控制器讀取遙感電位器的電位,通過電線與控制器相連,實(shí)現(xiàn)手動(dòng)控制遙感采摘水果。在自動(dòng)采摘模式下,微控制器實(shí)時(shí)讀取電容式位移傳感器獲取機(jī)械臂的實(shí)時(shí)位置,并通過OV7725 攝像頭圖像處理模塊分析獲取目標(biāo)水果的位置信息,調(diào)整機(jī)械臂的位置。當(dāng)機(jī)械臂到達(dá)合適的位置時(shí),機(jī)械抓手在Z 軸移動(dòng),并通過壓力傳感器反饋機(jī)械抓手抓取水果的抓力,保證既能順利采摘水果,又能保證水果不被機(jī)械手的抓力破壞。
無線模塊主要是實(shí)時(shí)系統(tǒng)遠(yuǎn)程控制,系統(tǒng)能在遠(yuǎn)程發(fā)送控制指令,控制水果采摘機(jī)器人的工作。由于篇幅有限,本文主要介紹前三個(gè)模塊。
(1)形狀識別仿真
因?yàn)樵趯?shí)際的水果采摘中,水果和樹葉相差甚大,只需要基本判斷圓形或者方形即可。例如,蘋果,李子,雪梨,石榴等等基本是圓形,還有一些是長橢圓形比如香蕉。在本仿真中,我們主要針對整塊形狀的仿真,特別是針對圓形進(jìn)行仿真識別。
第一步,讀取彩 圖像。仿真配置了一個(gè)有許多不規(guī)則物體的圖片,模擬實(shí)際環(huán)境的樹枝,樹葉等等,增加仿真的真實(shí)性。圖3 是讀取的形狀原圖。
圖3 圖像形狀識別原圖
第二步,將讀取彩 圖像轉(zhuǎn)化為二值圖像。針對圖像中可能有不同形狀的目標(biāo)物體(水果,葉子,樹枝,蟲子),需要進(jìn)行目標(biāo)篩選。系統(tǒng)先通過形狀小大判斷,過濾掉我們不需要的雜質(zhì)物體,極大地提高了圖像識別的效率。圖4 是去掉噪聲之后的二值圖。
圖4 圖像去噪后的二值圖
第三步,計(jì)算并識別目標(biāo)。首先進(jìn)行孔洞填充并進(jìn) 白色描邊,最后通過函數(shù)bwboundaries 確定圖像邊界。圖像邊界確定后,求取圖形的面積和周長等關(guān)鍵數(shù)據(jù)。
確定圓形 標(biāo),求取圖形周長,圓,積,并計(jì)算根據(jù)公式計(jì)算形狀 Y,公式如下:
其中:S 為面積,L 為周長。
標(biāo)準(zhǔn)圓的值是1,在本系統(tǒng)中設(shè)置閾值為0.85,即形狀Y 于這個(gè)閾值的就是我們所需要的 標(biāo)物體。
最后一步,可以根據(jù)實(shí)際水果的形狀而調(diào)整。首先調(diào)整閾值計(jì)算,幾何中心的計(jì)算,然后就是閾值的大小。判定為水果后,需要根據(jù)幾何中心找出一個(gè)合適的位置確定成熟的水果的位置。顯示如圖5 所示。
圖5 圖像形狀識別結(jié)果
(2)顏色識別仿真
因?yàn)檎3墒焖麨榧t色和黃色,為了能準(zhǔn)確獲取成熟水果,我們對紅色,黃色進(jìn)行顏色識別仿真,以便更好地在系統(tǒng)中實(shí)現(xiàn)水果采摘。圖6 是識別原圖,紫色和灰色是干擾形狀。
圖6 圖像顏色識別原圖
識別過程如下:
第一步,計(jì)算每個(gè)區(qū)域Lab 顏色空間中的樣本顏色。
在圖像中可以看到五種主要顏色:背景色、紅色、紫色、黃色和灰色。眼睛能在視覺上輕松區(qū)分這些顏色,但是對于計(jì)算機(jī)系統(tǒng)而言就是顏色數(shù)據(jù)。采用Lab 色彩空間能夠量化這些視覺差異,因此先將顏色空間轉(zhuǎn)換為Lab 顏色空間,
本文的算法是為每種顏色選擇一個(gè)小樣本區(qū)域,并在Lab 空間中計(jì)算每個(gè)樣本區(qū)域的平均顏色。您將使用這些顏色標(biāo)記對每個(gè)像素進(jìn)行分類。
第二步,使用最近鄰規(guī)則對每個(gè)像素進(jìn)行分類。
每個(gè)顏色標(biāo)記現(xiàn)在都有一個(gè)a 值,b 值。在本圖像中,可以通過計(jì)算像素與每個(gè)顏色標(biāo)記之間的歐幾里德距離L,來對圖像中的每個(gè)像素進(jìn)行分類。最小距離即該像素最匹配的顏色。例如,如果像素與紅色標(biāo)記之間的距離最小,則該像素將被標(biāo)記為紅色像素。因此不管是什么顏色,根據(jù)顏色標(biāo)計(jì)之間的歐幾里德距離,所有的顏色會都?xì)w類到距離最小的標(biāo)記顏色中,消除不固定的自然界中顏色多樣性。歐幾里德距離公式如下:
其中:a,b 是固定分類顏色的Lab 顏色空間的a 值和b 值;color.a,color.b 是獲取當(dāng)前圖像像素的a 值和b 值。
創(chuàng)建一個(gè)包含顏色標(biāo)簽的數(shù)組,即 0=背景、1=紅色、2=紫色、3=灰色和 4=黃色。
第三步,顯示最近鄰分類的結(jié)果。
標(biāo)簽矩陣包含設(shè)定圖像中每個(gè)像素的顏色標(biāo)簽。使用標(biāo)簽矩陣按顏色分隔原始設(shè)定圖像中的對象。圖7 就是把紅色(圖7(a)),黃色(圖7(c))分離出來的結(jié)果。圖7(d)是原圖的二值圖,圖7(b)是除了黃色,紅色物體之外的其他物體圖。
圖7 圖像顏色識別
這樣分離對后續(xù)識別非常有幫助。比如,如果是紅色成熟水果,則可以用紅色的Lab 顏色空間的a 值和b 值進(jìn)行顏色緊鄰分類,分類后則系統(tǒng)只保留了紅色的形狀,其余形狀都已經(jīng)過濾,這給形狀識別帶來便利。
如圖7 所示,圖7(d)是原圖的二值圖像,如果本次采摘水果是紅色蘋果,則可以采用圖7(a)的分離結(jié)果進(jìn)行形狀識別,減少了非常多的干擾項(xiàng),效率大大提高。如果本次采摘水果是黃色芒果,則可以采用圖7(c)的分離結(jié)果進(jìn)行形狀識別,效率和準(zhǔn)確率大大提高。
系統(tǒng)軟件設(shè)計(jì)移植了Matlab 圖像識別的算法,并實(shí)現(xiàn)水果采摘機(jī)器人的智能化設(shè)計(jì)。
(1)首先主程序的主要功能是循環(huán)按鍵掃描根據(jù)不同按鍵值讀取進(jìn)入不同子程序繼續(xù)執(zhí)行掃描;
(2)如果按鍵為1,則進(jìn)入?yún)^(qū)域設(shè)定功能,完成設(shè)定后繼續(xù)進(jìn)行按鍵掃描;
(3)如果按鍵為2,則進(jìn)入手動(dòng)采摘功能。通過手工控制遙桿,單片機(jī)通過讀取電容位移傳感器和壓力傳感器數(shù)據(jù)實(shí)現(xiàn)與遙桿實(shí)現(xiàn)聯(lián)動(dòng)。輸出PWM 信號驅(qū)動(dòng)直流電機(jī)和舵機(jī)控制機(jī)械抓手實(shí)現(xiàn)手動(dòng)采摘水果。
(4)如果按鍵為3,則進(jìn)入位置控制功能。通過電容位移傳感器實(shí)時(shí)獲取機(jī)械抓手位置,并通過PWM 輸出驅(qū)動(dòng)直流電機(jī),配合鍵盤輸入信息完成機(jī)械抓手位置設(shè)定和調(diào)整。
(5)如果按鍵為4,則進(jìn)入自動(dòng)采摘功能。系統(tǒng)在設(shè)定區(qū)域進(jìn)行圖像掃描,通過攝像頭模塊采集當(dāng)前圖像數(shù)據(jù),通過圖像識別算法分析是否遇到水果以及確定水果位置。如果沒有遇到水果則繼續(xù)掃描,直到遇到水果或者掃描完整個(gè)設(shè)定區(qū)域?yàn)橹埂?/p>
(6)如果掃描到水果,則利用電容傳感器實(shí)時(shí)獲取當(dāng)前機(jī)械抓手位置,輸出PWM 信號驅(qū)動(dòng)直流電機(jī)控制機(jī)械手位置、舵機(jī)轉(zhuǎn)動(dòng)控制機(jī)械抓手。系統(tǒng)實(shí)時(shí)獲取機(jī)械手的壓力傳感器數(shù)據(jù),調(diào)整機(jī)械手抓力大小,準(zhǔn)確無傷地實(shí)現(xiàn)水果采摘并放到系統(tǒng)指定位置。
(7)系統(tǒng)的所有控制也可以通過無線模塊接收遠(yuǎn)程指令并控制。系統(tǒng)總體工作流程所圖8 所示。
圖8 系統(tǒng)流程圖
本系統(tǒng)在實(shí)驗(yàn)室環(huán)境下,在位置數(shù)據(jù)測試調(diào)整完畢后,進(jìn)行了水果采摘測試實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)表明,系統(tǒng)能根據(jù)圖像采集數(shù)據(jù)進(jìn)行分析并確定水果實(shí)際位置,驅(qū)動(dòng)電機(jī)控制機(jī)械抓手順利完成水果采摘實(shí)驗(yàn)。系統(tǒng)能有效區(qū)分紅,黃,綠三種顏色的水果,并在實(shí)驗(yàn)室模擬條件下,根據(jù)設(shè)定數(shù)據(jù)準(zhǔn)確采摘指定顏色的水果,很好地完成了水果采摘任務(wù)。采摘實(shí)驗(yàn)如表1 所示。易采壞成熟的水果,這樣達(dá)不到替代人工采摘的設(shè)計(jì)初衷。另外,在實(shí)驗(yàn)室模擬條件下不能完全模擬在農(nóng)場中實(shí)際采摘時(shí)的噪聲,因此圖像識別算法還要在實(shí)際農(nóng)場采摘中優(yōu)化和改進(jìn)。
表1 水果采摘成功率