張文輝,陳 欣,曹立佳,鄭 惠
(1.南京航空航天大學(xué) 自動化學(xué)院, 南京 210016; 2.四川理工學(xué)院 自動化與信息工程學(xué)院, 四川 自貢 643000; 3.人工智能四川省重點(diǎn)實(shí)驗(yàn)室, 四川 自貢 643000; 4.火箭軍工程大學(xué) 控制工程系, 西安 710025)
【信息科學(xué)與控制工程】
基于RTX的無人機(jī)地面站系統(tǒng)
張文輝1,陳 欣1,曹立佳2,3,鄭 惠4
(1.南京航空航天大學(xué) 自動化學(xué)院, 南京 210016; 2.四川理工學(xué)院 自動化與信息工程學(xué)院, 四川 自貢 643000; 3.人工智能四川省重點(diǎn)實(shí)驗(yàn)室, 四川 自貢 643000; 4.火箭軍工程大學(xué) 控制工程系, 西安 710025)
開發(fā)了一種基于RTX實(shí)時網(wǎng)絡(luò)的無人機(jī)地面飛行監(jiān)測和控制系統(tǒng);該系統(tǒng)中各工作站內(nèi)部采取Windows與RTX結(jié)合的方式,工作站間利用RT-TCP/IP實(shí)時以太網(wǎng)協(xié)議通信,具備數(shù)據(jù)存儲回放、實(shí)時姿態(tài)顯示、航路指令上傳等功能,具有實(shí)時性強(qiáng)、可靠性高、人機(jī)交互方便等特點(diǎn),完全滿足無人機(jī)地面站使用需要,具有良好的擴(kuò)展性。
無人機(jī);地面站;網(wǎng)絡(luò);實(shí)時
現(xiàn)代無人機(jī)系統(tǒng)發(fā)展迅速,使得作為無人機(jī)系統(tǒng)“神經(jīng)中樞”的地面站控制系統(tǒng)功能越來越復(fù)雜,數(shù)據(jù)傳輸量越來越大,對通信的實(shí)時性要求更高。傳統(tǒng)的單工作站式控制地面站很難滿足無人機(jī)系統(tǒng)的需求。針對這些情況,提出了一種基于實(shí)時網(wǎng)絡(luò)結(jié)構(gòu)的地面控制站系統(tǒng)設(shè)計方案,該系統(tǒng)由飛行姿態(tài)顯示、導(dǎo)航指令兩個工作站組成,飛行姿態(tài)顯示工作站通過串口經(jīng)無線電臺與無人機(jī)飛控系統(tǒng)通信,兩個工作站之間采用TCP/IP網(wǎng)絡(luò)通信(圖1)。Windows操作系統(tǒng)具有豐富的軟件資源可以為地面站系統(tǒng)構(gòu)建提供有效支持,但其自身非實(shí)時操作系統(tǒng),實(shí)時性、可靠性不高[1]。為滿足實(shí)時性要求,各工作站內(nèi)部采用RTX環(huán)境實(shí)時擴(kuò)展Windows系統(tǒng),使其滿足實(shí)時性需要,實(shí)現(xiàn)無人機(jī)地面站基本功能,包括結(jié)合無人機(jī)飛控系統(tǒng)發(fā)送遙控數(shù)據(jù)信息、接收遙測信息、導(dǎo)航定位和有效任務(wù)載荷的控制[2]。
圖1 地面站通信連接形式
1.1 任務(wù)設(shè)計
工作站中實(shí)時部分主要進(jìn)行數(shù)據(jù)的傳輸、校驗(yàn)與存儲,非實(shí)時部分主要進(jìn)行數(shù)據(jù)顯示和操作人員輸入,兩者之間通過共享內(nèi)存進(jìn)行數(shù)據(jù)交換。用戶可以在系統(tǒng)啟動前選擇CPU資源的分配情況,使實(shí)時與非實(shí)時環(huán)境分別運(yùn)行于不同的CPU中。非實(shí)時部分在普通Windows環(huán)境下編譯實(shí)現(xiàn)。實(shí)時部分在RTX環(huán)境中由rtss程序?qū)崿F(xiàn),系統(tǒng)初始化時由非實(shí)時部分啟動rtss程序。飛行姿態(tài)顯示工作站主要通過串行接口接收無人機(jī)下傳的遙測數(shù)據(jù),在界面中進(jìn)行顯示,將數(shù)據(jù)實(shí)時存儲,通過RT-TCP/IP協(xié)議將數(shù)據(jù)傳輸?shù)綄?dǎo)航指令工作站。導(dǎo)航指令工作站接收到相關(guān)數(shù)據(jù)并顯示到人機(jī)交互界面。如果鍵入指令則通過共享內(nèi)存發(fā)送到實(shí)時部分,按照協(xié)議格式打包發(fā)送到飛行姿態(tài)顯示工作站,由其通過串口發(fā)送至電臺。軟件設(shè)計上采用多線程形式,程序中每一個任務(wù)都對應(yīng)一個線程。具體結(jié)構(gòu)如圖2所示。
圖2 軟件結(jié)構(gòu)示意圖
1.2 實(shí)時任務(wù)優(yōu)先級設(shè)定
RTX實(shí)時系統(tǒng)調(diào)用C等基本庫的部分可調(diào)用函數(shù),創(chuàng)建多任務(wù)、實(shí)現(xiàn)任務(wù)間通信以及分配任務(wù)優(yōu)先級等一些專用功能[3],Rtx環(huán)境中具體通過線程實(shí)現(xiàn)任務(wù)調(diào)度。RTX環(huán)境具備線程切換時間短,線程間資源共享方便的優(yōu)點(diǎn)??梢苑峙涠噙_(dá)128個線程優(yōu)先級,支持靜態(tài)優(yōu)先級搶占式調(diào)度[4]。靜態(tài)優(yōu)先級搶占式算法有速率單調(diào)調(diào)度、截止時間調(diào)度等。截至?xí)r間單調(diào)調(diào)度己被證明是靜態(tài)最優(yōu)的調(diào)度算法[5-6]。該調(diào)度方法是指任務(wù)的優(yōu)先級按截止時間分配。截止時間越短,任務(wù)優(yōu)先級越高。截止時間調(diào)度優(yōu)點(diǎn)是開銷小,靈活性好,可調(diào)度性測試簡單。在實(shí)際運(yùn)用過程中,往往還要以調(diào)度算法為基礎(chǔ),結(jié)合任務(wù)的重要性等實(shí)際情況進(jìn)一步確認(rèn)任務(wù)優(yōu)先級。經(jīng)過分析,確定本地面站系統(tǒng)中實(shí)時任務(wù)優(yōu)先級如表1所示。
表1 實(shí)時任務(wù)優(yōu)先級
序號工作站任務(wù)名稱優(yōu)先級12345飛行姿態(tài)顯示工作站串口接收99校驗(yàn)解幀98網(wǎng)絡(luò)發(fā)送94遙控指令發(fā)送96任務(wù)管理80678導(dǎo)航指令工作站網(wǎng)絡(luò)接收98網(wǎng)絡(luò)發(fā)送99任務(wù)管理80
在 Windows 操作系統(tǒng)中使用Visual C++ 軟件平臺下基于對話框MFC應(yīng)用程序框架,利用相應(yīng)控件進(jìn)行界面的開發(fā)工作。所設(shè)計的兩個工作站界面如圖3所示。
圖3 兩個工作站主界面圖
2.1 飛行姿態(tài)顯示工作站
本工作站界面主要包含以下幾個部分:
虛擬儀表:主要采用自定義控件實(shí)現(xiàn)地平儀、速度表等虛擬航空儀表的顯示。
數(shù)據(jù)曲線:使用曲線控件以曲線方式顯示一段時間中狀態(tài)參數(shù)變化,可以通過勾選數(shù)值狀態(tài)顯示區(qū)中相應(yīng)選框選擇顯示俯仰角、橫滾角、航向角、發(fā)動機(jī)狀態(tài)等信息,以便操作人員了解無人機(jī)近期狀態(tài)趨勢。
數(shù)值狀態(tài)顯示:以數(shù)字、文字形式直接顯示各類數(shù)據(jù)、狀態(tài)信息,以便操作人員把握實(shí)時數(shù)值、狀態(tài)。
2.2 導(dǎo)航指令工作站
本工作站界面主要包含以下幾個部分:
導(dǎo)航地圖:使用ARCGIS ENGINE作為地圖導(dǎo)航模塊的主要控件,它是一套完備的可用于二次開發(fā)的GIS組件工具庫[7],按照相關(guān)航路參數(shù)利用其中的構(gòu)造函數(shù)可以進(jìn)行直線、圓弧等航路曲線的繪制顯示,實(shí)現(xiàn)航跡規(guī)劃[8]。通過顯示過往航跡點(diǎn)及當(dāng)前狀態(tài)圖片可以實(shí)時顯示航跡曲線。由于顯示確定地理位置信息的需要,該地圖控件采用二維方式實(shí)現(xiàn),界面中結(jié)合高度曲線圖完成三維信息的展示。
指令操作界面:包含各種開關(guān)指令和遙調(diào)指令,操作人員可以通過這個界面對無人機(jī)進(jìn)行控制。
數(shù)據(jù)通信是地面站系統(tǒng)的核心工作,根據(jù)遙測遙控通信的數(shù)據(jù)傳輸特點(diǎn),主要分為串口通信、網(wǎng)絡(luò)通信、線程間和進(jìn)程間數(shù)據(jù)傳遞四個部分進(jìn)行闡述。
3.1 串口通信實(shí)現(xiàn)
串口通信幀分為上行遙控幀(32字節(jié))和下行遙測幀(64字節(jié)),上行遙控幀結(jié)構(gòu)為幀頭、遙控指令、遙調(diào)指令、載荷參數(shù)以及幀尾。下行遙測幀結(jié)構(gòu)為幀頭、數(shù)據(jù)區(qū)、幀尾。
采用中斷的形式進(jìn)行串口通信,使用RTX API提供RtAttachInterruptVector函數(shù)掛接串口中斷處理線程掛接到對應(yīng)的中斷向量上,中斷處理線程在存儲到緩沖區(qū)同時使用幀同步碼區(qū)分出接收到的數(shù)據(jù)。當(dāng)收到一幀數(shù)據(jù)時,將數(shù)據(jù)交付串口接收線程進(jìn)行數(shù)據(jù)校驗(yàn)。數(shù)據(jù)校驗(yàn)分為兩部分,一是檢查無人機(jī)與地面站兩端傳輸數(shù)據(jù)是否一致。校驗(yàn)方法與無人機(jī)通信協(xié)議有關(guān),一般采用循環(huán)冗余檢查方法(CRC)。CRC的理論基礎(chǔ)是線性編碼原理。待傳送的k 位幀數(shù)據(jù)區(qū)按接收雙方預(yù)先約定的某種規(guī)則進(jìn)行處理,產(chǎn)生一個r位的校驗(yàn)碼。將r位校驗(yàn)碼加在幀尾區(qū)一同組幀發(fā)送出去,在接收端采用相同規(guī)則依據(jù)校驗(yàn)碼對接收數(shù)據(jù)區(qū)進(jìn)行差錯校驗(yàn)[9]。二是檢查無人機(jī)狀態(tài)數(shù)據(jù)內(nèi)容是否存在異常,例如無人機(jī)指令為平飛狀態(tài),需要俯仰角保持在一定限度。將接受的俯仰角數(shù)據(jù)與上下限比較,如果超出限度則顯示報警。當(dāng)通過串口發(fā)送指令時,將指令緩存在串口發(fā)送緩沖區(qū)。在寫入串口之前,對串口是否打開和緩沖區(qū)是否溢出進(jìn)行判斷,如果是“否”則返回相應(yīng)錯誤代碼。當(dāng)寫入到串口發(fā)送緩沖區(qū)后使THR中斷,寫入發(fā)送保持寄存器。
3.2 網(wǎng)絡(luò)通信實(shí)現(xiàn)
網(wǎng)絡(luò)通信的協(xié)議幀結(jié)構(gòu)為同步碼、數(shù)據(jù)包類型、數(shù)據(jù)區(qū)長度、數(shù)據(jù)區(qū)4部分,數(shù)據(jù)包分為航路裝訂數(shù)據(jù)包、指令數(shù)據(jù)包、遙測信息數(shù)據(jù)包3類。
采用RT-TCP/IP協(xié)議棧實(shí)現(xiàn)工作站間的網(wǎng)絡(luò)通信,RT-TCP/IP協(xié)議棧由緩沖區(qū)系統(tǒng)、定時系統(tǒng)和服務(wù)線程構(gòu)成[10],底層驅(qū)動支持普通的PCI總線網(wǎng)卡,用戶可以通過其官方網(wǎng)站獲得相應(yīng)的網(wǎng)卡驅(qū)動或者自行開發(fā)驅(qū)動。網(wǎng)絡(luò)通信傳輸層在客戶端與服務(wù)器之間建立TCP長連接用以交換數(shù)據(jù)。飛行姿態(tài)顯示工作站作為服務(wù)器,導(dǎo)航指令工作站作為客戶端。應(yīng)用程序?qū)用胬脜f(xié)議棧自帶的socket嵌套字編程,采用多線程阻塞模式的網(wǎng)絡(luò)通信結(jié)構(gòu)。由于系統(tǒng)默認(rèn)采用Nagle算法合并相連的小數(shù)據(jù)包,再一次性發(fā)送。當(dāng)傳輸數(shù)據(jù)包較小時會造成延遲,所以初始化時使用setsockop函數(shù)對網(wǎng)絡(luò)設(shè)置選項(xiàng)中的TCP_NODELAY項(xiàng)進(jìn)行修改,關(guān)閉Nagle算法。
3.3 工作站內(nèi)部數(shù)據(jù)傳遞
工作站內(nèi)部的數(shù)據(jù)傳遞包含線程間和進(jìn)程間數(shù)據(jù)傳遞兩個部分,線程間的傳遞實(shí)現(xiàn)過程是在初始化時分配在進(jìn)程堆中劃分固定地址的上行、下行幀兩個循環(huán)隊列。將該隊列的地址傳入各線程。線程間通過隊列整幀讀取或?qū)懭霐?shù)據(jù)。
由于界面與RTX部分工作在兩個進(jìn)程中,所以利用共享內(nèi)存、互斥量、事件通知相結(jié)合的方式進(jìn)行數(shù)據(jù)的傳遞。為了減少程序等待訪問共享內(nèi)存時間,分別設(shè)立三段共享內(nèi)存,負(fù)責(zé)向非實(shí)時部分輸入數(shù)據(jù)、接收非實(shí)時部分?jǐn)?shù)據(jù)和接收非實(shí)時部分的界面輸入。當(dāng)一方需要傳輸數(shù)據(jù)時獲取互斥鎖將數(shù)據(jù)寫入共享內(nèi)存,后釋放互斥鎖,將對應(yīng)的數(shù)據(jù)準(zhǔn)備好事件置位。這時等待讀取共享內(nèi)存的線程接到事件受信通知后獲取互斥鎖,讀出共享內(nèi)存中數(shù)據(jù)。具體流程如圖4所示。
由于Windows操作系統(tǒng)具有非實(shí)時不確定性的特點(diǎn),所以實(shí)時與非實(shí)時部分讀寫共享內(nèi)存的頻率有時會不一致,需要在共享內(nèi)存中應(yīng)用環(huán)形緩沖區(qū)結(jié)構(gòu)。
圖4 進(jìn)程間通訊形式
3.4 數(shù)據(jù)回放
本軟件以二進(jìn)制文件形式分類保存指令數(shù)據(jù)和遙測下行數(shù)據(jù)。數(shù)據(jù)存放于飛行姿態(tài)顯示工作站,在保存的記錄文件名中包含有日期情況,方便操作人員直觀調(diào)用。數(shù)據(jù)回放的過程由RTX環(huán)境中的定時器實(shí)現(xiàn),其定時器周期最低可以達(dá)到100 μs。在定時器處理線程中讀取相應(yīng)的二進(jìn)制文件中數(shù)據(jù),通過網(wǎng)絡(luò)進(jìn)行傳遞,更新兩臺工作站界面。通過修改定時器周期來選擇數(shù)據(jù)回放的速率。
采用地面仿真的方式對地面站系統(tǒng)樣例進(jìn)行驗(yàn)證。地面站系統(tǒng)與仿真計算機(jī)通過RS-232串行通信接口連接,地面系統(tǒng)各工作站間通過網(wǎng)絡(luò)通信接口相連。連接效果如圖5所示。
圖5 系統(tǒng)連接圖
網(wǎng)絡(luò)通信模塊是無人機(jī)實(shí)時數(shù)據(jù)傳輸?shù)年P(guān)鍵環(huán)節(jié),主要用于對所傳輸數(shù)據(jù)的處理,對其性能測試的目的就是測試系統(tǒng)整體實(shí)現(xiàn)在邏輯和功能方面是否正確。經(jīng)過長時間的、高負(fù)荷的測試,數(shù)據(jù)傳輸延遲最大值為39 μs,數(shù)據(jù)傳輸速率平均為 10 8191 kbyte/s。系統(tǒng)樣例驗(yàn)證了基于RTX 的無人機(jī)地面站系統(tǒng)軟硬件性能良好、實(shí)時性和可靠性滿足要求。
本文中地面站系統(tǒng)使用RTX實(shí)時環(huán)境,采用網(wǎng)絡(luò)結(jié)構(gòu)。該方法提高了地面站系統(tǒng)的可擴(kuò)展性和實(shí)時性。通過將該地面測控軟件與無人機(jī)地面仿真試驗(yàn)相結(jié)合可知,該測控軟件具有準(zhǔn)確性高、穩(wěn)定性好以及良好的人機(jī)界面,滿足了設(shè)計要求。
[1] 崔亞軍,趙奎,王鴻亮,等.基于RTX的實(shí)時數(shù)據(jù)處理系統(tǒng)[J].計算機(jī)系統(tǒng)應(yīng)用,2017(1):106-110.
[2] 羅珊,陳睿璟,路引,等.便攜式地面測控系統(tǒng)[J].兵工自動化,2012,31(8):14-16.
[3] 劉樹鋒,陳欣,劉標(biāo).小型化無人機(jī)實(shí)時飛行仿真系統(tǒng)結(jié)構(gòu)設(shè)計[J].兵工自動化,2014,33(6):27-31.
[4] 薛艷峰.基于Windows+RTX的便攜式無人機(jī)測試系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].四川兵工學(xué)報 2015,36(2):91-94.
[5] LIU C L,LEYLAND J W.Scheduling algorithm for multiprogramming in a hard real time environment[J].Journal of the Association for Computing Machinery (ACM),1973,20(1):40-61.
[6] LEUNG J Y T,WHITEHEAD J.On the complexity of fixed priority scheduling of periodic,real time tasks[Z].Performance Evaluation 2.4:237-250.
[7] 于寶堃,胡瑜,許國,等.基于.NET和ArcGIS Engine的GIS開發(fā)技術(shù)[J].四川兵工學(xué)報,2010,31(9):102-104.
[8] 仲筱艷,黃大慶.基于ArcGIS的無人機(jī)測控站地圖導(dǎo)航模塊設(shè)計[J].遙測遙控,2014,35(5):25-31.
[9] 羅志聰,孫奇燕.CRC-16算法與FPGA實(shí)現(xiàn)[J].四川兵工學(xué)報,2010,31(5):89-92.
[10] 李宏勝,李凡,趙嵐.多任務(wù)網(wǎng)絡(luò)通信在RTX下的實(shí)時性研究[J].組合機(jī)床與自動化加工技術(shù),2016(2):72-75.
(責(zé)任編輯楊繼森)
UAVGroundStationSystemBasedonRTX
ZHANG Wenhui1, CHEN Xin1, CAO Li Jia2,3, ZHENG Hui4
(1.College of Automation, Nanjing University of Aeronautics & Astronautics, Nanjing 210016, China;2.College of Automation & Information Engineering, Sichuan University of Science & Engineering, Zigong 643000, China; 3.Artificial Intelligence Key Laboratory of Sichuan Province, Zigong 643000, China; 4.Department of Control and Engineering, Rocket Force University of Engineering, Xi’an 710025, China)
Aiming at the actual requirements of UAV ground-based flight monitoring and control, a UAV ground station system based on the RTX real-time network has been developed. In the system, a combination of Windows and RTX is adopted within the stations, and the RT-TCP/IP real-time Ethernet protocol is used for the communication between the stations, so that the stations have the functions of data storage and playback, real-time attitude display, air route instruction upload and so on. The system is convenient for human-computer interaction with characteristics of real time and reliability. The practical results show that the system has good performance to fully meet the requirements of UAV ground stations, and has good expansibility.
UAV; ground control;Network; real-time
2017-04-11;
:2017-05-31
:人工智能四川省重點(diǎn)實(shí)驗(yàn)室開放基金項(xiàng)目(2016RYJ02);航空科學(xué)基金項(xiàng)目(201605U8002)
張文輝(1985—),男,碩士研究生,助理工程師,主要從事網(wǎng)絡(luò)化系統(tǒng)控制技術(shù)研究。
10.11809/scbgxb2017.09.019
format:ZHANG Wenhui, CHEN Xin, CAO Li Jia,et al.UAV Ground Station System Based on RTX[J].Journal of Ordnance Equipment Engineering,2017(9):91-94.
TJ02;TP
:A
2096-2304(2017)09-0091-04
本文引用格式:張文輝,陳欣,曹立佳,等.基于RTX的無人機(jī)地面站系統(tǒng)[J].兵器裝備工程學(xué)報,2017(9):91-94.