顧國民, 盧 瑾, 潛 杰
(浙江工業大學計算機科學與技術學院,杭州 310023)
隨著無人機技術的逐漸成熟,無人機已應用于工業巡檢,例如地質勘測[1]、電力巡檢[2-5]、輸油管道[6]、噴灑農業等。與傳統人工巡檢相比,無人機巡檢地形條件限制小,時間節省,有利于提高巡檢效率。巡檢實際工作場景中受到信號干擾或阻擋較為嚴重時,地面工作站容易丟失對無人機的監視,無法實時查看無人機當前狀態以及作業情況,甚至造成無人機飛行過程中失控、丟失的情況發生[7-11]。
樹莓派是一款采用ARM架構的微型電腦主板,具有強大的系統功能和接口資源,具備所有PC的基本功能,可安裝完整的Linux系統,支持多種語言進行應用開發,經過多代產品的迭代,功能穩定,開發資料眾多,通用性好,且具有體積小、功耗低和重量輕等特點。
對于無人機而言,低功耗以及重量輕的優點能夠最大限度減少對無人機續航的影響[12-15]。本文針對無人機巡檢過程中產生的問題,設計了一套以樹莓派為平臺的無人機飛行監控機載系統,以解決巡檢無人機作業過程中突發的信息中斷缺陷,并在該情況下依托移動數據網絡實施緊急信息回傳和設備定位等功能。
無人機飛行數據監控機載系統具備以下功能:
(1)增加備用電源裝置,實現主、備電源兩種供電方式,確保無人機一旦出現電源故障,機載系統依然可以持續工作。
(2)對無人機狀態、網絡連接狀態以及電源狀態進行實時監測,并顯示監測結果。
(3)機載系統實時存儲無人機網絡狀態、電源、無人機數據程序、系統以及無人機飛行狀態數據等信息。
(4)利用4G移動通信技術將設備定位及機載系統工作狀態數據實時傳送至起到類似飛機飛行數據記錄儀的功能,提高無人機巡檢工作的穩定性。
為實現以上功能,機載系統分為微型主板、電源、顯示以及通信等模塊主要部分,各模塊安裝于防水防塵的外盒中,并固定于無人機頂部,系統整體架構如圖1所示。

圖1 系統整體架構圖
機載系統硬件包括主控平臺、電源、顯示、通信以及負責無人機與主控平臺間交互的串口通信模塊,系統原理如圖2所示。

圖2 機載系統工作原理圖
微型主板是機載系統的核心部分,主要負責計算、處理各種數據,如無人機的位姿、飛行速度以及電池電量等信息,同時要保持與地面站的數據連接,需要有足夠的運算精度與能力,足夠的通信接口等。本文選用樹莓派3B作為無人機二次開發平臺,安裝Arm版操作系統Ubuntu Mate 16.04,并在該操作系統上部署機器人操作系統(Robot Operating System,ROS)作為DJI OSDK開發環境,通過其訂閱和分發功能與無人機進行通信,并對獲取得的無人機傳感器信息進行處理,得到當前時間、GPS經緯度、飛行高度、飛行速度、電池電量等信息,存儲在本地以待移動通信系統進行上傳。微型主板與其他功能模塊進行連接。
機載系統具有主電源供電和備用電源供電兩種方式,無人機出現電源故障依然可以監控其作業狀態及位置,并記錄無人機作業信息。
電源模塊由降壓、主、備電源切換以及備用電源模塊組成。降壓穩壓模塊采用UBEC 5A,其輸入端與無人機的電源輸出端連接,輸出端與UPS電源模塊的輸入端連接,無人機輸出電壓為24 V,降壓穩壓模塊將24 V降低到5 V,提供3 A的輸出電流;備用電池模塊包括電源管理擴展板和充電電池,電源管理擴展板采用U100 UPS,電池采用18650鋰電池,其中U100 UPS的電源輸出管腳和GND管腳分別和微型主板的電源輸入管腳和GND管腳連接。主、備電源切換采用一路光耦隔離模塊檢測電源輸入模式,模塊的輸入端與降壓模塊的輸出端連接,信號輸出端OUT-I/O與樹莓派的第13號GPIO管腳連接,接地端與樹莓派的GND管腳相連。當有電源接入時,輸出為低電平;電源斷開時,輸出為高電平,通過樹莓派的GPIO讀取高、低電平信號,進行電源輸入的判斷。
機載系統對無人機狀態、網絡連接狀態以及電源狀態進行實時監測并顯示,顯示模塊選用7.4 mm e-Paper柔性墨水屏,該屏帶有內部控制器,使用SPI接口通信,且具有支持局部刷新、功耗低、視角寬、斷電仍可清晰顯示等優點。顯示模塊的SPI通信接口與樹莓派Board物理引腳進行連接,顯示屏幕嵌于外盒頂部。顯示屏劃分為5個部分,分別用于顯示系統時間、OSDK連接狀態、網絡連接狀態、無人機工作狀態及系統運行狀態。
本文采用4G LTE WIFI Dongle無線上網卡,通過USB口與樹莓派進行連接,安裝在機載系統盒內,通信系統利用3G/4G移動通信信號,將飛行數據通過http協議實時上傳至云端。經驗證,無人機搭載本系統使用4G模塊在高度100 m的環境下可以穩定運行。
無人機的主控芯片為單片機,樹莓派屬于PC機,兩者之間的通信需要通過信號轉換,本文采用CH340G芯片與無人機主控芯片連接,實現USB轉TTL,將電平轉換到雙方都能識別的信號,以便樹莓派能有效地讀取無人機發送的信號。CH340G芯片通過排線與無人機上的UART口連接,CH340G芯片的TX腳連接無人機的RX腳,RX腳連接無人機的TX腳,通過USB口將CH340G芯片與樹莓派連接,將雙方識別的電平轉換為通信電平。
選用Python和C++語言編程,利用Python簡潔的語法特性和強大的圖像庫支持,實現狀態顯示、網絡檢測、供電方式判斷等功能,C++語言實現無人機行數據信息讀取等功能,運行流程如圖3所示。

圖3 機載系統運行流程圖
機載系統在無人機開機時自動通電開機,在進入系統后,無人機飛行數據獲取、處理以及上傳等功能的程序均以腳本方式自動運行,無須人為進行任何操作。
圖4為ubuntu16.04開機自啟動腳本文件start.sh。

圖4 自啟動腳本文件
設備開機后機載系統自動運行入口腳本,啟動各模塊功能,并以記事本格式存儲信息,信息數據包括網絡狀態、電源狀態、無人機數據程序狀態、系統狀態以及無人機飛行數據等。機載系統從存儲信息中讀取部分信息實時上傳至云端。腳本文件運行順序分別為:
(1)開啟墨水屏驅動程序腳本,讀取系統狀態值,并通過墨水屏顯示當前系統狀態。
(2)調用ROS系統版本SDK,通過ROS的發布功能以不同主題發布無人機的狀態數據,待訂閱程序進行接受并處理。
(3)判斷當前網絡狀態,實時修改系統網絡狀態,并在網絡可用的情況下進行數據上傳。
(4)通過樹莓派的GPIO口判斷主板的供電方式是主電源供電還是備用電源供電。
(5)訂閱發布的主題消息獲取無人機原始數據,將無人機原始數據處理后存儲到本地待發送文件,并保存以開始時間命名的日志文件。
飛行數據信息獲取模塊主要實現無人機原始數據的獲取、處理及本地保存,DJI OSDK是一個用于開發無人機應用程序的開發工具包,基于OSDK開發的應用程序能夠運行在機載計算機上,通過調用OSDK的開放接口,實現飛行控制及圖像感知等應用功能,OSDK提供了豐富的接口,方便開發者使用第3方應用程序和算法框架,滿足用戶個性化的應用功能和控制需求。
基于OSDK開發的應用程序運行在嵌入式操作系統ROS,并通過ROS的發布功能將無人機的狀態數據以不同主題進行發布,包括電池電量信息、GPS信息。以及可以測量速度、方向的IMU信息,訂閱程序接受發布的主題消息獲取無人機原始數據,進行處理后存儲本地待發送文件中,并保存以開始時間命名的日志文件,圖5是無人機機載系統訂閱程序接收消息并處理的工作流程圖。

圖5 訂閱程序流程圖
機載系統從無人機獲取原始數據信息,采樣頻率3 Hz,計算處理得到包括定位時間、經度、維度、高度、水平速度、垂直速度、與起飛點距離以及電池電量,詳細格式見表1,存儲于本地gps.txt文件。無人機應用程序的開發工具包工作狀態存儲于osdkstatue.txt文件。

表1 采集數據格式表
網絡檢測模塊用于獲取數據上傳之前,判斷當前網絡狀態,實時修改系統網絡狀態信息,并在網絡可用的情況下將文件gps.txt中存儲的數據進行發送,工作流程如圖6所示,當前網絡的狀態信息將存儲于本地的networkstatue.txt文件。
電源檢測模塊通過GPIO口讀取高低電平信號進行判斷,低電平為主電源供電,高電平為備用電源供電,若是備用電源供電,機載系統根據設定時間工作運行后實現自動關閉,電源狀態信息保存于本地shutdown.txt文件。
通過開啟墨水屏驅動程序腳本,讀取系統狀態值顯示當前系統狀態,狀態信息分別從osdkstatue.txt、networkstatue.txt以及shutdown.txt文件中讀取,并存儲為systatue.txt。顯示屏劃分為5個部分,分別用于顯示系統時間、OSDK連接狀態、網絡連接狀態、無人機M300工作狀態及系統運行狀態,根據程序啟動和信號獲取情況設計8種機載系統狀態,見表2。


表2 機載系統狀態表
圖7為網絡程序未啟動狀態(表2中狀態3)下的墨水屏工作狀態顯示示例。

圖7 狀態顯示示例
無人機機載系統搭載的飛行設備采用的是四旋翼無人機經緯M300 RTK,該無人機可支持懸停、低速巡航,最大有效載荷為2.7 kg,抗風能力達到7級,可適應-20~50℃的溫度環境。
圖8為機載系統設備實物圖。

圖8 機載系統實物圖
實驗過程中,除顯示屏嵌套安裝在密閉外盒表面,其他機載系統部件組裝在外盒中,并固定在無人機頂部,實驗場景如圖9所示。

圖9 機載系統安裝圖
實際測試中,針對無人機飛行的高度以及速度進行的實驗論證,在保證安全可靠的前提下,目前得到的飛行高度為100 m;飛行最大速度為12 m/s,實際續航時間在26 min左右,有效單次飛行距離為16 km。
圖10為無人機在校園內實際飛行測試中,機載系統上傳鷹眼實時繪制的飛行軌跡圖以及回傳的飛行數據及定位信息。

圖10 校園實測飛行軌跡及飛行數據圖
本文基于樹莓派設計一套對無人機飛行數據實時監視的機載系統,解決無人機在飛出遙控范圍或遇到突發事件下失控的問題,利用移動通信技術為系統開發多鏈路的數據傳輸系統,提高數據傳輸的可靠性,同時降低無人機的飛行風險,保證每次飛行作業數據能得到有效、高效的保管,實現數據的可追溯,極大地提高了無人機巡檢工作的穩定性和安全性,對教學、科研及生產等領域都有較大的參考價值。