梁喜鳳,花瑞,楊銘濤
(中國計量大學機電工程學院,杭州市,310018)
中國是世界上番茄生產(chǎn)和消費總量最多的國家之一。近年來,番茄種植管理的人工成本逐漸增加,而番茄打葉又需要周期性的進行,人工成本較高[1]。目前番茄種植方式是以溫室大棚中或者高架形式種植為主,植株之間的行距比較寬闊,無論是采摘果實還是修剪枝葉,都適合機械化作業(yè)[2-3]。因此,研發(fā)一種代替或輔助人工作業(yè)的番茄枝葉修剪機械手是很必要的。
目前,國內(nèi)研究的枝葉修剪機器人大多是用于林木修剪,徐軍[4]設計的林木剪枝機器人是利用驅(qū)動與蝸輪的鏈式連接裝置,實現(xiàn)攀爬樹干和修剪樹枝功能。由于番茄植株的枝干較為細軟、長勢較高[5],所以需要設計一種針對番茄植株的枝葉修剪機械手,而視覺伺服控制系統(tǒng)是番茄修剪枝葉機械手的重要組成部分。視覺伺服分為基于位置的視覺伺服(PBVS)和基于圖像的視覺伺服(IBVS)[6]?;谖恢玫囊曈X伺服是通過估計目標位置相對攝像機的位姿,將該位姿與當前位姿進行對比再調(diào)整機械臂,由于PBVS固定了攝像機的位置,使得其無法在一些流動性的作業(yè)中獲取完備的特征[7-8]。基于圖像的視覺伺服在控制過程中需要估計圖像雅克比矩陣,如今大部分都使用KF算法[9]和UKF算法[10]來估計圖像雅克比矩陣,但其計算工作復雜并受環(huán)境噪聲影響較大[11]。Mehta等[12]在IBVS的基礎(chǔ)上加入魯棒反饋去克服外界影響造成目標果實的運動。除此之外還有在視覺伺服上加入神經(jīng)網(wǎng)絡[13-14],目前大多運用于工業(yè)領(lǐng)域,Gu等[15]在模糊神經(jīng)網(wǎng)絡的基礎(chǔ)上對圖像特征點和機械臂關(guān)節(jié)變化關(guān)系進行估計,在視覺伺服中加入神經(jīng)網(wǎng)絡可以避免計算圖像雅克比矩陣[16-18],但是需要對目標物體規(guī)定尺寸。
本文結(jié)合番茄枝葉的生長特點,以項目組設計的五自由度的全自動番茄枝葉修剪機械手為平臺,在PSO-BP神經(jīng)網(wǎng)絡的基礎(chǔ)上設計了番茄枝葉修剪機械手的視覺伺服系統(tǒng)。以番茄植株的側(cè)枝夾取點為研究目標,提出了一種基于不同邊緣類型的番茄側(cè)枝特征點識別方法,通過圖像處理算法中橫縱邊緣類型的分類,提取目標剪枝點,在訓練好的PSO-BP神經(jīng)網(wǎng)絡的基礎(chǔ)上,得到機械臂的關(guān)節(jié)角度,進行仿真試驗。
本文基于不同邊緣類型的番茄側(cè)枝特征點識別方法的流程如圖1所示。
圖1 番茄側(cè)枝特征點識別方法的流程
本文以在番茄植株中搜尋番茄側(cè)枝特征點為目的,提出了一種基于不同邊緣類型的番茄側(cè)枝特征點識別方法,在背景中提取出整株番茄植株,通過區(qū)分橫縱邊緣的算法對番茄植株邊緣進行處理,將橫縱邊緣交界點作為番茄植株側(cè)枝的特征點,然后再利用邊緣排序算法對每段番茄枝條邊緣進行排序和分類,得到一對分別在上邊緣和下邊緣上的特征點。
通過佳能450D相機,在自然光照條件下獲得番茄側(cè)枝的圖像。由于番茄植株側(cè)枝的葉片和枝干顏色太過相似,無法基于多光譜識別方法對枝葉進行分類,所以本文中使用形態(tài)學方法對番茄側(cè)枝進行圖像處理(圖2)。對圖2(a)彩色圖像I進行背景分割,提取出整株的蔬果枝葉如圖2(b)所示,并對提取的圖像進行二值化處理,得到如圖2(c)的二值化圖像C。
(a) 彩色圖像I
由于枝、葉無法通過顏色對其進行區(qū)分,采用一種橫縱邊緣分割的方法去除葉片的邊緣的影響。首先對二值化圖像進行橫縱邊緣的提取,分別形成與二值化圖像尺寸相同的縱邊緣圖像C2和橫邊緣圖像C3,在縱邊緣圖像中的像素值取值如式(1)所示。
(1)
式(1)中將橫向邊緣像素賦值0,縱向邊緣賦值1,使得C2圖像用白色顯示出縱向邊緣段。
再將上述的橫邊緣圖像C3分為上下邊緣Cu,其中Cu像素值取值如式(2)所示。
(2)
在式(2)中橫向邊緣像素賦值1,縱向邊緣賦值0,使得橫向邊緣在圖像中顯示出來,在坐標數(shù)列里給下邊緣和上邊緣進行分類。再對得到的縱邊緣圖像和橫邊緣圖像分別進行開運算,去除圖像中離散的點和不屬于枝條的邊緣,得到僅保留枝條邊緣的縱向枝條邊緣(圖3)和橫向枝條邊緣(圖4)。
圖3 縱向邊緣
圖4 橫向邊緣
基于上下邊緣標記圖像,再利用蔬果植株邊緣排序算法[19]對植株的橫向枝條邊緣進行排序和類別判斷,將圖像中的每條橫向枝條邊緣按照判斷結(jié)果標記為上邊緣或下邊緣;基于縱向枝條邊緣圖像和橫向枝條邊緣圖像,將橫縱邊緣進行整合(圖5)。
圖5 橫縱邊緣整合
由于同一枝條的兩個側(cè)枝點不可能距離很遠,因此可以通過設置距離閾值,剔除非側(cè)枝點,得到每一根橫向枝條對應的一組分叉點,所述的距離閾值為20~40個像素。如圖6所示得到所有的對偶交點;再根據(jù)一組分叉點中兩個交點所靠近或是依附的橫向枝條邊緣類別,來判斷交點是上邊緣點還是下邊緣點,最終識別到橫向枝條側(cè)枝點的上邊緣點和下邊緣點,如圖7所示圈出了目標特征點。
圖6 對偶的橫縱邊緣交點
圖7 番茄植株目標特征點
BP神經(jīng)網(wǎng)絡是一種不需要事先確定輸入輸出之間映射關(guān)系的網(wǎng)絡,僅通過自身的訓練,學習某種規(guī)則,在給定輸入值時得到最接近期望輸出值的結(jié)果[20]。本文中在BP神經(jīng)網(wǎng)絡訓練的基礎(chǔ)上進行無標定的視覺伺服控制,通過不斷迭代練習,得到一個訓練好的機械臂關(guān)節(jié)角度和目標特征點映射關(guān)系的網(wǎng)絡。
BP神經(jīng)網(wǎng)絡由輸入層、隱含層和輸出層組成。在本文中由于番茄側(cè)枝的圖像特征點只有兩個,為了提高網(wǎng)絡的收斂性和減小訓練方差,增加輸入節(jié)點數(shù),所以使用雙目攝像機,這樣就可以得到4個目標特征點,分別將其橫縱坐標作為輸入。輸出層設置為5個輸出節(jié)點,分別對應機械臂5個期望關(guān)節(jié)角度與當前關(guān)節(jié)角度的差值。BP神經(jīng)網(wǎng)絡隱含層通常采用經(jīng)驗公式,如式(3)所示。
(3)
式中:m——隱含層節(jié)點數(shù);
s——輸入層節(jié)點數(shù);
l——輸出層節(jié)點數(shù);
α——1~10之間的整數(shù)[12]。
通過計算隱含層節(jié)點設置在5~14即可。BP神經(jīng)網(wǎng)絡的訓練樣本是通過仿真機械臂相應關(guān)節(jié)角變化,并同時記錄相應的圖像特征點變化來獲?。浑x線對BP神經(jīng)網(wǎng)絡進行訓練,訓練網(wǎng)絡的結(jié)構(gòu)圖如圖8所示,其中Δx1…Δx8為特征點變化,q1…q5為關(guān)節(jié)角度變化值;網(wǎng)絡的執(zhí)行階段是根據(jù)神經(jīng)網(wǎng)絡的輸入計算期望的關(guān)節(jié)角變化。
圖8 BP神經(jīng)網(wǎng)絡結(jié)構(gòu)圖
粒子優(yōu)化算法(PSO)源于鳥群捕食的行為研究,通過給予粒子位置和速度兩個屬性,讓每個粒子尋求空間中最優(yōu)解。在PSO-BP神經(jīng)網(wǎng)絡中利用PSO算法對全局范圍中進行大致搜索[22],得到一個優(yōu)化過的BP神經(jīng)網(wǎng)絡的權(quán)值和閾值,提高了BP網(wǎng)絡的泛化能力和學習能力,大大提升了其收斂速度。PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡流程圖如圖9所示,具體步驟如下。
圖9 PSO-BP神經(jīng)網(wǎng)絡流程圖
1) 設置BP神經(jīng)網(wǎng)絡的參數(shù),包括輸入層節(jié)點In,隱含層節(jié)點Hid和輸出層節(jié)點Out,將訓練數(shù)據(jù)歸一化處理。
2) 初始化粒子群算法的所有參數(shù),包括粒子最大速度,慣性權(quán)重,學習因子,迭代次數(shù)N和粒子群規(guī)模U;速度向量維數(shù)Dims按式(4)求得,每個粒子由速度矩陣和位置矩陣組成。
Dims=In×Out+Hid+Hid×Out+Out
(4)
3) 對粒子個體進行評價:首先把最小適應度函數(shù)值設置為粒子群的個體極值Pbest,然后將粒子中最小的個體極值設置為全局極值gbest,適應度函數(shù)按式(5)確定。
(5)
式中:Vn——實際輸出;
yn——期望輸出。
4) 將粒子的當前最佳位置作為迭代點,進行迭代。
5) 排除越界的粒子,更新粒子的速度和位置。
6) 當?shù)螖?shù)到達N或是誤差滿足精度要求時,停止迭代;否則轉(zhuǎn)入步驟5。
7) 結(jié)束迭代,將當前的Pbest和gbest作為BP神經(jīng)網(wǎng)絡的權(quán)值和閾值,獲得BP神經(jīng)網(wǎng)絡的預測輸出。
視覺伺服控制主要通過末端執(zhí)行器的移動位置和期望位置的偏差進行反饋,不斷調(diào)整機械臂的位姿來夾取側(cè)枝。本文中視覺伺服控制系統(tǒng)是通過雙目攝像機對目標枝條進行采集圖像,將采集的圖像通過上述圖像處理得出目標側(cè)枝點的位置;再通過將位置信息輸入到PSO-BP神經(jīng)網(wǎng)絡中,來獲得五個關(guān)節(jié)角度,轉(zhuǎn)動機械臂各個關(guān)節(jié),使用的雙目、基于圖像特征的視覺伺服控制系統(tǒng),如圖10所示,再通過眼在手上的方式將攝像機安裝在機器人的末端執(zhí)行器上。
圖10 番茄枝葉修剪機械手視覺伺服系統(tǒng)框圖
為了獲得充足的訓練樣本,本試驗根據(jù)課題組中番茄剪葉機械手實物,利用Matlab軟件中的機器人工具箱(Robotics Toolbox)搭建了一個五關(guān)節(jié)的機器臂模型如圖11所示,并建立了一個基于圖像的視覺伺服(IBVS)仿真系統(tǒng)。變化仿真機械手各個關(guān)節(jié)的角度,保證得到特征點在同一平面上,在照相機模塊得到對應的圖像特征變化圖,得到300組數(shù)據(jù),其中250組作為訓練樣本,50組作為測試樣本。
圖11 枝葉修剪機械手仿真圖
為了驗證本文中提出的視覺伺服系統(tǒng)的可行性,進行simlink仿真試驗。根據(jù)上述方法建立的PSO-BP神經(jīng)網(wǎng)絡模型,其中各項參數(shù)設置為BP網(wǎng)絡的學習率μ=0.4,動量因子η=0.8,期望誤差e=10-5;PSO優(yōu)化網(wǎng)絡中,種群規(guī)模為80,迭代100次,學習因子設置為c1=c2=2。
導入訓練集進行反復迭代訓練,訓練完成后測試集的輸出均方差如圖12所示。
圖12 PSO-BP神經(jīng)網(wǎng)絡曲線圖
由圖12可知,在迭代100次內(nèi)均方差已經(jīng)漸漸收斂,最終迭代次數(shù)不到90次時,均方差就能收斂到7.933 7×10-5,達到期望的輸出精度。在仿真試驗中,將每個攝像機中兩個期望的特征點坐標(末端執(zhí)行器的特征點)提取,四個坐標構(gòu)成一個長方形,將其坐標做以下假設。
1) 四個期望的圖像特征坐標
2) 機械臂的初始關(guān)節(jié)角
3) 攝像機參數(shù)設置:焦距f=8 mm,α=β=80 000 pixels/m,目標成像深度h=1.5 m,圖像中心點為(200, 200)。
如圖13所示,試驗中特征點在攝像機中從初始點移動到最終位置,虛線為初始特征點位置,實線表示最終位置,根據(jù)特征點的變化,求解出機械臂各個關(guān)節(jié)運動角度,各個關(guān)節(jié)運動軌跡變化如圖14所示。
圖13 初始特征點位置
圖14 各關(guān)節(jié)角度變化
由圖13可知,圖像特征最終位置的像素坐標為a1=(174,162),a2=(223,218),a3=(174,217),a4=(226,164),與設定的期望圖像特征點對比相差3~5個像素點,由圖14可知,在4 s內(nèi)機械臂各個關(guān)節(jié)運動到期望位置。
本文僅在仿真試驗中驗證了該方法的可行性,具體運用到試驗部分還需要改進,并且對機械臂的軌跡規(guī)劃未進行研究,在實際工作中會影響修剪效果并損壞側(cè)枝,后續(xù)應增加對該方面的研究。文中提出的基于神經(jīng)網(wǎng)絡的視覺伺服系統(tǒng)的研究在工業(yè)領(lǐng)域比較多,主要由于工業(yè)器件尺寸的確定性,但在農(nóng)業(yè)中番茄側(cè)枝的寬度并不確定,所以使用神經(jīng)網(wǎng)絡只能得到機械臂轉(zhuǎn)動關(guān)節(jié)角度,在平動關(guān)節(jié)還需要使用雙目測距進行調(diào)整。
1) 通過對番茄植株圖像進行形態(tài)學處理,將番茄側(cè)枝分為橫縱邊緣,根據(jù)不同邊緣類型找到對偶的番茄側(cè)枝點,能夠獲得機械臂修剪枝葉所需要的期望特征點。
2) 在PSO-BP神經(jīng)網(wǎng)絡的基礎(chǔ)上建立視覺伺服系統(tǒng),相對于傳統(tǒng)的視覺伺服控制,減少了計算雅克比矩陣的工作量;相對于雙目定位來說,省去了標定環(huán)節(jié),也就減少了標定環(huán)節(jié)帶來的誤差和所需要的人工成本。
3) 試驗結(jié)果表明設計的視覺伺服系統(tǒng)能成功的識別番茄側(cè)枝修剪點,仿真試驗測試得到圖像特征的實際值和期望值誤差在3~5個像素之間,五自由度的機械手在4 s內(nèi)能移動到期望位置,具有良好的控制精度和速度。