王 哲
(許昌學(xué)院 體育學(xué)院,河南 許昌 461000)
隨著國家對環(huán)保的重視程度越來越高,在城鎮(zhèn)化建設(shè)過程中綠地建設(shè)也被納入政府規(guī)劃,城市中的綠地數(shù)量和面積呈急速上升趨勢[1]。城市園林綠化一線工作者以中老年人主,且除草方法較為原始,不能滿足日益增長的綠地修建需求[2]。因此,可以實現(xiàn)大規(guī)模裝備的除草機器人的需求迫在眉睫。當(dāng)今除草自動化設(shè)計原理主要包括:①GPS加視覺分辨系統(tǒng)除草機器人[3];②以測距傳感器作為檢測設(shè)備[4],采用神經(jīng)網(wǎng)絡(luò)方法進(jìn)行路徑規(guī)劃的機器人[5]。GPS加視覺分辨系統(tǒng)具有很高的路徑規(guī)劃精度,除草效果好,但需要GPS導(dǎo)航模塊、高清攝像機和工控機,成本居高不下,不能滿足大規(guī)模裝備的需求[6]。以測距傳感器作為檢測設(shè)備,采用神經(jīng)網(wǎng)絡(luò)方法進(jìn)行路徑規(guī)劃的機器人具有成本低廉的特點,但神經(jīng)網(wǎng)絡(luò)系統(tǒng)建設(shè)和算法不完善,在草坪障礙物多的情況下機器人可能進(jìn)入死區(qū)[7],不能實現(xiàn)全區(qū)域除草工作[8]。為了實現(xiàn)大規(guī)模裝備,以測距傳感器作為檢測設(shè)備,基于排球戰(zhàn)術(shù)[9]設(shè)計神經(jīng)網(wǎng)絡(luò)系統(tǒng),實現(xiàn)了除草機器人的自動化。設(shè)計思路如下:①設(shè)計除草機器人機械結(jié)構(gòu);②采用排球近戰(zhàn)戰(zhàn)術(shù)規(guī)則設(shè)計三層神經(jīng)網(wǎng)絡(luò)系統(tǒng),實現(xiàn)機器人避障;③基于排球長傳轉(zhuǎn)移戰(zhàn)術(shù),設(shè)計機器人死區(qū)改出神經(jīng)網(wǎng)絡(luò)系統(tǒng);④仿真測試。
除草機器人結(jié)構(gòu)原理如圖1所示。
圖1 除草機器人結(jié)構(gòu)Fig.1 The Structure of weeding robot
其中:1為除草滾刀,長度為L,距離地面高度為H,即確保機器人工作過后草坪高度為H;2和5為左右驅(qū)動輪,半徑為r,為機器人提供前進(jìn)和轉(zhuǎn)向動力;3為支撐作用的萬向支撐輪;4為測距傳感器,檢測角度為60°,在機器人四面均布8個,兩個傳感器之間的夾角為45°,實現(xiàn)無死角障礙物檢測。
除草機器人主要完成以下功能:
1)除草功能。在滾刀1最低點到地面距離為H,當(dāng)驅(qū)動電機作用下工作時,確保工作后的草坪高度為H。
2)機器人前進(jìn),此時2和5為左右驅(qū)動輪以相同的轉(zhuǎn)速ω運行,則機器人前進(jìn)速度V=ωr。
3)機器人原地轉(zhuǎn)向,此時2和5為左右驅(qū)動輪以大小相同、方向相反的角速度ω運行。設(shè)右轉(zhuǎn)為正方向,則機器人自轉(zhuǎn)角速度為Δθ=2ωr/M。
工作草坪進(jìn)行網(wǎng)格劃分[10],每個單元格大小為L×L,后對其進(jìn)行坐標(biāo)化處理。其中,坐標(biāo)P(xi,yi)表示橫坐標(biāo)為xi、縱坐標(biāo)為yi的單元格。由于單元格只存在兩種情況:①被障礙物占據(jù),除草機器人不能工作;②沒有障礙物,除草機器人可以工作。因此,設(shè)定函數(shù)O(xi,yi)表示該單元格狀態(tài),即
(1)
單元格中,只要有任何一部分本障礙物占領(lǐng),就認(rèn)為該單元格有障礙物,如圖2所示。
圖2 格柵式地圖Fig.2 Grid map of grass carpet
設(shè)機器人可以工作的區(qū)域集合為S0={(x,y)|O(x,y)=0},障礙物占據(jù)區(qū)域集合為S1={(x,y)|O(x,y)=1},則機器人經(jīng)歷的路徑為L1={(xi,ym)|i=1,2,…,n;m=1,2,…,n}。工作草坪區(qū)域集合為Φ,則四者之間的關(guān)系為:L1?S0,Φ=S0+S1。
目前,主流的除草機器人全覆蓋路徑規(guī)劃為螺旋式規(guī)劃和犁地式規(guī)劃[4]。螺旋式規(guī)劃是指機器人沿著這個工作區(qū)域進(jìn)行工作,當(dāng)完成1整圈后,向內(nèi)側(cè)縮小1個滾刀寬度L后,繼續(xù)沿著新的邊界進(jìn)行運動,整體呈現(xiàn)出沿“回”字進(jìn)行運動,最終實現(xiàn)在工作區(qū)域的中心某位置完成全覆蓋,如圖3(a)所示。該方法可以有效地完成除草工作,但對于確定機器人自身坐標(biāo)和設(shè)置規(guī)避障礙物規(guī)則相對困難,適用于障礙物不多的草坪。 犁地式規(guī)劃如圖3(b)所示。工作時,機器人沿著某一個方向向前運動,此時機器人坐標(biāo)P(xi+1,yi+1)=(xi,yi+1)。當(dāng)遇到邊緣時,機器人向右轉(zhuǎn)90°行走L,此時機器人坐標(biāo)P(xi+1,yi+1)=(xi+1,yi);向右轉(zhuǎn)后前進(jìn),此時機器人坐標(biāo)P(xi+1,yi+1)=(xi,yi-1)。如此往復(fù),直到整個草坪完成除草工作。犁地式路徑規(guī)劃具有避障規(guī)則簡單及機器人坐標(biāo)遞推關(guān)系清晰的特點,因此基于犁地式規(guī)劃設(shè)計除草機器人路徑。
圖3 除草路徑規(guī)劃Fig.3 Path planning for weeding
以工作區(qū)域建立直角坐標(biāo)系,機器人經(jīng)歷了i個格柵,即i次迭代后機器人坐標(biāo)位置表示為P(xi,yi,)。機器人傳感器輸入量為正前方是否有障礙物,可以用函數(shù)O(xi,yi)表示;區(qū)域是否完成清掃,用函數(shù)Clear(xi,yi)表示,即
(2)
因此,系統(tǒng)輸入向量為Xp=(clear,O)T。機器人的狀態(tài)由兩個量表示:①機器人轉(zhuǎn)角θ;②機器人速度V, 神經(jīng)網(wǎng)絡(luò)系統(tǒng)輸出期望向量為S=(θi,Vi)T。輸出量期望的判定規(guī)則為
(3)
根據(jù)系統(tǒng)的輸入量區(qū)域清掃函數(shù)Clear(xi,yi)和前方障礙物函數(shù)O(xi,yi);系統(tǒng)輸出量期望為機器人轉(zhuǎn)角θ,機器人速度V,構(gòu)建學(xué)習(xí)樣本集。構(gòu)建規(guī)則基于排球比賽戰(zhàn)術(shù),當(dāng)防守隊員站在正前方不遠(yuǎn)處且防守隊員身后有空檔時,攻防隊員降低移動速度,同時向右轉(zhuǎn)身,打防守隊員身后空檔;當(dāng)防守隊員身后沒有空檔時,減速左轉(zhuǎn),返回自己半場;當(dāng)沒有防守隊員時,采用高速直線帶球?;谝陨弦?guī)則,建立避障學(xué)習(xí)樣本,如表1所示。
表1 避障學(xué)習(xí)樣本集Table 1 Training samples for obstacle avoidance
圖4 系統(tǒng)神經(jīng)網(wǎng)絡(luò)圖Fig.4 The Structure of neural network system
(4)
當(dāng)?shù)趈個節(jié)點輸出函數(shù)已知時,輸出量為
(5)
同理可得,輸出向量中第j個元素的總輸入和輸出為
(6)
(7)
輸出向量元素的所有誤差的平方和Ep為
(8)
(9)
在迭代過程中,權(quán)重值改變量和梯度值成正比,則
(10)
(11)
將Sigmoid函數(shù)作為隱含層到輸出層的傳遞函數(shù),即
(12)
由此造成整個神經(jīng)網(wǎng)絡(luò)產(chǎn)生了復(fù)雜的非線性問題,導(dǎo)致局部極小的出現(xiàn),表現(xiàn)為除草機器人的死區(qū)問題,如圖5所示。當(dāng)除草機器人運動到最終位置時,發(fā)現(xiàn)工作區(qū)域的草坪均完成工作,失去目標(biāo)坐標(biāo)導(dǎo)向,此時機器人任務(wù)工作已經(jīng)完成。實際上,整個草坪還要右上部分沒有進(jìn)行除草作業(yè),因此克服該問題的方法是:重新尋找導(dǎo)向目標(biāo)坐標(biāo)P,并以該坐標(biāo)作為起始位置,完成殘存部分草坪的除草工作。
圖5 除草機器人死區(qū)Fig.5 Dead zone of weeding robot
根據(jù)排球戰(zhàn)術(shù)規(guī)則,當(dāng)進(jìn)攻受阻時,可以尋找新的空檔進(jìn)行長傳,之后從新組織進(jìn)攻。當(dāng)除草機器人進(jìn)入死區(qū)后,要尋找新的目標(biāo)坐標(biāo)進(jìn)行轉(zhuǎn)移。設(shè)草坪格柵地圖中坐標(biāo)為p(i,j)的格柵在t時刻的狀態(tài)為Xij(t),與坐標(biāo)為(i,j)相鄰的前后左右4個格柵狀態(tài)依次表示為Xijk(t)(k=1,2,3,4),則在時間維度上的遞推關(guān)系可表示為
(13)
其中,wijk為周圍4個格柵和中心格柵的連接權(quán)重系數(shù),Iij為格柵屬性。由于有4個相關(guān)聯(lián)格柵,當(dāng)中心格柵坐標(biāo)為新目標(biāo)時,設(shè)定Iij=10>5,|pij-pijk|表示兩坐標(biāo)之間的距離,L為剪草滾刀長度,wij為中心格柵自身迭代權(quán)重系數(shù),則
(14)
為了保證隨著時間的迭代,Xij(t)是遞減函數(shù),因此設(shè)定(0 (15) 本數(shù)學(xué)模型的功能為:新目標(biāo)的坐標(biāo)格柵狀態(tài)Xij(t)=1,障礙物格柵狀態(tài)函數(shù)Xij(t)=0,其他格柵狀態(tài)Xij(t)隨著迭代次數(shù)的增加逐步遞減。在工作草坪空間上表示為隨著時間的迭代,以新的目標(biāo)函數(shù)為中心,向四周格柵進(jìn)行擴散,且傳遞強度依次降低,最終傳遞到機器人所在坐標(biāo)位置;根據(jù)傳遞路徑,機器人就能找到新的目標(biāo)坐標(biāo)。 新目標(biāo)導(dǎo)航工作步驟如下:①將整個工作草坪區(qū)域格柵地圖初始化;②將格柵地圖分為新目標(biāo)格柵、障礙物格柵和其他格柵,根據(jù)式(14)提供格柵屬性Iij輸入值;③通過式(15)確定目標(biāo)格柵的狀態(tài)值為1,并保持最高,障礙物格柵狀態(tài)為0,采用式(13)進(jìn)行時間維度迭代計算,將狀態(tài)值從目標(biāo)格柵傳遞到機器人當(dāng)前位置格柵;④當(dāng)目標(biāo)狀態(tài)值傳遞到機器人所在坐標(biāo)時,機器人判定周圍前后左右4個格柵狀態(tài)值,并將其中狀態(tài)值最高的作為移動目標(biāo);⑤當(dāng)機器人坐標(biāo)和目標(biāo)坐標(biāo)重合時,目標(biāo)導(dǎo)航工作結(jié)束,機器人重新開始新的除草工作。 系統(tǒng)工作整體流程如圖6所示。①機器人在格柵地圖中計算自身所在位置與前進(jìn)方向;②根據(jù)局部障礙路徑規(guī)劃神經(jīng)網(wǎng)絡(luò),依據(jù)排球近戰(zhàn)戰(zhàn)術(shù),規(guī)劃路線;③判定機器人所在格柵四周除草狀態(tài),完成除草的順序為(xi-1,yi),(xi,yi-1),(xi,yi+1),(xi+1,yi);④根據(jù)死區(qū)處理規(guī)則,尋找機器人導(dǎo)航新的目標(biāo)點;⑤以新目標(biāo)點作為出發(fā)點,完成區(qū)域除草工作。 圖6 系統(tǒng)工作流程Fig.6 Working flow for system 仿真結(jié)果如圖7所示。測試時,機器人以坐標(biāo)系原點作為除草出發(fā)點,首先進(jìn)入空曠的無障礙區(qū)域,該區(qū)域機器人采用犁地型路徑規(guī)劃原則,完成除草工作;機器人人進(jìn)入障礙物區(qū)域,應(yīng)用基于排球戰(zhàn)術(shù)的神經(jīng)網(wǎng)絡(luò)系統(tǒng),判定前方障礙物,此時機器人右轉(zhuǎn)90°,前進(jìn)L長度;機器人繼續(xù)右轉(zhuǎn)90°,向前進(jìn)行除草工作;障礙物下方區(qū)域完成除草工作,此時機器人進(jìn)入死區(qū),而障礙物上方區(qū)域沒有進(jìn)行除草,此時機器人依據(jù)死區(qū)處理原則,找到新的目標(biāo)點P,通過機器人四周的狀態(tài)值強度規(guī)劃路線,找到新的目標(biāo)點,并以新坐標(biāo)點為原點,完成障礙物上方區(qū)域的除草工作。3.4 系統(tǒng)工作流程
4 仿真驗證
5 結(jié)論