毛鵬軍,張家瑞,黃傳鵬,耿 乾,李鵬舉
(河南科技大學 農業裝備工程學院,河南 洛陽 471003)
在我國,林果生產已成為大部分林果產區經濟發展和農民增收致富的新亮點和支柱產業[1],而果園機械化程度仍處于起步階段,其作業管理仍依靠人工完成。究其原因:①果園果樹樹冠大、冠層低,傳統動力農機無法進入作業,且其生產過程不僅充滿了剪枝、套袋、采摘等精細化作業環節,還有施肥、除草等傳統農業作業環節[2];②水果品種多、種植模式差異大,進一步增加了農機適配難度[3]。
隨著人工智能的發展、自動化水平的提高,無人值守、智能化產業在農業工程領域取得了較快發展,并得到相關學者的高度重視。聶森等[4]對采集的樹行視覺信息用HSV和最大類間方差法進行增強處理,并對果樹樹行進行Hough擬合,得到果園機器人運動的導航路線。張磊等[5]基于圖像處理的方法將獲得的農田場景圖像進行分割和歸類處理,然后使用特征匹配的方法獲取障礙物信息,正確率可達95%。葛君山[6]將獲取的GPS信息發送給單片機,在單片機內進行分析和處理后得到果園機器人的控制時間和位置信息,進而控制其完成導航。孫曼暉等[7]在大范圍環境中使用基于GIS和SLAM的方法,解決了SLAM在大范圍環境中建圖難的問題。曹起武[8]將農業機器人的控制系統存放在云計算機中,使用蟻群算法,完成農業機器人的路徑規劃。艾長勝等[9]基于支持向量機的算法對農業機器人作業路徑進行規劃,發現該算法擬合的導航路線與實際中心線平均角度偏差為0.72°。陳順立[10]在建立的幾何環境模型基礎上,采用遺傳算法進行了全局規劃,得到了最短路徑。
但是,一些果園中,果樹連續種植且行間距不明顯,這種環境障礙物結構復雜,增加了機器人環境建模的難度。激光雷達傳感器具有抗干擾性強、精度高的特點,廣泛應用于機器人自動避障。為此,設計的果園機器人搭載激光雷達,實時獲取果園實況數據信息,應用數據差方式,標定出果園中障礙物,并依此生成柵格地圖,然后采用Q-學習的方式得到最優路徑。
果園機器人系統結構由感知層、決策層和執行層組成,如圖1所示。感知層是果園機器人感知外界環境的部分,由激光雷達組成,主要完成環境中障礙物位置信息的采集。決策層是果園機器人的“大腦中樞”,由一臺ROS機器人系統的工控機組成,主要完成果園機器人運動控制、處理激光雷達數據,并發送速度信息給底層控制系統;對于接收到的激光雷達數據,首先將其轉換到機器人坐標系,然后進行柵格化處理,將不規則的障礙物都補齊為正方形,再進行避障路徑規劃。執行層是機器人的運動執行層,其底層控制系統的核心是STM32F103單片機,用來完成決策層發送指令,控制兩側電機驅動機器人移動完成避障。

圖1 果園機器人系統結構圖Fig.1 Orchard robot system structure diagram
系統中獲取環境中障礙物信息主要由激光雷達傳感器完成。機器人判斷障礙物依據為
(1)
式中ni—該段時間內第i個激光雷達距離數據;
d—障礙物與機器人之間的距離;
a—第i個激光雷達數據與i-1數據的差的閾值。
當得到障礙物的信息后,此段時間內障礙物的最大直徑計算公式為
s=f(ni)-f(mj)
(2)
由于果園背景環境復雜,使得檢測到的障礙物形狀不一,所以需要將障礙進行規則化處理[11]。首先,以果園機器人為中心,機器人的步長L為參數,將激光雷達采集的數據進行柵格化處理,然后將障礙物全部補齊為正方形。行列柵格數為
(3)
為了進一步降低激光雷達數據冗余度、提高運算速度,當機器人與樹干距離為d時,只處理夾角在α內的數據,用公式表示為
(3)
其中,θi為該段時間內第i個激光雷達角度數據。
某一段時間內激光雷達數據如圖2所示。圖2中,果園機器人坐標位于圖中坐標點(9,18)處,虛線表示未進行冗余處理前的環境信息,實線表示冗余處理后保留的結果,黑色方塊表示障礙物信息處理后補齊到正方形的結果。

圖2 障礙物地圖Fig.2 Obstacle map
果園環境下道路崎嶇不平,當雨雪天氣過后道路更是泥濘不堪,為了讓果園機器人能在這種惡劣環境下運行穩定,采用了差速轉向機構,用兩電機完成左右輪速度控制。果園機器人的差速模型簡圖如圖3所示。圖3中:xoy為全局坐標系;XOY為果園機器人坐標系;θ為果園機器人與水平方向夾角;v1為果園機器人右側輪速度;v2為果園機器人左側輪速度;B為輪距;ω為轉向角速度;R為轉向半徑。

圖3 機器人轉向圖Fig.3 Robot steering diagram
果園機器人兩側的速度為
v1=(R-0.5B)ω
(4)
v2=(R+0.5B)ω
(5)
中心速度為
v=Rω
(6)
果園機器人兩側線速度為
v1=ω1r
(7)
v2=ω2r
(8)
式中ω1—果園機器人右側輪角速度;
ω2—果園機器人左側輪角速度;
r—驅動輪半徑。
所以
v1=ω1r=(R+0.5B)ω
(9)
v2=ω2r=(R+0.5B)ω
(10)
得到
(11)
(12)
v=0.5r(ω2+ω1)
(13)
整理最后得到差速模型為
(14)
Q-學習屬于強化學習[12],不需要建立環境模型,是一種基于數值迭代的規劃方法,其示意圖如圖4所示。在Q-學習過程中,機器人根據當前狀態St選擇一個動作At,執行該動作后會得到環境的激勵Rt,機器人需要根據該激勵值和環境狀態選擇下一個動作。

圖4 強化學習基本模型圖Fig.4 Basic module of reinforcement learning
1)激勵值表R的設計。依據果園機器人的作業環境,確定機器人與障礙物的距離和方位角分別為d和θ,并規定機器人前進時的方位角范圍為(0°~45°)和(315°~360°),當機器人方位角處于該范圍時激勵值取100。當機器人與障礙物間的距離為0.6~0.8m時激勵值取100。激勵值表如表1所示。

表1 R值表Table 1 R value table
2)動作設計。把果園機器人在果園中的運動分為左轉、右轉和前進,結合果園機器人的差速模型,得到動作值表如表2所示。

表2 動作值表Table 2 Action value table
3)動作選擇策略。定義動作策略是選擇當前狀態下的Q值最大的動作,Q函數的方程為
(15)
式中R(St,a)—當前狀態下,系統采取的動作a獲得的回報;
St′—當前狀態St和當前動作a下系統轉入的下一個狀態;
γ—權值系數,γ∈(0,1),是將未來的回報轉換為當前的因子,γ值越大,對當前的影響越大;
b—下一個狀態所采取的動作;
Q(St,a)—系統在當前狀態St和動作a下得到的總計期望回報的估計。
調整規則由以下公式表示,即
(16)
在ROS環境中啟動激光雷達rplidar_ros功能包后,激光雷達便開始采集環境信息。該信息通過tf坐標轉之后,將數據送入果園機器人控制程序中,完成障礙物邊緣提取,然后得到障礙物地圖矩陣。在Q-學習階段,首先建立Q空矩陣,隨機選擇初始狀態;若該狀態不是目標狀態,便在改狀態下選擇行為a,得到新的狀態,然后計算Q值,并更新Q矩陣,直到Q矩陣收斂為止。果園機器人便按照該矩陣規劃的路線前進,并實時判斷是否有新的障礙物:若有,重新學習規劃新的路線;若無,判斷是否到達終點。若沒有到達終點,則更改機器人速度,直到到達終點位置。其路程圖如圖5所示。

圖5 算法流程圖Fig.5 System flow chart
為驗證所設計的果園機器人自主避障算法可行性,利用MatLab軟件對其進行仿真驗證。在仿真中,隨機s生成各種大小的障礙物,機器人位于坐標原點,終點位于(35,35)。其輸入信息為激光雷達所測的障礙物的距離以及所在方位角,輸出是機器人的兩側電機速度,學習率α=0.5,權值系數γ=0.8,訓練結果如圖6所示。

圖6 仿真圖Fig.4 System flow chart
由圖6可知:機器人能夠及時躲避環境中的障礙物,并規劃出一條較優路徑。
為驗證機器人的避障可行性,對果園機器人進行室內模擬試驗。試驗場地為河南科技大學西苑校區10號樓樓道,在測試試驗環境中放置了2個形狀不一的障礙物模擬果園環境中的障礙物。試驗過程如圖7所示。

(a) 起始位置 (b) 開始避障
圖7(a)是起始位置,將機器人和障礙物放置在一條線上,終點位于第2個障礙物后方;圖7(b)是躲避第1個障礙物的過程;圖7(c)是完成第1個避障的過程,可以看出機器人能很好的躲避第1個障礙物并和障礙物保持一定的距離;圖7(d)是完成第2個障礙物躲避。由試驗可以看出,機器人能及時躲避環境中放置的障礙物。
其避障軌跡如圖8所示。從機器人的軌跡圖上可以看出:機器人能順利避開所設障礙物,并能到達指定終點,且路徑較為光滑。

圖8 避障軌跡圖Fig.8 Obstacle avoidance trajectory diagram
在試驗過程中,記起點位置為A點,方形障礙物為B點,圓形障礙物為C點,終點位置為D點,具體標記如圖8所示。果園機器人在避障過程中的試驗數據,如表3所示。

表3 試驗結果Table 3 Test results
表3中,距離為點到點的中心距離,理論距離為機器人的測量數據。機器人從A點到D點所用時間為12s,AD直線距離為6.80m,機器人所走路程為7.24m,平均速度約為0.60m/s。其運動過程中距離測量平均誤差為3.6%,是由于激光雷達自身誤差和障礙物表面反射造成的。B點到障礙物的表面實際測量距離為0.30m,規劃的路線距離為0.28m,誤差為7.14%。這是因為在開始階段,機器人進行了柵格化和障礙物信息補齊到正方形造成的。
1)對激光雷達數據進行了冗余處理,將激光雷達的信息映射到平面坐標中進行柵格化;在柵格化之后,將所有障礙物補齊為規定的正方形。該方法減少了激光雷達的數據量,提高了機器人的運算速度。
2)將得到的障礙物柵格地圖信息送入Q-學習中,通過學習得到一條較優路徑,驅使機器人沿著該路線前進。當機器人經過的路線中再次出現障礙物,可再次更新障礙物位置信息,進行Q學習得到當前障礙物下的較優路徑。該方法將連續的狀態空間離散化,解決了狀態-動作過多的“維數災難”問題。
3)通過仿真分析,證明了該方法的可行性。在樓道環境進行了避障試驗,結果表明:機器人能及時躲避障礙物,到達指定地點,具有較好的應用價值。