999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

某型無人機(jī)航路規(guī)劃軟件的設(shè)計與實(shí)現(xiàn)

2023-12-12 14:58:36權(quán)聰
中國設(shè)備工程 2023年23期
關(guān)鍵詞:百度規(guī)劃

權(quán)聰

(國營長虹機(jī)械廠,廣西 桂林 541003)

1 前言

近年來,無人機(jī)的應(yīng)用與研究受到了廣泛的關(guān)注,成為各大國之間競爭的主要領(lǐng)域。地面站軟件作為無人機(jī)遠(yuǎn)程控制的核心關(guān)鍵組成部分,無人機(jī)控制人員通過地面站系統(tǒng)提供的地面站軟件與無人機(jī)進(jìn)行交互。操作人員在無人機(jī)飛行任務(wù)開始前提前規(guī)劃好飛行航線,地面站實(shí)時監(jiān)控?zé)o人機(jī)的飛行狀況,并通過實(shí)時修改任務(wù)改變無人機(jī)的飛行航線,在無人機(jī)完成飛行任務(wù)后,對飛行存儲的數(shù)據(jù)進(jìn)行回放分析。航路規(guī)劃與航線操作功能作為地面站軟件的核心組成部分,起到了重要作用。無人機(jī)在每次飛行任務(wù)前,都需提前進(jìn)行本次飛行任務(wù)的航路規(guī)劃,航點(diǎn)對應(yīng)著無人機(jī)本次飛行經(jīng)過的位置,在設(shè)置飛行航點(diǎn)時,需要設(shè)置無人機(jī)飛行器所具有的速度、位置、航向信息等數(shù)據(jù),多個有序航路點(diǎn)組成了一條飛行航線。規(guī)劃好航線后,將該航線裝訂并通過網(wǎng)口發(fā)送飛控計算機(jī),無人機(jī)就會按照規(guī)劃好的航線完成本次飛行任務(wù)的各項(xiàng)飛行動作,依次按序飛過各航點(diǎn)執(zhí)行飛行任務(wù)。

航路規(guī)劃在無人機(jī)導(dǎo)航中起到了至關(guān)重要的作用,無人機(jī)航路規(guī)劃時,根據(jù)任務(wù)的預(yù)設(shè)目標(biāo)規(guī)劃好本次飛行任務(wù)的軌跡。航線由多個有序的航點(diǎn)組成,規(guī)劃好的航點(diǎn)和航線擬合成航跡在地圖上直觀顯示,航點(diǎn)、航線數(shù)據(jù)保存在文本中,方便執(zhí)行下次飛行任務(wù)時調(diào)用。

2 航路規(guī)劃軟件模塊

(1)航點(diǎn)信息管理。航點(diǎn)信息的增加、刪除、插入(鼠標(biāo)點(diǎn)擊在列表控件某行點(diǎn)上,點(diǎn)擊插入行點(diǎn),會插入該行點(diǎn)之后)、航點(diǎn)信息的保存和加載功能。

在軟件界面上,將所有航點(diǎn)信息顯示在一個ListContral 列表控件中,該列表的每個數(shù)據(jù)對應(yīng)一個規(guī)劃好的航點(diǎn),每一列對應(yīng)該航路點(diǎn)的經(jīng)緯度、航點(diǎn)序號、速度和高度設(shè)定值、狀態(tài)字等信息,起始位置信息下方有航點(diǎn)添加、航點(diǎn)刪除、航點(diǎn)插入、航路點(diǎn)信息保存和航路點(diǎn)信息加載等按鈕,如圖1 所示。

圖1 軟件整體界面圖

(2)地圖數(shù)據(jù)到列表數(shù)據(jù)的交互功能。切換街道地圖和衛(wèi)星混合地圖、航點(diǎn)的拖拽(航點(diǎn)坐標(biāo)更新到列表)、地圖的縮放、地圖的移動,航點(diǎn)坐標(biāo)信息的顯示等基本地圖功能等;地圖切換為衛(wèi)星圖,如圖2 所示。

圖2 地圖切換衛(wèi)星圖

(3)列表數(shù)據(jù)到地圖的交互功能。修改列表數(shù)據(jù)信息,點(diǎn)擊更新按鈕,地圖數(shù)據(jù)也會隨著列表數(shù)據(jù)的更改而更新。

(4)條件插入航點(diǎn)功能。根據(jù)已知基準(zhǔn)點(diǎn)的航向角、距離插入新的航點(diǎn)(可以插入基準(zhǔn)點(diǎn)后,也可以插入最后);已航點(diǎn)3 為基準(zhǔn),航向角180°,距離100000m處插入航點(diǎn)4,效果如圖3 所示。

(5)地圖測距功能。測量航點(diǎn)之間的距離和測量整個航路的距離,效果如圖4 所示。

(6)航線選擇功能。航線為直線或者曲線,效果如圖5 所示。

圖5 航線曲線選擇功能

(7)清除所有航點(diǎn)功能。清除地圖上的所有數(shù)據(jù)和列表控件上的所有數(shù)據(jù)。

(8)航路點(diǎn)信息的管理與保存。為了后續(xù)任務(wù)的航路點(diǎn)的加載,將設(shè)置的航點(diǎn)保存在文本中,把航路點(diǎn)信息保存在數(shù)據(jù)庫中,每次對航路點(diǎn)進(jìn)行操作都將同時更新數(shù)據(jù)庫中數(shù)據(jù)表的記錄,數(shù)據(jù)庫航點(diǎn)存儲表的結(jié)構(gòu)如表1 所示。

表1 PathPointTable 表

航點(diǎn)信息存儲:讀取Listcontral 列表數(shù)據(jù),并把列表數(shù)據(jù)進(jìn)行文件存儲,保存成.log 文件,并按時間命名,如圖6 所示。

圖6 航點(diǎn)信息存儲效果圖

(9)規(guī)劃好的航線在地圖上的標(biāo)示。規(guī)劃好一條航線后,載入地圖,鼠標(biāo)點(diǎn)擊地圖就會設(shè)置一個航點(diǎn),多個航路點(diǎn)繪制出無人機(jī)飛行航線的軌跡,用Element標(biāo)注航點(diǎn),用直線或弧線將航路點(diǎn)連接起來,形成的Line 曲線表示航線,如圖7 所示。

圖7 航線表示

(10)大數(shù)據(jù)量的航點(diǎn)加載功能:選擇航路文件,加載已保存的航點(diǎn)信息,并顯示在地圖上,如圖8 所示。

圖8 航點(diǎn)文件加載功能

3 軟件設(shè)計

本地面站系統(tǒng)的開發(fā)使用集成開發(fā)環(huán)境是微軟公司的Visual Studio2010,系統(tǒng)軟件運(yùn)行在Win7 及其以上操作系統(tǒng)。基于性能方面考慮,采用基于MFC 應(yīng)用程序框架,地圖部分的實(shí)現(xiàn)是基于百度的離線地圖,這是百度公司為了方便地理信息系統(tǒng)的二次開發(fā)而設(shè)計的一款功能非常強(qiáng)大的GIS 開發(fā)包。

電子導(dǎo)航地圖為現(xiàn)代無人機(jī)的飛行提供導(dǎo)航服務(wù),無人機(jī)飛行過程中使用電子導(dǎo)航地圖顯示導(dǎo)航軌跡。依據(jù)無人機(jī)下發(fā)狀態(tài)數(shù)據(jù)包中包含GPS、北斗等衛(wèi)星導(dǎo)航提供的經(jīng)緯度信息,實(shí)時地在地圖上標(biāo)注無人機(jī)當(dāng)前準(zhǔn)確位置和航向,在無人機(jī)導(dǎo)航中起到了至關(guān)重要的作用。

由于航路規(guī)劃需要在地圖上實(shí)時標(biāo)注飛行器的位置、航向、規(guī)劃好的航路和實(shí)際的歷史軌跡等信息,地面站軟件需要實(shí)現(xiàn)地圖導(dǎo)航的基本功能。本子系統(tǒng)的實(shí)現(xiàn)使用了百度公司的產(chǎn)品,基于百度地圖開發(fā)工具包的二次開發(fā),百度Map 作為一組嵌入式腳本語言可以跨平臺使用,它是百度地圖軟件產(chǎn)品的底層模塊,可以用來構(gòu)建GIS 和桌面地圖應(yīng)用程序,或是在原有的地圖軟件上增加新的功能。

(1)將百度地圖的JS 文件本地化并與服務(wù)器進(jìn)行交互。將百度map 加載時需要的JS 文件下載到本地終端,在后續(xù)應(yīng)用程序開發(fā)時,不需引用百度網(wǎng)站上的JS 文件,只需調(diào)用本地的JS 文件。調(diào)用百度map API時,需要使用百度map JS 文件,百度提供了本地化JS map3.0.js 文件,可在百度官網(wǎng)上進(jìn)行下載。

(2)將百度 map 的地圖數(shù)據(jù)(tiles:瓦片)下載到本地以及應(yīng)用的開發(fā)。提到地圖數(shù)據(jù),首先需要了解百度 map 的基礎(chǔ)知識。百度將瀏覽器中顯示的導(dǎo)航地圖,分割成一張一張圖片,起名為tile,為了能夠?yàn)g覽顯示的百度地圖,需從百度官方網(wǎng)站下載所有tile,然后將這些tile 拼接在一起,就能夠展示出一張完整的百度地圖。地圖每一個tile 都是大小為256×256 的PNG 或jpg 圖片,因?yàn)榘俣鹊貓D存在級別為0 ~19 縮放功能,因此在每個縮放級別中,地圖的顯示區(qū)域被劃分為多個tile 圖片,每個tile 圖片會根據(jù)百度站點(diǎn)下載對應(yīng)的地圖數(shù)據(jù),地圖數(shù)據(jù)其實(shí)是一張張PNG 或JPG 圖片,在百度地圖請求獲取tile 圖片數(shù)據(jù)時,將三個重要的參數(shù)傳遞給地圖,分別為地圖x 坐標(biāo)數(shù)據(jù)、y 坐標(biāo)數(shù)據(jù)及當(dāng)前顯示的地圖的縮放級別。

(3)MFC 調(diào)用百度離線地圖。VS2010 中添加web browsers(Active X 微軟操作系統(tǒng)自帶)控件,為控件增加成員變量m_web,在初始化的程序中調(diào)用以下代碼加載百度地圖。

百度離線地圖的html 網(wǎng)頁實(shí)現(xiàn)(在工程文件下的map_LINE.html 和map_CURVE.html 中)具體實(shí)現(xiàn)要調(diào)用百度地圖API 函數(shù)。

(4)MFC 界面到地圖的數(shù)據(jù)交互(VC 與JavaScript 交互)。在VC 中調(diào)用WebBrowser 時,有2 種方法可以調(diào)用。MFC 中存在一個CHtmlView 類對WebBrowser 進(jìn)行封裝,調(diào)用方便快捷。CHtmlView 類是由CView 派生而來,在MFC 中被稱作視圖類,CView 類是由CWnd 派生而來,將其應(yīng)用在對話框類中,不存在使用兼容性問題,只需修改一小部分內(nèi)容即可。其中特別需要注意的以下兩個問題:

CHtmlView 類的構(gòu)造函數(shù)是protected 的,因此在程序中不允許直接構(gòu)造一個CHtmlView 類對象。必須在CHtmlView 類上進(jìn)行派生后才能構(gòu)造。如果將創(chuàng)建CHtmlView 類對象應(yīng)用到棧上,必需重新調(diào)用PostNcDestroy( ),該函數(shù)體內(nèi)容為空。因?yàn)槟J(rèn)的PostNcDestroy( )函數(shù)會delete( ) this 出錯。如果將創(chuàng)建CHtmlView 類對象應(yīng)用到堆上,則需要注意防止二次delete。

另一種方法是調(diào)用WebBrowser 的ActiveX 控件,該方法既可以應(yīng)用在在MFC 項(xiàng)目中,也可以在非MFC 項(xiàng)目中使用,本系統(tǒng)軟件工程使用ActiveX 控件;

需要調(diào)用類CWebPage,將其對應(yīng)的兩個文件WebPage.h 和WebPage.cpp 添加到工程中;MFC 調(diào)用JS中的函數(shù)AddPoint( ),并傳遞2 個參數(shù)(緯度,經(jīng)度,航點(diǎn)號)。

(5)地圖到MFC 界面的數(shù)據(jù)交互(JavaScript與VC 交互)。一個JavaScript 對象傳到了C++ 這邊以后,就變成了一個IDispatch*,然后我們用CComDispatchDriver 接管這個IDispatch*( ) 后,就可以調(diào)用這個JavaScript 對象的方法,獲取這個JavaScript 對象的屬性,實(shí)際上CComDispatchDriver就是對IDispatch( ) 的包裝, 最終都是調(diào)用IDispatch::Invoke( )。同理,如果我們在C++ 這邊構(gòu)造出一個IDispatch* 并傳遞給JavaScript,那么JavaScript 就可以把這個IDispatch* 當(dāng)作一個JavaScript 對象來使用,自然它就可以調(diào)用這個對象的方法,修改這個對象的屬性,最終就可以實(shí)現(xiàn)調(diào)用C++函數(shù),修改C++對象的成員變量,實(shí)際上JavaScript調(diào)用C++也是通過IDispatch::Invoke( )來調(diào)用。那么如何構(gòu)造這個IDispatch 就是問題的關(guān)鍵點(diǎn)。

這種方法,需要先把IDispatch*( )示例代碼中是this,但因?yàn)閠his 是CPathPlanDlg( ) 的實(shí)例,而CPathPlanDlg( )多重繼承于IDispatch( ),實(shí)際this 就是IDispatch*傳遞給JavaScript,JavaScript把它保存好,然后調(diào)用。

4 結(jié)語

航路規(guī)劃系統(tǒng)是實(shí)現(xiàn)無人機(jī)自主飛行和避障導(dǎo)航的關(guān)鍵系統(tǒng)。針對航路規(guī)劃系統(tǒng)國內(nèi)外學(xué)者進(jìn)行了數(shù)據(jù)分析,多半是針對控制規(guī)律和系統(tǒng)安性進(jìn)行研究設(shè)計,鮮有人考慮無人機(jī)地面站控制系統(tǒng)的人機(jī)交互策略。依據(jù)現(xiàn)有的飛行器適航規(guī)范標(biāo)準(zhǔn)歸納總結(jié)航路規(guī)劃軟件系統(tǒng)設(shè)計的技術(shù)難點(diǎn),設(shè)計了一款無人機(jī)航路規(guī)劃軟件,但是系統(tǒng)設(shè)計未考慮突發(fā)及極端環(huán)境下無人機(jī)規(guī)劃航路規(guī)劃的自適應(yīng)規(guī)避算法。在后續(xù)的研究中將繼續(xù)完善地面站平臺的功能,實(shí)現(xiàn)無人機(jī)自主導(dǎo)航的過程監(jiān)測和異常處理,以提高無人機(jī)系統(tǒng)的穩(wěn)定性與可靠性。

猜你喜歡
百度規(guī)劃
Robust adaptive UKF based on SVR for inertial based integrated navigation
規(guī)劃引領(lǐng)把握未來
百度年度熱搜榜
青年與社會(2018年2期)2018-01-25 15:37:06
快遞業(yè)十三五規(guī)劃發(fā)布
商周刊(2017年5期)2017-08-22 03:35:26
多管齊下落實(shí)規(guī)劃
迎接“十三五”規(guī)劃
百度遭投行下調(diào)評級
IT時代周刊(2015年8期)2015-11-11 05:50:22
百度“放衛(wèi)星”,有沒有可能?
太空探索(2014年4期)2014-07-19 10:08:58
主站蜘蛛池模板: 日韩欧美国产成人| 99热国产在线精品99| 波多野结衣中文字幕一区| 亚洲天堂网在线播放| 黄色网在线| 国产精品浪潮Av| 尤物视频一区| 亚洲精品亚洲人成在线| 青青热久麻豆精品视频在线观看| 中文字幕日韩久久综合影院| 玖玖免费视频在线观看| 亚洲人妖在线| 一区二区三区在线不卡免费| 欧美一区国产| 精品91自产拍在线| 中文字幕资源站| 久热re国产手机在线观看| 成人毛片在线播放| 国产精品一区在线观看你懂的| 久久国产精品嫖妓| 国产精品免费久久久久影院无码| 九九热在线视频| 欧美无专区| 亚洲AⅤ无码国产精品| 亚洲综合在线最大成人| 欧美精品在线免费| 最新国产在线| 国产欧美视频综合二区| 国产精品永久不卡免费视频| 欧美伊人色综合久久天天| 狠狠亚洲五月天| 丝袜亚洲综合| 国产在线小视频| 国产在线无码一区二区三区| 国产精品久久久久久久伊一| 四虎AV麻豆| 亚洲人人视频| 红杏AV在线无码| 欧美成在线视频| 日本久久网站| 日韩欧美91| 91精品国产91欠久久久久| 久久国产黑丝袜视频| 国产欧美在线| 五月婷婷精品| 72种姿势欧美久久久大黄蕉| 精品久久高清| 亚洲国产清纯| 91网红精品在线观看| 直接黄91麻豆网站| 99这里精品| 亚洲视频a| 亚洲欧洲美色一区二区三区| 欧美中文字幕在线视频| 亚洲最新在线| 日韩天堂视频| 亚洲欧美国产五月天综合| 色综合中文字幕| 国产人前露出系列视频| 亚洲视频黄| 日韩免费毛片| 国产在线观看第二页| h网站在线播放| 亚洲第一香蕉视频| 亚洲成a人片在线观看88| 91av成人日本不卡三区| 欧美曰批视频免费播放免费| 久久人人爽人人爽人人片aV东京热| 91外围女在线观看| 日韩视频福利| 精品91自产拍在线| 2021亚洲精品不卡a| 亚洲综合二区| 青青青视频免费一区二区| 亚洲人成日本在线观看| 伊人色婷婷| 欧美在线视频不卡第一页| 亚洲天堂在线视频| 成人午夜视频在线| 免费观看男人免费桶女人视频| 国产不卡在线看| 亚洲人成影院午夜网站|