孟慶山,許寧,牛萌萌,張春艷,王小瑜,王永爍
(1.250100 山東省 濟(jì)南市 山東省農(nóng)業(yè)機(jī)械科學(xué)研究院;2.250100 山東省 濟(jì)南市 農(nóng)業(yè)農(nóng)村部黃淮海現(xiàn)代農(nóng)業(yè)裝備重點(diǎn)實(shí)驗(yàn)室)
隨著我國(guó)農(nóng)業(yè)種植規(guī)?;l(fā)展,植保機(jī)械的應(yīng)用已較為普遍,不僅節(jié)省了人力,還提高了農(nóng)藥的利用率,降低了種植成本[1]。部分植保機(jī)械設(shè)計(jì)為支持遙控控制作業(yè)[2],由于遙控器等近景通信方式操控距離有限,需要人車(chē)伴隨作業(yè),不能滿(mǎn)足實(shí)際場(chǎng)景的遠(yuǎn)程控制要求,對(duì)人力的依賴(lài)問(wèn)題依然未解決。張俊才等[3]采用CORS 技術(shù),設(shè)計(jì)了一種自走式植保機(jī)械導(dǎo)航系統(tǒng),實(shí)現(xiàn)了植保機(jī)械的自主導(dǎo)航作業(yè);譚文豪等[4]設(shè)計(jì)了一種基于視覺(jué)識(shí)別的高地隙植保機(jī)械導(dǎo)航系統(tǒng),為植保機(jī)械自動(dòng)導(dǎo)航提出了一種解決方案。為提高導(dǎo)航定位的精確度,張智剛等[5]將星基增強(qiáng)單點(diǎn)定位技術(shù)應(yīng)用于農(nóng)機(jī)自動(dòng)導(dǎo)航,直線標(biāo)準(zhǔn)差達(dá)到2.4 cm,能滿(mǎn)足大部分農(nóng)機(jī)作業(yè)需求。隨著深度學(xué)習(xí)技術(shù)發(fā)展,劉志杰等[6]提出了一種基于虛擬雷達(dá)模型的履帶拖拉機(jī)導(dǎo)航控制算法,進(jìn)一步提高了導(dǎo)航路徑的精度及車(chē)身行進(jìn)穩(wěn)定性。以上農(nóng)機(jī)導(dǎo)航系統(tǒng)的測(cè)試車(chē)輛都是采用操作終端或云端控制系統(tǒng)進(jìn)行路徑規(guī)劃與計(jì)算,由作業(yè)平臺(tái)的嵌入式單片機(jī)執(zhí)行駕駛命令。受制于單片機(jī)性能,車(chē)載單片機(jī)在導(dǎo)航程中不參與路徑的計(jì)算模擬工作,并且在路徑行進(jìn)執(zhí)行過(guò)程中,機(jī)身傳感器采集的數(shù)據(jù)是獨(dú)立的信息通道,與單片機(jī)執(zhí)行的行駛行進(jìn)中的導(dǎo)航任務(wù)沒(méi)有互動(dòng)與誤差修正,在自動(dòng)駕駛?cè)蝿?wù)中途有特殊情況引發(fā)車(chē)輛制動(dòng)或者遙控器介入中斷后自動(dòng)駕駛?cè)蝿?wù)一般會(huì)停止,作業(yè)平臺(tái)無(wú)法從偏離駕駛路徑的位置點(diǎn)重新規(guī)劃路徑,需由遙控器或控制終端進(jìn)行人工干預(yù)重新下發(fā)導(dǎo)航任務(wù)。這種工況模式一方面受制于網(wǎng)絡(luò)傳輸速度及網(wǎng)絡(luò)延時(shí),自動(dòng)駕駛功能依賴(lài)于操作終端;另一方面,作業(yè)平臺(tái)缺少自主規(guī)劃及修正導(dǎo)航路徑的能力,無(wú)法滿(mǎn)足更加智能化及精細(xì)化的農(nóng)業(yè)生產(chǎn)需求。
基于植保機(jī)械攜帶傳感器類(lèi)型多且作業(yè)環(huán)境復(fù)雜的現(xiàn)狀,自動(dòng)導(dǎo)航系統(tǒng)要求更快的環(huán)境數(shù)據(jù)感知,更低的數(shù)據(jù)通訊延時(shí)。本文提出基于邊緣計(jì)算的理念設(shè)計(jì)一套適用于植保機(jī)械的自動(dòng)導(dǎo)航系統(tǒng),以支持CAN 總線[7]的高地隙馬鈴薯噴藥植保機(jī)作為測(cè)試平臺(tái),從硬件選型、電路設(shè)計(jì)、通信協(xié)議、內(nèi)置功能等進(jìn)行定制化設(shè)計(jì)開(kāi)發(fā)。系統(tǒng)采用邊緣計(jì)算機(jī)作為計(jì)算中樞,具備數(shù)據(jù)存儲(chǔ)和計(jì)算功能,通過(guò)內(nèi)置的自動(dòng)導(dǎo)航路徑規(guī)劃、位置糾偏、自動(dòng)避障等關(guān)鍵算法,進(jìn)行了內(nèi)置集成及優(yōu)化。系統(tǒng)可以脫離遙控器與無(wú)線網(wǎng)絡(luò)自主導(dǎo)航行進(jìn)并進(jìn)行路徑實(shí)時(shí)糾偏修正。
邊緣計(jì)算的概念是在物聯(lián)網(wǎng)技術(shù)快速發(fā)展中所提出的。邊緣計(jì)算由邊緣計(jì)算一體機(jī)(Edge computing all-in-one computer,以下簡(jiǎn)稱(chēng)ECC)與實(shí)現(xiàn)功能需求的軟件系統(tǒng)共同組成,是指在靠近物或數(shù)據(jù)源頭的一側(cè)進(jìn)行數(shù)據(jù)的優(yōu)先處理[8],目的就是為了彌補(bǔ)終端算力低、云計(jì)算響應(yīng)速度慢的缺陷。
邊緣計(jì)算是一種分布式計(jì)算架構(gòu),將復(fù)雜邏輯、海量數(shù)據(jù)分解成更小更易計(jì)算的單元,由邊緣節(jié)點(diǎn)進(jìn)行處理。邊緣計(jì)算屬于設(shè)備間的直接互動(dòng),定制化的硬件設(shè)計(jì)與軟件算法在處理大量即時(shí)數(shù)據(jù)的同時(shí),依然可以將數(shù)據(jù)傳遞給云端服務(wù)器。對(duì)物聯(lián)網(wǎng)而言,邊緣計(jì)算設(shè)計(jì)理念的運(yùn)用減少了云端數(shù)據(jù)的交互,大大提升終端設(shè)備的反饋效率。
ECC 由ECU 發(fā)展而來(lái),在動(dòng)力系統(tǒng)控制基礎(chǔ)功能之上,增加了車(chē)輛通信、導(dǎo)航等功能,是控制車(chē)輛的大腦。本文設(shè)計(jì)的果園作業(yè)平臺(tái)高性能ECC基于恩智浦I.MX6ULL處理器(Cortex-A7內(nèi)核)開(kāi)發(fā),存儲(chǔ)采用DDR3L 512M,NAND Flash 8G,具備4G/5G 通、2 路CAN 2.0A/B,內(nèi)置定位芯片,支持3D 陀螺儀、3D 加速度傳感器,是高度集成的車(chē)載智能核心主控制單元。
本文的ECC 操作系統(tǒng)采用基于Linux 內(nèi)核的Ubuntu 系統(tǒng),通過(guò)CAN 總線方式與車(chē)機(jī)控制器進(jìn)行信息交互[9],從而控制各單元協(xié)調(diào)、安全工作,實(shí)現(xiàn)作業(yè)平臺(tái)自動(dòng)駕駛的功能。可以實(shí)現(xiàn)ECC 內(nèi)置導(dǎo)航系統(tǒng)的遠(yuǎn)程升級(jí)(OTA)、參數(shù)配置等功能,設(shè)備狀態(tài)監(jiān)控和外設(shè)設(shè)備接口。
作業(yè)平臺(tái)控制基于模塊的方式開(kāi)發(fā),集成底層驅(qū)動(dòng)、CPU 以及總線做冗余設(shè)計(jì),防止單點(diǎn)故障。ECC 故障后MCU 可直接發(fā)送指令到車(chē)輛CAN總線控制車(chē)輛制動(dòng)。完整的控制架構(gòu)如圖1。
圖1 整車(chē)控制模塊圖Fig.1 Vehicle control module diagram
ECC 端自動(dòng)導(dǎo)航系統(tǒng)是一套基于邊緣計(jì)算模式深度定制開(kāi)發(fā)的導(dǎo)航控制軟件。主要實(shí)現(xiàn)了數(shù)據(jù)感知系統(tǒng)、數(shù)據(jù)緩存系統(tǒng)、數(shù)據(jù)傳輸系統(tǒng)、導(dǎo)航計(jì)算系統(tǒng)、導(dǎo)航控制執(zhí)行系統(tǒng)。
導(dǎo)航系統(tǒng)從業(yè)務(wù)流程上分為3 個(gè)核心的流程,分別是環(huán)境感知定位、決策規(guī)劃、執(zhí)行控制。環(huán)境感知主要是通過(guò)陀螺儀、攝像頭等傳感器獲取行進(jìn)過(guò)程中的數(shù)據(jù)并上傳至服務(wù)器。決策規(guī)劃層的功能主要是路徑規(guī)劃計(jì)算,同時(shí)根據(jù)環(huán)境數(shù)據(jù)進(jìn)行路徑即時(shí)調(diào)整。執(zhí)行控制模塊將執(zhí)行信號(hào)傳遞給CAN總線,進(jìn)而控制車(chē)輛完成相應(yīng)的動(dòng)作[10]。導(dǎo)航系統(tǒng)技術(shù)架構(gòu)如圖2 所示。
圖2 導(dǎo)航系統(tǒng)架構(gòu)圖Fig.2 Navigation system architecture
為實(shí)現(xiàn)導(dǎo)航系統(tǒng)的獨(dú)立性,降低與平臺(tái)機(jī)械裝置之間的耦合度,本文設(shè)計(jì)的導(dǎo)航系統(tǒng)整體設(shè)計(jì)包含上位機(jī)、下位機(jī)、CAN 總線接口模塊。上位機(jī)包含云端控制系統(tǒng)、APP 端控制系統(tǒng)、遙控器對(duì)接系統(tǒng)三大模塊,完成GPS 信息的采集、分發(fā)、可視化路徑規(guī)劃、運(yùn)行狀態(tài)監(jiān)控、云端數(shù)據(jù)匯總等,下位機(jī)主要是面向運(yùn)行在MEC 上的操作系統(tǒng),包含導(dǎo)航軟件、傳感器數(shù)據(jù)采集、CAN 數(shù)據(jù)采集、CAN總線接口調(diào)用等控制性程序。CAN 總線模塊主要實(shí)現(xiàn)下位機(jī)調(diào)用接口的設(shè)計(jì)以及對(duì)于車(chē)輛轉(zhuǎn)向控制、速度控制、制動(dòng)控制及車(chē)輛底盤(pán)能夠提供的其他標(biāo)準(zhǔn)CAN 接口的設(shè)計(jì)。系統(tǒng)整體設(shè)計(jì)如圖3 所示。
圖3 系統(tǒng)整體設(shè)計(jì)圖Fig.3 Overall system design
ArcGIS 作為一個(gè)全面的GIS 服務(wù)平臺(tái),可以實(shí)現(xiàn)地理信息系統(tǒng)的構(gòu)建、發(fā)布、共享等功能[11]。在ECC 安裝ArcGIS 服務(wù),使用ArcMap 的GIS Servers 服務(wù)添加 WMTS Serve,本文采用天地圖作為第三方地圖服務(wù)。通過(guò)地圖編輯工具,將采集的作業(yè)區(qū)域地形圖片及興趣點(diǎn)信息編輯為作業(yè)圖層,實(shí)現(xiàn)作業(yè)區(qū)域高精度地圖的建模。采集導(dǎo)航路徑的方式有3 類(lèi):通過(guò)云端系統(tǒng)操作界面或者APP 端進(jìn)行可視化路徑AB 線選擇、通過(guò)手持客戶(hù)端進(jìn)行路徑信息采集得到AB 線、遙控器控制作業(yè)平臺(tái)行進(jìn)獲取尋跡路徑AB 線。以上3 種方式獲取到的路徑信息均為高密度GPS 位置點(diǎn)坐標(biāo),坐標(biāo)信息均經(jīng)過(guò)ECC 內(nèi)置的路徑糾偏算法進(jìn)行加工后轉(zhuǎn)存到存儲(chǔ)模塊,生成AB 段完整的導(dǎo)航作業(yè)信息。
通過(guò)作業(yè)平臺(tái)的GPS 模塊,獲取作業(yè)平臺(tái)的起始點(diǎn)C(ln,lg,hi),通過(guò)陀螺儀獲取作業(yè)平臺(tái)的方位角,CA 段可以采用 RRT 算法進(jìn)行快速的路徑規(guī)劃,通過(guò)CA 和AB 兩條路徑最終生成一條完整的路徑規(guī)劃信息[12-13]。作業(yè)平臺(tái)接收到執(zhí)行指令后即啟動(dòng)ECC 內(nèi)的導(dǎo)航軟件執(zhí)行導(dǎo)航作業(yè),通過(guò)CAN 總線接口操控作業(yè)平臺(tái)的機(jī)械模塊。
受制于GPS 信號(hào)及設(shè)備精度,獲取的坐標(biāo)點(diǎn)有部分偏離實(shí)際路徑,總體分散于實(shí)際路徑兩側(cè)呈散列分布,這類(lèi)點(diǎn)稱(chēng)為漂移點(diǎn)。如果按照采集的坐標(biāo)集合進(jìn)行導(dǎo)航,作業(yè)平臺(tái)會(huì)頻繁執(zhí)行轉(zhuǎn)向指令進(jìn)行航線修正,導(dǎo)致平臺(tái)行進(jìn)頓挫,影響車(chē)身穩(wěn)定性。
卡爾曼濾波適合解決在連續(xù)變化的動(dòng)態(tài)系統(tǒng)中,以前向信號(hào)趨勢(shì)修正歷史信號(hào)波動(dòng)值,同時(shí)對(duì)系統(tǒng)下一步的運(yùn)動(dòng)趨勢(shì)進(jìn)行有規(guī)律的預(yù)測(cè),由此得到最優(yōu)的目標(biāo)軌跡點(diǎn)集合,在導(dǎo)航系統(tǒng)中被普遍采用。因此利用邊緣計(jì)算機(jī)的高速算力,快速獲取參照模型的參數(shù)信息將大大提高求解時(shí)間[14-15]。
最優(yōu)的軌跡點(diǎn)集合有很多種可能正確的組合,但其中一些的可能性要大于其它部分。導(dǎo)航是一個(gè)動(dòng)態(tài)的過(guò)程,每一個(gè)GPS 坐標(biāo)都是一個(gè)多維向量。位置、速度、海拔等都是相關(guān)的,特定坐標(biāo)的合理性取決于當(dāng)前多維的速度前后多個(gè)坐標(biāo)的整體趨勢(shì)。導(dǎo)航系統(tǒng)計(jì)算過(guò)程是滯后于行進(jìn)過(guò)程的,首先給定一個(gè)權(quán)重值W1,然后確定權(quán)威點(diǎn)與權(quán)重點(diǎn)。第1 個(gè)有效軌跡點(diǎn)作為權(quán)威點(diǎn)。權(quán)重點(diǎn)是若干連續(xù)點(diǎn)中的相對(duì)穩(wěn)定點(diǎn)。
定位進(jìn)程中,只選取軌跡集合中的一個(gè)穩(wěn)定點(diǎn)作為權(quán)重點(diǎn)。如果當(dāng)前權(quán)重點(diǎn)疑似漂移點(diǎn),則刪除后選擇區(qū)間內(nèi)的另外一個(gè)點(diǎn)作為權(quán)重點(diǎn)。如果一個(gè)權(quán)重點(diǎn)之后的若干個(gè)點(diǎn)都不是漂移點(diǎn),那么這段軌跡為有效軌跡,則從有效軌跡點(diǎn)集合中選擇一個(gè)新的穩(wěn)定點(diǎn)更新為權(quán)重點(diǎn)。
圖4 中圓圈內(nèi)的P4 與P3 和P5 的距離均超過(guò)規(guī)定值,根據(jù)權(quán)重點(diǎn),可以將P4 點(diǎn)刪除,軌跡修訂為P5 作為正常點(diǎn)。如圖5 中P4 判定為可疑(如圖4 中點(diǎn))后,賦值新的權(quán)重點(diǎn)W2,重復(fù)上述判斷過(guò)程發(fā)現(xiàn)P5 相對(duì)于W2 來(lái)說(shuō)也是跳點(diǎn),則把W2代表的點(diǎn)也刪掉,然后重新讓 P6 代替P5。若后續(xù)的5 次定點(diǎn)都相對(duì)穩(wěn)定,則權(quán)重點(diǎn)更新為W1。
圖4 刪除漂移點(diǎn)過(guò)程Fig.4 Drift point deletion process
圖5 更新權(quán)重點(diǎn)過(guò)程Fig.5 Renewal process of weight points
搭載本文導(dǎo)航系統(tǒng)的植保機(jī)進(jìn)行田間測(cè)試時(shí),通過(guò)系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù),任意截取了1 min 內(nèi)獲取的30 條原始GPS 數(shù)據(jù),如圖6 所示。
圖6 原始GPS 位置信息Fig.6 Original GPS position information
經(jīng)糾偏算法過(guò)濾后的數(shù)據(jù)為15 條,刪除第1個(gè)精度較低起始點(diǎn),合并不同時(shí)刻數(shù)據(jù)相同的點(diǎn)(如圖6 中第2 條和第3 條為重復(fù)無(wú)效點(diǎn),第20 至24條數(shù)據(jù)漂移誤差太大),最終有效數(shù)據(jù)如圖7 所示,過(guò)濾后的數(shù)據(jù)整體方差變小,平整度趨緩。
圖7 過(guò)濾后的GPS 信息Fig.7 Filtered GPS information
車(chē)載導(dǎo)航系統(tǒng)的主要功能是執(zhí)行路徑規(guī)劃,接收傳感器數(shù)據(jù)反饋適時(shí)修正路徑數(shù)據(jù)、上傳平臺(tái)信息及作業(yè)數(shù)據(jù)信息。導(dǎo)航系統(tǒng)經(jīng)過(guò)計(jì)算后,將最終的導(dǎo)航向量數(shù)據(jù)通過(guò)CAN 總線與車(chē)機(jī)控制系統(tǒng)對(duì)接,實(shí)現(xiàn)速度及姿態(tài)調(diào)整。
服務(wù)器端軟件主要是實(shí)現(xiàn)路徑規(guī)劃下發(fā)、導(dǎo)航軌跡回放、作業(yè)面積統(tǒng)計(jì)、遠(yuǎn)程遙控控制等功能。服務(wù)器端軟件是以web 為載體的B/S 程序。采用J2EE 作為開(kāi)發(fā)平臺(tái),使用JAVA 程序語(yǔ)言進(jìn)行開(kāi)發(fā)構(gòu)建。系統(tǒng)基于SOA 的體系結(jié)構(gòu),采用微服務(wù)及數(shù)據(jù)中臺(tái)的設(shè)計(jì)思想,集成大數(shù)據(jù)及分布式技術(shù),是導(dǎo)航系統(tǒng)穩(wěn)健、智能的云端大腦中樞。
車(chē)載終端導(dǎo)航系統(tǒng)會(huì)自動(dòng)記錄作業(yè)平臺(tái)的歷史軌跡信息,本地緩存后經(jīng)無(wú)線網(wǎng)絡(luò)上傳至服務(wù)器端進(jìn)行保存。在服務(wù)器端軟件中選擇任一時(shí)間段即可查看軌跡回放信息、作業(yè)信息、時(shí)空環(huán)境信息、音視頻信息,如圖8、圖9 所示。
圖8 作業(yè)軌跡回放圖Fig.8 Operation track playback
圖9 作業(yè)平臺(tái)狀態(tài)信息圖Fig.9 Status information of operation platform
APP 導(dǎo)航軟件是基于Android 操作系統(tǒng)進(jìn)行設(shè)計(jì)開(kāi)發(fā)。程序開(kāi)發(fā)語(yǔ)言依然采用Java 語(yǔ)言,IDE采用AndroidStudio;APP 實(shí)現(xiàn)的主要功能包含:路徑采集打點(diǎn)、路徑上傳、導(dǎo)航任務(wù)下發(fā)、自動(dòng)手動(dòng)模式切換、車(chē)載視頻監(jiān)控、車(chē)輛狀態(tài)監(jiān)控等,如圖10、圖11 所示。
圖10 APP 路徑繪制圖Fig.10 Mapping of APP Path
圖11 APP 導(dǎo)航控制圖Fig.11 APP navigation control diagram
基于邊緣計(jì)算的植保機(jī)械自動(dòng)導(dǎo)航系統(tǒng),經(jīng)過(guò)多次田間復(fù)雜地形環(huán)境測(cè)試,試驗(yàn)結(jié)果證明本系統(tǒng)反應(yīng)靈敏、車(chē)機(jī)響應(yīng)迅速,導(dǎo)航路徑執(zhí)行精準(zhǔn),對(duì)移動(dòng)網(wǎng)絡(luò)信號(hào)依賴(lài)程度低,間斷性的網(wǎng)絡(luò)中斷對(duì)執(zhí)行中的導(dǎo)航作業(yè)沒(méi)有影響,能夠滿(mǎn)足果園多功能作業(yè)平臺(tái)的導(dǎo)航需求。車(chē)載導(dǎo)航系統(tǒng)開(kāi)放傳感器數(shù)據(jù)接口,提供程序OTA 升級(jí)功能,實(shí)現(xiàn)了車(chē)載導(dǎo)航系統(tǒng)的持續(xù)優(yōu)化改進(jìn)。本文的導(dǎo)航系統(tǒng)與載體植保機(jī)械動(dòng)力系統(tǒng)相對(duì)獨(dú)立,保持了導(dǎo)航系統(tǒng)的兼容性、可移植性,增強(qiáng)了系統(tǒng)的通用性。由于植保機(jī)械應(yīng)用范圍廣泛,后續(xù)研究工作將進(jìn)一步優(yōu)化避障算法,并針對(duì)不同作業(yè)場(chǎng)景進(jìn)行細(xì)分研究。