宋海薇+李瑜強
摘 要
針對無人直升機航跡規(guī)劃與監(jiān)控的實際需求,提出基于MapX組件開發(fā)一套無人直升機航跡系統(tǒng),介紹了系統(tǒng)的模塊組成及數(shù)字地圖平臺的構(gòu)建方法,研究了航跡規(guī)劃策略、航點調(diào)整及航線發(fā)送技術(shù),分析了航跡動態(tài)顯示需要解決的關(guān)鍵問題,飛行試驗表明系統(tǒng)實現(xiàn)了預(yù)定功能,且表現(xiàn)出良好的可靠性。
【關(guān)鍵詞】MapX 無人直升機 航跡規(guī)劃 航跡監(jiān)控
無人直升機全自主飛行需提前對無人機的航跡進行規(guī)劃,包括航跡中各關(guān)鍵航點的經(jīng)緯度位置信息、高度信息以及對任務(wù)設(shè)備的操作等。操作人員需從地圖中逐點查找、計算航點,并手工將得到的航跡數(shù)據(jù)輸入無人機系統(tǒng)中。這往往需要花費操作人員數(shù)小時到數(shù)天的時間,一旦航跡發(fā)生變動,由此帶來的不便是不言而喻的。
為了解決上述問題,開發(fā)一套適用于無人直升機的航跡系統(tǒng)是必要的。利用航跡系統(tǒng),操作人員可以直接在數(shù)字地圖上進行航跡的規(guī)劃,能夠?qū)崟r、便捷地得到數(shù)字地圖中任意一點的多種信息,并且可自動計算航點位置。同時,航跡系統(tǒng)還能夠?qū)崟r地跟蹤監(jiān)控?zé)o人直升機航跡。
1 系統(tǒng)開發(fā)環(huán)境及功能模塊
1.1 MapX組件
系統(tǒng)采用MapInfo公司提供的地理信息系統(tǒng)(Geographical Information System,GIS)處理控件MapX實現(xiàn)數(shù)字地圖的縮放、移動、信息顯示等功能。MapX是一種基于Windows操作系統(tǒng)的標(biāo)準(zhǔn)組件,能支持絕大多數(shù)標(biāo)準(zhǔn)的可視化開發(fā)環(huán)境,如Visual C++、Visual Basic、Delphi和PowerBuiler等,同時其對使用者的GIS專業(yè)背景要求不高,使用標(biāo)準(zhǔn)化語言、明確的對象模型、大量的方法和事件、高效的屬性頁和默認值等功能,使得用戶可以輕松的在應(yīng)用程序中加入強大的制圖功能。本系統(tǒng)應(yīng)用程序以Visual C++作為開發(fā)語言。
1.2 系統(tǒng)方案
根據(jù)無人直升機試飛工作需求,系統(tǒng)由航跡規(guī)劃模塊、航跡顯示模塊、航跡存儲模塊、航跡回放模塊、數(shù)據(jù)通訊模塊、數(shù)據(jù)處理模塊組成,如圖1所示。
航跡規(guī)劃模塊主要用于飛行前路徑規(guī)劃,操作人員結(jié)合飛行區(qū)域的地理信息直接在地圖上點選及拖拽航跡點形成飛行航跡,系統(tǒng)通過飛行性能約束條件對航跡進行可行性判斷,最終確定飛行航跡,并將規(guī)劃數(shù)據(jù)通過地面指揮控制設(shè)備發(fā)送給機載導(dǎo)航管理計算機。
航跡顯示模塊可根據(jù)預(yù)設(shè)航點信息和遙測參數(shù)同步顯示理論航跡和實時飛行航跡,同時把理論航跡和飛行航跡進行比較,并將比較結(jié)果以數(shù)值形式呈現(xiàn)出來。
航跡存儲模塊將經(jīng)緯度、高度、速度、航向信息實時記錄在ACCESS數(shù)據(jù)庫中,供后續(xù)分析及航跡回放時使用。
航跡回放模塊調(diào)用航跡存儲模塊中的數(shù)據(jù)實現(xiàn)飛行航跡回放。
數(shù)據(jù)通訊模塊通過串口通信技術(shù)與地面指揮控制設(shè)備進行通訊,地面指揮控制設(shè)備再經(jīng)無線鏈路與機載設(shè)備進行通訊。
數(shù)據(jù)處理模塊用于完成遙測參數(shù)解幀以及預(yù)設(shè)航點信息組幀。
2 系統(tǒng)關(guān)鍵技術(shù)
2.1 數(shù)字地圖平臺構(gòu)建
航跡系統(tǒng)的開發(fā)首先需要構(gòu)建一個數(shù)字地圖平臺,在平臺上實現(xiàn)基本數(shù)字地圖操作。系統(tǒng)采用飛行區(qū)域的高清數(shù)字正設(shè)影像圖(Digital Orthophoto Map, DOM)作為背景地圖,通過MapX組件將其嵌入系統(tǒng)主視圖。
基于MapX組件的數(shù)字地圖平臺構(gòu)建方法如下:
(1)安裝MapX后在Visual C++創(chuàng)建的項目中添加MapX.cpp和MapX.h文件;
(2)在主視圖頭文件中包含MapX.h頭文件,在主視圖類中添加成員變量CMapX m_ctrlMapX;
(3)聲明表示用于MapX的控件ID常數(shù),名稱為“IDC_MAP”;
(4)在創(chuàng)建視圖時創(chuàng)建該控件:
if(!m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(100,0,1270,670), this, IDC_MAP))
return -1; //創(chuàng)建MapX組件
m_ctrlMapX.GetLayers().Add("map.gst")
//顯示默認路徑下的地圖
MapX組件在本應(yīng)用中主要實現(xiàn)以下功能:
(1)背景地圖設(shè)置以及地圖信息獲取;
(2)地圖的縮放、平移;
(3)文字、圖標(biāo)、線條等圖元的添加、刪除和移動;
(4)測距工具、圖元拖拽工具的創(chuàng)建;
系統(tǒng)在MapX組件提供的上述功能基礎(chǔ)上,實現(xiàn)航跡規(guī)劃和航跡顯示等各模塊的開發(fā)。
2.2 航跡規(guī)劃
2.2.1 規(guī)劃策略
系統(tǒng)采用人機交互的航跡規(guī)劃模式,結(jié)合數(shù)字地圖上的地理信息直接在圖上點選航跡點,并通過計算機完成可行性計算。這種方式在數(shù)字地圖上進行航跡規(guī)劃,能直觀地規(guī)避地形障礙,并且通過MapX提供的地圖信息獲取功能實現(xiàn)航點點選功能,避免了手工錄入航點帶來的不便,通過系統(tǒng)自動計算來完成航跡可行性判斷,極大地減小了手工計算的工作量。規(guī)劃策略如圖2所示。
(1)點擊數(shù)字地圖上相應(yīng)位置確定航跡點,若需調(diào)整其位置,直接拖至其他位置;
(2)為航跡點設(shè)置飛行特征(如懸停點、過渡點、途經(jīng)點、加速點、減速點)及飛行速度等屬性;
(3)計算機對所設(shè)置航跡自動進行飛行可行性判斷(包括根據(jù)某飛行速度下的轉(zhuǎn)彎半徑判斷轉(zhuǎn)彎角是否復(fù)合要求,根據(jù)飛行速度判斷航段長度是否滿足加減速要求等);
(4)若計算結(jié)果不可行,計算機給出相應(yīng)提示,進入步驟(5),若計算結(jié)果可行,進入步驟(6);
(5)用戶根據(jù)提示對航跡進行修改后進入步驟(3);
(6)將規(guī)劃結(jié)果發(fā)送給機載導(dǎo)航管理計算機。
2.2.2 航跡調(diào)整
系統(tǒng)采用拖拽航跡點的方式進行航跡調(diào)整,如圖3所示,同時自動計算航跡屬性并用列表的形式顯示,如圖4所示,根據(jù)航跡點位置的調(diào)整,航跡列表將進行實時更新。這種航跡調(diào)整方式方便、直觀,免去了航跡規(guī)劃過程中人工計算的部分,極大地縮短了航跡規(guī)劃的時間。
2.2.3 航跡發(fā)送
系統(tǒng)將各航點信息組成一幀20字節(jié)的數(shù)據(jù),結(jié)構(gòu)見表1,經(jīng)串口發(fā)送至地面指揮控制設(shè)備并按通訊協(xié)議進行組幀,并通過無線數(shù)據(jù)鏈發(fā)送給機載導(dǎo)航管理計算機,導(dǎo)航管理計算機接到航點信息后進行原碼反饋,航跡系統(tǒng)將反饋信息與發(fā)送信息進行比對確認正確后發(fā)送下一航點信息,直至所有航點信息發(fā)送完畢。
2.3 航跡動態(tài)顯示
航跡動態(tài)顯示的關(guān)鍵問題是更新航路信息時,若每兩個點用一個線圖元顯示,整條航線將由上萬條微小線圖元組成(遙測數(shù)據(jù)采樣速率為12.5幀/s),勢必增加系統(tǒng)負擔(dān),若整條航線用一個線圖元表示,每接收一個采樣點將線圖元全局更新一次,將導(dǎo)致地圖整體閃爍,影響系統(tǒng)視覺效果。為解決上述問題,系統(tǒng)對航跡的更新采用線圖元局部更新的方法,即僅對原有線圖元進行部分延長,而非整體更新并且線圖元個數(shù)始終保持一個。這種方式能非常有效的克服閃爍問題,減輕系統(tǒng)負擔(dān)。
航跡動態(tài)顯示的另一問題是在無人操作系統(tǒng)的情況下,運動主體可能移動超出視窗范圍。這里采用ZoomTo的地圖對中方法來解決這個問題,一旦運動主體超出視窗范圍,把地圖以當(dāng)前縮放率對中到運動主體當(dāng)前坐標(biāo)處,這樣就保證了運動主體始終處于視窗范圍。
3 系統(tǒng)應(yīng)用
通過對系統(tǒng)進行測試及使用,證明該系統(tǒng)運行可靠,能夠滿足無人直升機試飛過程中的航跡規(guī)劃及實時航跡監(jiān)控需要。圖5為航跡規(guī)劃功能應(yīng)用界面,圖6為航跡監(jiān)控功能應(yīng)用界面。
4 結(jié)束語
本系統(tǒng)在航跡規(guī)劃過程中用計算機智能判斷代替了繁瑣的人工計算,且采用點選和拖拽的方式確定航跡點位置,免去了手動輸入帶來的不便,操作方便直觀,規(guī)劃速度快,交互性強。另外系統(tǒng)構(gòu)建了飛行航跡實時監(jiān)控環(huán)境,根據(jù)實時遙測數(shù)據(jù)在數(shù)字地圖上繪制無人直升機飛行軌跡,并可與理論航跡進行對比,實時掌握無人直升機的飛行情況,為地面飛行操縱提供分析依據(jù)。隨著無人直升機飛行性能的不斷提高,本系統(tǒng)航跡可行性判斷條件也將不斷完善與改進,航跡規(guī)劃的智能性與優(yōu)化性也還須進一步提高。
參考文獻
[1]駱訓(xùn)紀(jì),朱紀(jì)洪,孫增圻.無人機航跡系統(tǒng)研究[J].測控技術(shù),2002,21(11):1-4.
[2]孫云春,李建海.MapX控件技術(shù)在模擬導(dǎo)航仿真系統(tǒng)中的應(yīng)用[J].微計算機信息,2008(24):145-147.
[3]尹旭日,張武軍.Visual C++環(huán)境下MapX的開發(fā)技術(shù)[M].北京:冶金工業(yè)出版社,2009:33-34.
[4]李華超,吳潛,陳春俊,等.基于BCB&MapX的無人機航路規(guī)劃與監(jiān)控系統(tǒng)實現(xiàn)[J].計算機應(yīng)用,2007,27(09):2315-2318.
[5]劉波,盧京潮,吳益明.無人機地面導(dǎo)航站系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機測量與控制,2006,14(12):1714-1716.