亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2023-12-12 14:58:36權(quán)聰
        中國(guó)設(shè)備工程 2023年23期
        關(guān)鍵詞:航點(diǎn)航路控件

        權(quán)聰

        (國(guó)營(yíng)長(zhǎng)虹機(jī)械廠,廣西 桂林 541003)

        1 前言

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

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

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

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

        在軟件界面上,將所有航點(diǎn)信息顯示在一個(gè)ListContral 列表控件中,該列表的每個(gè)數(shù)據(jù)對(duì)應(yīng)一個(gè)規(guī)劃好的航點(diǎn),每一列對(duì)應(yīng)該航路點(diǎn)的經(jīng)緯度、航點(diǎn)序號(hào)、速度和高度設(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)更新到列表)、地圖的縮放、地圖的移動(dòng),航點(diǎn)坐標(biāo)信息的顯示等基本地圖功能等;地圖切換為衛(wèi)星圖,如圖2 所示。

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

        (3)列表數(shù)據(jù)到地圖的交互功能。修改列表數(shù)據(jù)信息,點(diǎn)擊更新按鈕,地圖數(shù)據(jù)也會(huì)隨著列表數(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)地圖測(cè)距功能。測(cè)量航點(diǎn)之間的距離和測(cè)量整個(gè)航路的距離,效果如圖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ù)庫中,每次對(duì)航路點(diǎn)進(jìn)行操作都將同時(shí)更新數(shù)據(jù)庫中數(shù)據(jù)表的記錄,數(shù)據(jù)庫航點(diǎn)存儲(chǔ)表的結(jié)構(gòu)如表1 所示。

        表1 PathPointTable 表

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

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

        (9)規(guī)劃好的航線在地圖上的標(biāo)示。規(guī)劃好一條航線后,載入地圖,鼠標(biāo)點(diǎn)擊地圖就會(huì)設(shè)置一個(gè)航點(diǎn),多個(gè)航路點(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è)計(jì)

        本地面站系統(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è)計(jì)的一款功能非常強(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í)時(shí)地在地圖上標(biāo)注無人機(jī)當(dāng)前準(zhǔn)確位置和航向,在無人機(jī)導(dǎo)航中起到了至關(guān)重要的作用。

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

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

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

        (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 時(shí),有2 種方法可以調(diào)用。MFC 中存在一個(gè)CHtmlView 類對(duì)WebBrowser 進(jìn)行封裝,調(diào)用方便快捷。CHtmlView 類是由CView 派生而來,在MFC 中被稱作視圖類,CView 類是由CWnd 派生而來,將其應(yīng)用在對(duì)話框類中,不存在使用兼容性問題,只需修改一小部分內(nèi)容即可。其中特別需要注意的以下兩個(gè)問題:

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

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

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

        (5)地圖到MFC 界面的數(shù)據(jù)交互(JavaScript與VC 交互)。一個(gè)JavaScript 對(duì)象傳到了C++ 這邊以后,就變成了一個(gè)IDispatch*,然后我們用CComDispatchDriver 接管這個(gè)IDispatch*( ) 后,就可以調(diào)用這個(gè)JavaScript 對(duì)象的方法,獲取這個(gè)JavaScript 對(duì)象的屬性,實(shí)際上CComDispatchDriver就是對(duì)IDispatch( ) 的包裝, 最終都是調(diào)用IDispatch::Invoke( )。同理,如果我們?cè)贑++ 這邊構(gòu)造出一個(gè)IDispatch* 并傳遞給JavaScript,那么JavaScript 就可以把這個(gè)IDispatch* 當(dāng)作一個(gè)JavaScript 對(duì)象來使用,自然它就可以調(diào)用這個(gè)對(duì)象的方法,修改這個(gè)對(duì)象的屬性,最終就可以實(shí)現(xiàn)調(diào)用C++函數(shù),修改C++對(duì)象的成員變量,實(shí)際上JavaScript調(diào)用C++也是通過IDispatch::Invoke( )來調(diào)用。那么如何構(gòu)造這個(gè)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)。針對(duì)航路規(guī)劃系統(tǒng)國(guó)內(nèi)外學(xué)者進(jìn)行了數(shù)據(jù)分析,多半是針對(duì)控制規(guī)律和系統(tǒng)安性進(jìn)行研究設(shè)計(jì),鮮有人考慮無人機(jī)地面站控制系統(tǒng)的人機(jī)交互策略。依據(jù)現(xiàn)有的飛行器適航規(guī)范標(biāo)準(zhǔn)歸納總結(jié)航路規(guī)劃軟件系統(tǒng)設(shè)計(jì)的技術(shù)難點(diǎn),設(shè)計(jì)了一款無人機(jī)航路規(guī)劃軟件,但是系統(tǒng)設(shè)計(jì)未考慮突發(fā)及極端環(huán)境下無人機(jī)規(guī)劃航路規(guī)劃的自適應(yīng)規(guī)避算法。在后續(xù)的研究中將繼續(xù)完善地面站平臺(tái)的功能,實(shí)現(xiàn)無人機(jī)自主導(dǎo)航的過程監(jiān)測(cè)和異常處理,以提高無人機(jī)系統(tǒng)的穩(wěn)定性與可靠性。

        猜你喜歡
        航點(diǎn)航路控件
        基于實(shí)時(shí)航路的PFD和ND的仿真研究
        二次開發(fā)在航點(diǎn)航跡圖批量繪制中的應(yīng)用
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        應(yīng)召反潛時(shí)無人機(jī)監(jiān)聽航路的規(guī)劃
        托勒密世界地圖與新航路的開辟
        基于Event改進(jìn)模型的交叉航路碰撞風(fēng)險(xiǎn)評(píng)估
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        在PowerBuUder中利用WinSock控件制作簡(jiǎn)單的Web服務(wù)器
        VB.NET中ListBox控件實(shí)現(xiàn)流程跟蹤
        少妇性l交大片免费快色| 人妻系列无码专区久久五月天| 中美日韩在线一区黄色大片| 欧洲熟妇色xxxx欧美老妇性| 麻豆亚洲av永久无码精品久久| 亚洲另类激情综合偷自拍图| 亚洲产在线精品亚洲第一页| 洲色熟女图激情另类图区| 成年免费a级毛片免费看无码| 欧美操逼视频| 国产精品午夜波多野结衣性色| 亚洲av自偷自拍亚洲一区| 国产极品少妇一区二区| 在线亚洲+欧美+日本专区| 天天草夜夜草| 日本av一区二区三区四区| 蜜臀av一区二区三区久久| 日本乱偷人妻中文字幕| 99久久精品自在自看国产| 青青草针对华人超碰在线| 美丽小蜜桃1一3在线观看| 人妻夜夜爽天天爽三区| 91高清国产经典在线观看| 91国产超碰在线观看| 日韩女同精品av在线观看| 国精品无码一区二区三区在线蜜臀| 一级片麻豆| 亚洲伊人伊成久久人综合| 亚洲自偷自拍另类第1页| 最新国产av无码专区亚洲| 对白刺激的老熟女露脸| 亚洲国产一区一区毛片a | 国产精品成人网站| 国产区精品| 天堂av中文在线官网| 亚洲天堂亚洲天堂亚洲色图| 欧美日韩国产精品自在自线| 国产午夜精品电影久久| 在线观看女同一区二区| 国产爆乳无码一区二区麻豆| 亚洲av成人一区二区三区在线观看|