翟衛欣,王東旭,2,陳智博,董 靚,趙 欣,吳才聰
·農業裝備工程與機械化·
無人駕駛農機自主作業路徑規劃方法
翟衛欣1,王東旭1,2,陳智博1,董 靚1,趙 欣1,吳才聰1※
(1. 中國農業大學信息與電氣工程學院,北京 100083;2. 中國兵器工業計算機應用技術研究所,北京 100089)
針對無人駕駛農機自主作業的應用需求,該研究設計了一種基于區塊套行作業模式的路徑規劃方法,以生成含有速度指令和機具狀態指令的可執行路徑,重點解決田內作業的四邊形地塊適應性、無人駕駛農機適應性和農田作業路徑完整規劃等問題。該方法由農田信息處理模塊和路徑規劃模塊組成,農田信息處理模塊將測繪產生的地塊輪廓數據和障礙物數據處理為便于運算的地塊輪廓點數據和障礙物輪廓點數據形式,然后由路徑規劃模塊利用用戶輸入的作業方向、作業幅寬、轉彎半徑和起始方位等作業參數,經過作業梯形區生成、掉頭區與作業區劃分、作業條帶分割、障礙物條帶處理、作業條帶路由、掉頭路徑生成和最終指令路徑生成等子模塊,最終生成無人駕駛農機的指令路徑。仿真試驗結果表明,相對于相鄰法,該方法的作業面積比及作業路程比分別提升了10.0%和8.8%。播種作業田間試驗結果表明,無人駕駛農機自主作業的橫向偏差的均值和標準差分別為左偏0.002和0.027 m,滿足作業要求。研究結果表明,該研究提出的方法適應不同的四邊形農田和障礙物,可以結合不同的作業參數完成路徑規劃,能夠滿足無人駕駛農機自主作業的需求。
農業機械;自動駕駛;自主作業;路徑規劃
隨著云定位和協同精密定位等技術的不斷發展,農機自動駕駛技術已大規模應用于農業生產,有利于降低勞動強度、提高作業質量和提升勞動效率[1-2]。在農機自動駕駛技術基礎上發展的農機無人駕駛技術,則致力于進一步減少勞動力數量,以應對農業勞動力日益緊缺和用工成本日益高漲等嚴峻問題[3]。相較于農機自動駕駛,農機無人駕駛在作業速度和機具動作指令等方面,對路徑規劃提出了更高的要求[4],需要研發基于指令的農機作業路徑規劃方法,特別是研發適應不同四邊形農田、不同農藝、不同機具和不同工序的農機路徑規劃方法。
與行人、移動機器人、車輛和無人機等場景不同[5-8],農機作業路徑規劃的主要目標是高效地實現農田全覆蓋作業[9]。目前,該領域的研究熱點主要集中在以AB線模式[10]為基礎的路由規劃[11]、地頭轉彎及障礙物處理等。在路由規劃方面,自從Bochtis等[12]提出以非作業路程為評價指標以來,Conesa-Mu?oz等[13]引入了停車點適應性,Rodias等[14]建立了油耗優化與評估模型,Graf等[15]以總路程為指標完成了2種圈型模式(circular pattern及circular pattern*)的設計和評估,Utamima等[16-17]提出進化混合鄰域搜索算法和進化分布式評估算法來優化非作業路程。在地頭轉彎方面,孟志軍等[18]基于半圓形、梨形和魚尾形等轉彎模式進行了作業方向的優化,Cariou等[19]提出了基于回旋曲線的掉頭方法,Boryga等[20]提出了基于多項式曲線的掉頭路徑規劃方法。在障礙物處理方面,奚小波等[21]面向圓形障礙物,設計了一種基于Bezier曲線的避障方法,Zhou等[22]提出了一種滿足農田和障礙物適應性的路網生成方法。
現有的農機作業路徑規劃大多圍繞單一問題(如路由問題、掉頭問題或避障問題)進行算法優化和仿真測試,以一個農田作業任務為研究對象的完整規劃方法研究較少[23],尚無法滿足無人駕駛農機應用需求。因此,本文面向農機無人駕駛需要,設計完整的農田作業路徑規劃方法,包括作業條帶分割、路由規劃、掉頭路徑生成、障礙物處理等模塊,生成包含指令信息的路徑點文件。為驗證方法的合理性和高效性,以真實地塊和農機為基礎進行仿真試驗,并基于DF1004無人駕駛農機開展田間播種試驗。
路徑規劃方法架構見圖1,主要包括農田信息處理模塊和路徑規劃模塊。農田信息處理模塊基于地塊輪廓測繪點數據和障礙物測繪點數據等農田信息生成作業參數;路徑規劃模塊基于作業方向、作業幅寬、轉彎半徑和起始方位等作業參數計算出不同的農田區域并生成包含指令信息的路徑點集,并實現數據的可視化。
農田信息可通過對目標農田進行測繪獲取,測繪設備采集的位置數據坐標系為WGS84(World Geodetic System 1984),為便于進行幾何規劃,需要將地圖數據轉化為UTM(Universal Transverse Mercator,通用橫軸墨卡托投影)坐標系。農田信息主要分為2種,分別是地塊輪廓點數據和障礙物輪廓點數據,因此設計2種測繪方案和數據處理方法。地塊輪廓點數據獲取方法較為簡單,可以直接利用厘米級RTK(Real-Time Kinematic,動態載波相位差分)測繪裝置進行控制點采集獲取原始位置數據,并經過地塊輪廓測繪點數據處理轉換為可直接運算的地塊輪廓點數據。
原始位置數據為csv格式,每一條數據包括點名稱、緯度、經度和高程字段,經過地塊輪廓測繪點數據處理提取緯度和經度數據,并轉換為UTM坐標系格式,以數組形式存于內存空間中。
農田中的主要障礙物包括電線桿、電塔、溝渠、樹等,可簡化為點障礙物和線障礙物,為便于測繪和后續處理,在測繪時點的命名形式為“AA B C DDD”,其中,AA表示障礙物序號;B表示障礙物類型,共2類:點障礙物(用O表示)和線障礙物(用L表示);C表示障礙物中的點序號;DDD表示障礙物點尺寸,點障礙物取半徑尺寸,線障礙物取寬度尺寸。可近似為圓形的障礙物應處理為點障礙物,利用測繪裝置及卷尺工具對其圓心和半徑進行測繪;長條形障礙物為線障礙物,利用測繪裝置對端點及轉折點進行測繪,并利用卷尺測繪其寬度。
無論點障礙物還是線障礙物,均可利用障礙物測繪點數據處理方法轉換為多邊形障礙物輪廓點數據。具體方法如下:1)通過對點名稱進行解析和坐標系轉換,獲取每個障礙物對象的測繪點列表,字段包括障礙物類型、障礙物中的點序號、點尺寸、東向坐標和北向坐標;2)根據障礙物類型的不同,構造2種障礙物輪廓計算方式,并統一為多邊形形式,并用其頂點表示:線障礙物的點坐標為邊中點,根據點尺寸和點坐標,利用相鄰點的矢量垂線生成該點所在邊的兩端點,進而計算障礙物多邊形的頂點;點障礙物僅有1個測繪點,即障礙物圓心點,本研究用正多邊形表示,計算得到該多邊形的頂點。
本研究的“區塊套行”路徑規劃方法基于AB線[10]作業模式進行設計,主要適用于四邊形地塊,利用農田信息處理模塊生成的地塊輪廓點數據和障礙物輪廓點數據等農田信息,結合作業方向、作業幅寬、轉彎半徑和起始方位等作業參數,生成支持無人駕駛農機執行作業任務的最終作業路徑點集文件。
路徑規劃過程見圖2,主要包括無人作業梯形區生成、掉頭區與作業區劃分、作業條帶分割、障礙物條帶處理、作業條帶路由、掉頭路徑生成、最終路徑生成等子模塊。

a. 無人作業梯形區生成a. Unmanned operation trapezoidal area generationb. 掉頭區與作業區劃分b. Turning area and operation area divisionc. 作業條帶分割c. Operation strip segmentationd. 障礙物條帶處理d. Obstacle strip processinge. 作業條帶路由e. Operation strip routing planningf. 掉頭路徑生成f. Turning path generationg. 最終路徑生成g. Final path generation
1)無人作業梯形區生成。考慮到作業路徑的平行性要求,首先對地塊進行無人作業適應性劃分,以作業方向為平行邊在四邊形地塊內部構建最大梯形,生成適應于無人作業的梯形區,見圖2a。
2)掉頭區與作業區劃分。根據作業幅寬和轉彎半徑設置掉頭區的寬度turn,見式(1)。
進而利用作業方向參數在無人作業梯形區的非作業方向邊劃分2個寬度為turn的平行四邊形作為掉頭區(圖 2b)。
3)作業條帶分割。AB線的基本作業單元為作業條帶,因此本研究先對作業區進行作業條帶分割,生成作業直線——即作業條帶中心線(圖2c)。作業條帶方向為作業方向,寬度為作業幅寬,以近起始方位的梯形區平行邊為起始邊向另一邊進行延展,最終完成整個作業區的作業條帶分割。
4)障礙物條帶處理(圖2d)。障礙物條帶指與障礙物相交的作業條帶,由于線障礙物和點障礙物均已抽象為用頂點表示的多邊形形式,因此可以統一處理。本文障礙物繞行策略的優化綜合考慮轉彎半徑、障礙物外形和作業條帶的綜合影響,詳見圖3。
如圖3a,首先對作業條帶的障礙物相交性進行判斷,定義相交及非相交條帶的編號分別為c和n,將作業條帶c劃分為前后2個作業段和中間繞行段,繞行段主要由繞行弧和繞行直線組成。繞行段的生成與障礙物多邊形和作業條帶n有關,首先找到障礙物前置與后置極限邊直線f和b,將其與作業條帶n進行相交得到繞行直線段的兩端點nf和nb,繞行曲線可分為“雙弧”和“弧-線-弧”形式,如圖3b和3c,繞行曲線形式的選擇與轉彎半徑和繞行寬度cir有關,當cir≤2時,繞行曲線為“雙弧”形式,由2個相切弧組成,當cir>2時,繞行曲線段為“弧-線-弧”形式,由2個4等分圓弧和連接線段組成。
5)作業條帶路由。為滿足高作業路程比要求,利用作業條帶路由方法對作業條帶進行排序(圖2e)。以作業路程比最大為目標,構造短掉頭路程的掉頭模式,要求相鄰順序作業的掉頭為U形模式,相鄰順序的作業直線間距離不小于2,且應為作業幅寬的整數倍,因此采用區塊套行作業模式進行作業條帶路由方法設計。區塊作業模式將所有作業路徑(數量為operate)劃分為blocks個單元區塊和1個剩余區塊。
定義每個單元區塊作業條帶數為block,按式(2)計算:
則單元區塊數blocks按式(3)計算: