王大帥 LIU Xiaoguang 李 偉 張俊雄 袁 挺 張春龍
(1.中國農(nóng)業(yè)大學(xué)工學(xué)院, 北京 100083; 2.加利福尼亞大學(xué)戴維斯分校工程學(xué)院, 戴維斯 CA 95616)
在全世界范圍內(nèi),農(nóng)業(yè)航空技術(shù)在農(nóng)作物生長狀態(tài)監(jiān)測(cè)[1]、病蟲草害信息獲取[2]、植物保護(hù)[3]和產(chǎn)量評(píng)估[4]等方面的研究和應(yīng)用越來越廣泛[5-6]。隨著我國農(nóng)業(yè)航空技術(shù)的發(fā)展,微型植保無人機(jī)逐漸應(yīng)用于農(nóng)作物病蟲害防治[7]、棉花落葉劑噴灑[8]和無人機(jī)輔助授粉[9]等方面。特別是,植保無人機(jī)在小麥、玉米及水稻等大田作物農(nóng)藥噴灑[10-14]和果園、茶園等經(jīng)濟(jì)作物病蟲害防治[15-17]中應(yīng)用前景廣闊。相較于傳統(tǒng)施藥方法,盡管植保無人機(jī)具有地形適應(yīng)性強(qiáng)、田間通過性好、農(nóng)藥利用率高等優(yōu)勢(shì),但在農(nóng)田復(fù)雜環(huán)境作業(yè)過程中仍普遍存在施藥效果不理想、自主作業(yè)性能差、安全風(fēng)險(xiǎn)高等問題[18-19]。目前,由于植保無人機(jī)結(jié)構(gòu)復(fù)雜、控制精度要求高,在實(shí)際飛防作業(yè)時(shí)仍以手動(dòng)操作為主,受限于飛行員操作技能水平,目視距離和環(huán)境參數(shù)變化,無人機(jī)真實(shí)飛行參數(shù)控制精度無法滿足實(shí)際需求,對(duì)其施藥效果造成不利影響。為進(jìn)一步改善植保無人機(jī)施藥效果,提高其復(fù)雜環(huán)境下自主作業(yè)性能,無人機(jī)精準(zhǔn)空間位置定位和自主飛行技術(shù)[20-23]成為研究熱點(diǎn)。
植保無人機(jī)作為精準(zhǔn)農(nóng)業(yè)的重要組成部分,其室外環(huán)境空間位置定位精度對(duì)施藥效果產(chǎn)生直接影響。國內(nèi)外研究學(xué)者基于不同機(jī)型、針對(duì)不同作業(yè)對(duì)象研究了下洗氣流分布[24]、施藥參數(shù)[25-26]、飛行參數(shù)[27]和環(huán)境參數(shù)[28]變化對(duì)施藥效果的影響規(guī)律,取得了一定的成果,但缺乏對(duì)無人機(jī)精準(zhǔn)自主飛行控制方法的研究。目前植保無人機(jī)多采用單點(diǎn)GPS進(jìn)行水平方向空間定位,采用氣壓計(jì)、超聲波傳感器、激光雷達(dá)、毫米波雷達(dá)等傳感器進(jìn)行垂直方向定位,在一定程度上提高了其空間位置定位精度。然而,由于單點(diǎn)GPS和氣壓計(jì)等傳感器定位精度普遍較低,故無法保證無人機(jī)飛行參數(shù)的穩(wěn)定性。因此,基于RTK-GPS的絕對(duì)位置定位與基于激光雷達(dá)等傳感器的相對(duì)距離探測(cè)的結(jié)合定位方法成為保證無人機(jī)空間位置定位精度的首選。此外,受限于商業(yè)飛行控制器的封裝性,植保無人機(jī)普遍存在施藥系統(tǒng)和飛行控制系統(tǒng)相互獨(dú)立的現(xiàn)象,嚴(yán)重限制了精準(zhǔn)施藥技術(shù)的發(fā)展。隨著機(jī)器人操作系統(tǒng)(Robot operating system,ROS)在機(jī)器人領(lǐng)域的廣泛應(yīng)用和開源飛行控制器的日漸成熟,二者的結(jié)合為實(shí)現(xiàn)植保無人機(jī)自主飛行提供了解決方案。
本文針對(duì)植保無人機(jī)實(shí)際作業(yè)過程中普遍存在的空間位置定位精度低和飛行參數(shù)不穩(wěn)定等問題進(jìn)行研究,旨在提高無人機(jī)空間位置定位精度的同時(shí)實(shí)現(xiàn)自主飛行,為無人機(jī)精準(zhǔn)施藥技術(shù)的發(fā)展提供參考。
以四旋翼微型無人機(jī)為平臺(tái),構(gòu)建由協(xié)同計(jì)算機(jī)和開源飛行控制器組成的二級(jí)控制系統(tǒng),采用RTK-GPS和激光雷達(dá)作為空間位置探測(cè)傳感器,基于ROS、MAVROS和MAVLink通信協(xié)議提出了如圖1所示的無人機(jī)精準(zhǔn)自主飛行控制方法整體方案。整個(gè)系統(tǒng)分為3部分:地面站、無人機(jī)系統(tǒng)和飛行員。其中,地面站包括Piksi Multi RTK-GPS基準(zhǔn)站、RFD900+型無線電臺(tái)地面端和便攜式計(jì)算機(jī);無人機(jī)系統(tǒng)包括四旋翼無人機(jī)平臺(tái)、Pixhawk開源飛行控制器、RTK-GPS移動(dòng)站、無線電臺(tái)機(jī)載端、激光雷達(dá)、協(xié)同計(jì)算機(jī)及其他配件;飛行員通過QGroundControl控制軟件實(shí)時(shí)監(jiān)測(cè)無人機(jī)飛行參數(shù)并發(fā)送必要控制指令,此外飛行員手中應(yīng)持有遙控器,以便無人機(jī)在自主飛行過程中遇到緊急情況時(shí)切換為手動(dòng)操作模式。
圖1 無人機(jī)精準(zhǔn)自主飛行控制方法整體方案Fig.1 Overall solution for precision autonomous flight control method of UAV
采用無線路由器建立局域網(wǎng)環(huán)境以便對(duì)協(xié)同計(jì)算機(jī)進(jìn)行遠(yuǎn)程控制,并實(shí)現(xiàn)飛行參數(shù)在不同硬件中通過UDP協(xié)議進(jìn)行路由。RTK-GPS系統(tǒng)硬件架設(shè)完成后,首先使用地面站Swift Console軟件對(duì)基準(zhǔn)站所處當(dāng)前位置的準(zhǔn)確經(jīng)緯度和海拔信息進(jìn)行設(shè)置,隨后使用Swift Console將基準(zhǔn)站絕對(duì)位置信息和載波相位觀測(cè)值以5 Hz的頻率通過UDP路由到IP地址127.0.0.1,端口為13320。MAVProxy將來自RTK-GPS基準(zhǔn)站的位置信息和差分修正值“注入”到MAVLink通信數(shù)據(jù)流中,無線電臺(tái)機(jī)載端將包含地面站遠(yuǎn)程控制指令、RTK-GPS基準(zhǔn)站位置信息和差分信號(hào)的數(shù)據(jù)流發(fā)送至飛行控制器,并實(shí)時(shí)接收飛行控制器反饋的無人機(jī)當(dāng)前飛行參數(shù)。RFD900+型無線電臺(tái)用于建立地面站和飛行控制器之間長距離雙向數(shù)據(jù)傳輸,分為地面端和機(jī)載端,支持MAVLink通信協(xié)議,工作頻率范圍為902~928 MHz,戶外空曠環(huán)境下通信距離可達(dá)40 km。
無人機(jī)系統(tǒng)組成部件如圖2所示,四旋翼無人機(jī)平臺(tái)以3S鋰電池作為動(dòng)力源;采用開源飛行控制器Pixhawk作為無人機(jī)控制核心;搭載Swift Piksi Multi RTK-GPS接收模塊和天線用于無人機(jī)空間位置精準(zhǔn)定位;采用Garmin LiDAR Lite V3激光雷達(dá)對(duì)離地高度進(jìn)行測(cè)量;同時(shí)選用樹莓派(Raspberry Pi3)作為協(xié)同計(jì)算機(jī)執(zhí)行用戶高級(jí)控制程序;搭載無線電臺(tái)和遙控接收器建立無人機(jī)與地面站、飛行員之間的無線通信。
圖2 無人機(jī)系統(tǒng)關(guān)鍵部件Fig.2 Key components of UAV’s control system
Pixhawk內(nèi)部集成板載主處理器、協(xié)處理器及多種高精度傳感器,同時(shí)兼容開源飛控固件PX4和ArduPilot,支持多種外設(shè)擴(kuò)展接口。Pixhawk飛行控制器通過無線電臺(tái)與地面站進(jìn)行雙向通信,接收地面站控制指令和RTK-GPS基準(zhǔn)站位置信息及差分信號(hào)修正值,并向地面站實(shí)時(shí)反饋當(dāng)前飛行參數(shù)。Pixhawk融合IMU數(shù)據(jù)及RTK-GPS和激光雷達(dá)等外接傳感器數(shù)據(jù)對(duì)無人機(jī)當(dāng)前狀態(tài)進(jìn)行估計(jì),接收協(xié)同計(jì)算機(jī)控制指令后對(duì)無人機(jī)姿態(tài)和位置進(jìn)行控制。
Raspberry Pi3作為協(xié)同計(jì)算機(jī),運(yùn)行Ubuntu Mate 16.04操作系統(tǒng)并安裝ROS Kinetic和MAVROS,通過MAVLink通信協(xié)議與飛行控制器Pixhawk進(jìn)行通信。Raspberry Pi3運(yùn)行基于ROS的任務(wù)管理系統(tǒng),通過ROS話題和服務(wù)機(jī)制獲取無人機(jī)當(dāng)前位置與姿態(tài)并發(fā)送控制指令和位置信息,實(shí)現(xiàn)無人機(jī)自主起降、任務(wù)點(diǎn)飛行、懸停等動(dòng)作。
Piksi Multi是美國Swift Navigation公司推出的一款多頻段多星系的廉價(jià)GNSS接收機(jī),具有體積小、質(zhì)量輕、收斂速度快、魯棒性強(qiáng)等特點(diǎn),易于集成到多種應(yīng)用程序中,其主要性能指標(biāo)見表1。
表1 Swift Piksi Multi GNSS接收機(jī)技術(shù)參數(shù)Tab.1 Specifications of Swift Piksi Multi GNSS module
采用脈沖式激光雷達(dá)Garmin LiDAR Lite V3檢測(cè)無人機(jī)與地面之間的相對(duì)距離以提高無人機(jī)仿地飛行能力,其詳細(xì)性能參數(shù)見表2。
表2 Garmin LiDAR Lite V3激光雷達(dá)技術(shù)參數(shù)Tab.2 Specifications of Garmin LiDAR Lite V3
ArduPilot開源飛行控制程序負(fù)責(zé)Pixhawk板載和外設(shè)傳感器驅(qū)動(dòng)、數(shù)據(jù)濾波與融合及無人機(jī)位置與姿態(tài)控制,其中無人機(jī)位置與姿態(tài)控制是ArduPilot控制算法的核心,且姿態(tài)控制是實(shí)現(xiàn)位置控制的基礎(chǔ)。位置控制輸入量為目標(biāo)位置與當(dāng)前位置之間的偏差,根據(jù)設(shè)定飛行速度進(jìn)行PID控制,輸出目標(biāo)俯仰角或橫滾角到姿態(tài)控制環(huán)。姿態(tài)控制環(huán)以目標(biāo)俯仰角、橫滾角和油門值與當(dāng)前真實(shí)角度的偏差作為輸出,進(jìn)而計(jì)算所需目標(biāo)角速度與實(shí)際角速度偏差,通過PID控制各個(gè)電機(jī)轉(zhuǎn)速進(jìn)而控制無人機(jī)姿態(tài),最終實(shí)現(xiàn)位置控制。
無人機(jī)自主飛行控制方法有兩種:一種是修改ArduPilot源代碼,添加自定義飛行任務(wù)控制程序,該方法不需要引入ROS和協(xié)同計(jì)算機(jī),雖然可減少系統(tǒng)復(fù)雜程度,但會(huì)降低飛行控制系統(tǒng)穩(wěn)定性,并且飛行任務(wù)改變后,飛行控制程序需要重新修改、編譯和燒錄,不利于系統(tǒng)的移植和擴(kuò)展;另一種控制方法采用運(yùn)行ROS的協(xié)同計(jì)算機(jī)作為主控制器,ArduPilot作為子控制器,其中主控制器負(fù)責(zé)執(zhí)行高層次控制程序,可根據(jù)需求擴(kuò)展多種傳感器,為無人機(jī)飛行控制提供決策依據(jù),子系統(tǒng)作為獨(dú)立飛行控制器,只需執(zhí)行主系統(tǒng)決策結(jié)果,不需跟隨系統(tǒng)的擴(kuò)展做代碼層次的修改,該方法可提升整個(gè)系統(tǒng)的擴(kuò)展靈活性和運(yùn)行穩(wěn)定性。
為提高控制方法的普適性和代碼復(fù)用率,本文采用第2種控制方法,基于Python編程語言設(shè)計(jì)了任務(wù)管理系統(tǒng)(Task control system, TCS),其文件系統(tǒng)結(jié)構(gòu)如圖3所示。TCS依賴于ROS進(jìn)行無人機(jī)飛行任務(wù)管理,包含多個(gè)Python文件,其中Main.py是主文件,其一方面負(fù)責(zé)ROS節(jié)點(diǎn)建立、無人機(jī)起飛前狀態(tài)檢測(cè)、飛行模式選擇和無人機(jī)自主起降控制,另一方面通過解析Task_List.txt文件提取所有飛行任務(wù)并順序調(diào)用相應(yīng)文件進(jìn)行無人機(jī)飛行控制,同時(shí)監(jiān)測(cè)飛行任務(wù)執(zhí)行進(jìn)度;TCS_Utility.py文件負(fù)責(zé)維持協(xié)同計(jì)算機(jī)與飛行控制器之間的連接,并監(jiān)測(cè)每條飛行任務(wù)執(zhí)行進(jìn)程;Task_List.txt文件內(nèi)容每一行代表一個(gè)飛行任務(wù),以目標(biāo)點(diǎn)與起飛位置的相對(duì)坐標(biāo)和懸停時(shí)間為參數(shù);Task_Local_Goto.py負(fù)責(zé)按照當(dāng)前任務(wù)參數(shù)控制無人機(jī)以設(shè)定速度從當(dāng)前位置直線飛行到目標(biāo)位置;Task_Simple_Hover.py負(fù)責(zé)根據(jù)當(dāng)前任務(wù)參數(shù)控制無人機(jī)精準(zhǔn)懸停在當(dāng)前位置并保持指定時(shí)間;用戶可依據(jù)上述方法對(duì)任務(wù)管理系統(tǒng)功能進(jìn)行擴(kuò)展,并通過改變?nèi)蝿?wù)列表參數(shù)制定特定飛行任務(wù)。
圖3 任務(wù)管理系統(tǒng)組成示意圖Fig.3 Structure diagram of task control system
無人機(jī)自主飛行控制系統(tǒng)由飛行控制器Pixhawk和協(xié)同計(jì)算機(jī)Raspberry Pi3組成,二者之間通過MAVLink通信協(xié)議進(jìn)行信息交互。協(xié)同計(jì)算機(jī)運(yùn)行ROS后通過話題和服務(wù)機(jī)制與子系統(tǒng)進(jìn)行通信,采用MAVROS進(jìn)行ROS消息和MAVLink消息之間的轉(zhuǎn)換?;赗OS的任務(wù)管理系統(tǒng)消息傳遞機(jī)制如圖4所示。
圖4 基于ROS的任務(wù)管理系統(tǒng)消息傳遞機(jī)制Fig.4 ROS based message delivery mechanism of TCS
系統(tǒng)中包含mavros、main、task_monitor和TCS_task共4個(gè)節(jié)點(diǎn),其中mavros負(fù)責(zé)將ArduPilot輸出的包含無人機(jī)當(dāng)前狀態(tài)、姿態(tài)及位置信息的MAVLink消息轉(zhuǎn)換成具有特定格式和標(biāo)識(shí)符的ROS話題以供任務(wù)管理系統(tǒng)進(jìn)行訂閱;另外mavros節(jié)點(diǎn)還負(fù)責(zé)將任務(wù)控制器發(fā)布的包含無人機(jī)控制指令的話題和服務(wù)轉(zhuǎn)換成MAVLink消息格式并發(fā)送到飛行控制器。main節(jié)點(diǎn)負(fù)責(zé)任務(wù)管理系統(tǒng)ROS節(jié)點(diǎn)初始化,通過訂閱/mavros/state話題查看無人機(jī)當(dāng)前的飛行模式等狀態(tài)信息,同時(shí)訂閱/mavros/rc/in話題,根據(jù)遙控器開關(guān)位置決定是否進(jìn)入無人機(jī)自主飛行模式。另外main節(jié)點(diǎn)通過發(fā)送服務(wù)請(qǐng)求控制無人機(jī)飛行模式并自主起飛到指定高度后懸停,準(zhǔn)備進(jìn)入任務(wù)點(diǎn)飛行模式,當(dāng)所有任務(wù)執(zhí)行完畢后,main節(jié)點(diǎn)負(fù)責(zé)控制無人機(jī)返航,自主降落在起飛位置。TCS_task節(jié)點(diǎn)負(fù)責(zé)執(zhí)行具體飛行任務(wù),通過訂閱和發(fā)布相應(yīng)話題控制無人機(jī)按任務(wù)列表中預(yù)設(shè)參數(shù)進(jìn)行定點(diǎn)飛行和懸停。task_monitor負(fù)責(zé)監(jiān)測(cè)各項(xiàng)任務(wù)具體執(zhí)行進(jìn)度,并將監(jiān)測(cè)結(jié)果反饋給main節(jié)點(diǎn)。無人機(jī)自主飛行控制流程如圖5所示。
圖5 無人機(jī)自主飛行控制流程圖Fig.5 Flow chart of autonomous control method
圖7 Swift Multi RTK-GPS靜態(tài)精度測(cè)試結(jié)果Fig.7 Static accuracy test result of Swift Multi RTK-GPS
在美國加利福尼亞大學(xué)戴維斯分校草坪上對(duì)RTK-GPS系統(tǒng)的靜態(tài)絕對(duì)位置和相對(duì)位置定位精度分別進(jìn)行了測(cè)試。Piksi Multi RTK-GPS系統(tǒng)組成如圖6a所示。基準(zhǔn)站和移動(dòng)站使用兩套完全相同的Piksi Multi GNSS模塊,二者通過設(shè)置相關(guān)參數(shù)進(jìn)行區(qū)分。使用Swift Console設(shè)置基準(zhǔn)站當(dāng)前位置精準(zhǔn)坐標(biāo)(121.759 631 179°W,38.539 943 746 6°N,海拔-14.111 845 839 4 m)后,使能基準(zhǔn)站廣播機(jī)制。移動(dòng)站固定在基準(zhǔn)站正北方向10.0 m位置,如圖6b所示。基準(zhǔn)站根據(jù)當(dāng)前觀測(cè)值和精準(zhǔn)坐標(biāo)計(jì)算修正值,并通過無線電臺(tái)將修正值和精準(zhǔn)坐標(biāo)值發(fā)送到移動(dòng)站,移動(dòng)站接收基準(zhǔn)站上傳數(shù)據(jù)后對(duì)自身觀測(cè)位置進(jìn)行修正以得到精準(zhǔn)絕對(duì)位置信息,同時(shí)計(jì)算與基準(zhǔn)站之間的基準(zhǔn)線獲得相對(duì)位置信息。
圖6 Swift Multi RTK-GPS靜態(tài)精度測(cè)試Fig.6 Static accuracy test of Swift Multi RTK-GPS1.無線電臺(tái) 2.Swift Console 3.Piksi Multi GNSS 接收機(jī) 4.GNSS天線 5.電源 6.基準(zhǔn)站 7.移動(dòng)站
基準(zhǔn)站Piksi Multi絕對(duì)位置經(jīng)緯度定位精度如圖7a所示,經(jīng)度方向相對(duì)于精準(zhǔn)坐標(biāo)變化區(qū)間為(-0.7 m,0.7 m),緯度方向變化區(qū)間為(-0.7 m,0.9 m),海拔變化較大且不固定,通常為米級(jí)誤差。移動(dòng)站Piksi Multi采用RTK差分技術(shù)得到的絕對(duì)位置定位精度相對(duì)于基準(zhǔn)站有顯著提高,其中經(jīng)緯度定位精度如圖7b所示,經(jīng)度方向變化范圍為(-0.005 m,0.005 m),緯度方向變化范圍為(-0.004 m,0.004 m);海拔定位精度如圖7c所示,變化范圍為(-14.292 m,-14.276 m)。Piksi Multi RTK-GPS移動(dòng)站與基準(zhǔn)站之間相對(duì)位置測(cè)試結(jié)果如圖7d所示,基準(zhǔn)站以紅色“+”字表示,其位置設(shè)為原點(diǎn)(0 m, 0 m),移動(dòng)站位置以橙色“+”字表示,理想值為(10.000 m,10.000 m)。結(jié)果顯示:移動(dòng)站觀測(cè)值東西方向變化范圍為(-0.005 m,0.002 5 m),南北方向變化范圍為(10.002 m,10.012 m)。
RTK-GPS垂直方向相對(duì)定位誤差通常大于水平方向,且測(cè)量值只能反映移動(dòng)站與基準(zhǔn)站的垂直方向相對(duì)位置,而非移動(dòng)站與地面之間的相對(duì)距離。為提高無人機(jī)仿地飛行能力,本文采用激光雷達(dá)實(shí)時(shí)測(cè)量無人機(jī)與地面之間的相對(duì)距離。激光雷達(dá)垂直向下固定在無人機(jī)正下方,由于無人機(jī)在飛行過程中通常伴隨著飛行姿態(tài)(俯仰和橫滾)的變化,導(dǎo)致激光雷達(dá)實(shí)際探測(cè)方向通常與垂直方向存在一定空間角度,具體情形分析如圖8所示。
圖8 激光雷達(dá)測(cè)量距離誤差示意圖Fig.8 Diagram of measurement error of LiDAR sensor
協(xié)同計(jì)算機(jī)可通過訂閱相應(yīng)ROS話題實(shí)時(shí)獲取無人機(jī)當(dāng)前姿態(tài)下的俯仰角α、橫滾角β及激光雷達(dá)探測(cè)距離D,根據(jù)幾何關(guān)系推導(dǎo)可得到無人機(jī)實(shí)際距離地面高度H和激光雷達(dá)探測(cè)距離之間的修正公式
(1)
無人機(jī)自主飛行測(cè)試過程中,任務(wù)管理系統(tǒng)可根據(jù)無人機(jī)當(dāng)前姿態(tài)對(duì)激光雷達(dá)測(cè)量值進(jìn)行及時(shí)修正,以保證飛行高度的穩(wěn)定性。以水泥地面為探測(cè)對(duì)象對(duì)無人機(jī)懸停狀態(tài)下激光雷達(dá)測(cè)距精度進(jìn)行測(cè)試,測(cè)試時(shí)天氣晴朗且風(fēng)速可忽略不計(jì)。首先將飛機(jī)起飛并懸停在距離地面1.5 m處,通過地面站確定無人機(jī)飛行狀態(tài)正常后,將無人機(jī)升高到2.5 m處并切換到位置保持模式,此時(shí)無人機(jī)依賴RTK-GPS保持水平位置,依賴激光雷達(dá)保持高度位置,測(cè)試時(shí)間約9 min,測(cè)試結(jié)果如圖9所示,結(jié)果表明:激光雷達(dá)測(cè)量值波動(dòng)區(qū)間為(2.3 m,3.0 m),平均誤差為0.2 m。由于無人機(jī)會(huì)在測(cè)試過程中受環(huán)境因素影響產(chǎn)生飄移,其位置和姿態(tài)調(diào)整過程會(huì)對(duì)激光雷達(dá)測(cè)量值產(chǎn)生一定影響。另外,隨著時(shí)間的推移,無人機(jī)動(dòng)力鋰電池電量逐漸降低,也會(huì)對(duì)其機(jī)動(dòng)性能產(chǎn)生負(fù)面影響。
圖9 LiDAR Lite V3定位精度測(cè)試結(jié)果Fig.9 Position accuracy test result of LiDAR Lite V3
植保無人機(jī)作業(yè)高度的穩(wěn)定性對(duì)施藥品質(zhì)和飛行安全有直接影響。當(dāng)作業(yè)對(duì)象為小麥、水稻等時(shí),其冠層濃密且植株高度相對(duì)均勻,通過對(duì)單點(diǎn)激光雷達(dá)測(cè)量數(shù)據(jù)進(jìn)行均值濾波處理即可獲得較為準(zhǔn)確的相對(duì)高度信息;當(dāng)作業(yè)對(duì)象為果樹時(shí),其冠層形態(tài)變化較大且植株相對(duì)稀疏,采用單點(diǎn)激光雷達(dá)測(cè)量相對(duì)高度時(shí)數(shù)據(jù)波動(dòng)明顯,因此存在一定局限性。本文將研究對(duì)象設(shè)定為小麥、水稻等密植型糧食作物。
為驗(yàn)證基于Piksi Multi RTK-GPS、激光雷達(dá)和任務(wù)管理系統(tǒng)的四旋翼無人機(jī)動(dòng)態(tài)定位精度及自主飛行性能,綜合考慮具體試驗(yàn)條件和植保無人機(jī)實(shí)際使用需求,設(shè)計(jì)的無人機(jī)自主飛行試驗(yàn)方案如圖10所示。
圖10 無人機(jī)自主飛行試驗(yàn)方案示意圖Fig.10 Diagram of autonomous flight test scheme
該試驗(yàn)方案由O、A、B、C、D、E總計(jì)6個(gè)任務(wù)點(diǎn)組成封閉的五邊形飛行航跡,O點(diǎn)設(shè)定為起點(diǎn)和終點(diǎn),其坐標(biāo)定義為(0,0,0),其余任務(wù)點(diǎn)與起點(diǎn)之間的相對(duì)坐標(biāo)如圖10所示。為方便觀察RTK-GPS和激光雷達(dá)實(shí)際定位精度,無人機(jī)到達(dá)任務(wù)點(diǎn)后均會(huì)懸停當(dāng)前位置30 s后飛向下一個(gè)任務(wù)點(diǎn)。無人機(jī)在任務(wù)點(diǎn)之間直線飛行,飛行速度設(shè)為2 m/s。以任務(wù)點(diǎn)為圓心,設(shè)置半徑為5 m的減速區(qū),當(dāng)無人機(jī)進(jìn)入減速區(qū)后,飛行速度與當(dāng)前位置和任務(wù)點(diǎn)之間的距離成正比,即無人機(jī)越靠近任務(wù)點(diǎn),速度越慢。無人機(jī)靠近任務(wù)點(diǎn)過程中,機(jī)頭始終朝向任務(wù)點(diǎn),只有當(dāng)前位置坐標(biāo)與任務(wù)點(diǎn)坐標(biāo)在X、Y、Z方向上的誤差絕對(duì)值同時(shí)小于0.1 m時(shí),認(rèn)為無人機(jī)準(zhǔn)確到達(dá)任務(wù)點(diǎn),若無人機(jī)進(jìn)入減速區(qū)后30 s內(nèi)始終無法到達(dá)任務(wù)點(diǎn),則放棄尋找,進(jìn)入懸停任務(wù),之后飛向下一任務(wù)點(diǎn),因此任何一條任務(wù)執(zhí)行失敗并不影響整體任務(wù)執(zhí)行進(jìn)度。當(dāng)前任務(wù)點(diǎn)高度小于下一任務(wù)點(diǎn)時(shí),無人機(jī)首先在當(dāng)前位置爬升高度后再飛向下一任務(wù)點(diǎn);當(dāng)前任務(wù)點(diǎn)高度大于下一任務(wù)點(diǎn)時(shí),無人機(jī)先以當(dāng)前高度飛向下一任務(wù)點(diǎn),然后再降低高度。試驗(yàn)之前將飛行任務(wù)點(diǎn)坐標(biāo)及懸停時(shí)間按特定格式提前寫入到任務(wù)管理系統(tǒng)中的Task_List.txt文件。試驗(yàn)開始后,無人機(jī)自主起飛并按任務(wù)點(diǎn)順序執(zhí)行,待全部任務(wù)結(jié)束后自主降落在起點(diǎn)位置,并退出自主飛行模式和任務(wù)管理系統(tǒng)。無人機(jī)飛行過程中的位置信息、姿態(tài)信息及速度信息均會(huì)自動(dòng)保存在飛行控制器內(nèi)置的SD卡中。試驗(yàn)場(chǎng)地選在美國加利福尼亞大學(xué)戴維斯分校草坪,RTK-GPS基準(zhǔn)站以三腳架固定并盡量遠(yuǎn)離樹木和建筑,避免信號(hào)遮擋。試驗(yàn)當(dāng)天天氣晴朗,微風(fēng)或無風(fēng),試驗(yàn)現(xiàn)場(chǎng)如圖11所示。
圖11 無人機(jī)自主飛行試驗(yàn)現(xiàn)場(chǎng)圖Fig.11 Field test picture of autonomous flight1.RTK-GPS基準(zhǔn)站 2.四旋翼無人機(jī) 3.無線電臺(tái)地面端 4.無線路由器 5.遙控器
試驗(yàn)結(jié)束后通過地面站程序?qū)o人機(jī)飛行日志進(jìn)行重放,獲得如圖12所示的真實(shí)飛行軌跡。整個(gè)試驗(yàn)過程中,運(yùn)行任務(wù)管理系統(tǒng)的協(xié)同計(jì)算機(jī)可按照試驗(yàn)方案控制無人機(jī)自主起降并進(jìn)行多任務(wù)點(diǎn)間直線飛行,所有任務(wù)均按預(yù)期執(zhí)行,無異常情況出現(xiàn)。
圖12 無人機(jī)自主飛行真實(shí)軌跡Fig.12 Real path of autonomous flight
為分析無人機(jī)自主飛行過程中三維空間位置定位精度,進(jìn)一步解析飛行日志并繪制RTK-GPS經(jīng)緯度和激光雷達(dá)測(cè)量值變化曲線,如圖13所示。無人機(jī)由O點(diǎn)起飛,垂直爬升2.0 m到達(dá)O′位置后開始執(zhí)行飛行任務(wù),繼續(xù)爬升至5.0 m后飛向A點(diǎn),準(zhǔn)確到達(dá)A點(diǎn)后進(jìn)入懸停狀態(tài),30 s后將當(dāng)前位置標(biāo)記為A′,隨后順序執(zhí)行飛行任務(wù),當(dāng)所有任務(wù)執(zhí)行完畢后自主降落在O點(diǎn)。圖13中任務(wù)點(diǎn)水平位置以經(jīng)緯度表示,空間兩點(diǎn)之間的水平距離計(jì)算式為
d=arccos(sinNAsinNB+ cosNAcosNBcos(WA-WB))R
(2)
式中d——空間兩點(diǎn)之間的水平距離,m
NA——A點(diǎn)緯度,(°)WA——A點(diǎn)經(jīng)度,(°)
NB——B點(diǎn)緯度,(°)WB——B點(diǎn)經(jīng)度,(°)
R——地球半徑,取常數(shù)6 371 004 m
圖13 無人機(jī)自主飛行空間位置變化曲線Fig.13 Curves of UAV’s spatial position during autonomous flight test
根據(jù)式(2)計(jì)算各任務(wù)點(diǎn)設(shè)置位置與實(shí)測(cè)位置之間的直線距離以評(píng)價(jià)無人機(jī)自主飛行過程中的水平方向定位精度,結(jié)果見表3。由表3可知,水平方
表3 無人機(jī)自主飛行試驗(yàn)結(jié)果Tab.3 Test result of UAV’s position accuracy during autonomous flight
向定位誤差平均值為0.145 m;通過分析無人機(jī)距離地面實(shí)際高度與試驗(yàn)方案預(yù)設(shè)值之間的誤差可知,無人機(jī)采用激光雷達(dá)能夠較為準(zhǔn)確地保持飛行高度的穩(wěn)定性,垂直誤差平均值為0.053 m。通過觀察無人機(jī)在到達(dá)任務(wù)點(diǎn)后執(zhí)行懸停任務(wù)結(jié)果可發(fā)現(xiàn)其能較為準(zhǔn)確保持水平和垂直位置。
(1)采用Pixhawk作為飛行控制器運(yùn)行ArduPilot控制程序,以Raspberry Pi3為協(xié)同計(jì)算機(jī),融合飛行控制器板載傳感器及外部傳感器對(duì)無人機(jī)狀態(tài)估計(jì)進(jìn)行修正,構(gòu)建了具有二級(jí)控制系統(tǒng)和高精度定位能力的四旋翼微型無人機(jī)系統(tǒng)。
(2)基于ROS和MAVROS設(shè)計(jì)開發(fā)了任務(wù)管理系統(tǒng),將無人機(jī)飛行過程拆分成不同子任務(wù),并以任務(wù)列表的形式快速形成飛行任務(wù)。協(xié)同計(jì)算機(jī)與飛行控制器通過MAVLink通信協(xié)議進(jìn)行數(shù)據(jù)交互,前者運(yùn)行任務(wù)管理系統(tǒng)、控制執(zhí)行飛行任務(wù),后者接收任務(wù)參數(shù)、執(zhí)行無人機(jī)位置和姿態(tài)控制。
(3)為測(cè)試無人機(jī)空間位置定位精度和自主飛行性能,設(shè)計(jì)相應(yīng)試驗(yàn)方案,進(jìn)行飛行試驗(yàn)。試驗(yàn)結(jié)果表明:無人機(jī)能按照預(yù)定飛行路線在多任務(wù)點(diǎn)之間自主直線飛行,飛行過程中水平方向平均定位誤差為0.145 m,垂直方向平均定位誤差為0.053 m。