摘 要:航路規(guī)劃作為無人機(jī)執(zhí)行飛行任務(wù)的重要環(huán)節(jié),是無人機(jī)系統(tǒng)的重要組成部分。本文闡述了無人機(jī)航路規(guī)劃的需求,并對(duì)其中的關(guān)鍵模塊,飛行任務(wù)管理、基于ArcGIS Engine的可視化航路規(guī)劃的實(shí)現(xiàn)進(jìn)行了論述。
關(guān)鍵詞:軟件質(zhì)量保障;軟件缺陷預(yù)測(cè);軟件度量元;機(jī)器學(xué)習(xí);數(shù)據(jù)集預(yù)處理
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2018)03-0078-03
Research and Implementation of Visual UAV Route Planning Software
YUAN Yuan
(North China Institute of Computing Technology,Beijing 100083,China)
Abstract:UAV air route planning as the important step of flight mission,which is the kernel part of UAV system. In this paper,it provide the requirement of air route planning. For the system key models:flight mission management,ArcGIS Engine visualized air route planning achievement are discussed in detail.
Keywords:software quality assurance;software defect prediction;software metrics;machine learning;data set preprocessing
0 引 言
自從上個(gè)世紀(jì)無人機(jī)應(yīng)用于戰(zhàn)爭(zhēng),并在作戰(zhàn)、偵查、監(jiān)視等方面取得了顯著的效果后,諸多國家開始對(duì)無人機(jī)進(jìn)行研究[1]。無人機(jī)系統(tǒng)主要由飛行器及地面站組成,其中航路規(guī)劃是地面站的重要功能之一。
航跡規(guī)劃是指在特定約束條件下,尋找運(yùn)動(dòng)體從初始點(diǎn)到目標(biāo)點(diǎn)滿足某種性能指標(biāo)最優(yōu)的運(yùn)動(dòng)航跡。在軍事上航跡規(guī)劃主要是利用地形和敵情等信息,規(guī)劃得出飛行器生存概率和航程綜合指標(biāo)最優(yōu)的突防航跡[2]。
航路規(guī)劃軟件一般具有任務(wù)管理(含航路管理)、可視化航路規(guī)劃、基于地理信息系統(tǒng)的綜合顯示功能,并根據(jù)任務(wù)需求、地形信息,配合飛行器的性能來規(guī)劃合理的飛行路線。
任務(wù)管理是整個(gè)航路規(guī)劃系統(tǒng)的基礎(chǔ)。任務(wù)管理對(duì)飛行任務(wù)進(jìn)行記錄、編輯和可檢索查詢,是航路規(guī)劃中非常重要的一部分。主要可分為創(chuàng)建任務(wù)、編輯任務(wù)及查找任務(wù),可在系統(tǒng)中開辟一塊單獨(dú)的區(qū)域進(jìn)行飛行任務(wù)存放。飛行任務(wù)以文本格式進(jìn)行存放,為了方便操作,創(chuàng)建任務(wù)、編輯任務(wù)和查詢?nèi)蝿?wù)條件都以填空的形式進(jìn)行。
1 任務(wù)管理的設(shè)計(jì)與實(shí)現(xiàn)
1.1 創(chuàng)建任務(wù)
根據(jù)任務(wù)需求創(chuàng)建飛行任務(wù),通過填空形式填寫任務(wù)名稱、任務(wù)的詳細(xì)描述、任務(wù)所需的航路數(shù)據(jù)及任務(wù)存放的位置,建立文本文件,并將信息記錄于文本中。
1.2 編輯任務(wù)
由于任務(wù)需求的改動(dòng)或其他一些因素的變動(dòng),為了更好的下達(dá)飛行任務(wù),對(duì)已有的飛行任務(wù)內(nèi)容進(jìn)行選擇性修改,如任務(wù)名稱、任務(wù)描述及所包含的航路數(shù)據(jù);輸入所要修改的飛行任務(wù)路徑及名稱,獲取飛行任務(wù)的詳細(xì)信息,并將信息根據(jù)關(guān)鍵詞進(jìn)行分割提取,填到編輯任務(wù)界面的相應(yīng)空格中,空格處于可編輯狀態(tài),經(jīng)過編輯修改后,對(duì)飛行任務(wù)進(jìn)行更新保存。
1.3 查找任務(wù)
對(duì)指定位置的飛行任務(wù)根據(jù)名稱、時(shí)間、類型進(jìn)行查詢,將所有查詢結(jié)果以記錄的形式顯示于飛行任務(wù)表中,通過選中其中的飛行任務(wù)記錄,獲取飛行任務(wù)的路徑及名稱,打開并讀取信息進(jìn)行顯示,方便快速查看飛行任務(wù)。
2 航路規(guī)劃的設(shè)計(jì)與實(shí)現(xiàn)
航路規(guī)劃功能模塊是整個(gè)航路規(guī)劃軟件的關(guān)鍵部分,無人機(jī)航路規(guī)劃一般分為兩個(gè)層次:第一層次是整體參考航跡規(guī)劃,即對(duì)任務(wù)需求、安全需求和戰(zhàn)略考慮等多方面實(shí)現(xiàn)整體把握,從而進(jìn)行飛行航路整體規(guī)劃;第二層次是局部航跡動(dòng)態(tài)優(yōu)化,即由于局部的一些小限制、小威脅,對(duì)局部航路進(jìn)行修改優(yōu)化[3]。根據(jù)各種因素,從整體上進(jìn)行了航路數(shù)據(jù)創(chuàng)建,并對(duì)創(chuàng)建的航路數(shù)據(jù)進(jìn)行局部修改調(diào)整,以完善數(shù)據(jù)。主要可分為創(chuàng)建航路規(guī)劃、編輯航路規(guī)劃及查看航路規(guī)劃。
3 創(chuàng)建航路規(guī)劃數(shù)據(jù)
創(chuàng)建航路規(guī)劃數(shù)據(jù)是航路規(guī)劃模塊的主要功能,也是第一層次整體參考航跡規(guī)劃的主要體現(xiàn)。可采用兩種方式來創(chuàng)建航路規(guī)劃數(shù)據(jù):地圖顯示區(qū)域直接繪制航路規(guī)劃數(shù)據(jù)和通過填寫表格經(jīng)緯度及相對(duì)距離來創(chuàng)建航路規(guī)劃數(shù)據(jù)。如圖1所示。
在地圖顯示區(qū)域直接繪制航路規(guī)劃數(shù)據(jù)需要借助于ArcGIS Engine組件庫來實(shí)現(xiàn),使航路規(guī)劃數(shù)據(jù)的創(chuàng)建更加直觀。
繪制創(chuàng)建航路規(guī)劃數(shù)據(jù)的流程,如下圖2所示。
輸入數(shù)據(jù):將基礎(chǔ)地圖數(shù)據(jù)、高程數(shù)據(jù)和規(guī)避區(qū)數(shù)據(jù)添加到ArcGIS Engine的地圖顯示組件中,為繪制創(chuàng)建航路規(guī)劃數(shù)據(jù)提供基礎(chǔ);
獲取活躍點(diǎn)位置信息:獲取地圖顯示控件中活躍點(diǎn)的經(jīng)緯度位置信息;
相對(duì)距離的計(jì)算:在確定起始航點(diǎn)的基礎(chǔ)上,計(jì)算活躍點(diǎn)與起始航點(diǎn)的相對(duì)距離;
確定航點(diǎn):在經(jīng)緯度和相對(duì)距離及規(guī)避數(shù)據(jù)的來確定航點(diǎn);
航點(diǎn)的地理信息獲取:主要包括經(jīng)緯度位置信息、高程信息及相對(duì)位置距離;
航路數(shù)據(jù)的繪制顯示:將航點(diǎn)、航線繪制于ArcGIS Engine的地圖顯示組件中;
繪制創(chuàng)建航路數(shù)據(jù)的關(guān)鍵點(diǎn)為地理信息獲取和航路數(shù)據(jù)繪制顯示。
在創(chuàng)建航路規(guī)劃關(guān)鍵點(diǎn)時(shí)獲取其地理信息較為關(guān)鍵,主要包括經(jīng)緯度、高程及相對(duì)距離。在此包含活躍點(diǎn)地理位置的獲取、相對(duì)距離的計(jì)算、確認(rèn)航點(diǎn)后高程信息的獲取。創(chuàng)建航路規(guī)劃數(shù)據(jù)時(shí)地圖顯示區(qū)域一般包含基礎(chǔ)數(shù)據(jù)層和高程數(shù)據(jù)層及規(guī)避數(shù)據(jù)圖層。具體操作步驟如下:
(1)活躍點(diǎn)地理位置的獲取。通過ArcGIS Engine中Display庫的接口在基礎(chǔ)數(shù)據(jù)層中獲取航路規(guī)劃關(guān)鍵點(diǎn)的經(jīng)緯度位置,并顯示于底部狀態(tài)欄的左側(cè),單位為度;
(2)相對(duì)距離的計(jì)算。在確定了起始航點(diǎn)后,在尋找下一航點(diǎn)過程中,即時(shí)計(jì)算活躍點(diǎn)與起始航點(diǎn)之間的相對(duì)距離。為了航路數(shù)據(jù)的準(zhǔn)確性,本軟件采用墨卡托投影方法,將經(jīng)緯度轉(zhuǎn)變成相對(duì)距離,在繪制創(chuàng)建航路規(guī)劃數(shù)據(jù)時(shí)顯示于底部狀態(tài)欄的右側(cè),單位為米;
(3)航點(diǎn)高程信息的獲取。在確定了航點(diǎn),即確定其坐標(biāo)位置后,根據(jù)坐標(biāo)位置來獲取高程數(shù)據(jù)圖層中相應(yīng)的高程信息;高程信息在輔助窗口中顯示,單位為米。
航路數(shù)據(jù)繪制顯示主要采用ArcGIS Engine組件庫的組件和接口庫來實(shí)現(xiàn),用到的組件是MapControl組件,接口庫主要有Carto、Display、Geometry等,具體介紹如下:
MapControl組件:用來顯示二維數(shù)據(jù)的組件;
Carto庫:主要是用來繪制圖像的接口庫,比如繪制航路規(guī)劃數(shù)據(jù)時(shí)用到的點(diǎn)要素、線要素、標(biāo)簽要素、要素容器等接口都來自于此;
Display庫:用來顯示的接口庫。比如點(diǎn)、線的樣式,地圖的刷新、區(qū)域顯示等接口;
Geometry庫:是矢量圖形庫,如點(diǎn)、線等。
在地圖顯示區(qū)域繪制航路規(guī)劃數(shù)據(jù)是獲得航路的關(guān)鍵點(diǎn),通過Geometry庫來記錄其點(diǎn)、線,然后將點(diǎn)、線矢量圖形信息轉(zhuǎn)換為Carto庫中相應(yīng)的要素,并通過Display庫來顯示出來。
表格創(chuàng)建航路規(guī)劃數(shù)據(jù),即手動(dòng)在航路關(guān)鍵點(diǎn)中添加航點(diǎn)信息。在起始點(diǎn)需填寫經(jīng)緯度位置、高程信息,其他關(guān)鍵點(diǎn)可填寫經(jīng)緯度位置或與起點(diǎn)的相對(duì)距離、高程信息。在填表過程中系統(tǒng)自動(dòng)對(duì)經(jīng)緯度與相對(duì)距離之間進(jìn)行相應(yīng)的轉(zhuǎn)變計(jì)算。
編輯航路數(shù)據(jù)功能模塊是整個(gè)航路規(guī)劃的重要部分,它對(duì)航路規(guī)劃數(shù)據(jù)進(jìn)行微調(diào)或改動(dòng),第二層次的局部航跡動(dòng)態(tài)優(yōu)化主要在此完成,對(duì)現(xiàn)有航路規(guī)劃數(shù)據(jù)的航點(diǎn)信息進(jìn)行修改。
編輯航路規(guī)劃數(shù)據(jù)功能通過對(duì)航路關(guān)鍵點(diǎn)信息表中的相關(guān)信息進(jìn)行修改來完成,如變動(dòng)航點(diǎn)的經(jīng)緯度、相對(duì)距離、飛行高度、添加航點(diǎn)、刪除航點(diǎn)等功能,在改動(dòng)航點(diǎn)表后,軟件會(huì)根據(jù)現(xiàn)在數(shù)據(jù)信息對(duì)地圖顯示區(qū)域的航線進(jìn)行變動(dòng),具體如下:
(1)數(shù)據(jù)同步。在編輯航路規(guī)劃數(shù)據(jù)時(shí),表信息與地圖顯示信息的同步,表中信息的同步是本模塊的關(guān)鍵點(diǎn)。
(2)表與圖信息同步。當(dāng)表中經(jīng)緯度發(fā)生變化時(shí),將相應(yīng)點(diǎn)到經(jīng)緯度數(shù)據(jù)進(jìn)行記錄,并根據(jù)新的信息,借助ArcGIS Engine組件及接口(同上)進(jìn)行重新繪制。
(3)表中信息同步。表中經(jīng)緯度信息與相對(duì)距離之間聯(lián)動(dòng),飛行高度與高程之間聯(lián)動(dòng),即變動(dòng)其中一項(xiàng),就會(huì)觸發(fā)與其聯(lián)動(dòng)的信息,進(jìn)行重新計(jì)算,隨時(shí)保證航路規(guī)劃點(diǎn)信息的實(shí)時(shí)性,使其可根據(jù)信息及時(shí)進(jìn)行修改。
保存航路數(shù)據(jù)是一個(gè)關(guān)鍵且重要的環(huán)節(jié),在創(chuàng)建航路規(guī)劃數(shù)據(jù)和編輯航路規(guī)劃數(shù)據(jù)后要將數(shù)據(jù)進(jìn)行保存,航路數(shù)據(jù)無偏差的保留是飛行器準(zhǔn)確執(zhí)行飛行任務(wù)的前提,根據(jù)飛控協(xié)議將航路規(guī)劃數(shù)據(jù)保存為.txt格式。
查看航路規(guī)劃數(shù)據(jù),對(duì)已有的航路數(shù)據(jù)通過名稱、創(chuàng)建時(shí)間或修改時(shí)間進(jìn)行查詢,將所有結(jié)果顯示于航路規(guī)劃數(shù)據(jù)查詢記錄表中,通過選中其中的航路規(guī)劃數(shù)據(jù)記錄來獲取航路規(guī)劃數(shù)據(jù),并讀取信息,將其顯示出來,方便快速查看航路規(guī)劃數(shù)據(jù)的基本信息。
地理視圖主要為航路規(guī)劃服務(wù),如添加數(shù)據(jù)到顯示區(qū)域,對(duì)數(shù)據(jù)進(jìn)行放大、縮小、漫游、鷹眼等視圖功能,本模塊主要依靠ArcGIS Engine技術(shù)進(jìn)行實(shí)現(xiàn)。
添加數(shù)據(jù),即將數(shù)據(jù)根據(jù)其格式添加到ArcGIS Engine的地圖顯示組件(MapControl)中。放大、縮小、漫游等視圖功能通過對(duì)ArcGIS Engine中的ToolBar中的工具進(jìn)行重裝調(diào)用來實(shí)現(xiàn),采用兩個(gè)地圖顯示組件(MapControl)進(jìn)行數(shù)據(jù)同步,以實(shí)現(xiàn)鷹眼功能。
4 結(jié) 論
本文采用ArcGIS Engine技術(shù)進(jìn)行可視化的航路規(guī)劃,可直觀地進(jìn)行航路規(guī)劃。根據(jù)任務(wù),借助地理視圖輔助,對(duì)航路規(guī)劃數(shù)據(jù)進(jìn)行繪制、修改、保存及查找等操作,可使航路規(guī)劃更加準(zhǔn)確、合理。隨各種數(shù)據(jù)信息及電子技術(shù)的發(fā)展,可視化航路規(guī)劃軟件會(huì)更加符合要求。
參考文獻(xiàn):
[1] 高曉靜,智勇,陳曉峰.無人機(jī)任務(wù)規(guī)劃系統(tǒng)體系設(shè)計(jì) [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(10):1-5.
[2] 劉麗峰,張樹清,秦喜文.利用Voronoi圖與GIS規(guī)劃三維飛行航跡 [J].計(jì)算機(jī)工程與設(shè)計(jì)Computer Engineering and Design,2010,31(4):805-808.
[3] 高暉,陳欣,夏云程.無人機(jī)航路規(guī)劃研究 [J].南京航空航天大學(xué)學(xué)報(bào),2001,33(2):135-138.
作者簡介:遠(yuǎn)遠(yuǎn)(1982.10-),女,漢族,北京人,工程師,碩士。研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。