摘 要:介紹了小型無人機地面站系統的構成,地面站視頻接收機的工作原理和飛行數據借助于SRV100實現實時傳輸的過程。主要研究了地面站計算機在Windows環境下利用Visual C++6.0讀取串行口輸入的GPS定位數據,并對該數據進行處理和顯示的方法,在此基礎上設計開發了盤旋、自動回家功能模塊,達到了應用需求。
關鍵詞:小型無人機;GPS;VC++6.0;導航顯示系統
中圖分類號:TP393 文獻標識碼:B
文章編號:1004373X(2008)0509302
Design of Ground Station of Navigation Vision System for Mini-UAV
LI Nan,GE Weili
(Engineering College of Armed Police Force,Xi′an,710086,China)
Abstract:The paper introduces that the composition of autonomous navigation system for mini-UAV,the working principle of video receiver and the real-time transmission progress of aviation data recurring to SRV100.A method to receive and process GPS positioning data in ground computer using Visual C++6.0 under Windows environment is analyzed. Basing on that,the function module of circling and homing are designed and empoldered which is up to the application demand.
Keywords:mini-UAV;GPS VC++6.0;navigation vision system
1 引 言
小型無人機(Mini-UAV)通常指最大起飛重量小于10 kg的飛行器。由于Mini-UAV攜帶方便,操作簡易,成本低廉,因而具有廣泛的應用前景。小型無人機可以在多種氣象條件下執行空中偵察、目標搜索、精確打擊等任務。考慮到Mini-UAV軍事應用上的隱蔽性及保密性,單純采用人工遙控導航飛行是不夠的。
本文針對小型無人機的特點,在閱讀了有關GPS導航[1]資料的基礎上,設計開發了一個人工遙控導航與自主導航相結合的小型無人機地面站導航顯示系統。該系統具有飛行監視、記錄回放等功能。作為無人機地面站控制[2]的一個重要組成部分,導航顯示系統以其優越的性能(定位、顯示、路線優化等)更具廣泛的實用性。
2 系統構成
本地面站系統[3]由地面站設備和導航顯示軟件兩部分組成,如圖1所示。其中地面站設備由視頻接收機、視頻眼罩、天線組成。
2.1 導航顯示軟件
導航顯示軟件是運行在地面站計算機上的軟件系統,他是無人機飛行控制和管理系統的核心部件,主要完成飛行任務管理、任務設備管理、地面通訊、系統自檢等功能。飛行任務管理包括電子地圖的配準、航線規劃以及飛行狀態監視等。任務設備管理包括任務設備控制和任務設備狀態回送。
機載飛控系統[4]首先將GPS接收信號中自主導航需要的數據(經度、緯度和高度)讀取出來,然后根據用戶數據所確定的Mini-UAV當前位置和飛控系統存儲器中的預定航線自主導航[5]飛行。同時,機載飛控系統需要將用戶數據輸入到機載發送器發送到地面,經由單片機接口電路輸入到計算機中進行處理和顯示,以便于地面人員觀察Mini-UAV的自主導航飛行情況。
2.2 視頻接收
地面站視頻接收機是本無人機地面站系統機載視頻載荷與地面進行通訊的核心設備。他與飛機建立了兩條單向的無線通信線路:機載視頻信息和低速下行數據鏈。 視頻發射機將調制后的視頻模擬信號發射至地面站。地面站的視頻接收機經天線接收到視頻信號,經網絡伺服器將視頻信號進行解調,最終在地面站顯示器上顯示出來。如圖2所示。
3 通信服務程序
在地面站設計中,使用了一種具備路由能力的通訊服務程序——SRV100,該程序可以使無人機和地面站計算機之間實現組網功能。
地面站計算機和無人機之間通過無線數傳進行通信[6]。物理上,地面站計算機之間采用TCP/IP通訊(UDP協議),所以任意兩個設備之間都具有數據聯系的通路。邏輯上,分布于地面站計算機上的通訊服務程序將負責所有飛行數據幀轉發,利用用戶手動填寫的路由表,實現任意兩臺飛控設備之間的點對點或廣播式通訊。
4 GPS數據的采集與顯示
4.1 開發環境及方法
面向對象程序設計是軟件系統設計和實現的新方法。利用Visual C++ 6.0[7]可方便地生成各種菜單及美觀大方的圖形界面,軟件質量高且開發周期短。在Windows環境下開發GPS應用軟件,操作系統完全接管了各種硬件資源,不允許用戶直接控制串行口的中斷管理。以往,程序員只能通過數目繁多的API函數來控制串行口,此方法較復雜。Visual C++6.0為用戶提供了一個Active X控件Microsoft Comm Control(MSComm),利用他可以很方便地進行計算機串行口的通訊管理。
4.2 GPS的數據格式
本文用的是瑞士u-blox公司研制開發的LEA系列GPS接收機。他采用的是NMEA-0183通信標準模式;輸出數據采用ASCII字符碼;GPS接收機的輸入輸出語句均按串行通信協議;數據格式設為8個數據位,1個起始位,1個停止位,無奇偶校驗,波特率為9 600 b/s。GPS可輸出多種不同功能的數據語句,其中我們所感興趣的是GGA定位數據語句,其格式如下:
$GPGGA,033812.40,4020.736723,N,11647.862761,E,1,05,1.8,57.701,M,-6.434,M,,0000*48
格式中的主要數據定義如下:
4.3 數據的處理和顯示
本導航顯示軟件的核心部分包括位置信息欄和電子地圖兩部分。
位置信息欄用于實時顯示GPS接收機接收的數據,其中導航顯示軟件所需要的數據是GGA定位數據 中的經度、緯度和高度,自定義發送/接收的數據如下:4020.736723N11647.862761E57.70。
電子地圖中顯示了用戶飛行器的預定航點、預定航線、當前位置、實際航跡等。
4.4 編程實現
(1) 在程序中的某個窗體上,插入MSComm控件,設置其相應屬性值。在該控件的OnComm事件中,讀取接收緩沖區中的全部數據,并從讀出的數據中截取出有用的字符串和所需的一幀完整數據,將其賦值給三個文本框(TextBox)控件進行顯示和保存,并附加相應的按鈕(Button)控件,用以使地面站更好地控制無人機的飛行姿態。利用保存下來的數據在必要時可以復現Mini-UAV某次自主導航飛行的情況,以便分析自主導航飛行的效果。
(2) 根據已讀取出的緯度、經度和高度的值,利用圖片框(Picture Box)控件,將預先設定的飛行航線和自主導航的實際航線實時顯示出來,以便地面人員實時了解和分析Mini-UAV的自主導航飛行情況,如圖3所示。
(3) 針對應用需求,在設計開發時附加兩個復選框(Check Box),設置其相應屬性值,分別定義為盤旋和回家。利用Windows API通信函數對控件進行串口編程。當無人機達到目標航點時,選中復選框(盤旋),無人機收到指令將在目標航點上空盤旋飛行。在初始化無人機時,選中復選框(回家),當無人機飛出遙控范圍,失去所有指令時,無人機將自動執行預先在飛控系統中設置好的回家指令,朝著起飛地點自主飛行。
4.5 功能實現
通過試驗仿真和實際飛行證明,該導航顯示系統完成了如下功能:數據的實時傳輸顯示,電子地圖與實際航線的同步顯示與配準,在功能模塊上,開發了盤旋、回家功能,提高了無人機飛行的安全性與可靠性。
5 結 語
本文介紹了GPS的數據格式和自定義的發送/接收數據格式,主要討論了在Windows環境下利用Visual C++ 6.0開發小型無人機自主導航系統的GPS定位數據處理和顯示的方法。該方法具有簡單實用、開發周期短、效果好等優點。
參考文獻
[1]梁秋憧,程維明.超小型飛行器GPS自主導航算法的研究[J].無線電工程,2002,32(12):27-30.
[2]田峰,杜洪根.無人機地面站控制系統設計[J].計算機測量與控制,2005,13(11):1 237-1 239.
[3]張建琳.試飛監控與指揮系統的建立及應用[J].測控技術,2004,23(8):65-67,78.
[4]嚴晞雋,高金源,屠巴寧.小型無人機水平導航控制研究[J].飛行力學,2000,12(4):24-27.
[5]梁秋憧,程維明,潘志浩.超小型飛行器GPS自主導航系統地面站設計[J].機電一體化,2002(6):23-26.
[6]求是科技.Visual C++串口通信技術與工程實踐[M].北京:人民郵電出版社,2004.
[7]Bruce Eckel.C++編程思想[M].劉宗田,譯.北京:機械工業出版社,2000.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”