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