一種小型無人機(jī)地面站三維導(dǎo)航地圖實現(xiàn)方法
【專利摘要】本發(fā)明公開了一種小型無人機(jī)地面站三維導(dǎo)航地圖設(shè)計方法,包括基于Google?Earth?API的地圖數(shù)據(jù)獲取、地理坐標(biāo)轉(zhuǎn)換以及導(dǎo)航功能實現(xiàn)方法。使用Google?earth?API實現(xiàn)了將飛行區(qū)域的網(wǎng)絡(luò)地圖數(shù)據(jù)保存到本地二維數(shù)組中;使用三維繪圖接口將地圖數(shù)據(jù)繪制在地面站導(dǎo)航地圖區(qū)形成三維地圖;通過在本地地圖數(shù)據(jù)中查詢無人機(jī)飛行航點位置并在三維地圖中繪制,實現(xiàn)三維地圖導(dǎo)航功能。通過該方法,能夠為小型無人機(jī)地面站提供低成本的三維導(dǎo)航地圖,提高了地圖顯示直觀性與無人機(jī)在復(fù)雜地勢條件下的飛行安全性。
【專利說明】一種小型無人機(jī)地面站三維導(dǎo)航地圖實現(xiàn)方法【技術(shù)領(lǐng)域】[0001]本發(fā)明涉及一種三維導(dǎo)航地圖設(shè)計方法,主要應(yīng)用于小型無人機(jī)地面站領(lǐng)域?!颈尘凹夹g(shù)】[0002]無人機(jī)駕駛飛機(jī)簡稱無人機(jī),是一種動力驅(qū)動的、無線電操控或者自主控制的不 載人飛行器。其中小型無人機(jī)一般指起飛重量小于IOKG的無人機(jī),由于其具有體積小、 重量輕、操作靈活以及可搭載任務(wù)平臺等諸多特點,近年來小型無人機(jī)在軍事偵察、地質(zhì)測 繪、災(zāi)情監(jiān)測和航空拍攝等方面發(fā)揮著越來越多的作用,顯示出巨大的應(yīng)用前景。無人機(jī)地 面站是無人機(jī)的控制中心,主要完成實時采集、分析遙測數(shù)據(jù),發(fā)送遙控指令,顯示飛行狀 態(tài)等功能,是無人機(jī)系統(tǒng)的核心部分。[0003]導(dǎo)航地圖是無人機(jī)地面站的重要組成部分,無人機(jī)大部分時間在視距外工作,地 面站操作者必須通過導(dǎo)航地圖確定無人機(jī)的飛行位置?,F(xiàn)在普遍使用的小型無人機(jī)地面站 中,一般使用第三方提供的二維地圖控件實現(xiàn)導(dǎo)航地圖功能,地圖控件需要一定的授權(quán)費 用;在越來越多的無人機(jī)應(yīng)用中,二維導(dǎo)航地圖已經(jīng)逐漸不能滿足需求。[0004]目前GoogleEarth提供了覆蓋全球的高精度三維地圖,可以滿足無人機(jī)三維導(dǎo)航 地圖的要求,但使用Google Earth三維地圖需要保持網(wǎng)絡(luò)連接,不適于離線應(yīng)用
【發(fā)明內(nèi)容】
[0005]本發(fā)明旨在提供一種小型無人機(jī)地面站三維導(dǎo)航地圖設(shè)計方法,所要解決的技術(shù) 問題是,首先獲取三維導(dǎo)航地圖的網(wǎng)絡(luò)地圖數(shù)據(jù),之后根據(jù)地圖數(shù)據(jù)在地面站繪制本地三 維導(dǎo)航地圖,在不提高地面站開發(fā)成本的前提下,提高地面站導(dǎo)航地圖顯示直觀性和無人 機(jī)在復(fù)雜地勢條件下的飛行安全性。[0006]為實現(xiàn)上述目的,本發(fā)明通過三維導(dǎo)航地圖提供的二次開發(fā)接口 API (應(yīng)用程序 編程接口,Application Programming Interface)獲取 Google Earth 網(wǎng)絡(luò)地圖數(shù)據(jù),并保 存在二維數(shù)組中,數(shù)組的每個單元保存每個地圖節(jié)點的地理坐標(biāo),包括經(jīng)度、緯度和高度; 使用保存的地圖數(shù)據(jù),通過三維繪圖接口在地面站導(dǎo)航地圖區(qū)域繪制三維地圖;地面站接 收到無人機(jī)位置信息后,在三維地圖上繪制無人機(jī)航跡和模型,實現(xiàn)地面站三維導(dǎo)航地圖 功能。[0007]—種小型無人機(jī)地面站三維導(dǎo)航地圖實現(xiàn)方法具體步驟是:[0008]步驟一:在三維導(dǎo)航地圖窗口選定無人機(jī)飛行區(qū)域,確定地圖窗口屏幕坐標(biāo)范圍。 比如選定某大學(xué)圖書館后面的操場區(qū)域,圖1中方框所選區(qū)域。將無人機(jī)飛行區(qū)域柵格化, 橫豎線交點對應(yīng)一個像素點,柵格密度越大,對應(yīng)精度越高。通過三維導(dǎo)航地圖的API提供 的查詢地理信息接口,查詢飛行區(qū)域屏幕坐標(biāo)范圍內(nèi),每個像素點對應(yīng)地圖上的地理坐標(biāo), 包括經(jīng)度、緯度和地表海拔高度,將查詢結(jié)構(gòu)保存到二維數(shù)組中,每個像素點的地理坐標(biāo)保 存為一個數(shù)據(jù)單元,數(shù)組行數(shù)為飛行區(qū)域屏幕橫坐標(biāo)范圍,數(shù)組列數(shù)為飛行區(qū)域屏幕縱坐 標(biāo)范圍。如圖2所示,方框里面的像素點對應(yīng)經(jīng)度、緯度和地表海拔高度。[0009]步驟二:以二維數(shù)組中保存的飛行區(qū)域地圖數(shù)據(jù)為原始數(shù)據(jù),使用三維繪圖接口 在地面站導(dǎo)航地圖區(qū)繪制三維地圖。以二維數(shù)組中每個單元的數(shù)據(jù)作為繪圖數(shù)據(jù)頂點,單 元所在行的位置作為頂點X軸坐標(biāo),單元所在列的位置作為頂點Y軸坐標(biāo),單元內(nèi)保存的地 表海拔高度轉(zhuǎn)換為屏幕坐標(biāo)后作為頂點Z軸坐標(biāo),使用數(shù)據(jù)頂點構(gòu)建三角形地表面片,形 成飛行區(qū)域完整三維地圖。如圖3所示,將根據(jù)保存的像素點信息繪制本地三維地圖。[0010]步驟三:將地面站接收到的無人機(jī)位置信息加入到航線中,在二維數(shù)組中查詢航 線中每個航點,繪制無人機(jī)三維航跡和無人機(jī)三維模型。在二維數(shù)組中按行查詢航點經(jīng)度 坐標(biāo),查詢結(jié)果作為航點屏幕坐標(biāo)的X軸坐標(biāo);在二維數(shù)組中按列查詢航點緯度坐標(biāo),查詢 結(jié)果作為航點屏幕坐標(biāo)的Y軸坐標(biāo);無人機(jī)的飛行高度轉(zhuǎn)換為屏幕坐標(biāo)后作為航點屏幕坐 標(biāo)的Z軸坐標(biāo);按照每個航點的屏幕坐標(biāo)在三維地圖上繪制無人機(jī)飛行航跡,按照當(dāng)前航 點屏幕坐標(biāo)在三維地圖上繪制無人機(jī)三維模型。如圖4所示,根據(jù)無人機(jī)的位置信息在某 大學(xué)圖書館后面的操場區(qū)域繪制無人機(jī)三維航跡和無人機(jī)三維模型。[0011]本發(fā)明的特點在于:[0012]1.構(gòu)建了低成本,易于維護(hù)的小型無人機(jī)地面站三維導(dǎo)航地圖。[0013]2.相對于傳統(tǒng)的二維導(dǎo)航地圖,三維導(dǎo)航地圖顯示效果更為直觀,可以提高無人 機(jī)在復(fù)雜地勢條件下的飛行安全性?!緦@綀D】
【附圖說明】:[0014]圖1地圖窗口屏幕坐標(biāo)范圍。[0015]圖2柵格化后的地圖。[0016]圖3繪制的本地三維導(dǎo)航地圖。[0017]圖4無人機(jī)顯示在本地三維導(dǎo)航示例圖。[0018]圖5為本發(fā)明執(zhí)行步驟。[0019]圖6為三維地圖導(dǎo)航功能實現(xiàn)流程【具體實施方式】:[0020]下面結(jié)合附圖和具體Google Earth地圖實施示例對本發(fā)明做進(jìn)一步說明:[0021]如圖5本發(fā)明執(zhí)行流程如下:通過Google Earth地圖提供的二次開發(fā)接口 Google Earth API獲取Google Earth網(wǎng)絡(luò)地圖數(shù)據(jù),并保存在二維數(shù)組中,數(shù)組的每個單元保存每 個地圖節(jié)點的地理坐標(biāo),包括經(jīng)度、緯度和高度;使用保存的地圖數(shù)據(jù),通過三維繪圖接口 在地面站導(dǎo)航地圖區(qū)域繪制三維地圖;地面站接收到無人機(jī)位置信息后,在三維地圖上繪 制無人機(jī)航跡和模型,實現(xiàn)地面站三維導(dǎo)航地圖功能。[0022]如前所述,使用Google Earth API獲取三維地圖數(shù)據(jù),需要將Google Earth地 圖嵌入到地圖數(shù)據(jù)獲取軟件界面中,涉及到MFC類庫中⑶HtmlDialog對話框的使用。主 要操作為:首先以CDHtmlDialog為基類建立對話框類,并在對話框的HTML文件中加入 Google Earth API 相關(guān)代碼;設(shè)計 CDHtmlDialog 對話框與 HTML 網(wǎng)頁中 Google Earth API Javascript函數(shù)的交互過程;通過對話框與網(wǎng)頁的交互,完成Google Earth地圖的嵌入。[0023]在軟件中嵌入Google Earth地圖后,通過Google Earth提供的開放接口 API查 詢地圖中的地理位置信息:[0024]1.將Google Earth地圖窗口轉(zhuǎn)到飛行區(qū)域;[0025]2.使用Google Earth API提供的hitTest方法查詢當(dāng)屏幕坐標(biāo)對應(yīng)的地圖地理 坐標(biāo),可以查詢到當(dāng)前地點的經(jīng)度、緯度和地表高度;[0026]3.依次查詢飛行地圖區(qū)域內(nèi)所有屏幕坐標(biāo)對應(yīng)的地理坐標(biāo),并將其保存在二維數(shù) 組內(nèi)。[0027]根據(jù)以獲取的地圖數(shù)據(jù),本發(fā)明使用以下步驟繪制三維導(dǎo)航地圖:[0028]1.以二維數(shù)組中每個單元的數(shù)據(jù)作為繪圖數(shù)據(jù)頂點,單元所在行的位置作為頂點 X軸坐標(biāo),單元所在列位置作為頂點Y軸坐標(biāo),單元內(nèi)保存的地表海拔高度轉(zhuǎn)換為屏幕坐標(biāo) 后作為頂點Z軸坐標(biāo),使用數(shù)據(jù)頂點構(gòu)建三角形地表面片;[0029]2.使用三維繪圖接口 Direct3D提供的DrawPrimitive并傳遞D3DPT_ TRIANGLELIST參數(shù)以繪制上一步中的所有三角形面片。[0030]3.設(shè)置地表顏色和紋理,使用坐標(biāo)變換調(diào)整視角,形成飛行區(qū)域完整三維導(dǎo)航地 圖。[0031]如圖6所示,根據(jù)已繪制的三維地圖,結(jié)合地面站接收到的無人機(jī)飛行數(shù)據(jù),本發(fā) 明通過以下方法完成地面站三維地圖導(dǎo)航功能:[0032]1.將地面站接收到的無人機(jī)位置信息加入到隊列中,作為航線;[0033]2.從航點隊列中依次取出航點數(shù)據(jù),在保存地圖數(shù)據(jù)的二維數(shù)組中按行查詢航點 經(jīng)度坐標(biāo),查詢結(jié)果作為航點屏幕坐標(biāo)的X軸坐標(biāo);在二維數(shù)組中按列查詢航點緯度坐標(biāo), 查詢結(jié)果作為航點屏幕坐標(biāo)的Y軸坐標(biāo);無人機(jī)的飛行高度轉(zhuǎn)換為屏幕坐標(biāo)后作為航點屏 幕坐標(biāo)的Z軸坐標(biāo);[0034]3.按照每個航點的屏幕坐標(biāo)在三維地圖上繪制無人機(jī)飛行航跡,按照當(dāng)前航點的 屏幕坐標(biāo)在三維地圖上繪制無人機(jī)三維模型,完成地圖導(dǎo)航功能。
【權(quán)利要求】
1.一種小型無人機(jī)地面站三維導(dǎo)航地圖設(shè)計方法,其特征在于包括以下步驟:步驟一:在三維導(dǎo)航地圖窗口選定無人機(jī)飛行區(qū)域,確定地圖窗口屏幕坐標(biāo)范圍;將無人機(jī)飛行區(qū)域柵格化,橫豎線交點對應(yīng)一個像素點;通過三維導(dǎo)航地圖的API提供的查 詢地理信息接口,查詢飛行區(qū)域屏幕坐標(biāo)范圍內(nèi),每個像素點對應(yīng)地圖上的地理坐標(biāo),包括 經(jīng)度、緯度和地表海拔高度,將查詢結(jié)構(gòu)保存到二維數(shù)組中,每個像素點的地理坐標(biāo)保存為 一個數(shù)據(jù)單元,數(shù)組行數(shù)為飛行區(qū)域屏幕橫坐標(biāo)范圍,數(shù)組列數(shù)為飛行區(qū)域屏幕縱坐標(biāo)范 圍;步驟二:以二維數(shù)組中保存的飛行區(qū)域地圖數(shù)據(jù)為原始數(shù)據(jù),使用三維繪圖接口在地 面站導(dǎo)航地圖區(qū)繪制三維地圖;以二維數(shù)組中每個單元的數(shù)據(jù)作為繪圖數(shù)據(jù)頂點,單元所 在行的位置作為頂點X軸坐標(biāo),單元所在列位置作為頂點Y軸坐標(biāo),單元內(nèi)保存的地表海拔 高度轉(zhuǎn)換為屏幕坐標(biāo)后作為頂點Z軸坐標(biāo),使用數(shù)據(jù)頂點構(gòu)建三角形地表面片,形成飛行 區(qū)域完整三維地圖;步驟三:將地面站接收到的無人機(jī)位置信息加入到航線中,在二維數(shù)組中查詢航線中 每個航點,繪制無人機(jī)三維航跡和無人機(jī)三維模型;在二維數(shù)組中按行查詢航點經(jīng)度坐標(biāo), 查詢結(jié)果作為航點屏幕坐標(biāo)的X軸坐標(biāo);在二維數(shù)組中按列查詢航點緯度坐標(biāo),查詢結(jié)果 作為航點屏幕坐標(biāo)的Y軸坐標(biāo);無人機(jī)的飛行高度轉(zhuǎn)換為屏幕坐標(biāo)后作為航點屏幕坐標(biāo)的 Z軸坐標(biāo);按照每個航點的屏幕坐標(biāo)在三維地圖上繪制無人機(jī)飛行航跡,按照當(dāng)前航點屏 幕坐標(biāo)在三維地圖上繪制無人機(jī)三維模型。
2.根據(jù)權(quán)利要求1所述的一種小型無人機(jī)地面站三維導(dǎo)航地圖設(shè)計方法,其特征在 于,所述的三維導(dǎo)航地圖是Google Earth地圖。
【文檔編號】G01C21/00GK103499346SQ201310454731
【公開日】2014年1月8日 申請日期:2013年9月29日 優(yōu)先權(quán)日:2013年9月29日
【發(fā)明者】金仁成, 董歡歡, 華宗治, 芮楊, 褚金奎 申請人:大連理工大學(xué)