余胤翔,唐致凱,徐威,孫霽陽,王鈺博,齊艷
(遼寧科技大學(xué) 電子與信息工程學(xué)院,遼寧鞍山,114000)
目前中國已經(jīng)進(jìn)入了物質(zhì)豐富的經(jīng)濟(jì)新常態(tài),人們在精神消費(fèi)需求方面呈現(xiàn)出爆發(fā)式增長趨勢[2]。在這種新消費(fèi)價(jià)值觀的影響下,家庭栽種盆栽已經(jīng)成為了新的時(shí)尚風(fēng)氣。隨著家庭盆栽需求量不斷增加,盆栽花卉類植物的生產(chǎn)養(yǎng)殖規(guī)模也在不斷擴(kuò)大。相比于集中式的大棚養(yǎng)殖,人工養(yǎng)殖的盆栽類植物品質(zhì)更高,而且養(yǎng)殖人員還能在植物造型上做到主觀調(diào)控的效果。但人工的精細(xì)化養(yǎng)殖依舊存在人工成本高的問題,在這一點(diǎn)上,全人工的傳統(tǒng)養(yǎng)殖模式不如接近于無人化的集約式大棚養(yǎng)殖模式。
隨著人工智能技術(shù)快速發(fā)展,智能化大棚在農(nóng)業(yè)中逐漸普及開來,不僅能做到光照和濕度的數(shù)據(jù)采集,還能做到自動(dòng)澆水、自動(dòng)控溫、自動(dòng)補(bǔ)光等操作。但大棚養(yǎng)殖依舊存在植物種類單一和生長造型不可控的問題。同時(shí),如果自動(dòng)化大棚對植物生長環(huán)境條件的改善效果差,甚至可能會導(dǎo)致植物成活率降低,從而大大增加購苗成本?;诖?,我們團(tuán)隊(duì)研制了一種智能化植物修剪機(jī)器,它不僅能完成植物養(yǎng)殖的基本任務(wù)(自動(dòng)澆水),還能對植物的外觀形狀進(jìn)行修剪,同時(shí)還能收集植物的圖像和生長狀態(tài)信息傳輸?shù)诫娔X上位機(jī),達(dá)到多功能高度集成化和控制生產(chǎn)成本的效果。
該機(jī)器本質(zhì)上是一個(gè)多功能移動(dòng)式植物養(yǎng)殖及塑型裝置,該裝置主要由STM32 單片機(jī)、K210 攝像頭、蠕動(dòng)泵、光照傳感器、溫濕度傳感器、42 步進(jìn)電機(jī)、L298N 電機(jī)驅(qū)動(dòng)、直流推桿、灰度循跡模塊、機(jī)械剪子手、ESP32-CAM、上位機(jī)電腦和其他機(jī)械組件組成。整體結(jié)構(gòu)設(shè)計(jì)如圖1 所示。
圖1 整體結(jié)構(gòu)示意圖
該機(jī)器的移動(dòng)采用的是灰度循跡。該機(jī)器通過K210 攝像頭獲取植物圖像,再使用內(nèi)嵌的神經(jīng)網(wǎng)絡(luò)模型對植物的種類進(jìn)行識別。通過各個(gè)傳感器收集植物的生長信息,從而獲取植物的生長數(shù)據(jù)。STM32 單片機(jī)根據(jù)程序設(shè)定,即針對不同種類、不同生長狀況的植物執(zhí)行對應(yīng)操作(適量地噴灑水、農(nóng)藥、營養(yǎng)素等)。完成上述操作后,該機(jī)器可通過兩個(gè)K210 攝像頭實(shí)時(shí)控制機(jī)械剪子手對植物進(jìn)行裁剪塑型。另外,它也能通過圖像顏色識別出枯黃的葉子進(jìn)行裁剪。最后,該機(jī)器還可通過直流推桿移動(dòng)盆栽的位置和生長方向,從而控制植物的生長方向。整個(gè)運(yùn)行過程中,該機(jī)器會通過通信設(shè)備進(jìn)行云端上報(bào)。運(yùn)行流程圖如圖2 所示。
圖2 運(yùn)行流程圖
該自動(dòng)控制系統(tǒng)以K210 和STM32 單片機(jī)作為主控核心,用戶通過LCD 觸摸屏設(shè)置STM32 單片機(jī)的工作模式。STM32 單片機(jī)需要收集光濕度傳感的數(shù)據(jù),控制蠕動(dòng)泵進(jìn)行澆灌工作,控制推桿改變植物受光生長方向,根據(jù)劃定好的軌跡控制麥輪車進(jìn)行灰度循跡。K210 攝像頭1 主要負(fù)責(zé)監(jiān)測周圍環(huán)境以及識別植物種類,對每一株植物進(jìn)行拍照記錄,并與STM32 單片機(jī)進(jìn)行串口通信,當(dāng)K210 識別到植物時(shí),發(fā)送命令給STM32 單片機(jī)停止循跡,并發(fā)送命令給K210 攝像頭2 準(zhǔn)備工作。K210 攝像頭2 主要負(fù)責(zé)操控機(jī)械剪子手對植物進(jìn)行裁剪。物聯(lián)網(wǎng)模塊將收集STM32 單片機(jī)和K210 攝像頭的植物生長數(shù)據(jù)和工作完成情況發(fā)送給電腦上位機(jī)。圖3 為控制系統(tǒng)圖。
圖3 控制系統(tǒng)圖
該機(jī)器的所有模塊主要分為4 個(gè)部分:傳感器、移動(dòng)裝置、控制模塊、通信設(shè)備。
移動(dòng)裝置:整個(gè)裝置的移動(dòng)采用兩種車模,可根據(jù)不同的使用場景進(jìn)行更換。第一種車模采用四輪麥輪車結(jié)構(gòu),麥輪車的優(yōu)點(diǎn)是移動(dòng)靈活,通過改變四個(gè)輪子的轉(zhuǎn)向和速度,可以實(shí)現(xiàn)全方向的移動(dòng),在平地上復(fù)雜的環(huán)境下能夠靈活移動(dòng),考慮整個(gè)裝置的體型,選用80mm 直徑的大麥輪。第二種車模選用履帶車底盤,履帶車底盤承載重量更大,抓地力強(qiáng),可以適應(yīng)一些復(fù)雜的環(huán)境,即便在一些地形崎嶇的山地也能正常行駛。
傳感器:光照傳感器選用了光敏電阻傳感器模塊;溫濕度傳感器選用了DHT11 型號,可測量20%~95%的濕度值(誤差±5%)和0℃~50℃(誤差±2%)的溫度值?;叶妊E模塊選用抗干擾能力較強(qiáng)的灰度傳感器,發(fā)光源采用高亮聚光LED,靈敏度高,可根據(jù)使用場景光線條件不同調(diào)節(jié)電位器的基準(zhǔn)電壓。攝像頭傳感器處理芯片選用性價(jià)比較高的K210。K210 采用RISC-V 雙核64 位CPU,算力達(dá)到1TOPS,遠(yuǎn)超同價(jià)位的AI 處理芯片。功耗僅為0.3W,續(xù)航能力強(qiáng)。
控制模塊:直流推桿選用12V電壓驅(qū)動(dòng)的電動(dòng)推桿電機(jī),可根據(jù)不同扭矩調(diào)節(jié)速度。蠕動(dòng)泵選用LFP401DB,流量最高可以達(dá)到2000ml/min。機(jī)械剪子手選用DS3218 型號的大扭力舵機(jī)和園林專用的修花枝剪組成,可以保證枝葉裁剪順暢。
通信設(shè)備:考慮到運(yùn)行過程中所需傳輸數(shù)據(jù)量較大,將數(shù)據(jù)傳輸任務(wù)分工為圖像傳輸和普通數(shù)據(jù)傳輸。圖像傳輸我們選用的是性價(jià)比較高的ESP32-CAM,燒錄好代碼后,只需要通過電腦瀏覽器打開局域網(wǎng)進(jìn)行連接,就可以直接獲取ESP32-CAM 傳輸?shù)漠嬅?,可直接作為一個(gè)監(jiān)控器使用。普通的數(shù)據(jù)傳輸,我們選用的單片機(jī)是STM32L431RCT6(小熊派),通過連接華為云進(jìn)行云端上報(bào)數(shù)據(jù),采用的通信協(xié)議是LWM2M。它可以華為云平臺上直接接收到數(shù)據(jù)信息,同時(shí)還能直接從云端進(jìn)行命令下發(fā)。在華為云平臺的數(shù)據(jù)頁面如圖4 所示。
圖4 云平臺數(shù)據(jù)頁面
為了更好地發(fā)揮K210 攝像頭1 監(jiān)測周圍環(huán)境的功能,擴(kuò)大其視野范圍,我們設(shè)計(jì)了一個(gè)二維云臺,主要由2 個(gè)MG995 舵機(jī)組成,如圖5 所示,上面的舵機(jī)用于控制攝像頭的俯仰角,下方的舵機(jī)用于控制攝像頭的航向角。兩個(gè)舵機(jī)均由K210 攝像頭1 自主控制,二自由度的云臺,基本可以完成攝像頭對周圍環(huán)境的監(jiān)測和尋找植物的任務(wù)。
3.3.1 PID 算法
這里以履帶車進(jìn)行舉例,車模的轉(zhuǎn)向采用差速轉(zhuǎn)向,小車循跡采用了增量式PID 控制算法,但是在單片機(jī)在實(shí)際處理中不能處理連續(xù)量,因此需要對PID 公式進(jìn)行離散化。這里以離散化得出的車模左電機(jī)公式。
公式(1)中,errorL是當(dāng)前誤差,errorlast_L是上次誤差,errorpreL是前次誤差,KpL是比例系數(shù),KiL是積分系數(shù),KdL是微分系數(shù),OutputL是左邊電機(jī)輸出的PWM 的占空比。其中誤差值由灰度循跡模塊收集軌道誤差,電機(jī)控制采用脈沖寬度調(diào)制技術(shù)(PWM),單片機(jī)根據(jù)公式計(jì)算出PWM 的占空比,通過電機(jī)驅(qū)動(dòng)直接作用于電機(jī)。
3.3.2 YOLO-V2 神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測識別已經(jīng)得到了廣泛應(yīng)用,出現(xiàn)了RCNN、Fast R-CNN、Faster R-CNN 和YOLO 等模型。YOLO 能夠?qū)崿F(xiàn)從端到端實(shí)時(shí)的目標(biāo)檢測,但是檢測精度較低,YOLO-V2 在YOLO 的基礎(chǔ)上進(jìn)行改進(jìn),既能夠進(jìn)行實(shí)時(shí)檢測,而且檢測精度也得到了大幅提升[3]我們選用的K210 芯片自帶卷積神經(jīng)網(wǎng)絡(luò)加速器KPU,可以極大程度上提高圖像處理的速度。
我們采用官方提供的網(wǎng)站云端訓(xùn)練模型,使用的網(wǎng)站是https://maixhub.com/home。圖6 為網(wǎng)站頁面。
圖6 MaixHub 模型訓(xùn)練平臺
K210 使用的編譯環(huán)境軟件是MaixPy IDE,圖7 為K210 識別植物種類代碼示例。
圖7 代碼示例
3.3.3 大津法二值化
K210 攝像頭2 在觀測整個(gè)盆栽的形狀時(shí),為了減少周圍環(huán)境的干擾和提高圖像處理速度,我們不使用RGB565彩色圖像,而是使用灰度圖像。
我們采用全局閾值法的OTSU 法來實(shí)現(xiàn)圖像二值化,它的思想是求出圖像的最佳門限閾值,該閾值將整個(gè)圖像分割成黑色和白色兩部分,使得這兩塊部分的類間方差取得最大值,同時(shí)類內(nèi)方差值達(dá)到最小[4]。設(shè)置t 為二值化閾值,我們需要用到兩個(gè)公式。其一用來計(jì)算圖像所有像素的平均灰度u,公式為:
其中,w0 是前景像素在整個(gè)圖像總像素的比例,u0 是前景像素的平均灰度值,w1 是背景像素在整個(gè)圖像總像素的比例,u1 是背景像素的平均灰度值。其二用來計(jì)算類間方差,公式為:
我們對t 的取值計(jì)算從最小灰度一直到最大灰度值在程序中進(jìn)行遍歷,t 的某值使我們得到的類間方差最大時(shí),我們就得到了二值化閾值t。最后,我們對圖像進(jìn)行了二值化處理。圖8 為圖像處理前后的變化。
圖8 彩圖-灰度圖-二值化圖像
為了得到效果更好的二值化圖像,我們加了一個(gè)整體濾波函數(shù)來去除單一的噪點(diǎn)。當(dāng)我們檢測到一個(gè)黑色像素點(diǎn)周邊全白時(shí),我們使其變成白色像素點(diǎn),或者一個(gè)白色像素點(diǎn)周邊全黑時(shí),我們使其變成黑色像素點(diǎn),符合則同化。圖9為圖像濾波前后變化效果。
圖9 圖像濾波除噪點(diǎn)
獲得處理好的二值化圖像后,單片機(jī)對圖像進(jìn)行分割,分為植物和花盆兩個(gè)部分,并將其在屏幕中顯示便于觀察,如圖10 所示,我們對植物部分用黑色方框進(jìn)行框選,花盆部分用紅色線條包圍。
圖10 圖像框選
框選植物使用的框的形狀為程序中設(shè)定的植物塑造的形狀,這里以矩形進(jìn)行舉例,超出矩形框選的部分就是機(jī)器需要裁剪的部分,記為裁剪塊,在程序計(jì)算中,裁剪塊面積的參考計(jì)算值以超出部分的黑色像素點(diǎn)數(shù)量作為標(biāo)準(zhǔn)。同時(shí),記錄下不同裁剪塊的中心坐標(biāo)在圖像中的x 坐標(biāo)和y 坐標(biāo)。將不同裁剪塊的中心坐標(biāo)值反饋給K210 攝像頭2(機(jī)械剪子手上的攝像頭),之后K210 攝像頭2 操控機(jī)械剪子手根據(jù)裁剪塊的坐標(biāo)點(diǎn)進(jìn)行裁剪工作。
3.3.4 機(jī)械臂姿態(tài)解算
我們選取的機(jī)械臂是由6 個(gè)mg995 舵機(jī)和機(jī)械組件構(gòu)成,考慮到利用運(yùn)動(dòng)學(xué)逆解等計(jì)算較為復(fù)雜,我們采用計(jì)算量較小的幾何法進(jìn)行機(jī)械臂的姿態(tài)解算[5]。其中,剪子上的1 號舵機(jī)只控制剪子的開合,2 號舵機(jī)根據(jù)裁剪塊(裁剪的枝葉)所在根部情況對剪子進(jìn)行適當(dāng)旋轉(zhuǎn),6 號舵機(jī)主要控制機(jī)械剪子手底座旋轉(zhuǎn),當(dāng)初始圖像及坐標(biāo)確定后,6 號舵機(jī)進(jìn)行鎖死角度,因此,3 個(gè)舵機(jī)不納入計(jì)算,我們僅針對3、4、5 號舵機(jī)進(jìn)行解析。計(jì)算模型如圖11 所示。
圖11 機(jī)械臂簡圖
在圖中,我們已經(jīng)知道了P 點(diǎn)x 和y 坐標(biāo),將圖中3個(gè)舵機(jī)在x 軸方向和y 軸方向之間的距離進(jìn)行疊加得到。
式中,1l、l2、l3為3、4、5 號舵機(jī)的長度。根據(jù)上式計(jì)算可得:
我們引入j和k為已知量,令:
式(16)就是我們需要的求根公式,其中:
由此求出 3θ的角度值,4θ和 5θ同理計(jì)算。得到了3、4、5 號舵機(jī)的角度值。根據(jù)計(jì)算出的角度值,給舵機(jī)輸入對應(yīng)的PWM 信號,如圖12 所示。
圖12 舵機(jī)輸出角和PWM 對應(yīng)關(guān)系
圖13 實(shí)物圖
圖14 為LCD 屏幕顯示參數(shù),單片機(jī)收集的溫濕度和光照信息在屏幕上進(jìn)行顯示。
圖14 LCD 屏幕顯示數(shù)據(jù)
在調(diào)試PID 參數(shù)的過程中,觀測波形能大大提高調(diào)參的效率。調(diào)試使用軟件是ANO_TC 匿名科創(chuàng)地面站v4.34,這里截取了一張機(jī)器在循跡過程中測算出的路徑誤差波形,如圖15 所示。
圖15 上位機(jī)波形
圖16為K210攝像頭收集神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的數(shù)據(jù)集,對植物的特征點(diǎn)進(jìn)行采集。
考慮到需要在識別精度和處理速度之間進(jìn)行取舍,每次訓(xùn)練使用的數(shù)據(jù)集和權(quán)重比均有不同。表1 記錄了K210 識別效果相對比較好的幾次數(shù)據(jù),最后,選取識別精度平均值最高的第三組模型作為該機(jī)器開展之后工作的模型。
表1 訓(xùn)練模型識別率數(shù)據(jù)匯總
本文搭建了智能化植物修剪機(jī)器,并完成了各個(gè)任務(wù)的調(diào)試。該機(jī)器不僅能夠?qū)ε柙灾参镞M(jìn)行自動(dòng)噴灌,還能對植物的形狀進(jìn)行修剪,還能修剪植物的枯枝爛葉,還能讓植物可控向光生長,并且能做到遠(yuǎn)程實(shí)時(shí)監(jiān)測。使用的YOLO-V2 神經(jīng)網(wǎng)絡(luò)模型,基本可以做到識別正確。圖像傳輸和數(shù)據(jù)傳輸也非常穩(wěn)定,該機(jī)器在智慧農(nóng)業(yè)領(lǐng)域具有非常好的實(shí)用價(jià)值和較為廣闊的市場前景。