張 佳
(西安航空學(xué)院 電子工程學(xué)院,西安 710077)
近年來,民用小型四旋翼無人機在航拍、植保、物流、電力巡線等場合得到了普遍的應(yīng)用。四旋翼無人機的操作和使用入門門檻已經(jīng)降低到了平民化的水平,然而隨著其在民用領(lǐng)域的普及,各種問題和矛盾也層出不窮,如無人機黑飛、擅闖禁飛區(qū)、干擾民航航班、撞擊高壓線、意外墜落傷人等。因此,監(jiān)管部門需要完善相應(yīng)的規(guī)章制度以規(guī)范民用無人機的飛行,通過技術(shù)手段對無人機的飛行進行實時監(jiān)管,從源頭上避免事故的發(fā)生。
目前,應(yīng)用最廣泛的無人機監(jiān)控系統(tǒng)是Michael Oborne在2010年發(fā)布的Mission Planner[1]。國內(nèi)較為優(yōu)秀的地面站監(jiān)控系統(tǒng)是匿名科創(chuàng)開源無人機團隊研發(fā)的ANO地面站系統(tǒng)。本文設(shè)計了一套包含機載模塊、無線通信鏈路和地面站的無人機監(jiān)控系統(tǒng),能夠在GSM/GPRS信號覆蓋范圍內(nèi)實現(xiàn)對無人機的實時監(jiān)控。
在無人機上安裝用于監(jiān)管的監(jiān)控模塊,配合地面站上的監(jiān)控軟件,能夠有效地改善目前無人機無序放飛的現(xiàn)狀。要實現(xiàn)對無人機的監(jiān)控,就需要搭建無人機系統(tǒng)與地面站系統(tǒng)之間的通信鏈路,使無人機的飛行數(shù)據(jù)能夠?qū)崟r地傳輸至地面站。
目前,常見的小型四旋翼無人機與地面站之間一般使用數(shù)傳電臺的方式傳輸數(shù)據(jù)。這種方式的最大傳輸距離通常在1 km以內(nèi),傳輸距離較短,嚴重地限制了監(jiān)控系統(tǒng)的作用范圍。為了擴大監(jiān)控范圍,增強監(jiān)控系統(tǒng)的普遍適用性,在此所設(shè)計的監(jiān)控系統(tǒng)以GSM/GPRS無線通信網(wǎng)絡(luò)作為通信鏈路,也就是說在無線通信信號覆蓋的區(qū)域都能夠?qū)崿F(xiàn)無人機監(jiān)控。無人機監(jiān)控系統(tǒng)如圖1所示。
圖1 無人機監(jiān)控系統(tǒng)示意Fig.1 UAV monitoring system diagram
飛行控制器提供無人機的飛行參數(shù)和GPS位置信息;機載監(jiān)控模塊能夠從飛行控制器(簡稱“飛控”)中讀取飛行參數(shù),通過GSM/GPRS無線通信模塊發(fā)送至運營商服務(wù)器;地面站計算機通過互聯(lián)網(wǎng)讀取服務(wù)器中的無人機飛行參數(shù),使用電子地理的圍欄功能判斷無人機是否在指定區(qū)域內(nèi)飛行。
所謂電子地理圍欄功能,是指用戶在地面站上設(shè)置的允許無人機飛行的一個區(qū)域,一般情況下是一個封閉的多邊形GPS區(qū)域,該區(qū)域包含平面范圍以及最低、最高高度。啟用電子地理圍欄功能時,無人機一旦超出設(shè)置的區(qū)域就會自行切換到返航模式,使無人機飛回預(yù)定的返回點并在那里懸停,等待用戶重新接管,用戶則可以使用發(fā)射器的開關(guān)接管控制無人機[2]。本系統(tǒng)電子地理圍欄,除了具備這些傳統(tǒng)功能外,還能夠在無人機飛出圍欄區(qū)域時立刻發(fā)出報警信號并通知無人機操作員。
無人機監(jiān)控系統(tǒng)可以分為兩大模塊:機載監(jiān)控模塊和地面模塊。
機載監(jiān)控模塊安裝在無人機上。作為獨立于無人機的部分,該模塊采集無人機的位置信息,并將采集到的數(shù)據(jù)通過GSM/GPRS無線通信網(wǎng)絡(luò)發(fā)送至運營商服務(wù)器。
地面模塊包括服務(wù)器、地面站計算機以及地面站軟件。服務(wù)器位于運營商機房,是無人機飛行數(shù)據(jù)存儲的媒介,同時也是無人機與地面站之間進行數(shù)據(jù)交換的橋梁;地面站計算機是用于對無人機進行監(jiān)控監(jiān)管的終端;在地面站計算機上運行的地面站軟件,能夠?qū)⒆x取到的無人機飛行參數(shù)和位置信息顯示在用戶界面上,在出現(xiàn)無人機越界的情況時能夠及時發(fā)出報警信號并通過手機短信的形式通知無人機操作員。
無人機上的機載監(jiān)控模塊與無人機飛控及其他機載用電設(shè)備共用一個供電電源。機載監(jiān)控模塊安裝于飛控與數(shù)傳無線電臺之間,是無人機與地面站通信的必經(jīng)之路。如此設(shè)計旨在使監(jiān)控系統(tǒng)采集到的數(shù)據(jù)保持客觀性,不受外界因素干擾,使監(jiān)控系統(tǒng)能夠服務(wù)于獨立的第三方監(jiān)管部門。
根據(jù)功能需求來設(shè)計機載監(jiān)控模塊,無人機使用的飛控型號為APM2.8,無人機飛控與無線電臺之間通過串口進行通信,數(shù)據(jù)以MAVLink協(xié)議的格式打包。因此,要采集無人機的飛行參數(shù)和GPS位置信息,機載監(jiān)控模塊必須具備串口通信功能并且能夠解包MAVLink協(xié)議幀。
機載監(jiān)控模塊運算核心選用了意法半導(dǎo)體ST公司的STM32F103型號基于ARM架構(gòu)的MCU。STM32F103擁有32 b的Cortex-M3內(nèi)核,其最高工作頻率為72 MHz;擁有2個DMA控制器,共計12個DMA通道;支持3個USART接口[3],其性能能夠滿足系統(tǒng)要求。
以微控制器的通用同步/異步接口1(USART1)作為串口通信端口與飛控連接讀取位置信息,STM32F103微控制器的USART1接口具有重映射功能,通過設(shè)置映射寄存器中的重映射控制位USART1_REMAP,便可以將USART1接口定義在不同的引腳上。USART1重映射功能定義如表1所示。
表1 USART1重映射功能定義Tab.1 USART1 remapping function definition
在設(shè)計中,將重映射控制位USART1_REMAP設(shè)置為0,則微控制器的串口發(fā)送端USART1_TX為PA9,串口接收端USART1_RX為PA10。由于微控制器的串口接收發(fā)送的信號是TTL電平的,而飛控按照串口電平收發(fā)數(shù)據(jù),2個端口的電平幅值不同,不能直接相連,需要通過電平轉(zhuǎn)換芯片連接。在此選用MAX232作為電平轉(zhuǎn)換芯片。MAX232是美信(Maxim)公司推出的用于串口與TTL電平之間的電平轉(zhuǎn)換芯片,其功耗低、成本低、集成度高。機載監(jiān)控模塊與飛控連接示意如圖2所示。
圖2 機載監(jiān)控模塊與飛控連接電路示意Fig.2 Airborne monitoring module and flight control connection circuit
機載監(jiān)控模塊的另一個重要作用就是解析從飛控收到的MAVLink數(shù)據(jù)包。
MAVLink是基于串口的高層開源通訊協(xié)議,為小型飛行器與地面站或者小型飛行器之間進行通訊制定了一種數(shù)據(jù)收發(fā)規(guī)則,并加入了校驗功能。使用該協(xié)議進行數(shù)據(jù)通訊的基本單位是消息幀,其格式如圖3所示。
圖3 MAVLink協(xié)議格式Fig.3 MAVLink protocol format
除了載荷數(shù)據(jù)(PAYLOAD),其余部分的長度均為1 B。每個消息幀由9部分組成,它們分別是:
①STX為起始標志位,長度為1 B。
②LEN為MAVLink消息幀的有效載荷數(shù)據(jù),即協(xié)議中PAYLOAD部分所包含的數(shù)據(jù)內(nèi)容的字節(jié)長度,該標志位長度為1 B。在MAVLink消息幀接收端可以將LEN標志位與接收到數(shù)據(jù)的長度進行比較,從而校驗數(shù)據(jù)是否完整。
③SEQ為本次消息幀的序號,每發(fā)送1幀數(shù)據(jù)后該字節(jié)加1,當該字節(jié)累加到255之后會循環(huán)從0重新開始。通過該標志位可以計算出MAVLink消息幀的丟失比例,從而得出通信鏈路的信號強度。
④SYS為發(fā)送本條消息幀的設(shè)備的系統(tǒng)編號,用于接收端區(qū)分數(shù)據(jù)來源設(shè)備。
⑤COMP為發(fā)送本條消息幀的設(shè)備的單元編號,用于接收端區(qū)分消息來源的設(shè)備單元。
⑥MSG為有效載荷中消息包的編號,與SEQ有所區(qū)別,接收端要根據(jù)該標志位來鑒別消息幀數(shù)據(jù)里攜帶了什么消息包,從而依據(jù)該標志位使用相應(yīng)的流程來處理消息幀數(shù)據(jù)。
⑦PAYLOAD為有效數(shù)據(jù)載荷,長度不定,范圍為 0~255。
⑧CKA為消息校驗位,校驗和(checksum)的低八位;
⑨CKB為消息校驗位,校驗和(checksum)的高八位。
要使STM32F103微控制器具有解析MAVLink消息幀的能力,應(yīng)將MAVLink源代碼移植到微控制器中。首先,從MAVLink官網(wǎng)上下載MAVLink Gen erator源碼生成器;打開軟件后,單擊“Generate”按鈕,生成協(xié)議源代碼;將生成的文件添加到STM32工程中,再編譯、連接生成二進制文件燒寫到微控制器中。至此完成了MAVLink在STM32F103上的移植。
STM32F103微控制器解析出MAVLink消息幀中的無人機飛行參數(shù)和GPS位置信息后,由GSM/GPRS無線通信網(wǎng)絡(luò)發(fā)送至服務(wù)器。GSM/GPRS無線通信模塊選用基于SIM800A芯片的GSM/GPRS無線通信模塊。SIM800A模塊工作頻段為雙頻GSM 900/1800 MHz,能夠低功耗實現(xiàn)語音、DTMF,SMS(短信、彩信),GPRS 數(shù)據(jù)的傳輸[4]。
SIM800A模塊抗干擾能力強、外圍電路集成度高、尺寸小巧,適合用于遠程監(jiān)控領(lǐng)域。該模塊GPRS下行傳輸最大速率85.6kb/s,上行傳輸最大速率42.8kb/s,內(nèi)嵌TCP/IP協(xié)議,支持TCP/UDP通信,支持FTP/HTTP服務(wù),滿足機載監(jiān)控模塊的性能需求。
地面模塊用于接收和處理機載監(jiān)控模塊發(fā)來的無人機位置數(shù)據(jù),包括服務(wù)器和地面站2個部分。
服務(wù)器位于運營商機房,接收并存儲機載監(jiān)控模塊通過GSM/GPRS無線通信網(wǎng)絡(luò)發(fā)來的數(shù)據(jù),相當于整個數(shù)據(jù)鏈路的中繼。
地面站計算機是監(jiān)控系統(tǒng)的地面終端,負責(zé)集中處理、顯示機載模塊采集的數(shù)據(jù)。地面站計算機與服務(wù)器之間通過互聯(lián)網(wǎng)連接,地面站訪問服務(wù)器取出數(shù)據(jù)后顯示在用戶界面上。同時,作為監(jiān)控系統(tǒng)的核心功能,地面站軟件會實時判斷無人機是否在電子地理圍欄允許范圍內(nèi)飛行,否則發(fā)出報警信號并通知無人機操作員[5]。
地理圍欄功能需要地面站計算機和無人機機載模塊協(xié)調(diào)完成,用戶在地面站軟件的地圖中劃出多邊形區(qū)域作為地理圍欄,放飛無人機后機載模塊會實時將其GPS位置信息發(fā)送至服務(wù)器。地面站軟件從服務(wù)器讀取到無人機信息后,使用射線法將采集到的無人機位置信息與地理圍欄區(qū)域進行比較,判斷無人機是否在圍欄區(qū)域內(nèi)。一旦無人機超越圍欄,地面站將向機載模塊發(fā)送指令,從而觸發(fā)無人機的返航程序,使其返回預(yù)先設(shè)定的返航點。
地面站軟件基于C#開發(fā),處理流程如圖4所示。
圖4 地面站軟件流程Fig.4 Ground station software flow chart
為全面監(jiān)控?zé)o人機的狀態(tài),地面站軟件能夠?qū)o人機飛行參數(shù)如俯仰角、航向角、橫滾角顯示在用戶界面的儀表盤中。利用DirectX技術(shù),建立四旋翼無人機的3D模型,導(dǎo)入地面站軟件中[6]。三維模型能夠隨著無人機飛行參數(shù)的變化,顯示出不同的對應(yīng)狀態(tài),直觀明了。地面站軟件界面如圖5所示。
圖5 地面站軟件用戶界面Fig.5 Ground station software user interface
利用四旋翼無人機飛控的輸出接口采集并解析無人機的飛行參數(shù)和GPS位置,通過GSM/GPRS無線通信網(wǎng)絡(luò)將數(shù)據(jù)傳輸至服務(wù)器;地面站計算機經(jīng)由互聯(lián)網(wǎng)訪問服務(wù)器讀取無人機數(shù)據(jù),并將無人機的位置和姿態(tài)信息直觀地顯示在用戶界面上;利用地面站軟件中的電子地理圍欄功能,實現(xiàn)了對無人機的實時監(jiān)控,為監(jiān)管部門提供了一種有效的小型民用四旋翼無人機的監(jiān)管手段。
[1]Luca Damilano,Giorgio Guglieri,F(xiàn)ulvia Quagliotti,et al.Ground control station embedded mission planning for UAS[J].Journal of Intelligent&Robotic Systems,2013,69(1):241-256.
[2]楊澤,鄭立華,李民贊,等.基于射線檢測算法的無人機植保作業(yè)電子圍欄設(shè)計[J].農(nóng)業(yè)機械學(xué)報,2016,47(S1):442-448.
[3]孫書鷹,陳志佳,寇超.新一代嵌入式微處理器STM32F103開發(fā)與應(yīng)用[J].微計算機應(yīng)用,2010,31(12):59-63.
[4]韓進,馬雙.基于SIM800C的GPRS數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].電子產(chǎn)品世界,2016,24(11):39-42.
[5]夏仁波,劉偉軍,王越超.點在平面多邊形內(nèi)外的判斷方法[J].機械工程學(xué)報,2006,42(3):130-135.
[6]劉澤坤,昂海松,羅東明.基于DirectX的無人機實時飛行仿真系統(tǒng)開發(fā)[J].系統(tǒng)仿真學(xué)報,2006,18(4):918-920,923.