姬麗雯,劉永華,高菊玲,吳丹
(1. 江蘇農(nóng)林職業(yè)技術(shù)學(xué)院機電工程學(xué)院,江蘇鎮(zhèn)江,212400;2. 江蘇省現(xiàn)代農(nóng)業(yè)裝備工程中心,江蘇鎮(zhèn)江,212400)
設(shè)施農(nóng)業(yè)是典型的勞動密集型產(chǎn)業(yè),其中果實的采摘是占用勞動力最多、自動化實現(xiàn)難度最大的環(huán)節(jié),即使在設(shè)施農(nóng)業(yè)領(lǐng)域具有高度自動化的發(fā)達(dá)國家仍然依賴大量的人工采摘[1-2]。因此,采摘自動化是設(shè)施農(nóng)業(yè)發(fā)展過程中亟需解決的技術(shù)難題。早在20世紀(jì)80年代初,日本、美國、荷蘭等設(shè)施農(nóng)業(yè)自動化程度較高的國家就已經(jīng)開始了采摘機器人的研究。隨著導(dǎo)航技術(shù)、視覺識別技術(shù)的發(fā)展,采摘對象從單一番茄拓展到目前的番茄、草莓、黃瓜、菌菇等多種設(shè)施作物。
中國開展采摘機器人的研究時間較晚,但投入了大量精力并取得了一定成果。魏博等設(shè)計了一種欠驅(qū)動式柑橘采摘末端執(zhí)行器,通過三個雙連桿并聯(lián)式手指充分抓握和偏轉(zhuǎn)融合控制,實現(xiàn)柑橘的穩(wěn)定采摘。通過指根旋轉(zhuǎn)電機驅(qū)動旋轉(zhuǎn)齒輪使手指旋轉(zhuǎn)至合適角度,并能完美貼合抓取果實。該末端執(zhí)行器具有適應(yīng)性強、抓取穩(wěn)定等優(yōu)點,但只在手指內(nèi)部貼有軟硅橡膠的設(shè)計無法避免果實采摘時的破損,將影響果實的品質(zhì)[3]。馬廷輝設(shè)計了4自由度采摘機械手,采用逆運動分析將目標(biāo)位置轉(zhuǎn)換為機器人各關(guān)節(jié)轉(zhuǎn)角,實現(xiàn)了草莓的穩(wěn)定采摘,但是自由度的數(shù)量限制了機器人的靈活度。于豐華等[4]將機器人的機械臂擴展到6自由度,機械臂搭載了附有薄膜壓力傳感器的柔性手爪,基于R-FCN卷積神經(jīng)網(wǎng)絡(luò)視覺識別技術(shù),設(shè)計了以番茄為采摘對象的移動機器人,但是機器人必須通過巡線相機識別溫室內(nèi)定位膠帶來完成巡檢和采摘,移動的靈活性受到限制。
本文設(shè)計了一款農(nóng)業(yè)采摘機器人,以溫室草莓為研究對象,采用同時定位和地圖構(gòu)建SLAM(Simultaneous Localization and Mapping)技術(shù)實現(xiàn)機器人的自主路徑規(guī)劃,雙目深度相機實現(xiàn)對成熟草莓的識別和定位,搭載柔性仿生夾爪的6自由度機械臂實現(xiàn)目標(biāo)草莓的抓取和放置。
設(shè)施作物培育模式主要有地面土培和基質(zhì)高架培育,其中基質(zhì)高架培育技術(shù)因為可以有效避免土傳病害和連作障礙,已經(jīng)被廣泛地應(yīng)用在溫室草莓種植中[5]。草莓栽培環(huán)境如圖1所示。本文的農(nóng)業(yè)采摘機器人是以溫室基質(zhì)高架草莓為采摘對象進(jìn)行研究和試驗。
圖1 草莓栽培環(huán)境
農(nóng)業(yè)采摘機器人的硬件部分包括小車底盤、3D相機、協(xié)作機器人、激光雷達(dá)、超聲波探頭、計算機、顯示器、無線路由器和仿生機械爪等,其系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 采摘機器人硬件系統(tǒng)結(jié)構(gòu)
車底盤用于承載整個采摘機器人,6個輪式電機動力前進(jìn)驅(qū)動,6個舵機轉(zhuǎn)向驅(qū)動??刂破鬟x擇STM32F103ZET6型號的單片機,通過脈沖寬度調(diào)制信號(PWM)控制電機轉(zhuǎn)動速度和舵機轉(zhuǎn)向角度,小車可以實現(xiàn)原地0°~360°轉(zhuǎn)彎,靈活性很高。小車搭配激光雷達(dá),可以實現(xiàn)采摘環(huán)境建圖和機器人自主定位。小車使用12個分布式超聲波探頭可以在行駛過程中自動規(guī)避障礙物。
協(xié)作機器人本體為6自由度的機械臂,最大可以負(fù)重3 kg,臂展為832 mm。機械臂的末端執(zhí)行器為三指仿生柔性夾爪,并配置有壓力檢測裝置,可以根據(jù)實際草莓成熟情況調(diào)節(jié)夾爪壓力,盡量在保證采摘效率的前提下選擇合適的壓力值,降低草莓的采摘損害。夾爪的上面配置有雙目深度相機,可以實時檢測出目標(biāo)果實與機械臂的相對位置。
農(nóng)業(yè)采摘機器人總共使用了三臺計算機用于軟件開發(fā)。1#計算機與3D雙目深度相機關(guān)聯(lián),用于開發(fā)圖像識別系統(tǒng),2#計算機將激光雷達(dá)和小車底盤關(guān)聯(lián)起來開發(fā)小車導(dǎo)航系統(tǒng),3#計算機作為用戶端遠(yuǎn)程操控使用。三臺計算機和機械臂計算機共同組成分布式機器人操作系統(tǒng)ROS(Robot Operating System)。ROS是一個分布式的節(jié)點框架,使用“發(fā)布—訂閱式”的通信框架構(gòu)建分布式計算系[6-7]。根據(jù)系統(tǒng)的配置方式,任何節(jié)點需要隨時與其他節(jié)點進(jìn)行通信,這就要保證ROS系統(tǒng)中的計算機處于同一網(wǎng)絡(luò)中,分布式計算系如圖3所示。
圖3 ROS分布式計算系
機器人的軟件包括采摘信息系統(tǒng)設(shè)計和導(dǎo)航信息系統(tǒng)設(shè)計。兩個系統(tǒng)都由三層架構(gòu)組成,分別為物理感知層、處理層和信息執(zhí)行層。物理感知層的作用是采集并傳輸環(huán)境數(shù)據(jù)至處理層。處理層接收到數(shù)據(jù)后經(jīng)計算機的智能算法分析得到控制指令,作用于信息執(zhí)行層的執(zhí)行機構(gòu),控制小車運動到目標(biāo)位置,機械臂完成采摘動作。機器人的軟件系統(tǒng)框圖如圖4所示。
圖4 機器人軟件系統(tǒng)框圖
在采摘信息系統(tǒng)中,雙目深度相機拍攝草莓圖片,通過圖像采集卡將圖片上傳至1#計算機,經(jīng)過計算機處理產(chǎn)生采集控制指令。1#計算機與2#計算機通信,將生成的采摘目標(biāo)位置告知2#計算機,2#計算機應(yīng)用導(dǎo)航控制程序生成規(guī)劃路徑,控制單片機產(chǎn)生脈沖寬度調(diào)制信號(PWM),驅(qū)動小車運行。1#計算機同時與機器人通信,機器人控制器經(jīng)過逆運動分析,根據(jù)目標(biāo)位置反推得到機械臂各關(guān)節(jié)的運動數(shù)據(jù),機械臂根據(jù)關(guān)節(jié)數(shù)據(jù)配合機械手完成草莓的采摘。
激光雷達(dá)相較于北斗或GPS導(dǎo)航,具有精度高、靈活性高、位置測量速度快等優(yōu)點,將它作為移動機器人的導(dǎo)航方式,測距誤差小于1%。機器人從起點位置開始運動,在運動過程中依據(jù)位置估量和傳感器數(shù)據(jù)進(jìn)行自身定位,同時完成增量式地圖的構(gòu)建。本機器人采用了思嵐RPLIDAR-A3紅外激光雷達(dá),通過串口與Raspberry Pi 4B相連。激光雷達(dá)的主要技術(shù)參數(shù)如表1所示。
表1 RPLIDAR-A3激光雷達(dá)主要技術(shù)參數(shù)Tab. 1 Main technical parameters of RPLIDAR-A3 laser radar
采摘機器的自動路徑規(guī)劃,采用改進(jìn)的A*算法。A*算法的基本原理是利用起點、當(dāng)前節(jié)點和目標(biāo)節(jié)點的位置關(guān)系建立路徑?jīng)Q策優(yōu)先級函數(shù),公式如式(1)所示。
f(n)=g(n)+h(n)
(1)
式中:f(n)——節(jié)點N的路徑?jīng)Q策優(yōu)先級;
g(n)——當(dāng)前節(jié)點N距離起點S的實際代價;
h(n)——節(jié)點N距離終點E的預(yù)計代價,這也就是A*算法的啟發(fā)函數(shù),表示對未走過節(jié)點的預(yù)測。
A*算法在運算過程中,每次從優(yōu)先隊列中選取f(n)值最小(優(yōu)先級最高)的節(jié)點作為下一個待遍歷的節(jié)點。
圖5為模擬的柵格地圖中優(yōu)先級函數(shù)的代價圖,在地圖中路線g(n)表示從起點S到當(dāng)前節(jié)點N的實際代價。h(n)啟發(fā)函數(shù)為終點E到當(dāng)前節(jié)點N的歐式距離,即
(2)
式中: (XE,YE)——終點E的坐標(biāo)值;
(XN,YN)——當(dāng)前節(jié)點N的坐標(biāo)值。
傳統(tǒng)A*算法的啟發(fā)函數(shù)h(n)是當(dāng)前節(jié)點N到終點E的最短距離,但在實際情況中,節(jié)點與終點之間可能會存在障礙。此時選擇的啟發(fā)函數(shù)h(n)越小,算法遍歷的節(jié)點越多,也就導(dǎo)致算法越慢,這也會嚴(yán)重影響機器人的采摘效率。所以對啟發(fā)函數(shù)進(jìn)行改進(jìn),設(shè)計沿地圖中線45°遍歷節(jié)點,這也是機器人行走的較大概率方向。改進(jìn)后啟發(fā)函數(shù)為
(3)
在實際機器人采摘場景中,未必需要機器人一定沿最短路徑行走,而是希望能夠盡快找到一個可行路徑即可。而調(diào)節(jié)啟發(fā)函數(shù)和實際代價值可以控制算法速度和精確度,因此增加一個系數(shù)p,以使路徑和速度之間達(dá)到一個平衡。改進(jìn)后的A*算法評價函數(shù)為
f(n)=(1-p)g(n)+ph*(n)(0≤p≤1)
(4)
(5)
圖5 柵格地圖中優(yōu)先級函數(shù)代價圖
在試驗過程中反復(fù)調(diào)試,找個合適的系數(shù)p,使機器人的行走機構(gòu)可以在較短時間內(nèi)完成較優(yōu)路徑的規(guī)劃。
使用激光雷達(dá)進(jìn)行地圖構(gòu)建與定位,并采用改進(jìn)的A*算法進(jìn)行自主導(dǎo)航,試驗結(jié)果如圖6所示。地圖中標(biāo)定機器人當(dāng)前位置和朝向,箭頭的方向為機器人的朝向。當(dāng)系統(tǒng)發(fā)布一個目標(biāo)位置A1時,機器人即可自主路徑規(guī)劃和導(dǎo)航避障到達(dá)目標(biāo)位置。
圖6 機器人自動導(dǎo)航圖界面
手眼協(xié)調(diào)是體現(xiàn)采摘機器人自主作業(yè)的關(guān)鍵[8-9]。根據(jù)相機和末端執(zhí)行器的位置關(guān)系,常見的手眼系統(tǒng)分別為Eye to Hand型和Eye in Hand型,其中Eye to Hand型是將相機安裝在機械臂以外的地方,并保證在采摘的過程中固定不動,Eye in Hand型是將相機安裝在機械臂末端,在采摘的過程中相機跟隨機械臂運動[10]。本文選擇的手眼系統(tǒng)為Eye in Hand型,在末端夾爪上連接小覓MYNTEYE雙目深度相機。
首先,將預(yù)先拍攝好的圖像標(biāo)注成熟草莓標(biāo)簽,圖像標(biāo)注后,對成熟草莓圖像進(jìn)行數(shù)據(jù)擴充,擴充圖片張數(shù)進(jìn)行數(shù)據(jù)集構(gòu)建。將數(shù)據(jù)集按照4∶1的比例劃分訓(xùn)練集和測試集,用于全卷積神經(jīng)網(wǎng)絡(luò)R-FCN模型訓(xùn)練,實現(xiàn)成熟草莓的識別。
R-FCN是在Faster R-CNN的基礎(chǔ)上,由Dai等人提出的,它將ROI Pooling后面的全連接層都用卷積層所代替,加快了運行速度。R-FCN通過兩個階段實現(xiàn)目標(biāo)識別檢測。首先使用RPN區(qū)域網(wǎng)絡(luò)提取候選框,生成感興趣區(qū)域ROI;然后,使用位置敏感得分圖來生成感興趣區(qū)域不同位置的特征,用于解決物體分類,生成的ROI經(jīng)過回歸器進(jìn)一步調(diào)整位置,使ROI的位置精度更高[11]。R-FCN具體由Resnet-101殘差網(wǎng)絡(luò)、RPN候選區(qū)域生成網(wǎng)絡(luò)、ROI池化層、投票層和損失函數(shù)(softmax和smoothL1函數(shù))組成,其網(wǎng)絡(luò)結(jié)構(gòu)示意圖見圖7所示。
圖7 R-FCN 網(wǎng)絡(luò)結(jié)構(gòu)示意圖
Resnet-101殘差網(wǎng)絡(luò)主要用于圖像分類,解決層數(shù)過深時神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果變差的情況。RPN候選區(qū)域生成網(wǎng)絡(luò)經(jīng)過卷積核為3×3、邊界填充為1、滑動步長為1的卷積后,由一個特征圖像滑動窗口,為每個位置生成9種不同類型的錨框,用于評估該區(qū)域為目標(biāo)區(qū)域的可能性,最后經(jīng)過softmax分類器獲得候選區(qū)域ROI。分別對每一個ROI進(jìn)行分類和回歸,這樣就可以得到每個ROI的真實類別和較為精確的回歸偏移量。R-FCN檢測算法采用了Resnet-101作為特征提取的骨干網(wǎng)絡(luò),它的網(wǎng)絡(luò)結(jié)構(gòu)如表4所示。Resnet-101有5層卷積層和最后的全連接層構(gòu)成,其中全連接層引進(jìn)了1×1的卷積核,進(jìn)行降維,減少參數(shù)數(shù)量[12-13]。
表4 Resnet-101網(wǎng)絡(luò)結(jié)構(gòu)Tab. 4 Resnet-101 network structure
RGB深度相機通過攝像采集獲得RGB圖像與深度圖像,其中RGB圖像經(jīng)過R-FCN目標(biāo)檢測算法,計算出草莓所在的二維平面位置,然后通過相機的內(nèi)置參數(shù),得到RGB圖像與深度圖像的坐標(biāo)映射關(guān)系,實現(xiàn)兩種圖像的融合,生成目標(biāo)草莓的三維點云圖。
由于相機視野中捕獲目標(biāo)物體的坐標(biāo)系與機器人坐標(biāo)系不一致,它們各自的坐標(biāo)沒有聯(lián)系,所以為了使兩者坐標(biāo)系形成關(guān)聯(lián),以便引導(dǎo)機器人進(jìn)行采摘,故需要將相機的坐標(biāo)系變換到機器人坐標(biāo)系中,即進(jìn)行標(biāo)定。
對于眼在手上(eye In hand)即相機固定在機械臂末端,主要標(biāo)定相機和機械臂末端的轉(zhuǎn)換矩陣。實現(xiàn)方法是將標(biāo)定板放在機械臂工作空間中的一個固定位置,移動機械臂,從不同角度拍攝n張標(biāo)定板圖片,為了標(biāo)定的準(zhǔn)確性,一般會選擇n>6。已知對每張圖片有
(6)
變換矩陣由旋轉(zhuǎn)矩陣和平移矩陣組成,我們以機械臂末端坐標(biāo)系到機械臂基底坐標(biāo)系變換矩陣為例進(jìn)行說明,轉(zhuǎn)換矩陣表示如式(7)所示。
(7)
…
(8)
在軟件系統(tǒng)中使用OpenCV手眼標(biāo)定calibrateHandeye()完成,屬性中輸入矩陣為
輸出矩陣為
手眼標(biāo)定方式為Tsai。輸入矩陣中的
本文采用課題組開發(fā)的農(nóng)業(yè)采摘機器人進(jìn)行試驗研究。試驗于2022年4月在江蘇省農(nóng)博園草莓溫室中進(jìn)行。溫室長50 m,寬30 m,溫室中的甜寶草莓按照基質(zhì)高架培育技術(shù)進(jìn)行栽培,基質(zhì)架之間的距離為1.5 m,高度為0.8 m,溫室內(nèi)共12排基質(zhì)。
將機器人放置于溫室中,放置好果蔬籃,讓機器人開始采摘??蛻羯衔粰C運行農(nóng)業(yè)采摘機器人軟件平臺,該平臺可以進(jìn)行機器人的手眼標(biāo)定、成熟果實的標(biāo)識和成熟果實的相機世界坐標(biāo)和機器人世界坐標(biāo)的顯示,并且可以實時顯示機器人六個關(guān)節(jié)軸的位姿信息,如圖8所示。
圖8 草莓識別結(jié)果圖
機器人在室內(nèi)無光照環(huán)境下進(jìn)行采摘,觀察其采摘機器人整體試驗數(shù)據(jù)如表5所示。從表5可以看出,將成功識別的成熟草莓?dāng)?shù)量除以該區(qū)域樣本總數(shù)(成功識別的成熟草莓?dāng)?shù)量與未能成功識別的成熟草莓的數(shù)量之和)可以得到草莓的識別率為95%。采摘成功的果實數(shù)量除了成功識別的果實數(shù)量得到一次采摘成功率為88.5%,二次采摘的成功率為94.6%。
表5 機器人采摘效果數(shù)據(jù)Tab. 5 Robot picking effect data
導(dǎo)出軟件平臺記錄的數(shù)據(jù),隨機整理出8個草莓的檢測坐標(biāo)以及抓取這些草莓時的機器人手爪坐標(biāo)和誤差參數(shù)如表6所示。
表6 草莓采摘數(shù)據(jù)Tab. 6 Strawberry picking data
綜上所述,采摘機器人成熟草莓識別率大概在95%,未識別原因主要由于葉片遮擋或者草莓之間堆疊。系統(tǒng)可以對草莓進(jìn)行三維定位,且檢測到的草莓坐標(biāo)與機器人手爪坐標(biāo)的誤差在4 mm以下,雖然誤差較小,但草莓體積也較小,這就導(dǎo)致了一次采摘的成功率較低,需要進(jìn)行二次采摘才能達(dá)到90%以上的采摘成功率。
本文設(shè)計一款農(nóng)業(yè)采摘機器人,可以在溫室中自由行走并采摘成熟草莓,通過采摘試驗得出結(jié)論如下。
1) 該機器人采用同時定位和地圖構(gòu)建SLAM技術(shù)實現(xiàn)機器人的自主路徑規(guī)劃。
2) 使用基于卷積神經(jīng)網(wǎng)絡(luò)R-FCN的目標(biāo)檢測算法可完成對成熟草莓的自動識別和坐標(biāo)定位,成熟草莓識別率大概在95%。針對葉片遮擋或者草莓堆疊問題,考慮后期為機器人設(shè)計吹風(fēng)裝置,提高識別效率。
3) 因為草莓的體積較小,要求目標(biāo)物體位置定位精度高,以及機器人的運動誤差小。后期會從這兩個方面進(jìn)行改進(jìn)。