孟慶山,許寧,牛萌萌,張春艷,王小瑜,王永爍
(1.250100 山東省 濟南市 山東省農業機械科學研究院;2.250100 山東省 濟南市 農業農村部黃淮海現代農業裝備重點實驗室)
隨著我國農業種植規模化發展,植保機械的應用已較為普遍,不僅節省了人力,還提高了農藥的利用率,降低了種植成本[1]。部分植保機械設計為支持遙控控制作業[2],由于遙控器等近景通信方式操控距離有限,需要人車伴隨作業,不能滿足實際場景的遠程控制要求,對人力的依賴問題依然未解決。張俊才等[3]采用CORS 技術,設計了一種自走式植保機械導航系統,實現了植保機械的自主導航作業;譚文豪等[4]設計了一種基于視覺識別的高地隙植保機械導航系統,為植保機械自動導航提出了一種解決方案。為提高導航定位的精確度,張智剛等[5]將星基增強單點定位技術應用于農機自動導航,直線標準差達到2.4 cm,能滿足大部分農機作業需求。隨著深度學習技術發展,劉志杰等[6]提出了一種基于虛擬雷達模型的履帶拖拉機導航控制算法,進一步提高了導航路徑的精度及車身行進穩定性。以上農機導航系統的測試車輛都是采用操作終端或云端控制系統進行路徑規劃與計算,由作業平臺的嵌入式單片機執行駕駛命令。受制于單片機性能,車載單片機在導航程中不參與路徑的計算模擬工作,并且在路徑行進執行過程中,機身傳感器采集的數據是獨立的信息通道,與單片機執行的行駛行進中的導航任務沒有互動與誤差修正,在自動駕駛任務中途有特殊情況引發車輛制動或者遙控器介入中斷后自動駕駛任務一般會停止,作業平臺無法從偏離駕駛路徑的位置點重新規劃路徑,需由遙控器或控制終端進行人工干預重新下發導航任務。這種工況模式一方面受制于網絡傳輸速度及網絡延時,自動駕駛功能依賴于操作終端;另一方面,作業平臺缺少自主規劃及修正導航路徑的能力,無法滿足更加智能化及精細化的農業生產需求。
基于植保機械攜帶傳感器類型多且作業環境復雜的現狀,自動導航系統要求更快的環境數據感知,更低的數據通訊延時。本文提出基于邊緣計算的理念設計一套適用于植保機械的自動導航系統,以支持CAN 總線[7]的高地隙馬鈴薯噴藥植保機作為測試平臺,從硬件選型、電路設計、通信協議、內置功能等進行定制化設計開發。系統采用邊緣計算機作為計算中樞,具備數據存儲和計算功能,通過內置的自動導航路徑規劃、位置糾偏、自動避障等關鍵算法,進行了內置集成及優化。系統可以脫離遙控器與無線網絡自主導航行進并進行路徑實時糾偏修正。
邊緣計算的概念是在物聯網技術快速發展中所提出的。邊緣計算由邊緣計算一體機(Edge computing all-in-one computer,以下簡稱ECC)與實現功能需求的軟件系統共同組成,是指在靠近物或數據源頭的一側進行數據的優先處理[8],目的就是為了彌補終端算力低、云計算響應速度慢的缺陷。
邊緣計算是一種分布式計算架構,將復雜邏輯、海量數據分解成更小更易計算的單元,由邊緣節點進行處理。邊緣計算屬于設備間的直接互動,定制化的硬件設計與軟件算法在處理大量即時數據的同時,依然可以將數據傳遞給云端服務器。對物聯網而言,邊緣計算設計理念的運用減少了云端數據的交互,大大提升終端設備的反饋效率。
ECC 由ECU 發展而來,在動力系統控制基礎功能之上,增加了車輛通信、導航等功能,是控制車輛的大腦。本文設計的果園作業平臺高性能ECC基于恩智浦I.MX6ULL處理器(Cortex-A7內核)開發,存儲采用DDR3L 512M,NAND Flash 8G,具備4G/5G 通、2 路CAN 2.0A/B,內置定位芯片,支持3D 陀螺儀、3D 加速度傳感器,是高度集成的車載智能核心主控制單元。
本文的ECC 操作系統采用基于Linux 內核的Ubuntu 系統,通過CAN 總線方式與車機控制器進行信息交互[9],從而控制各單元協調、安全工作,實現作業平臺自動駕駛的功能。可以實現ECC 內置導航系統的遠程升級(OTA)、參數配置等功能,設備狀態監控和外設設備接口。
作業平臺控制基于模塊的方式開發,集成底層驅動、CPU 以及總線做冗余設計,防止單點故障。ECC 故障后MCU 可直接發送指令到車輛CAN總線控制車輛制動。完整的控制架構如圖1。

圖1 整車控制模塊圖Fig.1 Vehicle control module diagram
ECC 端自動導航系統是一套基于邊緣計算模式深度定制開發的導航控制軟件。主要實現了數據感知系統、數據緩存系統、數據傳輸系統、導航計算系統、導航控制執行系統。
導航系統從業務流程上分為3 個核心的流程,分別是環境感知定位、決策規劃、執行控制。環境感知主要是通過陀螺儀、攝像頭等傳感器獲取行進過程中的數據并上傳至服務器。決策規劃層的功能主要是路徑規劃計算,同時根據環境數據進行路徑即時調整。執行控制模塊將執行信號傳遞給CAN總線,進而控制車輛完成相應的動作[10]。導航系統技術架構如圖2 所示。

圖2 導航系統架構圖Fig.2 Navigation system architecture
為實現導航系統的獨立性,降低與平臺機械裝置之間的耦合度,本文設計的導航系統整體設計包含上位機、下位機、CAN 總線接口模塊。上位機包含云端控制系統、APP 端控制系統、遙控器對接系統三大模塊,完成GPS 信息的采集、分發、可視化路徑規劃、運行狀態監控、云端數據匯總等,下位機主要是面向運行在MEC 上的操作系統,包含導航軟件、傳感器數據采集、CAN 數據采集、CAN總線接口調用等控制性程序。CAN 總線模塊主要實現下位機調用接口的設計以及對于車輛轉向控制、速度控制、制動控制及車輛底盤能夠提供的其他標準CAN 接口的設計。系統整體設計如圖3 所示。

圖3 系統整體設計圖Fig.3 Overall system design
ArcGIS 作為一個全面的GIS 服務平臺,可以實現地理信息系統的構建、發布、共享等功能[11]。在ECC 安裝ArcGIS 服務,使用ArcMap 的GIS Servers 服務添加 WMTS Serve,本文采用天地圖作為第三方地圖服務。通過地圖編輯工具,將采集的作業區域地形圖片及興趣點信息編輯為作業圖層,實現作業區域高精度地圖的建模。采集導航路徑的方式有3 類:通過云端系統操作界面或者APP 端進行可視化路徑AB 線選擇、通過手持客戶端進行路徑信息采集得到AB 線、遙控器控制作業平臺行進獲取尋跡路徑AB 線。以上3 種方式獲取到的路徑信息均為高密度GPS 位置點坐標,坐標信息均經過ECC 內置的路徑糾偏算法進行加工后轉存到存儲模塊,生成AB 段完整的導航作業信息。
通過作業平臺的GPS 模塊,獲取作業平臺的起始點C(ln,lg,hi),通過陀螺儀獲取作業平臺的方位角,CA 段可以采用 RRT 算法進行快速的路徑規劃,通過CA 和AB 兩條路徑最終生成一條完整的路徑規劃信息[12-13]。作業平臺接收到執行指令后即啟動ECC 內的導航軟件執行導航作業,通過CAN 總線接口操控作業平臺的機械模塊。
受制于GPS 信號及設備精度,獲取的坐標點有部分偏離實際路徑,總體分散于實際路徑兩側呈散列分布,這類點稱為漂移點。如果按照采集的坐標集合進行導航,作業平臺會頻繁執行轉向指令進行航線修正,導致平臺行進頓挫,影響車身穩定性。
卡爾曼濾波適合解決在連續變化的動態系統中,以前向信號趨勢修正歷史信號波動值,同時對系統下一步的運動趨勢進行有規律的預測,由此得到最優的目標軌跡點集合,在導航系統中被普遍采用。因此利用邊緣計算機的高速算力,快速獲取參照模型的參數信息將大大提高求解時間[14-15]。
最優的軌跡點集合有很多種可能正確的組合,但其中一些的可能性要大于其它部分。導航是一個動態的過程,每一個GPS 坐標都是一個多維向量。位置、速度、海拔等都是相關的,特定坐標的合理性取決于當前多維的速度前后多個坐標的整體趨勢。導航系統計算過程是滯后于行進過程的,首先給定一個權重值W1,然后確定權威點與權重點。第1 個有效軌跡點作為權威點。權重點是若干連續點中的相對穩定點。
定位進程中,只選取軌跡集合中的一個穩定點作為權重點。如果當前權重點疑似漂移點,則刪除后選擇區間內的另外一個點作為權重點。如果一個權重點之后的若干個點都不是漂移點,那么這段軌跡為有效軌跡,則從有效軌跡點集合中選擇一個新的穩定點更新為權重點。
圖4 中圓圈內的P4 與P3 和P5 的距離均超過規定值,根據權重點,可以將P4 點刪除,軌跡修訂為P5 作為正常點。如圖5 中P4 判定為可疑(如圖4 中點)后,賦值新的權重點W2,重復上述判斷過程發現P5 相對于W2 來說也是跳點,則把W2代表的點也刪掉,然后重新讓 P6 代替P5。若后續的5 次定點都相對穩定,則權重點更新為W1。

圖4 刪除漂移點過程Fig.4 Drift point deletion process

圖5 更新權重點過程Fig.5 Renewal process of weight points
搭載本文導航系統的植保機進行田間測試時,通過系統后臺數據庫,任意截取了1 min 內獲取的30 條原始GPS 數據,如圖6 所示。

圖6 原始GPS 位置信息Fig.6 Original GPS position information
經糾偏算法過濾后的數據為15 條,刪除第1個精度較低起始點,合并不同時刻數據相同的點(如圖6 中第2 條和第3 條為重復無效點,第20 至24條數據漂移誤差太大),最終有效數據如圖7 所示,過濾后的數據整體方差變小,平整度趨緩。

圖7 過濾后的GPS 信息Fig.7 Filtered GPS information
車載導航系統的主要功能是執行路徑規劃,接收傳感器數據反饋適時修正路徑數據、上傳平臺信息及作業數據信息。導航系統經過計算后,將最終的導航向量數據通過CAN 總線與車機控制系統對接,實現速度及姿態調整。
服務器端軟件主要是實現路徑規劃下發、導航軌跡回放、作業面積統計、遠程遙控控制等功能。服務器端軟件是以web 為載體的B/S 程序。采用J2EE 作為開發平臺,使用JAVA 程序語言進行開發構建。系統基于SOA 的體系結構,采用微服務及數據中臺的設計思想,集成大數據及分布式技術,是導航系統穩健、智能的云端大腦中樞。
車載終端導航系統會自動記錄作業平臺的歷史軌跡信息,本地緩存后經無線網絡上傳至服務器端進行保存。在服務器端軟件中選擇任一時間段即可查看軌跡回放信息、作業信息、時空環境信息、音視頻信息,如圖8、圖9 所示。

圖8 作業軌跡回放圖Fig.8 Operation track playback

圖9 作業平臺狀態信息圖Fig.9 Status information of operation platform
APP 導航軟件是基于Android 操作系統進行設計開發。程序開發語言依然采用Java 語言,IDE采用AndroidStudio;APP 實現的主要功能包含:路徑采集打點、路徑上傳、導航任務下發、自動手動模式切換、車載視頻監控、車輛狀態監控等,如圖10、圖11 所示。

圖10 APP 路徑繪制圖Fig.10 Mapping of APP Path

圖11 APP 導航控制圖Fig.11 APP navigation control diagram
基于邊緣計算的植保機械自動導航系統,經過多次田間復雜地形環境測試,試驗結果證明本系統反應靈敏、車機響應迅速,導航路徑執行精準,對移動網絡信號依賴程度低,間斷性的網絡中斷對執行中的導航作業沒有影響,能夠滿足果園多功能作業平臺的導航需求。車載導航系統開放傳感器數據接口,提供程序OTA 升級功能,實現了車載導航系統的持續優化改進。本文的導航系統與載體植保機械動力系統相對獨立,保持了導航系統的兼容性、可移植性,增強了系統的通用性。由于植保機械應用范圍廣泛,后續研究工作將進一步優化避障算法,并針對不同作業場景進行細分研究。