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

        ?

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

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

        權(quán)聰

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

        1 前言

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

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

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

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

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

        圖1 軟件整體界面圖

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

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

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

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

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

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

        圖5 航線曲線選擇功能

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

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

        表1 PathPointTable 表

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

        圖6 航點信息存儲效果圖

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

        圖7 航線表示

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

        圖8 航點文件加載功能

        3 軟件設計

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

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

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

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

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

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

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

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

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

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

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

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

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

        4 結(jié)語

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

        猜你喜歡
        航點航路控件
        基于實時航路的PFD和ND的仿真研究
        二次開發(fā)在航點航跡圖批量繪制中的應用
        關于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        應召反潛時無人機監(jiān)聽航路的規(guī)劃
        托勒密世界地圖與新航路的開辟
        基于Event改進模型的交叉航路碰撞風險評估
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        在PowerBuUder中利用WinSock控件制作簡單的Web服務器
        VB.NET中ListBox控件實現(xiàn)流程跟蹤
        色偷偷久久一区二区三区| 日韩中文字幕一区二区二区| 国色天香社区视频在线| 中文字幕在线播放| 亚洲AV永久无码精品导航| 91精品国产乱码久久久| 免费人成视网站在线剧情| 精品少妇无码av无码专区| 国产天堂在线观看| 插入中文字幕在线一区二区三区| 中文字幕色偷偷人妻久久一区| 亚洲乱码一区av春药高潮| av无码精品一区二区三区四区| 亚洲 美腿 欧美 偷拍| 四季极品偷拍一区二区三区视频| 欧美成妇人吹潮在线播放| 亚洲av无码一区二区二三区下载| 亚洲女同精品久久女同| 国产麻豆精品传媒av在线| 日夜啪啪一区二区三区| 国产精品高潮无码毛片| 国产免费一区二区三区三| 久久久久久人妻无码| 亚洲欧美另类激情综合区| 99久久久国产精品丝袜| 亚洲精品一区二区三区四区久久| 国产又粗又猛又黄又爽无遮挡| 日韩在线无| 亚洲天堂免费成人av| 亚洲国产精品无码成人片久久| 人人狠狠综合久久亚洲| 久久se精品一区二区国产| 福利利视频在线观看免费| 鸭子tv国产在线永久播放 | 日韩欧美国产亚洲中文| 性感的小蜜桃在线观看| 亚洲综合成人婷婷五月网址| 玩弄放荡人妻一区二区三区| 中文字幕一区二区三区在线乱码| 精品久久有码中文字幕| 性一交一乱一伦a片|