無(wú)人機(jī)地面站與航跡的研究_第1頁(yè)
無(wú)人機(jī)地面站與航跡的研究_第2頁(yè)
無(wú)人機(jī)地面站與航跡的研究_第3頁(yè)
無(wú)人機(jī)地面站與航跡的研究_第4頁(yè)
無(wú)人機(jī)地面站與航跡的研究_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

近年來(lái),無(wú)人機(jī)的研究和應(yīng)用成為一個(gè)熱點(diǎn)。無(wú)人機(jī)具有自動(dòng)起飛、駕駛、導(dǎo)航與定位,以及信息與傳送等多項(xiàng)功能,尤其適合代替人在、惡劣和極限的環(huán)境下完成特定的工作和任務(wù)。因此無(wú)人機(jī)在軍事、航空航天、測(cè)繪無(wú)人機(jī)地面站是無(wú)人機(jī)系統(tǒng)的重要組成部分,承擔(dān)著與無(wú)人機(jī)的實(shí)時(shí)通信、數(shù)據(jù)與分析、地圖定位,以及任務(wù)規(guī)劃和管理等多種功能,為無(wú)人機(jī)成功完成飛行任務(wù)提供了保證。本文的研究?jī)?nèi)容包括無(wú)人機(jī)地面站軟件的設(shè)計(jì),以及基于勢(shì)能函數(shù)的航跡規(guī)劃算法的研究。本完成的主要工作包括:無(wú)人機(jī)地面站軟件的設(shè)計(jì)。本文開發(fā)了一款無(wú)人機(jī)地面站軟件,主要實(shí)現(xiàn)了以下幾個(gè)方面的功能。第一,地面站與無(wú)人機(jī)的實(shí)時(shí)通訊,包括對(duì)無(wú)人機(jī)飛行信息的接收,以及向無(wú)人機(jī)發(fā)送控制命令等;第二,地面站數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì),本文基于MYSQL數(shù)據(jù)庫(kù),實(shí)現(xiàn)了對(duì)無(wú)人機(jī)飛行信息的、規(guī)劃航跡信息的與修改,以及通過(guò)查詢功能實(shí)現(xiàn)的無(wú)人機(jī)航跡回放等功能;第三,利用MapX電子地圖,實(shí)現(xiàn)對(duì)無(wú)人機(jī)的定位以及導(dǎo)航等功能;最后通過(guò)實(shí)驗(yàn)聯(lián)基于勢(shì)能函數(shù)的航跡規(guī)劃算法的設(shè)計(jì)。為使無(wú)人機(jī)系統(tǒng)提高自主控制和執(zhí)行任務(wù)能力,實(shí)現(xiàn)無(wú)人機(jī)地面站的航跡規(guī)劃功能是一個(gè)關(guān)鍵問(wèn)題。本文基于勢(shì)能函數(shù)的設(shè)計(jì)方法,設(shè)計(jì)了一種無(wú)人機(jī)航跡規(guī)劃算法。該算法是在已知的環(huán)境中,根據(jù)無(wú)人機(jī)距離目標(biāo)點(diǎn)以及物的距離,構(gòu)建能量分布場(chǎng),并通過(guò)設(shè)計(jì)時(shí)變控制增益的規(guī)劃算法,使得無(wú)人機(jī)漸近達(dá)到目標(biāo)點(diǎn),同時(shí)保證無(wú)人機(jī)的速度、加速度滿足其機(jī)動(dòng)性能要求。本文通過(guò)基于Lpuov穩(wěn)定性理論的/分析,證明了所航跡規(guī)劃算法的穩(wěn)定性,并由驗(yàn)證了航跡規(guī)劃算法的有效性。/:無(wú)人機(jī),地面站,數(shù)據(jù)庫(kù),航跡規(guī)劃,

數(shù)值仿真Inrecentyears,theresearchandapplicationofUAVShas hasmanyfeatures,forexampleautomatictakeo?,automaticdriving,navigationandposi-aswellascommercialareas.UAVgroundstationisanimportantpartoftheUAVsystem,itisresponsibleforcommunicationwiththeUAV,e?ectivetransmissionofdata,ysisofthedisyandcontroloftheUAV,soitensurethesuccessfulrunningoftheentireUAVsystem.summarizedasfollows:ThedesignoftheUAVgroundstationsoftwareimplementsalotoffunctions.First,thegroundstationandtheUAVreal-timecommunication,itincludesUAVdatareception,aswellassendingcontrolcommandstotheUAVthroughgroundstations;second,theuseofMYSQLdatabase,itincludesUAVdatastorage,aswellasnningpositionstorageandquery;Third,theoperationofMapXelectronicmap,itincludesisdesignedinthispaper,anditisbasedonthepotentialenergyfunction.InaknowntheysisofLyapunovstabilitytheory,itisprovedthestabilityoftheproposedpathnningalgorithm,andverifiedthee?ectivenessoftheflightpathnningalgorithmsby Numerical ································· 目 緒 課題背景與研究意 國(guó)內(nèi)外研究現(xiàn) 無(wú)人機(jī)地面站的研究現(xiàn)狀················ 無(wú)人機(jī)航跡規(guī)劃的研究現(xiàn)狀···············本文的主要研究?jī)?nèi)容和章節(jié)安排···········本文主要研究?jī)?nèi)容····················本文的章節(jié)安排····················· 無(wú)人機(jī)地面站軟件架構(gòu)············· 無(wú)人機(jī)飛行控制系統(tǒng)概述··············· 無(wú)人機(jī)與地面站的通信·················無(wú)線網(wǎng)絡(luò)傳輸技術(shù)····················數(shù)傳電臺(tái)通 無(wú)人機(jī)地面站的軟件設(shè) 地面站軟件的功能模 無(wú)人機(jī)地面站的軟件結(jié) ········ 地面站與無(wú)人機(jī)的通信 地面站無(wú)線網(wǎng)絡(luò)通信的實(shí)現(xiàn) 地面站串口通信 無(wú)人機(jī)地面站數(shù)據(jù)庫(kù)的設(shè)計(jì) 數(shù)據(jù)庫(kù)的選擇 地面站數(shù)據(jù)庫(kù)的結(jié)構(gòu) 地面站數(shù)據(jù)庫(kù)的建立和 地面站數(shù)據(jù)庫(kù)的備份 MapX電子地圖的二次開發(fā) MapInfoMapX概述 地面站電子地圖的創(chuàng)建 電子地圖對(duì)無(wú)人機(jī)進(jìn)行定位 電子地圖航跡規(guī)劃 飛行數(shù)據(jù)顯示 航跡回放功能 本章小結(jié) 無(wú)人機(jī)的航跡規(guī)劃算法設(shè)計(jì) 前言 問(wèn)題提出 無(wú)人機(jī)運(yùn)動(dòng)學(xué)模型 航跡規(guī)劃算法設(shè)計(jì) 改進(jìn)算法 穩(wěn)定性分析 數(shù)值仿真 不加速度修正的航跡規(guī)劃算法 加入速度修正的航跡規(guī)劃算法 本章小結(jié) 功能驗(yàn)證 無(wú)人機(jī)地面站結(jié)構(gòu) 無(wú)人機(jī)各模塊的功能驗(yàn)證 數(shù)據(jù) 的功能驗(yàn)證 電子地圖定位和導(dǎo)航功能驗(yàn) 本章小結(jié) 總結(jié)與展望 參考文獻(xiàn) 和參加科研情況說(shuō)明 致 緒課題背景與研究無(wú)人駕駛飛機(jī)(mndrilehicle,簡(jiǎn)稱無(wú)人機(jī),最早出現(xiàn)于二十世紀(jì)初,后來(lái)因軍事需要而逐漸發(fā)展起來(lái)。鑒于無(wú)人機(jī)的許多優(yōu)點(diǎn),比如無(wú)人機(jī)的低成本、零傷亡、機(jī)動(dòng)性好、適應(yīng)性好等,使其在軍事上得到了廣泛的應(yīng)用,主要用于偵察、監(jiān)視以及等方面;同時(shí)在民用方面,無(wú)人機(jī)也得到了普遍應(yīng)用,可用于氣象觀測(cè)、高壓輸電線路的巡線和森林防火等方面?;跓o(wú)人機(jī)在多個(gè)領(lǐng)域的用途及優(yōu)勢(shì),吸引了越來(lái)越多的國(guó)內(nèi)外科研機(jī)構(gòu)的關(guān)注與投入。自上個(gè)世紀(jì)九十年代以來(lái),隨著微處理器技術(shù)、傳感技術(shù)、通信等技術(shù)的飛速進(jìn)步,加之控制理論的發(fā)展,使得無(wú)人機(jī)系統(tǒng)的研究有了突破性的進(jìn)展,比如、英國(guó)等一些國(guó)家已經(jīng)有較先進(jìn)的無(wú)人機(jī)投入使用,因此無(wú)人機(jī)已逐漸成為一個(gè)研究熱點(diǎn)[]。無(wú)人機(jī)系統(tǒng)包括無(wú)人機(jī)本體、無(wú)人機(jī)飛行控制系統(tǒng)、數(shù)據(jù)通信系統(tǒng)和地面站等幾個(gè)部分。無(wú)人機(jī)地面站是無(wú)人機(jī)系統(tǒng)的重要組成部分,無(wú)人機(jī)由于其無(wú)人駕駛的特點(diǎn),使得其地面站的控制尤為重要。地面站的任務(wù)包括無(wú)人機(jī)數(shù)據(jù)的接收與處理,無(wú)人機(jī)飛行狀態(tài)以及顯示功能,無(wú)人機(jī)的定位功能,以及無(wú)人機(jī)的導(dǎo)航控制等功能。因此,設(shè)計(jì)一款高效的地面站軟件對(duì)幫助無(wú)人機(jī)完成任務(wù)、提高應(yīng)用價(jià)值具有重要意義。與此同時(shí),通過(guò)無(wú)人機(jī)的航跡規(guī)劃算法的研究,能夠提高無(wú)人機(jī)的自主飛行和執(zhí)行任務(wù)的能力,因此本課題的研究具有重要的實(shí)際應(yīng)用意義。國(guó)內(nèi)外研究現(xiàn)目前無(wú)人機(jī)系統(tǒng)的研究主要是以無(wú)人機(jī)和地面站配合的控制結(jié)構(gòu),地面站計(jì)算機(jī)由于其計(jì)算功能強(qiáng)大,可以為無(wú)人機(jī)數(shù)據(jù)的實(shí)時(shí)處理提供保證。下面分別從無(wú)人機(jī)地面站和航跡規(guī)劃算法兩個(gè)方面介紹目前的研究狀況。無(wú)人機(jī)地面站的研究無(wú)人機(jī)地面站(GCS:GroundControlSystem),組成部分,無(wú)人機(jī)按結(jié)構(gòu)劃分主要有固定翼和旋翼式兩大類型,因此針對(duì)不同型號(hào)和不同用途的無(wú)人機(jī),有不同的地面站與其相匹配,下面分別在無(wú)人機(jī)地面站功能和架構(gòu)設(shè)計(jì)上介紹地面站的研究現(xiàn)狀。無(wú)人機(jī)地面站根據(jù)不同的任務(wù)需求,實(shí)現(xiàn)的功能也有所不同,分析目前已有的無(wú)人機(jī)地面站結(jié)構(gòu),主要的功能大體可以分為通信模塊、數(shù)據(jù)和處理模塊、定位導(dǎo)航模塊、飛行控制模塊等。地面站的通信模塊為地面站與無(wú)人機(jī)之間提供了可靠的通信,包括數(shù)據(jù)的上傳與接收。相對(duì)于較小范圍內(nèi)飛行的無(wú)人機(jī),可以采用無(wú)線局域網(wǎng)或無(wú)線數(shù)傳電臺(tái)進(jìn)行通信。千葉大學(xué)[]的無(wú)人機(jī)系統(tǒng)采用了i-i無(wú)線網(wǎng)絡(luò)進(jìn)行通信,其無(wú)人機(jī)本體控制器采用了Gumsi控制,自帶i-F通信功能,six卡的帶寬為0Mitss,通信范圍為50m,當(dāng)降低帶寬為2Mitss時(shí),其通信距離可提高到800m。另外開源社區(qū)”DYDros”提供的開源地面站[]Mnner,選用兩臺(tái)Xbee無(wú)線數(shù)傳電臺(tái),其中一臺(tái)與ArdupilotMegaIMU相連,另一臺(tái)與地面站計(jì)算機(jī)相連,控制距離超過(guò)1英里。當(dāng)無(wú)人機(jī)在室行飛行時(shí),機(jī)載傳感器測(cè)得無(wú)人機(jī)的飛行參數(shù)以及GPS,地面站(如圖1-1)通過(guò)數(shù)傳電臺(tái)連接后,可以實(shí)時(shí)接收并顯示無(wú)人機(jī)的飛行信息,并且采用Maps進(jìn)行定位和航跡顯示,同時(shí)也可以通過(guò)地面站向無(wú)人機(jī)發(fā)送控制命令,如控制參數(shù)的修改等。對(duì)于要求較高以及可靠性更高的無(wú)人機(jī)系 統(tǒng),比如應(yīng)用在軍事中的“捕食者”無(wú)人機(jī),典型的起降距離為667m左右,捕食者與地面站的通信采用的是一個(gè)5.5mKu波段地面數(shù)據(jù)終端碟形天線和一個(gè)2.4m數(shù)據(jù)分派碟形天線來(lái)實(shí)現(xiàn)[4]。地面站的數(shù)據(jù)模塊為數(shù)據(jù)以及后續(xù)分析提供了保證。當(dāng)?shù)孛嬲九c無(wú)人機(jī)建立連接以后,一方面需要將無(wú)人機(jī)的信息進(jìn)行 數(shù)根據(jù)無(wú)人機(jī)的機(jī)載傳感器不同而有所不同;另一方面,對(duì)于手動(dòng)和自動(dòng)進(jìn)行規(guī)劃的航跡,需要將規(guī)劃點(diǎn)的位置信息和飛行要求進(jìn)行,以更好地指導(dǎo)無(wú)人機(jī)進(jìn)行飛行,因此需要考慮到數(shù)據(jù)模塊的設(shè)計(jì)。目前的設(shè)計(jì)方法包括文件保存和數(shù)據(jù)庫(kù)兩種方式,其中文件不便于數(shù)據(jù)的管理和調(diào)用,因此越來(lái)越多的地面站采用數(shù)據(jù)庫(kù)作為數(shù)據(jù)的處理中心。常用到的數(shù)據(jù)庫(kù)有SQLServer、Mysql等,數(shù)據(jù)庫(kù)具有備份的功能,可以保證數(shù)據(jù)的安全性。無(wú)人機(jī)定位顯示模塊為掌握無(wú)人機(jī)的飛行狀態(tài)提供依據(jù)。無(wú)人機(jī)定位模塊的設(shè)計(jì)主要參考無(wú)人機(jī)本體的定位裝置,針對(duì)于室內(nèi)和室外兩種飛行環(huán)境,定位裝置的選擇也有所不同。對(duì)于室外無(wú)人機(jī)飛行系統(tǒng),現(xiàn)有的無(wú)人機(jī)多采用GPS進(jìn)行定位,通過(guò)數(shù)據(jù)通信模塊,將GPS到地面站,然后在地圖中顯示無(wú)人機(jī)的位置。常用的地圖包括Maps,MapInfo公司的Mapx控件, 公司的ArcGIS軟件,其中Maps以其三維可視化環(huán)境逐漸顯現(xiàn)出應(yīng)用優(yōu)勢(shì),Mapx矢量地圖則具有響應(yīng)速度快、不失真等優(yōu)點(diǎn)[5]。室外無(wú)人機(jī)研究方面,國(guó)外的一些高校和科研機(jī)構(gòu)已經(jīng)做出了一定的成果[6],比如美國(guó)斯坦福大學(xué)[7][8]的STARMACⅠ和STARMACⅡ,采用慣性測(cè)量單元進(jìn)行姿態(tài)控制,同時(shí)配合GPS系統(tǒng)進(jìn)行定位,以及聲納傳感器或激光測(cè)距儀進(jìn)行高度定位。加利福尼亞大學(xué)伯克利分校在無(wú)人機(jī)控制系統(tǒng)以及無(wú)人機(jī)地面站軟件進(jìn)行了相應(yīng)的研究[9],其采用了基于視覺(jué)的定位和導(dǎo)航系統(tǒng),并且對(duì)多機(jī)協(xié)作進(jìn)行了一定的研究。另外,國(guó)外的一些商業(yè)公司也加入了無(wú)人機(jī)研究的行列,比如的Dragenfly公司,德國(guó)的Microdrones公司等,其中德國(guó)的Microdrones公司的無(wú)人機(jī)系統(tǒng)已經(jīng)開GeodataGPS-waypointEditor的設(shè)定飛行路徑及飛行高度,同時(shí)可以確定無(wú)人機(jī)的位置。對(duì)于室內(nèi)無(wú)人機(jī)系統(tǒng),主圖1- Md4-200地面要是基于視覺(jué)伺服進(jìn)行的姿態(tài)控制,通過(guò)較成圖像處理技術(shù),在參考系統(tǒng)的基礎(chǔ)上,分析無(wú)人機(jī)的相對(duì)姿態(tài),從而較準(zhǔn)確地得到飛行器的姿態(tài)信息,以及較精確的位置信息。進(jìn)行室內(nèi)無(wú)人機(jī)研究的高校有麻省理工大學(xué)[11][12][13],賓夕法尼亞大學(xué)[14]等。其中,麻省理工大學(xué)在多機(jī)協(xié)作控制的研究方面有較多的成果。無(wú)人機(jī)飛行控制模塊提高了無(wú)人機(jī)的自主控制能力。到目前為止,無(wú)人機(jī)很大程度上依靠人為控制,通過(guò)地面站的預(yù)處理工作,實(shí)現(xiàn)自主或半自主控制。合理的任務(wù)規(guī)劃有助于提高無(wú)人機(jī)的自主能力,為無(wú)人機(jī)成功完成飛行任務(wù)提供了保證。目前的無(wú)人機(jī)地面站的控制功能主要包括對(duì)無(wú)人機(jī)的航跡的規(guī)劃、等。以上幾個(gè)模塊是無(wú)人機(jī)地面站的常用功能模塊,在此基礎(chǔ)上,也可以根據(jù)需要擴(kuò)展相應(yīng)的功能。同時(shí)根據(jù)不同應(yīng)用領(lǐng)域的任務(wù)需求,地面站的架構(gòu)也有所不同。目前無(wú)人機(jī)地面站的發(fā)展方向包括一站多機(jī)式,即一個(gè)地面站系統(tǒng)控制一臺(tái)或多臺(tái)無(wú)人機(jī);多站式地面站,通過(guò)導(dǎo)航站、數(shù)據(jù)處理站等并行處理來(lái)共同完成對(duì)無(wú)人機(jī)的控制。目前國(guó)內(nèi)一些高校和研究機(jī)構(gòu)也在進(jìn)行無(wú)人機(jī)控制系統(tǒng)的研究,如西北工業(yè)大學(xué)[15]、航空航天大學(xué)[15]等。無(wú)人機(jī)航跡規(guī)劃的研究現(xiàn)無(wú)人機(jī)的航跡規(guī)劃[16],是指在特定約束條件下,根據(jù)任務(wù)需要,由起始點(diǎn)到目標(biāo)點(diǎn)規(guī)劃出一條滿足約束條件的最優(yōu)飛行軌跡。根據(jù)任務(wù)性能指標(biāo)的自20世紀(jì)80年代以來(lái),等軍事發(fā)達(dá)國(guó)家率先在軍事領(lǐng)域進(jìn)行無(wú)人機(jī)任務(wù)規(guī)劃系統(tǒng)的研究。任務(wù)規(guī)劃系統(tǒng)在海灣中首次被使用,并為的成功做出很大的貢獻(xiàn),在之后的 和 中,更廣泛的使用了任務(wù)規(guī)劃系統(tǒng),為快速的戰(zhàn)斗行動(dòng)奠定了基礎(chǔ)。在近年來(lái)的中應(yīng)用無(wú)人機(jī)取得了較為成功的應(yīng)用,也使在無(wú)人飛行器方面的研究處于世界領(lǐng)先地位,其他國(guó)家也逐漸加入了研究行列。無(wú)人機(jī)無(wú)人駕駛的特點(diǎn)要求任務(wù)規(guī)劃系統(tǒng)應(yīng)具有對(duì)無(wú)人機(jī)自主控制的能力。任務(wù)規(guī)劃系統(tǒng)結(jié)構(gòu)圖如下圖1-3所示,分為以下幾個(gè)部分,包括信息融合、建模、態(tài)勢(shì)估計(jì)、以及航跡規(guī)劃等。其中信息融合部分主要是對(duì)無(wú)人機(jī)傳感器測(cè)量數(shù)據(jù)進(jìn)行分析和處理;建模部分是對(duì)飛行環(huán)境中的因素進(jìn)行建模;態(tài)勢(shì)估計(jì)部分是對(duì)變化的環(huán)境進(jìn)行估計(jì),以便做出決策;航跡規(guī)劃部分是無(wú)人機(jī)任務(wù)規(guī)劃系統(tǒng)的一個(gè)關(guān)鍵組成部分,根據(jù)對(duì)環(huán)境的分析,為無(wú)人機(jī)規(guī)劃出可行的路線。在無(wú)人機(jī)的航跡規(guī)劃過(guò)程中,需要考慮無(wú)人機(jī)在飛行過(guò)程中受到各個(gè)因素的影響,在各個(gè)因素的相互耦合的情況下,使規(guī)劃的航跡滿足環(huán)境中的各種約束條件,從而使無(wú)人機(jī)以符合自身動(dòng)力性能的飛行狀態(tài)完成任務(wù)。下面 任務(wù)規(guī)劃系統(tǒng)結(jié)構(gòu)分別列出航跡規(guī)劃過(guò)程中的考慮因素[17]為保證無(wú)人機(jī)能夠順利完成飛行任務(wù),無(wú)人機(jī)的飛行的安全性需要放在首位。尤其在環(huán)境中,設(shè)計(jì)一條具有良好隱蔽性的飛行航跡十分關(guān)鍵,可以大大提高無(wú)人機(jī)的生存能力。通??紤]的隱蔽方式是使規(guī)劃遠(yuǎn)離區(qū)域,比如盡量減小被探測(cè)到的概率。軌跡規(guī)劃時(shí),需考慮到無(wú)人機(jī)本身的物理限制,否則無(wú)人機(jī)將不能按預(yù)定生成的航線飛行。限制因素包括無(wú)人機(jī)的最大運(yùn)行速度、最大轉(zhuǎn)角、無(wú)人機(jī)的飛行是為了完成特定的任務(wù),因此,在具體的任務(wù)條件下,需要考慮無(wú)人機(jī)的最大飛行距離,以保證的供應(yīng);無(wú)人機(jī)的到達(dá)時(shí)間,以保證及時(shí)獲取需要的信息;考慮無(wú)人機(jī)的進(jìn)攻方向,以保證對(duì)目標(biāo)的最薄弱部位進(jìn)行有效的。對(duì)于瞬息萬(wàn)變的環(huán)境,無(wú)人機(jī)在執(zhí)行任務(wù)的過(guò)程中,不一定在預(yù)先的地面站上規(guī)劃出滿足環(huán)境要求的航線,因此需要具備規(guī)劃的能無(wú)人機(jī)的協(xié)作能力也是需要考慮的因一,對(duì)于需要多無(wú)人機(jī)協(xié)調(diào)完成任務(wù)的情況下,若其中的一架或多架無(wú)人機(jī)受到而必須更改路徑或延達(dá)時(shí)間,此時(shí)其他無(wú)人機(jī)也必須做出調(diào)整,使整個(gè)飛行編隊(duì)在規(guī)劃過(guò)程中相互協(xié)調(diào),完成指定任務(wù)。近年來(lái),為解決無(wú)人機(jī)的航跡規(guī)劃問(wèn)題,國(guó)內(nèi)外學(xué)者已提出了很多的航跡規(guī)劃算法,主要分為全局規(guī)劃算法和局部規(guī)劃算法。全局規(guī)劃算法有啟發(fā)式A*搜索算法[18][19]、遺傳算法[20][21][22]、基于Voronoi圖的航跡規(guī)劃算法[23][24][25]、蟻群算法[26],以及粒子群優(yōu)化算法[27]等。啟發(fā)式A*搜索算法是利用啟發(fā)信息來(lái)引導(dǎo)搜索,通過(guò)定義評(píng)價(jià)函數(shù)來(lái)估計(jì)各路徑之間的代價(jià),來(lái)減小搜索的范圍,從而降低復(fù)雜度;遺傳算法是通過(guò)模仿生物遺傳特性來(lái)描述飛行航線,并借助、雜交、變異等操作,將要解決的問(wèn)題從初始解近于最優(yōu)解,因此所得路徑較為平滑,滿足于無(wú)人機(jī)的機(jī)動(dòng)特性,但缺點(diǎn)是容易產(chǎn)生早熟現(xiàn)象而不能得到最優(yōu)解;基于orooi圖的航跡規(guī)劃算法是通過(guò)環(huán)境中的威脅分布來(lái)構(gòu)建orooi圖,通過(guò)搜索oro圖來(lái)選擇航線,并且這種方法也被應(yīng)用于多無(wú)人機(jī)的航跡規(guī)劃中。文獻(xiàn)[]提出了一種基于Lpuov向量場(chǎng)的航跡規(guī)劃算法,這種算法假設(shè)無(wú)人機(jī)飛行速度恒定,通過(guò)坐標(biāo)轉(zhuǎn)換,在目標(biāo)點(diǎn)坐標(biāo)系中分別對(duì)目標(biāo)點(diǎn)靜止和目標(biāo)點(diǎn)移動(dòng)兩種情況進(jìn)行控制,使無(wú)人機(jī)趨近于目標(biāo)點(diǎn)并以一定半徑繞目標(biāo)點(diǎn)飛行,從仿真結(jié)果來(lái)看,控制器達(dá)到了控制效果。局部規(guī)劃算法主要包括基于勢(shì)能函數(shù)的規(guī)劃算法?;趧?shì)能函數(shù)(rificilotilFuon)的航跡規(guī)劃算法的基本思想,是在一個(gè)運(yùn)動(dòng)范圍內(nèi),構(gòu)建一個(gè)勢(shì)能場(chǎng),場(chǎng)內(nèi)目標(biāo)點(diǎn)具有吸引勢(shì)場(chǎng),物具有排斥勢(shì)場(chǎng),場(chǎng)內(nèi)的運(yùn)動(dòng)物體在勢(shì)能作用下最終避開物到達(dá)目標(biāo)點(diǎn)。目前已有很多關(guān)于人工勢(shì)能函數(shù)改進(jìn)的航跡規(guī)劃算法[][][]。在文獻(xiàn)[]中,就目標(biāo)點(diǎn)與物距離近而使機(jī)器人無(wú)法到達(dá)目標(biāo)點(diǎn)這一問(wèn)題進(jìn)行了研究,通過(guò)改進(jìn)的勢(shì)能函數(shù),使移動(dòng)機(jī)器人能貼近物行走最后到達(dá)目標(biāo)點(diǎn);文獻(xiàn)[]針對(duì)于多機(jī)器人系統(tǒng)的協(xié)作和避障功能,提出了一種基于視覺(jué)的避障算法。同時(shí)需要的是,基于勢(shì)能函數(shù)的航跡規(guī)劃存在的一個(gè)問(wèn)題是可能出現(xiàn)局部極小值,這樣會(huì)使無(wú)人機(jī)在沒(méi)有到達(dá)目標(biāo)點(diǎn)的情況下停止前進(jìn),一些學(xué)者就這一問(wèn)題提出了一些解決方法[][][]。本文的主要研究?jī)?nèi)容和章節(jié)安本文主要研究本文的研究?jī)?nèi)容包括兩個(gè)方面,第一是無(wú)人機(jī)地面站的設(shè)計(jì)與開發(fā),第二是航跡規(guī)劃算法的研究。無(wú)人機(jī)地面站是根據(jù)已有實(shí)驗(yàn)平臺(tái)的需求,實(shí)現(xiàn)了以下幾點(diǎn)功能:第一,利用數(shù)傳電臺(tái)實(shí)時(shí)接收無(wú)人機(jī)的各項(xiàng)飛行數(shù)據(jù),以及控制命令的發(fā)送;第二,利用Msl數(shù)據(jù)庫(kù)對(duì)接收的數(shù)據(jù)進(jìn)行,并用于規(guī)劃航跡的和查詢;第三,利用Mpx電子地圖對(duì)無(wú)人機(jī)進(jìn)行定位,實(shí)時(shí)顯示航跡,并具有軌跡回放等功能;第四,對(duì)無(wú)人機(jī)進(jìn)行航跡規(guī)劃,結(jié)合數(shù)據(jù)庫(kù)在電子地圖上顯示規(guī)劃航跡,并可以向無(wú)人機(jī)發(fā)送規(guī)劃好的航跡點(diǎn)。同時(shí)保證了地面站的穩(wěn)定運(yùn)行。為了提高地面站的自主控制能力,即為航跡規(guī)劃功能提供理論依據(jù),本文提出了一種基于勢(shì)能函數(shù)的改進(jìn)的航跡規(guī)劃算法,在已知環(huán)境中,實(shí)現(xiàn)無(wú)人機(jī)的避障及目標(biāo)點(diǎn)的功能,同時(shí)為保證無(wú)人機(jī)的機(jī)動(dòng)性能,對(duì)輸出速度進(jìn)行了控制,通過(guò)基于Lpuov理論的穩(wěn)定性分析,證明了所航跡規(guī)劃算法能夠有效地控制輸出速度并完成軌跡規(guī)劃。最后通過(guò)數(shù)值仿真表明,輸出速度的幅值在允許的范圍內(nèi),且誤差趨于本文的章節(jié)安第一章為緒論,介紹了無(wú)人機(jī)的發(fā)展和應(yīng)用,并著重介紹了無(wú)人機(jī)地面站和航跡規(guī)劃算法的發(fā)展現(xiàn)狀。第二章對(duì)目前已有的無(wú)人機(jī)控制系統(tǒng)進(jìn)行分析,確定地面站的框架結(jié)構(gòu)和主要的功能模塊,并對(duì)地面站的軟件流程進(jìn)行了介紹。第三章首先對(duì)各個(gè)功能模塊所選技術(shù)進(jìn)行介紹,然后對(duì)各個(gè)模塊的具體實(shí)現(xiàn)進(jìn)行講解,為使地面站更便捷和穩(wěn)定,本文提出了一些優(yōu)化的操作方法。動(dòng)性能,對(duì)輸出速度進(jìn)行了控制。同時(shí)給出了穩(wěn)定性證明,以及利用//第五章主要是地面站功能的驗(yàn)證實(shí)驗(yàn),通過(guò)模擬實(shí)驗(yàn)以及與無(wú)人機(jī)的聯(lián)調(diào)實(shí)驗(yàn),驗(yàn)證了無(wú)人機(jī)地面站軟件的穩(wěn)定運(yùn)行,以及各個(gè)功能模塊的實(shí)用性和可靠性。第六章對(duì)本文的研究工作進(jìn)行了總結(jié),提出了需要繼續(xù)研究的幾個(gè)方第二 無(wú)人機(jī)地面站軟件架無(wú)人機(jī)地面站作為無(wú)人機(jī)飛行控制系統(tǒng)的一部分,為無(wú)人機(jī)的飛行和控制提供了較強(qiáng)的保障。本章首先介紹無(wú)人機(jī)飛行控制系統(tǒng)結(jié)構(gòu);其次對(duì)無(wú)人機(jī)與地面站通信方式的選擇進(jìn)行分析;最后,根據(jù)實(shí)驗(yàn)平臺(tái)條件,對(duì)無(wú)人機(jī)地面站的功能需求進(jìn)行分析,給出無(wú)人機(jī)地面站的軟件架構(gòu),及各個(gè)功能模塊的技術(shù)選擇。無(wú)人機(jī)飛行控制系統(tǒng)概無(wú)人機(jī)飛行控制系統(tǒng)(如圖2-1),由無(wú)人機(jī)本體、自主飛行控制系統(tǒng)、數(shù)據(jù)通信模塊、以及地面站等幾個(gè)部分組成。無(wú)人機(jī)本體以及自主飛行控制系 無(wú)人機(jī)飛行控制系統(tǒng)架構(gòu)統(tǒng)是整個(gè)無(wú)人機(jī)飛行控制的關(guān)鍵部分,決定著無(wú)人機(jī)飛行的安全性以及飛行效果;數(shù)據(jù)通信模塊是連接無(wú)人機(jī)與地面站的通道,性能良好的數(shù)據(jù)通訊模塊為無(wú)人機(jī)和地面站的通訊提供了強(qiáng)有力的保證;地面站軟件運(yùn)行在具有強(qiáng)大處理和運(yùn)算能力的上,實(shí)現(xiàn)了對(duì)無(wú)人機(jī)的實(shí)時(shí)監(jiān)視以及導(dǎo)航控制,保證了無(wú)人機(jī)飛行任務(wù)的完成。目前已有的無(wú)人機(jī)系統(tǒng)包括四旋翼無(wú)人機(jī)飛行控制系統(tǒng)和單旋翼無(wú)人機(jī)飛行控制系統(tǒng)。四旋翼無(wú)人機(jī)控制系統(tǒng)分為無(wú)人機(jī)I型和無(wú)人機(jī)II型自主控制系統(tǒng),I型系統(tǒng)主要采用ARM模塊作為機(jī)載主控制器,同時(shí)帶有Wi-Fi無(wú)線傳輸功能。I型系統(tǒng)選用的是I公司的5型號(hào)的DP作為機(jī)載控制器,TMS320F是一款位的浮點(diǎn)DP,主頻為50MHz,具有Fash存儲(chǔ)器、快速的/D轉(zhuǎn)換器、串行通口、增強(qiáng)捕獲單元、模塊、CAN模塊和多通道緩沖模塊等,使得其具有強(qiáng)大的控制能力和數(shù)據(jù)處理能力。同時(shí)該款DSP集成了微控制器與高性能DSP的特點(diǎn),有著快速的中斷管理單元,滿足實(shí)時(shí)控制的需要。本文主要針對(duì)本研究組正在研制的全自主四旋翼無(wú)人機(jī)設(shè)計(jì)一個(gè)功能完善的地面站,以四旋翼無(wú)人機(jī)本體(如圖-)為載體,通過(guò)主控制器與地面站之間進(jìn)行通信。圖2- 自主四旋翼無(wú)人無(wú)人機(jī)的機(jī)載傳感器包括慣性導(dǎo)航單元、GPS、等,機(jī)載控制器對(duì)這些傳感器數(shù)據(jù)進(jìn)行以后,通過(guò)一定的報(bào)文協(xié)議將飛行數(shù)據(jù)發(fā)送到地面站。本文中的四旋翼無(wú)人機(jī)采用的是荷蘭Xsens公司的慣導(dǎo)-GPS組合單元(MTi?G),MTi-G集成了GPS信號(hào),同時(shí)內(nèi)部有DSP模塊、3維加速度計(jì)、速度計(jì)、磁力計(jì)、氣壓計(jì)、溫度計(jì)和電子羅盤,地面站正確的接收無(wú)人機(jī)發(fā)送的數(shù)據(jù),需要清楚慣導(dǎo)-GPS組合的數(shù)據(jù)格式[37](如圖2-3)MTi-G主要有三種輸出模式,分別為方向輸出、位置輸出、以及校準(zhǔn)數(shù)據(jù)輸出。MTi-G通過(guò)RS232輸出標(biāo)準(zhǔn)結(jié)構(gòu)的消息,總長(zhǎng)度為256個(gè)字節(jié),為適合不同的需要,可以通過(guò)更改MTI-G的數(shù)據(jù)選項(xiàng),來(lái)設(shè)置MTI-G需要輸出的數(shù)據(jù)信息。圖2- MTI-G的傳輸數(shù)據(jù)格無(wú)人機(jī)與地面站的通通訊模塊是連接無(wú)人機(jī)與地面站的關(guān)鍵,良好的通訊性能保證了無(wú)人機(jī)與地面站的數(shù)據(jù)傳輸?shù)目煽啃?。本文介紹兩種通訊方式,一種是Wi-Fi無(wú)線通無(wú)線網(wǎng)絡(luò)傳輸針對(duì)于一型的無(wú)人機(jī)飛行控制系統(tǒng),機(jī)載主控制器本身自帶Wi-Fi無(wú)線模塊,該模塊是基于IEEE802.11g協(xié)議標(biāo)準(zhǔn),工作在2.4GHz頻帶,且傳輸速率可高達(dá)54Mbit/s。通過(guò)無(wú)線路由器在無(wú)人機(jī)與地面站之間構(gòu)建無(wú)線局域網(wǎng),利idws系統(tǒng)下實(shí)現(xiàn)網(wǎng)絡(luò)傳輸?shù)姆绞接卸喾N,idwsSocet便是一種實(shí)現(xiàn)方法。本文采用基于Socet的網(wǎng)絡(luò)編實(shí)現(xiàn)無(wú)人機(jī)與地面站的通信,下面就傳輸層協(xié)議及socket的選擇進(jìn)行介紹。根據(jù)ISOOSI[38],OSI(OpenSystemInterconnection)參考模型將網(wǎng)絡(luò)的功能劃分為以下七層(如圖2-4),其中,傳[39],傳輸控制協(xié)議(TCP,TransmissionControlProto-col)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP,UserDatagramProtocol)。TCP協(xié)議是面向連接的可靠的傳輸協(xié)議,通過(guò)“三步握手”與對(duì)方建立連接進(jìn)行通信,TCP提供了數(shù)據(jù)確認(rèn)以及數(shù)據(jù)重傳機(jī)制,可以保證發(fā)送的數(shù)據(jù)一定能到達(dá)通信的對(duì)方。UDP協(xié)議是無(wú)連接的不可靠的傳輸協(xié)議,通過(guò)UDP協(xié)議進(jìn)行通信時(shí),不需要建立連接,即可以向指定的IP和端口發(fā)送數(shù)據(jù),但不能確定對(duì)方是否已經(jīng)收到數(shù)據(jù)。但是UDP協(xié)議因?yàn)椴恍枰⑦B接,沒(méi)有數(shù)據(jù)確認(rèn)以及重傳機(jī)圖2- OSI參考模制,使得其傳輸?shù)膶?shí)時(shí)性較高,因此本文中選擇UDP協(xié)議作為傳輸層的傳輸基于套接字Socket的網(wǎng)絡(luò)通信,套接字的作用是連接網(wǎng)絡(luò)驅(qū)動(dòng)和應(yīng)用程序,發(fā)送端的實(shí)現(xiàn)過(guò)程為:在應(yīng)用程序端建立套接字,使應(yīng)用程序與套接字建立連接,然后通過(guò)綁定IP和端口,建立套接字與網(wǎng)絡(luò)驅(qū)動(dòng)的連接,接著應(yīng)用程序?qū)?shù)據(jù)交給套接字,套接字再將數(shù)據(jù)交給網(wǎng)絡(luò)驅(qū)動(dòng)程序發(fā)送到網(wǎng)絡(luò)上。接收端的實(shí)現(xiàn)過(guò)程為:接收方創(chuàng)建套接字,在網(wǎng)絡(luò)上收到與該套接字綁定的IP和端口相關(guān)的數(shù)據(jù),然后再由驅(qū)動(dòng)程序交給套接字,接收端應(yīng)用程序可以從該套接字中提取接收到的數(shù)據(jù),這樣就完成了數(shù)據(jù)的發(fā)送和接收。套接字的類型分為流式套接字(SOCKSTREAM)、數(shù)據(jù)報(bào)式套接字(SOCKDGRAM)和原始套接字(SOCKRAW,其中流式套接字是面向連接、可靠地?cái)?shù)據(jù)數(shù)據(jù)傳輸服務(wù),是基于TCP協(xié)議實(shí)現(xiàn)的;數(shù)據(jù)報(bào)式套接字是提供無(wú)連接的服務(wù),它是基于UDP協(xié)議實(shí)現(xiàn)的。MFC對(duì)TCPIP協(xié)議進(jìn)行了封裝,包括CAsyncSocet和CSocet類[40],按照派生關(guān)系來(lái)看,CSocet是從CAsyncSocet類派生得到的,由于本文設(shè)計(jì)的無(wú)線網(wǎng)路通信采用了多線程技術(shù),而CSocet適合多線程,因此套接字選擇了CSocet。無(wú)線網(wǎng)絡(luò)通信主要用于近距離的數(shù)據(jù)傳輸,以及在對(duì)地面站軟件的測(cè)試過(guò)程中,通過(guò)開發(fā)模擬端對(duì)地面站的各項(xiàng)功能進(jìn)試。為保證可靠的遠(yuǎn)距離數(shù)據(jù)傳輸,地面站也實(shí)現(xiàn)了數(shù)傳電臺(tái)通信,使無(wú)人機(jī)在不同的飛行要求下選擇合適的通信方式。數(shù)傳電臺(tái)通針對(duì)于II型無(wú)人機(jī)飛行控制系統(tǒng),以DP作為機(jī)載主控制器,因DSP沒(méi)有自帶的Wi-fi通信模塊,以及考慮到遠(yuǎn)距離的數(shù)據(jù)傳輸,因此采用無(wú)線數(shù)傳電臺(tái)完成無(wú)人機(jī)與地面站的通信。本文中用到的數(shù)傳電臺(tái),選用的是科易連公司的KYL-1020L低功耗微500mW的ISM頻段工作頻率載頻頻率433,也可提供450/470/868/915MHz能力和低誤碼率基于/GFSK的調(diào)制方式,采用高效的通信協(xié)議,在信道誤碼為-2時(shí),可得到實(shí)際誤碼率0-。傳輸距離2Km(BER=10-5@9600bps,標(biāo)配10cm天線,空曠地,天線高度1.5m)3Km(BER=10-5@1200bps,標(biāo)配10cm天線,空曠地,天線高度并且數(shù)傳電臺(tái)模塊的體積為53mm*38mm*10mm,較適合安裝在無(wú)人機(jī)本體上。當(dāng)利用兩個(gè)模塊進(jìn)行通信時(shí),需在使用前將兩臺(tái)KYL-1020L配置一致的參數(shù),然后利用此數(shù)傳電臺(tái)進(jìn)行數(shù)據(jù)傳輸。數(shù)傳電臺(tái)與地面站計(jì)算機(jī)通過(guò)串口進(jìn)行連接,因此,實(shí)現(xiàn)通信的關(guān)鍵在于正確串口數(shù)據(jù)。目前在windws系統(tǒng)下開發(fā)串口通信程序的方法,主要有四種方式[41],第一種是使用串口通信組件來(lái)進(jìn)行串口操作,比如ActeX控件m( CmmuicaiosContol),這是由提供的串口控件,為串口開發(fā)提供了簡(jiǎn)便的方法,但存在的缺點(diǎn)是靈活性差,且只能用于windws系統(tǒng)性,不利于程序移植;第二種方式為利用idws的讀寫端口函數(shù)來(lái)進(jìn)行開發(fā),但這種方式需對(duì)硬件電路有較深入的理解,同時(shí)在不同的操作系統(tǒng)下會(huì)有不同的限制;第三種方式是通過(guò)第的串口驅(qū)動(dòng)函數(shù)來(lái)實(shí)現(xiàn),即通過(guò)面向?qū)ο蠹夹g(shù)來(lái)封裝i32API函數(shù),從而提供串口通信類,這種方式一般都與驅(qū)動(dòng)提供商對(duì)應(yīng)的產(chǎn)品相配合使用,通用性差;第四種方式是通過(guò)調(diào)用串口通信的indwsAPI函數(shù)來(lái)實(shí)現(xiàn)串口通信,這種方式開發(fā)的串口程序通用性強(qiáng),靈活性好,windws系統(tǒng)將串口看作是文件進(jìn)行操作,通過(guò)調(diào)用相應(yīng)的O函數(shù)以及通信函數(shù),來(lái)實(shí)現(xiàn)串口編程。因此本文中的串口通信采用第四種方法來(lái)實(shí)現(xiàn)。無(wú)人機(jī)地面站的軟件設(shè)根據(jù)本對(duì)無(wú)人機(jī)系統(tǒng)設(shè)計(jì)的需要,設(shè)計(jì)了適合于四旋翼無(wú)人機(jī)系統(tǒng)、單旋翼無(wú)人機(jī)系統(tǒng)的地面站,通過(guò)對(duì)無(wú)人機(jī)地面站的軟件架構(gòu)設(shè)計(jì),確定了地面站的整體功能,并就其兼容性及穩(wěn)定性進(jìn)行了驗(yàn)證。下面介紹的這款地面站是在isul60下開發(fā)的,結(jié)合Ms數(shù)據(jù)庫(kù)、Mpx電子地圖、世紀(jì)飛揚(yáng)航空儀表等完成地面站的功能。通過(guò)模塊化的設(shè)計(jì)概念將地面站分為幾個(gè)功能模塊,同時(shí)通過(guò)封裝類的方法將各個(gè)模塊獨(dú)立出來(lái),以便后續(xù)的使用。地面站軟件的功能模本文中的地面站軟件功能模塊主要包括通訊模塊、數(shù)據(jù)庫(kù)模塊、電子地通訊模塊包括數(shù)據(jù)的接收和上傳兩個(gè)部分,接收的數(shù)據(jù)包括無(wú)人機(jī)機(jī)載傳感器的數(shù)據(jù),如慣性導(dǎo)航單元、GS、聲納等,無(wú)人機(jī)本體采用DSP作為主控制器,通過(guò)雙向約定通信協(xié)議,地面站將接收到的信息進(jìn)行,獲得對(duì)應(yīng)的數(shù)據(jù)量。上傳數(shù)據(jù)主要是指通過(guò)地面站向無(wú)人機(jī)發(fā)送控制命令,包括無(wú)人機(jī)的控制參數(shù),如D參數(shù),以及規(guī)劃航跡點(diǎn)的信息等。地面站接收無(wú)人機(jī)發(fā)送飛行數(shù)據(jù)的頻率是10z,通過(guò)地面站向無(wú)人機(jī)發(fā)送控制命令的頻率根據(jù)不同的任務(wù)則不同。數(shù)據(jù)庫(kù)模塊是為無(wú)人機(jī)地面站建立了一個(gè)數(shù)據(jù)庫(kù),通過(guò)對(duì)各數(shù)據(jù)類型進(jìn)行分析,設(shè)計(jì)了無(wú)人機(jī)飛行信息表和無(wú)人機(jī)航跡規(guī)劃表,無(wú)人機(jī)飛行信息表用來(lái)對(duì)無(wú)人機(jī)飛行數(shù)據(jù)的實(shí)時(shí);航跡規(guī)劃表用來(lái)規(guī)劃的航跡點(diǎn)信息,并對(duì)其進(jìn)行修改、刪除等操作。本文選用Msl數(shù)據(jù)庫(kù)來(lái)完成無(wú)人機(jī)數(shù)據(jù)庫(kù)的設(shè)計(jì),通過(guò)調(diào)用SQL語(yǔ)言來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。同時(shí)地面站還實(shí)現(xiàn)了航跡回放的功能,通過(guò)查詢調(diào)用數(shù)據(jù)庫(kù)中的無(wú)人機(jī)飛行信息,將飛行軌跡顯示在地面站界面上。本文采用MapInfo公司的MapX電子地圖控件實(shí)現(xiàn)無(wú)人機(jī)的定位功能。當(dāng)?shù)孛嬲境晒邮諢o(wú)人機(jī)的飛行信息時(shí),通過(guò)解算出無(wú)人機(jī)的飛行位置信息(經(jīng)度、緯度和高度,將其在電子地圖上顯示出來(lái),通過(guò)定時(shí)刷新地圖,將飛行航跡顯示出來(lái)。儀表顯示模塊是利用虛擬航空儀表將無(wú)人機(jī)的飛行狀態(tài)直觀的呈現(xiàn)在地面站上。本文采用了世紀(jì)飛揚(yáng)航空儀表控件,通過(guò)選擇航空儀表的類型,將飛行姿態(tài)顯示出來(lái),其中,利用航向指示器來(lái)顯示無(wú)人機(jī)的偏航角,利用陀螺地平儀來(lái)顯示無(wú)人機(jī)的俯仰角,利用轉(zhuǎn)動(dòng)方向儀來(lái)顯示無(wú)人機(jī)的滾轉(zhuǎn)角。同時(shí)利用測(cè)量?jī)x表控件來(lái)顯示無(wú)人機(jī)的飛行高度。確定了儀表類型以后,對(duì)航空儀表進(jìn)行繪制,包括確定虛擬航空儀表表盤的的數(shù)值范圍、刻度線和刻度值的設(shè)定、以及顯示效果的設(shè)置,從而設(shè)計(jì)出需要的航空儀表。最后通過(guò)MF與儀表的交互,將飛行姿態(tài)顯示在航空儀表上,這樣可以讓地面站的操作人員實(shí)時(shí)的掌握無(wú)人機(jī)的飛行狀態(tài)。航跡規(guī)劃模塊是通過(guò)數(shù)據(jù)庫(kù)和電子地圖的綜合使用來(lái)完成。當(dāng)無(wú)人機(jī)接一條航線。規(guī)劃的航跡點(diǎn)可以通過(guò)串口發(fā)送給無(wú)人機(jī),無(wú)人機(jī)按照航點(diǎn)飛行完成飛行任務(wù)。為了使規(guī)劃的航線具有避障以及的功能,本文第四章就無(wú)人機(jī)的航跡規(guī)劃算法進(jìn)行了研究,目的也是為了對(duì)地面站的航跡規(guī)劃功能提供理論依據(jù)。無(wú)人機(jī)地面站的軟件根據(jù)上一節(jié)中介紹的無(wú)人機(jī)地面站的功能模塊,下面從地面站的界面和實(shí)現(xiàn)流程給出地面站的運(yùn)行原理。首先給出無(wú)人機(jī)控制系統(tǒng)的架構(gòu)圖2-5,由圖中可以看出無(wú)人機(jī)控制系統(tǒng)的結(jié)構(gòu),無(wú)人機(jī)自主控制系統(tǒng)是以DSP作為主控制器,通過(guò)可以對(duì)無(wú)人機(jī)進(jìn)行控制,當(dāng)無(wú)人機(jī)由手動(dòng)切換為自動(dòng)狀態(tài)下以后,無(wú)人機(jī)開始自主飛行,此時(shí)地面站接收無(wú)人機(jī)的飛行信息,同時(shí)可以對(duì)無(wú)人機(jī)發(fā)送控制命令。無(wú)人機(jī)地面站軟件的主界面如圖2-6主要分為 無(wú)人機(jī)控制系統(tǒng)架構(gòu)五個(gè)部分,通信設(shè)置區(qū)、定位區(qū)、地圖區(qū)、飛行數(shù)據(jù)顯示區(qū)、以及航跡規(guī)劃區(qū)。通信設(shè)置區(qū)位于界面的右上方,地面站運(yùn)行以后,首先配置串口信息,包括端、波特率、數(shù)據(jù)位、校驗(yàn)位和停止位,然后打開串口接收數(shù)據(jù)。每當(dāng)串口有數(shù)據(jù)到來(lái)時(shí),通過(guò)自定義的消息響應(yīng)函數(shù)來(lái)處理接收的數(shù)據(jù),根據(jù)規(guī)定的通信協(xié)議,如果接收正確,則將數(shù)據(jù)進(jìn)行和顯示,如果接收的數(shù)據(jù)不正確,則不進(jìn)行處理。若需要發(fā)送數(shù)據(jù)時(shí),通過(guò)輸入發(fā)送信息,將數(shù) 無(wú)人機(jī)地面站界據(jù)發(fā)送給無(wú)人機(jī)。定位區(qū)在通信設(shè)置區(qū)的左側(cè),包括開始定位按鈕、停止定位按鈕、軌跡回放按鈕、導(dǎo)出地圖按鈕、和清楚軌跡按鈕。當(dāng)?shù)孛嬲窘邮盏綗o(wú)人機(jī)的飛行信息以后,首先會(huì)在地面站顯示出無(wú)人機(jī)的初始位置,然后可以點(diǎn)擊開始定位按鈕,這時(shí)無(wú)人機(jī)的飛行軌跡會(huì)在地圖上顯示出來(lái)。如果想要停止顯示,可以點(diǎn)擊停止定位按鈕,這時(shí)無(wú)人機(jī)飛行數(shù)據(jù)仍然在接收,只是地圖顯示停止。本文的地面站還添加了導(dǎo)出地圖功能,通過(guò)點(diǎn)擊導(dǎo)出地圖按鈕,可以將電子地圖信息以.pg格式導(dǎo)出,便于直觀的對(duì)比飛行軌跡。地面站的地圖區(qū),主要用來(lái)顯示飛行航跡和規(guī)劃航跡。本文中為地面站的地圖區(qū)添加了地圖用于對(duì)地圖進(jìn)行相應(yīng)操作,包括地圖的放大、縮小、地圖拖動(dòng)、矩形選擇、圓形選擇、圖元拖動(dòng)、圖層控制、地圖屬性設(shè)置以及標(biāo)注。飛行數(shù)據(jù)顯示區(qū)位于界面的左下方,本文通過(guò)T頁(yè)的方法將數(shù)據(jù)分為兩部分顯示,第一頁(yè)用來(lái)顯示無(wú)人機(jī)的姿態(tài)及高度,第二頁(yè)顯示無(wú)人機(jī)的其他運(yùn)行參數(shù),包括慣導(dǎo)到的線速度、角速度,GS到的經(jīng)度、緯度、高度,以及無(wú)人機(jī)的控制電機(jī)轉(zhuǎn)速。航跡規(guī)劃區(qū)用來(lái)添加規(guī)劃的航跡點(diǎn),包括航跡點(diǎn)的經(jīng)度、緯度、高度、以及航跡點(diǎn)的序號(hào)。當(dāng)對(duì)航跡點(diǎn)進(jìn)行添加時(shí),首先將航跡點(diǎn)信息存入地面站數(shù)據(jù)庫(kù)中,同時(shí)將航跡點(diǎn)顯示在地圖上,可以通過(guò)點(diǎn)擊顯示航跡點(diǎn)按鈕在列表框中查看已經(jīng)添加的航跡點(diǎn)。當(dāng)鼠標(biāo)在地圖上移動(dòng)時(shí),可以在狀態(tài)欄中看到鼠標(biāo)對(duì)應(yīng)位置的信息,便于對(duì)航跡點(diǎn)的添加。下圖(如圖-7)為本文設(shè)計(jì)的地面站軟件的整體流程圖,當(dāng)?shù)孛嬲締?dòng)以后,通過(guò)正確配置串口信息,啟動(dòng)串口進(jìn)行數(shù)據(jù)的收發(fā)。本文中為串口開啟了一個(gè)線程,當(dāng)串口有數(shù)據(jù)到來(lái)時(shí),通過(guò)發(fā)送自定義用戶消息,使消息響應(yīng)函數(shù)處理接收到的數(shù)據(jù),根據(jù)通信協(xié)議解算出需要的數(shù)據(jù)量,然后進(jìn)行數(shù)據(jù)庫(kù)的,以及顯示。同時(shí)地面站界面上提供了多個(gè)按鈕,當(dāng)點(diǎn)擊對(duì)應(yīng)按鈕時(shí),地面站會(huì)執(zhí)行響應(yīng)的操作,如當(dāng)點(diǎn)擊定位按鈕時(shí),首先會(huì)判斷顯示圖層是否存在且調(diào)用正確,獲得正確圖層以后,可以在地圖上顯示無(wú)人機(jī)的飛行位置。 地面站程序流程本章小本章主要對(duì)無(wú)人機(jī)地面站的軟件架構(gòu)以及功能模塊進(jìn)行了分析,同時(shí)也對(duì)無(wú)人機(jī)系統(tǒng)進(jìn)行了簡(jiǎn)要介紹。為了使無(wú)人機(jī)與地面站之間能更好的協(xié)作,首先根據(jù)無(wú)人機(jī)的實(shí)際需求確定地面站的功能,包括無(wú)人機(jī)與地面站的通信、的航跡規(guī)劃等。其次,對(duì)各功能模塊的實(shí)現(xiàn)方法進(jìn)行了簡(jiǎn)單介紹,最后給出了本文中的無(wú)人機(jī)地面站軟件實(shí)現(xiàn)有以下功能:通過(guò)無(wú)線網(wǎng)絡(luò)/數(shù)傳電臺(tái)實(shí)現(xiàn)無(wú)人機(jī)與地面站的數(shù)據(jù)傳輸;利用Mysql數(shù)據(jù)庫(kù)無(wú)人機(jī)的數(shù)據(jù)以供后續(xù)分析,并對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行備份;利用Mapx電子地圖對(duì)無(wú)人機(jī)進(jìn)行定地面站與無(wú)人機(jī)的通本文對(duì)無(wú)人機(jī)與地面站的通訊進(jìn)行了兩種方式的實(shí)現(xiàn),一種是采用基于UDP的Socket無(wú)線網(wǎng)絡(luò)編程實(shí)現(xiàn);一種是通過(guò)無(wú)線數(shù)傳電臺(tái)通訊的實(shí)現(xiàn)。地面站無(wú)線網(wǎng)絡(luò)通信的實(shí)本文實(shí)現(xiàn)的無(wú)人機(jī)與地面站的無(wú)線網(wǎng)絡(luò)通信,是地面站計(jì)算機(jī)與無(wú)人機(jī)之間構(gòu)建一個(gè)局域網(wǎng),通過(guò)點(diǎn)對(duì)點(diǎn)結(jié)構(gòu)實(shí)現(xiàn)二者的雙向收發(fā)功能?;赨DP的通訊是一種無(wú)連接的通信方式,由于UDP傳輸?shù)膶?shí)時(shí)性較好,本文采用UDP傳輸協(xié)議。為了在地面站上能正確的接收無(wú)人機(jī)發(fā)送的飛行信息,根據(jù)第二章第一節(jié)中介紹的MTi-G的數(shù)據(jù)格式,以及地面站需接收的電機(jī)轉(zhuǎn)速等飛行信息,首先確定接收無(wú)人機(jī)的飛行數(shù)據(jù)如下,無(wú)人機(jī)線加速度:accx、accy、acc無(wú)人機(jī)角速度:gyrx、gyry、gyr無(wú)人機(jī)姿態(tài):滾轉(zhuǎn)角(Roll)、俯仰角(Pitch)、偏航角(Yaw);(altitude;無(wú)人機(jī)控制電機(jī)轉(zhuǎn)速:包括4個(gè)電機(jī)轉(zhuǎn)速(rev1、rev2、rev3、rev4;根據(jù)各個(gè)數(shù)據(jù)的數(shù)據(jù)類型,定義數(shù)據(jù)格式如下表3-1所示,無(wú)人機(jī)發(fā)送的數(shù)據(jù)一共為18個(gè)數(shù)據(jù),為方便傳輸,在地面站程序中定義一個(gè)結(jié)構(gòu)體來(lái)接收,這是因?yàn)镸FC對(duì)UCP、IP協(xié)議進(jìn)行了封裝,利用CSocket編程時(shí)只需要面對(duì)上層協(xié)議的具體操作,而不用關(guān)注底層協(xié)議的實(shí)現(xiàn)[42]。本文中實(shí)現(xiàn)的無(wú)線網(wǎng)絡(luò)傳輸,是通過(guò)繼承CSocet類來(lái)建立一個(gè)新的套接字類trasSocet,然后重載OReie函數(shù)來(lái)響應(yīng)數(shù)據(jù)接收消息,從而接收無(wú)人機(jī)發(fā)送的數(shù)據(jù)。同樣,通過(guò)創(chuàng)建的套接字可以給無(wú)人機(jī)發(fā)送飛行命令。基 無(wú)人機(jī)飛行信息數(shù)據(jù)格名 描 類acc 線加速 acc 線加速 acc 線加速 gyr 角速 gyr 角速 gyr 角速 滾轉(zhuǎn) 俯仰 偏航角floatlatitude飛行點(diǎn)緯度f(wàn)loatlongitude飛行點(diǎn)經(jīng)度f(wàn)loataltitude飛行點(diǎn)高度f(wàn)loat 電機(jī)轉(zhuǎn)速int 電機(jī)轉(zhuǎn) 電機(jī)轉(zhuǎn) 電機(jī)轉(zhuǎn) 于UDP的CSocket編程的接收端程序流程為:本文創(chuàng)建套接字 BOOLCreate{UINTnSocketPort=0,intnSocketType=SOCK-STREAM,LPCTSTRlpszSocketAddress=NULL};第一個(gè)參數(shù)為端,第二個(gè)為套接字的類型,第三個(gè)為指定的IP。因Create函數(shù)內(nèi)部隱式調(diào)用了bind函數(shù),則不需要手動(dòng)綁定套接字。利用CSocket本文中為地面站創(chuàng)建了一個(gè)模擬的發(fā)送端,為地面站的測(cè)試功能提供了地面站串口通地面站與無(wú)人機(jī)通過(guò)無(wú)線數(shù)傳電臺(tái)進(jìn)行通訊,數(shù)傳電臺(tái)與地面站計(jì)算機(jī)利用串口進(jìn)行連接,因此地面站獲取無(wú)人機(jī)飛行數(shù)據(jù)是通過(guò)串口的數(shù)據(jù)實(shí)現(xiàn),計(jì)算機(jī)與數(shù)傳電臺(tái)之間的串口通信采用的是RS232標(biāo)準(zhǔn)。串口操作主要有兩種操作方式:同步方式和異步方式。同步方式時(shí),I函數(shù)直到全部或?qū)懭氩艜?huì)返回,因此會(huì)造成阻塞;異步方式時(shí),當(dāng)調(diào)用讀寫函數(shù)以后,函數(shù)會(huì)立即返回,此時(shí)利用ndos的多線程機(jī)制,是讀寫操作在運(yùn)行,當(dāng)操作完成后,通知系統(tǒng)操作完成。因此本文采用異步方式實(shí)現(xiàn)串口通信。數(shù)傳電無(wú)人機(jī)與地面站之間通過(guò)無(wú)線數(shù)據(jù)電臺(tái)進(jìn)行通信,根據(jù)需要將數(shù)傳電臺(tái)的波特率設(shè)置為19200bps。由于無(wú)人機(jī)主控制器的發(fā)送頻率為10Hz,因此地面站以10Hz的頻率進(jìn)行數(shù)據(jù)處理。本文中采用的數(shù)傳電臺(tái)如下圖3-1所示,數(shù) 數(shù)傳電傳電臺(tái)向串口發(fā)送數(shù)據(jù)是一幀一幀的發(fā)送,因此需確定數(shù)據(jù)的幀格式。本文中采用的數(shù)據(jù)格式為:無(wú)校驗(yàn)位、8位數(shù)據(jù)位、1位停止位。地面站通口設(shè)無(wú)人機(jī)與地面站之間進(jìn)行通信,首先需要確定通信協(xié)議。根據(jù)第一節(jié)中確定的無(wú)人機(jī)的數(shù)據(jù)格式,定義接收數(shù)據(jù)的報(bào)文協(xié)議如下表3-2所示,一組數(shù)據(jù)的長(zhǎng)度為8個(gè)字節(jié),其中定義了字頭的格式,一共有4個(gè)字節(jié),為FAFF3230;中間數(shù)據(jù)為無(wú)人機(jī)的飛行信息,飛行信息的數(shù)據(jù)類型如上表3-1所示,無(wú)人機(jī)的加速度、角速度、姿態(tài)角和位置信息為flot類型,電機(jī)轉(zhuǎn)速為int 接收數(shù)據(jù)的報(bào)文格字 數(shù)據(jù)4個(gè)字節(jié)64因?yàn)榇趥鬏斠粠疃酁?位數(shù)據(jù),因此需要用4個(gè)字節(jié)代表一個(gè)數(shù)據(jù)進(jìn)行接收,一共是64個(gè)字節(jié)。同時(shí),地面站向無(wú)人機(jī)發(fā)送令包括兩個(gè)方面,一方面是規(guī)劃的航跡點(diǎn)信息,另一方面是控制參數(shù)的調(diào)整,因此發(fā)送數(shù)據(jù)的報(bào)文協(xié)議定義如下表3-3所示,因?yàn)闊o(wú)人機(jī)上傳的數(shù)據(jù)根據(jù)命令需要進(jìn)行選擇,因此定義字頭的格式如無(wú)人機(jī)與地面站進(jìn)行通信,需注意的一個(gè)問(wèn)題是傳輸數(shù)據(jù)的有效性。本文中地面站對(duì)數(shù)據(jù)進(jìn)行接收時(shí),根據(jù)制定的通信協(xié)議,當(dāng)?shù)孛嬲鹃_始接收數(shù)據(jù)時(shí),首先通過(guò)字頭判斷是否接收此組數(shù)據(jù);當(dāng)字頭一致時(shí),對(duì)此組數(shù)據(jù)進(jìn)行接收,若字頭不一致,則一直進(jìn)行比較,直到獲取正確的字頭;地面站程序中,為無(wú)人機(jī)飛行數(shù)據(jù)定義一個(gè)結(jié)構(gòu)體,當(dāng)接收到一組數(shù)據(jù)時(shí),首先根據(jù)數(shù)據(jù)順序進(jìn)行解析,然后將其存入結(jié)構(gòu)體對(duì)應(yīng)的變量中,并利用此結(jié)構(gòu)體對(duì)飛行數(shù)據(jù)進(jìn)行后續(xù)的處理。下面是對(duì)串口進(jìn)行操作的程序流程圖如圖3-2,首先確定數(shù)傳電臺(tái)與地面站計(jì)算機(jī)連接所用的端,然后打開端口,對(duì)端口進(jìn)行設(shè)置;設(shè)置成以后,通過(guò)創(chuàng)建串口子線程對(duì)串口的數(shù)據(jù)進(jìn)行;當(dāng)串口有數(shù)據(jù)寫入的時(shí)候,通過(guò)自定義的消息響應(yīng)函數(shù)進(jìn)行處理,本文中對(duì)串口的操作采用異步方式,因此操作未完成函數(shù)已返回,通過(guò)iForSiglOct函數(shù)來(lái)等待消息響應(yīng)函數(shù)處理完成,一次操作完成以后再處理新的消息。無(wú)人機(jī)地面站數(shù)據(jù)庫(kù)的地面站數(shù)據(jù)庫(kù),為地面站的數(shù)據(jù)以及調(diào)用提供了保證。本文設(shè)計(jì)了一個(gè)地面站數(shù)據(jù)庫(kù),用以管理地面站的數(shù)據(jù)信息。地面站的數(shù)據(jù)信息主要包括無(wú)人機(jī)發(fā)送的飛行數(shù)據(jù)和航跡規(guī)劃的數(shù)據(jù),實(shí)現(xiàn)的功能包括兩個(gè)方面:一是對(duì)無(wú)人機(jī)發(fā)送數(shù)據(jù)的以及離線分析;二是對(duì)航跡規(guī)劃信息的以及修改。 發(fā)送數(shù)據(jù)的報(bào)文格字 數(shù)據(jù)4個(gè)字節(jié)16 上傳數(shù)據(jù)的字頭格字11213141 串口操作流程數(shù)據(jù)庫(kù)的選近幾年,開源數(shù)據(jù)庫(kù)逐漸流行起來(lái)。由于開源數(shù)據(jù)庫(kù)[43]免費(fèi)使用、穩(wěn)定性好、配置簡(jiǎn)單以及性能優(yōu)良等優(yōu)點(diǎn),在中應(yīng)用中越來(lái)越廣泛。MySQL數(shù)據(jù)庫(kù)作為開源數(shù)據(jù)庫(kù)中杰出的代表,它基本上支持所有的操作系統(tǒng),如Windows、Linux、OS/2等,并支持很大的表(MyISAM引擎支持的最大表的尺寸為65536TB),這些特性使得MySQL數(shù)據(jù)庫(kù)發(fā)展的非常迅速。目前在實(shí)際的應(yīng)用方面,常用的數(shù)據(jù)庫(kù)有SQLServer、Access、Oracle、DB2和MySQL,其中,SQLServer只能在windows下應(yīng)用,占用系統(tǒng)資源較多;MySQL相比于Access功能更為全面;Oracle和DB2主要用于大型的數(shù)據(jù),因此考慮到無(wú)人機(jī)地面站對(duì)數(shù)據(jù)庫(kù)的需求,本文選擇MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存數(shù)據(jù)庫(kù)通過(guò)SQL語(yǔ)言進(jìn)行操作,SQL(StructureQueryLanguage)是結(jié)構(gòu)化查詢語(yǔ)言, 局(ANSI)制定了SQL標(biāo)準(zhǔn),使得SQL語(yǔ)言作為標(biāo)準(zhǔn)關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的地位得到了鞏固。經(jīng)過(guò)幾次修改,SQL標(biāo)準(zhǔn)更趨近于完美。正是由于SQL語(yǔ)言的標(biāo)準(zhǔn)化,大多數(shù)的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)都支持SQL語(yǔ)言,MySQL數(shù)據(jù)庫(kù)支持SQL語(yǔ)言,同時(shí)在標(biāo)準(zhǔn)SQL上做了一些擴(kuò)展。VisualC++支持多種數(shù)據(jù)庫(kù)的方式,比如開放數(shù)據(jù)庫(kù)互聯(lián)(ODBC,OpenDatabaseConnectivity)、數(shù)據(jù)對(duì)象(DAO,DataAccessObject)、對(duì)象連接與嵌入數(shù)據(jù)庫(kù)(OLEDB)、ActiveX數(shù)據(jù)對(duì)象(ActiveXDataObject)、以及采用MySQLCAPI來(lái)開發(fā)應(yīng)用程序與數(shù)據(jù)庫(kù)的連接?;谀壳耙延械耐ㄟ^(guò)標(biāo)準(zhǔn)技術(shù)完成應(yīng)用程序與數(shù)據(jù)庫(kù)的交互,以及考慮到無(wú)人機(jī)地面站軟件的平臺(tái)移植,本文采用MySQLCAPI實(shí)現(xiàn)VC與MySQL的交互。地面站數(shù)據(jù)庫(kù)的結(jié)根據(jù)無(wú)人機(jī)地面站的功能需求,將地面站接收到的無(wú)人機(jī)數(shù)據(jù)和航跡規(guī)劃信息分開處理,因此為地面站數(shù)據(jù)庫(kù)設(shè)計(jì)兩個(gè)表:一個(gè)是無(wú)人機(jī)飛行數(shù)據(jù)表,用于無(wú)人機(jī)發(fā)送的數(shù)據(jù);一個(gè)是航跡規(guī)劃表,用于保存規(guī)劃點(diǎn)數(shù)據(jù)。無(wú)人機(jī)飛行數(shù)據(jù)表無(wú)人機(jī)發(fā)送到地面站的數(shù)據(jù),根據(jù)上一節(jié)確定的無(wú)人機(jī)飛行數(shù)據(jù)格式,定義飛行數(shù)據(jù)表3-5,從表中可以看到,飛行數(shù)據(jù)表了飛行航跡點(diǎn)的序號(hào)以及時(shí)間,同時(shí)無(wú)人機(jī)的線加速度、角速度、姿態(tài)角、位置以及電機(jī)轉(zhuǎn)速,一共18個(gè)數(shù)據(jù)。無(wú)人機(jī)航跡規(guī)劃表(如表3-6)的信息包括 無(wú)人機(jī)飛行數(shù)據(jù)名稱 描述 類型 不為空主鍵 int(unsigned)是 接收時(shí)間 accx 線加速度 accy 線加速度 accz 線加速度 gyrx 角速度 gyry 角速度 gyrz 角速度 float是否roll滾轉(zhuǎn)角float是否pitch俯仰角float是否yaw偏航角float是否latitude飛行點(diǎn)緯度f(wàn)loat是否longitude飛行點(diǎn)經(jīng)度f(wàn)loat是否altitude飛行點(diǎn)高度f(wàn)loat是否rev1電機(jī)轉(zhuǎn)速int是否 電機(jī)轉(zhuǎn) 電機(jī)轉(zhuǎn) 電機(jī)轉(zhuǎn) 無(wú)人機(jī)航跡規(guī)劃類不為是是是否是否是否地圖圖元ID:此ID用于標(biāo)識(shí)航點(diǎn)在電子地圖上的圖元的Keyvalue地面站數(shù)據(jù)庫(kù)的建立和本文中使用CI連接操作MYSL數(shù)據(jù)庫(kù),對(duì)其進(jìn)行連接、、查詢以及調(diào)用,使地面站數(shù)據(jù)庫(kù)為地面站實(shí)現(xiàn)了實(shí)時(shí)的數(shù)據(jù)、數(shù)據(jù)備份、以及數(shù)據(jù)分析功能。首先是地面站數(shù)據(jù)庫(kù)以及表的建立。本文通過(guò)MySQL命令行建立地面站數(shù)據(jù)庫(kù)UAVdatas(如圖3-3),執(zhí)行代碼為:createdatabase 無(wú)人機(jī)地面站數(shù)據(jù)此時(shí)成功建立地面站數(shù)據(jù)庫(kù)ds然后在ds數(shù)據(jù)庫(kù)下建立飛行數(shù)據(jù)表civDts和航跡規(guī)劃表Guha,此時(shí)需要了解一下MYQL支持的數(shù)據(jù)類型。MSQL提供了多種數(shù)據(jù)類型,包括數(shù)值型、字符串型、日期型和時(shí)間類型,其中MYQL支持標(biāo)準(zhǔn)SQL中的數(shù)值類型,本文用到的數(shù)值類型為flot和int日期型數(shù)據(jù)選擇DTETME,表示具體的年月日時(shí)分秒。createtablenumberintunsignednotnullauto_increment,//自動(dòng)遞增datatimedatetimenotnull,acc_xfloatnotnull,acc_yfloatnotnull,acc_zfloatnotnull,gyr_xfloatnotnull,gyr_yfloatnotnull,gyr_zfloatnotnull,rollvaluefloatnotnull,pitchvaluefloatnotnull,yawvaluefloatnotnull,latitudefloatnotnull,longitudefloatnotnull,altitudefloatnotnull,rev1intnotnull,rev2intnotnull,rev3intnotnull,rev4intnotnull,primary ReceiveDatas表中將number設(shè)置為主鍵,且自動(dòng)遞增。航跡規(guī)劃表(如圖 飛行數(shù)據(jù)的建立如下,從表中可以看出,緯度、經(jīng)度、高度設(shè)置為float(10,6,表示這3個(gè)數(shù)值顯示0位,其中小數(shù)位數(shù)為6位。Guihua表中同樣設(shè)置nmbr為主鍵,但并沒(méi)有將numbr設(shè)置為自動(dòng)遞增,這是因?yàn)镚uihua表中執(zhí)行的添加、刪除及修改操作較頻繁,通過(guò)手動(dòng)添加序號(hào)便于操作。createtablenumberintunsignednotnull,datatimedatetimenotnull,latitudefloat(10,6)notnull,longitudefloat(10,6)notnull,altitudefloat(10,6)notnull,keyvalueintnotnull,primary 航跡規(guī)劃地面站數(shù)據(jù)庫(kù)建立好了以后,下圖(如圖3-6)是VC++與數(shù)據(jù)庫(kù)的交互,實(shí)現(xiàn)動(dòng)態(tài)操作數(shù)據(jù)庫(kù)。 Mysql數(shù)據(jù)庫(kù)操作程序流程Mysql調(diào)用CAPI,涉及到一下幾個(gè)函數(shù)和結(jié)構(gòu)intmysqlrealquery(MYSQL*mysqlconstchar*query,unsignedintlength)該函數(shù)執(zhí)行的是query指向的SQL查詢,為length個(gè)字節(jié)的字符串。需要注意的是mysqlrealquery()與mysqlqurey()的區(qū)別。MYSQLMYSQL這是一個(gè)行數(shù)據(jù)的類型安全表示。當(dāng)前它實(shí)現(xiàn)為一個(gè)計(jì)數(shù)字節(jié)的字符mysqlstoreresult(該函數(shù)用于檢索一個(gè)完整的結(jié)果集給客戶。 通過(guò)調(diào)用 result()來(lái)釋放結(jié)果集合使用的內(nèi)存通過(guò)以上函數(shù)的調(diào)用,完成對(duì)數(shù)據(jù)庫(kù)表中數(shù)據(jù)的查詢功能,當(dāng)在地面站數(shù)據(jù)庫(kù)中添加規(guī)劃的航跡點(diǎn),為了便于顯示,本文使用了列表控件將航跡點(diǎn)顯示出來(lái),如下圖3-7 航跡規(guī)劃表中航跡其存入規(guī)劃表中,點(diǎn)擊“顯示航跡點(diǎn)”按鈕,可以將添加的航跡點(diǎn)的需要信息顯示在列表框中,上圖只顯示了航跡點(diǎn)的序號(hào)、經(jīng)度、緯度以及圖元的屬性值。點(diǎn)擊“刪除航跡點(diǎn)”按鈕,輸入要?jiǎng)h除航跡點(diǎn)的序號(hào),可以將航跡點(diǎn)刪除。地面站數(shù)據(jù)庫(kù)的備地面站數(shù)據(jù)庫(kù)了無(wú)人機(jī)的飛行數(shù)據(jù),以及航跡規(guī)劃等重要信息,因此應(yīng)充分考慮到數(shù)據(jù)的安全性,一旦數(shù)據(jù)丟失會(huì)對(duì)飛行和后續(xù)試驗(yàn)分析產(chǎn)生備份以及數(shù)據(jù)恢復(fù)在數(shù)據(jù)庫(kù)中是很重要的一部分,如果系統(tǒng)出現(xiàn),有備份的數(shù)據(jù)可供恢復(fù),可以使損失降到最低[45]。在進(jìn)行備份或恢復(fù)操作時(shí)需要考慮一下幾個(gè)因素:確定需要備份的表的引引擎分事務(wù)型還是非事務(wù)型,這兩種不同的引擎?zhèn)浞莘绞皆谔幚頂?shù)據(jù)一致性方面不太一樣。確定對(duì)數(shù)據(jù)庫(kù)進(jìn)行全備份還是增量備份全備份的優(yōu)點(diǎn)是保持備份,對(duì)數(shù)據(jù)進(jìn)行恢復(fù)的時(shí)候花費(fèi)較少的時(shí)間,缺點(diǎn)是數(shù)據(jù)量大,會(huì)對(duì)系統(tǒng)造成長(zhǎng)時(shí)間的壓力;增量備份與全備份恰好相反,增量備份只需備份每天的增量日志,備份時(shí)間少,對(duì)負(fù)載壓力小,但缺點(diǎn)是恢復(fù)的時(shí)候需要全備份加上次備份到故障前的全部日志,備份的周期要考慮系統(tǒng)可以承受的恢復(fù)時(shí)間,備份要在系統(tǒng)負(fù)載較小經(jīng)常做備份恢復(fù)測(cè)試做備份恢復(fù)測(cè)試,目的是確保備份是有效的,并且是可以恢復(fù)的。MSQL的備份主要分為邏輯備份和物理備份,邏輯備份最大的優(yōu)點(diǎn)是對(duì)于各種引擎,可以使用同樣的方法來(lái)備份;物理備份是指對(duì)不同的引擎有不同的備份方法。本文選用邏輯備份對(duì)地面站數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行備mysqldump[options]db_name[tables]該語(yǔ)句用于備份單個(gè)數(shù)據(jù)庫(kù)或者庫(kù)中指定的數(shù)據(jù)表,在地面站數(shù)據(jù)庫(kù)中,可以根據(jù)不同表的需要,設(shè)置備份方式,從而保證地面站數(shù)據(jù)庫(kù)數(shù)據(jù)的安全性。MapX電子地圖的二次電子地圖在無(wú)人機(jī)地面站上的作用是顯示無(wú)人機(jī)的位置、畫出飛行航跡、標(biāo)識(shí)規(guī)劃點(diǎn)以及顯示規(guī)劃航跡等,基于MapX與MFC可以較好的集成[46],本文的無(wú)人機(jī)地面站采用MapInfoMapX5.0電子地圖進(jìn)行二次開發(fā)。下面就MapX功能的實(shí)現(xiàn)進(jìn)行介紹。為了更好地理解MapInfoMapX,首先介紹一下地理信息系統(tǒng)。地理信息系統(tǒng)[47](GeographicInformationSystem,GIS)技術(shù)為支撐,通過(guò)對(duì)空間信息的獲取與處理制作出符合要求的GIS數(shù)據(jù),用以各種顯示和使用。地理信息系統(tǒng)的二次開發(fā)包括獨(dú)立開發(fā)、單純二次開發(fā)以及集成二次開發(fā)三種方式,其中獨(dú)立開發(fā)是不依賴于GIS工具軟件,從數(shù)據(jù)、編輯到處理都由開發(fā)者獨(dú)立設(shè)計(jì);單純二次開發(fā)則是完全借助于GIS工具提供的開發(fā)語(yǔ)言進(jìn)行開發(fā);集成二次開發(fā)是利用專業(yè)的GIS工具,實(shí)現(xiàn)GIS的基本功能,以通用的軟件開發(fā)工具如VisualC++等平臺(tái),進(jìn)行二者的集成?,F(xiàn)在多用的GIS組件方式開發(fā),是利用GIS工具中建立在OCX技術(shù)基礎(chǔ)上的GIS功能組件比如MapInfo的MapX,在VisualC++等開發(fā)環(huán)境中將GIS功能嵌入其中,實(shí)現(xiàn)地理信息系統(tǒng)的各種功能。MapInfo是MapInfo公司的桌面地理信息系統(tǒng)軟件[48],是一種數(shù)據(jù)可視化、信息地圖化的桌面解決方案,MapInfo的含義是“Map+Information(地圖+信息)+屬性數(shù)據(jù)。MapInfo的地圖數(shù)據(jù)采用了屬性數(shù)據(jù)和空間數(shù)據(jù)分開的模式。屬性數(shù)據(jù)在關(guān)系數(shù)據(jù)庫(kù)中的屬性表中,空間數(shù)據(jù)以MapInfo的自定義格式保存在一些文件中,同時(shí)二者通過(guò)索引機(jī)制聯(lián)系起來(lái)。MapInfo通過(guò)分層結(jié)構(gòu)對(duì)空間數(shù)據(jù)進(jìn)行組織,每個(gè)圖層為屬性數(shù)據(jù)的表結(jié)構(gòu)文件該文件中定義了屬性數(shù)據(jù)的表結(jié)構(gòu),分別為對(duì)字段數(shù)、字段名、字段屬性數(shù)據(jù)文件該文件用來(lái)地圖的屬性數(shù)據(jù)空間數(shù)據(jù)文件該文件用來(lái)記錄地圖對(duì)象的空間數(shù)據(jù),包括空間對(duì)象的幾何類型、坐標(biāo)信息以及顏色等。交叉索引文件索來(lái)連接空間數(shù)據(jù)和屬性數(shù)據(jù),該交叉索引文件記錄地圖中空間對(duì)象在空間數(shù)據(jù)文件中的位置指針,即對(duì)空間對(duì)象的定位。索引文件當(dāng)用戶定義了索引字段,才會(huì)產(chǎn)生索引文件。該文件按索引順序給出每一條屬性數(shù)據(jù)在其對(duì)應(yīng)索引字段的屬性數(shù)據(jù)的記錄,同時(shí)給出這條數(shù)據(jù)在屬性文件和交叉索引文件中的記錄號(hào)。通過(guò)了解MapInfo地圖數(shù)據(jù)的方式,在接下來(lái)的地圖中可以實(shí)現(xiàn)地圖MapInfoMapX是低價(jià)高效、功能強(qiáng)大的ActiveX組件式開發(fā)工具[49],可以讓開發(fā)人員在應(yīng)用程序中方便的添加地圖功能。開發(fā)人員可以使用標(biāo)準(zhǔn)的編程語(yǔ)言如VisualBasic、VisualC++及Delphi進(jìn)行開發(fā),并方便的設(shè)計(jì)地MapX也是以MapInfo表的形式來(lái)組織數(shù)據(jù)。每個(gè)表為一組MapInfo當(dāng)需要在地圖中創(chuàng)建新的圖層,可以通過(guò)創(chuàng)建MapInfo文件來(lái)實(shí)現(xiàn)。此時(shí)需要介紹一下Geoset,它是擴(kuò)展名為.gst的文本文件,是地圖圖層的集合,當(dāng)打開.gst文件時(shí),可以看到地圖中的多個(gè)圖層并進(jìn)行操作。一般根據(jù)需要對(duì)應(yīng)地區(qū)的地圖(.gst文件),將其嵌入到MapX控件中。當(dāng)需要對(duì)地圖進(jìn)行設(shè)置時(shí),需要用到GeosetManager程序,如下圖3-8,該程序同MapX一起安裝,用來(lái)打開.gst文件并保存對(duì)地圖文件的操作。比如,可以在GeoSetManager中對(duì)地 GeoSet圖進(jìn)行圖層設(shè)置,包括圖層的移動(dòng)、添加或刪除、圖層的編輯屬性等;同時(shí)也可以對(duì)地圖進(jìn)行縮放以及移動(dòng),從而得到需要的地圖。地面站電子地圖的創(chuàng)過(guò)GeoSetManager對(duì)地圖進(jìn)行設(shè)置,同時(shí)通過(guò)調(diào)用MapX提供的方法和事件首先介紹的是MapX電子地圖的加載。本文中的地面站軟件是在MFC下建立一個(gè)基于Dialog的工程,命名為mapxnv,然后在框中嵌入MapInfoMapXV5控件,為了使工程簡(jiǎn)潔,本文中只添加了需要用到的MapX類,當(dāng)添加地圖控件成功以后,為MapX控件定義一個(gè)變量mmapx,類型為MapX。這時(shí)完成了對(duì)MapX控件對(duì)象的建立,一個(gè)MapX地圖對(duì)象包括Layers對(duì)象、DataSets對(duì)象、Annotations對(duì)象等,其中用到的是Layers對(duì)象以及Layers對(duì)象包括的Features對(duì)象、Points對(duì)象等。接下來(lái)在工程中通過(guò)這個(gè)Mapx對(duì)象完成對(duì)地圖的操作。本文根據(jù)實(shí)驗(yàn)要求,.gst格式的地圖,然后在GeoSetManager中對(duì)地圖進(jìn)行設(shè)置,選擇以為中心的地圖區(qū)域,并將其縮放到需要的比例,命名為GPStrack.gst,然后在MFC工程下使用以下語(yǔ)句進(jìn)行電子地圖加載:m_mapx.SetGeoSet("GPStrack.gst");//設(shè)置MapX地圖控件加載的地圖名稱成功加載地圖以后顯示的界面如下圖3-9所示,若需要對(duì)地圖進(jìn)行修改,可以在GeoSetManger中調(diào)整地圖,當(dāng)重新打開工程時(shí),地圖更新到調(diào)整的狀態(tài)下。 地面站加載地下面是對(duì)地圖圖層的創(chuàng)建。MapX中地圖圖層分為永久圖層和臨時(shí)圖層,永久圖層是創(chuàng)建一個(gè)包含.TAB、.DAT、.ID、.MAP、.IND文件的MapInfo表,作為地圖的一部分,對(duì)其操作會(huì)一直保存,而臨時(shí)圖層在程序中創(chuàng)建,當(dāng)程序終止以后,圖層便。本文中地面站地圖上顯示的信息分為三個(gè)方面:一是無(wú)人機(jī)位置和飛行航跡的顯示;二是無(wú)人機(jī)航跡規(guī)劃信息的顯示;三是其他輔助信息的顯示,如圖元標(biāo)注等。為了便于管理,使各部分的信息在不同的圖層上進(jìn)行操作,本文為電子地圖創(chuàng)建了3個(gè)新的圖層,其中有兩個(gè)為永久圖層,一個(gè)為臨時(shí)圖層。考慮到在地面站上對(duì)地圖的操作過(guò)程中,希望對(duì)航跡顯示信息與規(guī)劃信息的保存與否由操作人員來(lái)決定,因此創(chuàng)建的兩個(gè)永久圖層分別為GenzongLayer和GuihuaLayer,用來(lái)處理航跡顯示信息和規(guī)劃信息。其他的輔助信息通過(guò)臨時(shí)圖層來(lái)操作,比如為航跡點(diǎn)添加標(biāo)注等。創(chuàng)建的永久圖層的代碼如下所示: CMapXFieldsMapFields;//定義屬性管理對(duì)象MapFields.CreateDispatch(MapFields.GetClsid());//創(chuàng)建屬性管理對(duì)象MapFields.AddIntegerField("C_ID",TRUE屬性管理對(duì)象添加字段MapFields.AddStringField("Name",32);//繼續(xù)添加字符字段COleVariantvFields;//將mapfields關(guān)聯(lián)到layerinfo上vFields.vt=VT_DISPATCH;//設(shè)置類型為DISPATCHvFields.pdispVal=MapFields;//管理對(duì)象為定義的屬性管理對(duì)象LayerInfo.AddParameter("Name",COleVariant(strLayerName));LayerInfo.AddParameter("Fields",vFields); 永久圖層創(chuàng)通過(guò)這段代碼可以在程序中創(chuàng)建永久圖層,這里用到了COlevariant類,COlevariant類是由VC提供的,是對(duì)VARIANT數(shù)據(jù)類型的封裝,為自動(dòng)化服務(wù)器和客戶端之間傳遞數(shù)據(jù)提供了統(tǒng)一、安全的機(jī)制。當(dāng)成功創(chuàng)建永久圖層以后,可以在GeoSetManager中向地圖對(duì)象添加創(chuàng)建的圖層,如下圖3-10所示,永久圖層GzogLr用于顯示無(wú)人機(jī)的飛行位置以及飛行航跡;永久圖層uiuLr用于顯示規(guī)劃的航跡點(diǎn)以及規(guī)劃的航跡。當(dāng)圖層創(chuàng)建完成之后,可以通過(guò)“圖層控制”中的“上移”或“下移”來(lái)更改圖層的順序。當(dāng)利用Mpx中的圖層集合Lrs以及圖層Lr的屬性和方法時(shí),需正確的設(shè)置圖層順序。另外當(dāng)使用選擇工具對(duì)圖元進(jìn)行選擇時(shí),選擇工具從最頂部的可選擇圖層選擇對(duì)象,因此應(yīng)該根據(jù)需要對(duì)圖層進(jìn)行適當(dāng)排序。本文的電子地圖中有一個(gè)臨時(shí)圖層uzuLr,該圖層用于顯示圖元標(biāo)注等信息。當(dāng)?shù)孛嬲境绦蜻\(yùn)行時(shí),若需要臨時(shí)圖層進(jìn)行顯示,則程序會(huì)判斷是否存在臨時(shí)圖層,存在則調(diào)用;不存在則新建臨時(shí)圖層。為了便捷的對(duì)地圖進(jìn)行操作,地面站實(shí)現(xiàn)了地圖,即一排順序排列的帶有位圖圖標(biāo)的按鈕(如圖3-11)[38],地圖可以執(zhí)行的操作自左向 地圖右依次為:地圖放大、地圖縮小、拖動(dòng)地圖、撤銷工具選擇、矩形區(qū)域選擇、圓形區(qū)域選擇、圖元拖動(dòng)、圖層控制、地圖控件屬性以及標(biāo)注。這些功能的實(shí)現(xiàn)用到MpX的標(biāo)準(zhǔn)工具,如下表3-7所示,地圖的前六個(gè)按鈕功能是通過(guò)調(diào)用MpX中的標(biāo)準(zhǔn)工具來(lái)實(shí)現(xiàn)的,這幾個(gè)標(biāo)準(zhǔn)工具的工具號(hào)是已經(jīng)定義好的常量,這些常量的定義在Mph中。地圖的第七個(gè)按鈕是圖元拖動(dòng)按鈕,功能是當(dāng)點(diǎn)擊此按鈕選中某一航跡點(diǎn)時(shí),可以將航跡點(diǎn)位置進(jìn)行修改,同時(shí)也可以改變航跡點(diǎn)在數(shù)據(jù)庫(kù)中的。這個(gè)按鈕的實(shí)現(xiàn)是通過(guò)創(chuàng)建自定義工具來(lái)完成的,創(chuàng)建自定義工具的步驟為:創(chuàng)建工具、編寫處理過(guò)程和實(shí)用工具。創(chuàng)建自定義工具需要調(diào)用Mpx的rusomol方法,其函數(shù)原型為: MapX標(biāo)準(zhǔn)工工 常 描 拖動(dòng)地圖并重定地圖中心拖動(dòng)鼠標(biāo)選中矩形區(qū)域圖元拖動(dòng)鼠標(biāo)選中圓內(nèi)圖元其中,ToolNumber是引用工具的常量;Type是工具類型,可選ShiftCursorShiftCtrlCursorCtrlCursor時(shí)出現(xiàn)的光標(biāo),可選;InfoTips是布爾值,默認(rèn)為False。當(dāng)創(chuàng)建自定義工具以后,需要為該工具添加響應(yīng)函數(shù),通常使用ToolUsed來(lái)執(zhí)行。通過(guò)添加響應(yīng)函數(shù),當(dāng)點(diǎn)擊地圖上的圖元時(shí),首先獲取圖元所在圖層,然后當(dāng)鼠標(biāo)拖動(dòng)圖元移動(dòng)時(shí),記錄圖元的移動(dòng)距離,然后更新圖元到新的位置。利用圖元的屬性值來(lái)更改地面站數(shù)據(jù)庫(kù)中對(duì)應(yīng)的規(guī)劃航跡點(diǎn)的位置信息,從而使地圖上顯示的航跡點(diǎn)與數(shù)據(jù)庫(kù)中的航跡點(diǎn)保持一致的動(dòng)作。第八個(gè)按鈕工具是通過(guò)調(diào)用以下函數(shù)來(lái)調(diào)出MapX的圖層控制窗口,實(shí)現(xiàn)對(duì)圖層的操作;第九個(gè)按鈕工具是通過(guò)調(diào)用以下函數(shù)來(lái)實(shí)現(xiàn)對(duì)MapX地圖對(duì)象的設(shè)置第十個(gè)按鈕工具是在地圖上添加標(biāo)注,因此使用時(shí)需創(chuàng)建臨時(shí)圖層FuzhuLy,然后進(jìn)行標(biāo)注。首先應(yīng)判斷是否存在臨時(shí)圖層FuzhuLay,如果存在,獲取FuzhuLyr進(jìn)行標(biāo)注,如果不存在則創(chuàng)建臨時(shí)圖層FuzhuLyr,利用以下函數(shù)創(chuàng)建臨時(shí)圖層, tem Layer1=m_mapx.GetLayers().Item("FuzhuLayer");//指定圖層Layer1.SetEditable(TRUE); //設(shè)定圖層可編輯 //設(shè)定圖層自動(dòng)標(biāo)注 m_mapx.SetCurrentTool(miTextTool);//調(diào)用標(biāo)準(zhǔn)工具進(jìn)行標(biāo)注以上是地圖的實(shí)現(xiàn)過(guò)程,通過(guò)地圖可以完成對(duì)地圖的基本電子地圖對(duì)無(wú)人機(jī)進(jìn)行定無(wú)人機(jī)定位是地面站必不可少的一個(gè)功能,通過(guò)實(shí)時(shí)定位,操作人員可以即時(shí)了解無(wú)人機(jī)的飛行位置。本文是在MapX地圖的GenzongLayer圖層顯示無(wú)人機(jī)的飛行位置以及飛行航跡。首先介紹定位功能中用到的CMapX的相關(guān)類及其屬性和方法。在實(shí)現(xiàn)定位功能的過(guò)程中,用到了CMapXPoints點(diǎn)集類、CMapXFeatureFactory圖元集合類、CMapXStyle樣式類,其中CMapXFeatureFactory的FeatureFactory屬性返回的是圖元集合,支持對(duì)地圖上的圖元進(jìn)行創(chuàng)建或修改等操作;CMapXPoints的AddXY方法,用來(lái)向點(diǎn)集對(duì)象Points中添加點(diǎn);CMapXStyle類的GetStyle屬性用來(lái)獲取當(dāng)前圖元的樣式,可以通過(guò)Style對(duì)象的SetLineColor屬性、SetLineWidth屬性、SetLineStyle等屬性設(shè)置圖元的樣式;當(dāng)向點(diǎn)集中添加兩個(gè)點(diǎn)以后,通過(guò)調(diào)用FeatureFactory對(duì)象的Crea ine方法按照點(diǎn)集來(lái)畫線,然后通過(guò)已經(jīng)設(shè)置好的圖元樣式,將畫出的軌跡顯示在電子地圖上。最后需要調(diào)用圖層對(duì)象Layer的Refresh方法刷新圖層。下圖3-12為利用MapX 電子地圖定位程序流程受無(wú)人機(jī)發(fā)送的數(shù)據(jù)時(shí),首先通過(guò)對(duì)串口數(shù)據(jù)的獲得無(wú)人機(jī)發(fā)送信息的值,此時(shí)將值添加到點(diǎn)集中,然后設(shè)置圖元樣式,將點(diǎn)顯示在地圖上,同時(shí)點(diǎn)與點(diǎn)之間通過(guò)短線進(jìn)行連接,顯示出無(wú)人機(jī)的飛行軌跡。電子地圖航跡航跡規(guī)劃是無(wú)人機(jī)導(dǎo)航控制的一個(gè)關(guān)鍵的功能,無(wú)人機(jī)航跡規(guī)劃是根據(jù)任務(wù)的預(yù)定目標(biāo)來(lái)規(guī)劃好本次任務(wù)的飛行航跡。無(wú)人機(jī)一次的飛行航線有多個(gè)有序的控制航點(diǎn)組成,本文中的地面站可以將按順序輸入的航點(diǎn)和航線在地圖上直觀的顯示出來(lái)。本章第二節(jié)中已經(jīng)給出了航跡規(guī)劃表Guihua的數(shù)據(jù)格式,因此在地面站界面的設(shè)計(jì)中,按照需要輸入的規(guī)劃點(diǎn)的信息,給出了航跡規(guī)劃區(qū),如下圖3-13所示,當(dāng)根據(jù)任務(wù)需要添加規(guī)劃的航跡點(diǎn)時(shí),可以 地面站航跡規(guī)劃第一,添加規(guī)劃的航跡點(diǎn)。通過(guò)輸入規(guī)劃航跡點(diǎn)的序號(hào)、經(jīng)度、緯度和高度,點(diǎn)擊“添加”按鈕,首先將對(duì)應(yīng)的航跡點(diǎn)顯示在電子地圖上,同時(shí)規(guī)劃航跡點(diǎn)會(huì)在地面站數(shù)據(jù)庫(kù)的Guhua表中。為了將規(guī)劃的起點(diǎn)與其他航跡點(diǎn)不同,通過(guò)設(shè)置圖元的樣式使第一個(gè)規(guī)劃點(diǎn)呈飛機(jī)樣式,實(shí)現(xiàn)過(guò)程主要用到以下幾個(gè)屬性:CMapXStylestyle=Feature1.GetStyle();style.GetSymbolFont().SetName("MapInfoTransportation");style.SetSymbolFontRotation(135);//機(jī)頭朝向其中SetSymbolFontRotation屬性中可以添加無(wú)人機(jī)飛行的偏航角,這樣呈現(xiàn)出來(lái)的飛機(jī)朝向即為規(guī)定的無(wú)人機(jī)飛行朝向。同時(shí)地面站的狀態(tài)欄可以實(shí)時(shí)顯示鼠標(biāo)所指點(diǎn)的,當(dāng)鼠標(biāo)在MapX地圖上移動(dòng)時(shí),可以通過(guò)查看狀態(tài)欄中信息確定當(dāng)前位置。第二,列表顯示。為了方便的顯示規(guī)劃的航跡點(diǎn),在地面站界面上添加了一個(gè)列表控件,用來(lái)顯示規(guī)劃航跡點(diǎn)的信息。點(diǎn)擊顯示航跡點(diǎn)按鈕,在響應(yīng)函數(shù)中通過(guò)查詢數(shù)據(jù)庫(kù)Guihu表中的數(shù)據(jù),將其顯示在列表中。第三,航跡點(diǎn)刪除操作。當(dāng)輸入的航跡點(diǎn)不滿足任務(wù)需要時(shí),通過(guò)點(diǎn)擊“刪除航跡點(diǎn)”按鈕,彈出一個(gè)框,然后輸入要?jiǎng)h除的規(guī)劃點(diǎn)的序號(hào),將對(duì)應(yīng)的航跡點(diǎn)刪除。需要用到的Mysql函數(shù)如下,strSQL.Format("deletefromguihuawherenumber=\’%d\’",dlg.m_Dnumber);{AfxMessageBox("刪除失敗}{Layer1.DeleteFeature(str);//通過(guò)FeatureKey刪除圖元}動(dòng)作過(guò)程為:首先獲得輸入的規(guī)劃點(diǎn)的序號(hào)dlgmDnumr,然后通過(guò)Msl函數(shù)將其刪除。此時(shí)需要注意的是,數(shù)據(jù)庫(kù)中的規(guī)劃航跡點(diǎn)和電子地圖上的規(guī)劃點(diǎn)是一一對(duì)應(yīng)的,因此二者的執(zhí)行也應(yīng)保持一致。第四,修改航跡點(diǎn)。對(duì)于電子地圖上的規(guī)劃航跡點(diǎn),可以通過(guò)選擇上的拖動(dòng)工具來(lái)進(jìn)行修改,當(dāng)移動(dòng)對(duì)應(yīng)的規(guī)劃航跡點(diǎn)時(shí),地面站數(shù)據(jù)庫(kù)的guiu表中的航跡點(diǎn)也會(huì)進(jìn)行修改,可以通過(guò)更新航跡點(diǎn)列表來(lái)查看。第五,規(guī)劃航跡。此時(shí)的規(guī)劃航跡是按照已添加的規(guī)劃點(diǎn)的順序進(jìn)行直線連接。通過(guò)點(diǎn)擊清除軌跡按鈕,可以將生成的航跡進(jìn)行清除。同時(shí)也可以將已保存的航跡導(dǎo)入到地面站中。如下圖314所示,當(dāng)向地面站中添加多個(gè)航跡點(diǎn)后,電子地圖中出現(xiàn)了已添加的航跡點(diǎn),為了將起始點(diǎn)與其他航跡點(diǎn)進(jìn)行區(qū)別,用一個(gè)飛機(jī)樣式的圖元進(jìn)行顯示,當(dāng)改變?cè)搱D元的偏航角時(shí),飛機(jī)的朝向也會(huì)改變。點(diǎn)擊“顯示航跡點(diǎn)”按鈕,列表中會(huì)顯示出已添加的航跡點(diǎn);如果操作人員對(duì)添加的規(guī)劃航跡點(diǎn)不滿意,可以通過(guò)點(diǎn)擊“刪除航跡點(diǎn)”按鈕,將對(duì)應(yīng)的航跡點(diǎn)進(jìn)行刪除,同樣地圖上的對(duì)應(yīng)航跡點(diǎn)也會(huì),這樣使得地圖操作、數(shù)據(jù)庫(kù)操作與操作人員的執(zhí)行動(dòng)作保持了一致。 航跡點(diǎn)添加及顯飛行數(shù)據(jù)顯地面站接收到的無(wú)人機(jī)飛行數(shù)據(jù)中包括無(wú)人機(jī)的飛行姿態(tài)、飛行位置、線加速度、角速度以及電機(jī)轉(zhuǎn)速等信息。本文中地面站的界面設(shè)計(jì)采用T控件對(duì)飛行數(shù)據(jù)進(jìn)行顯示,包括儀表顯示和數(shù)據(jù)顯示兩個(gè)頁(yè)面。為了使無(wú)人機(jī)姿態(tài)和高度更加直觀形象的表示出來(lái),本文采用了世紀(jì)飛揚(yáng)虛擬儀表組件[]實(shí)現(xiàn)對(duì)姿態(tài)和高度信息的顯示。世紀(jì)飛揚(yáng)ctivX虛擬圖形儀表包括航空儀表控件、測(cè)量?jī)x表控件等圖形儀表組件,其中航空儀表控件包括有12種類型,本文中分別采用陀螺地平儀、轉(zhuǎn)動(dòng)方向儀、航向指示器三種來(lái)顯示無(wú)人機(jī)的俯仰角、滾轉(zhuǎn)角和偏航角;測(cè)量?jī)x表控件中采用豎直型儀表來(lái)顯示無(wú)人機(jī)的飛行高度。在飛行數(shù)據(jù)顯示模塊的第一頁(yè)中嵌入航空儀表和測(cè)量

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論