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

        ?

        基于云的無人機(jī)遠(yuǎn)程技術(shù)支持系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2020-06-12 09:18:16盧東輝
        關(guān)鍵詞:指令用戶功能

        盛 蔚,盧東輝

        (北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京 100191)

        0 引 言

        由于相關(guān)技術(shù)的局限性,無人機(jī)遠(yuǎn)程技術(shù)支持領(lǐng)域的研究和發(fā)展存在著不足與空缺。目前,專業(yè)的方案較少,主要借助TeamViewer[1]、PCAnywhere[2]等通用遠(yuǎn)程控制軟件獲取遠(yuǎn)程計(jì)算機(jī)的控制權(quán)來實(shí)現(xiàn),其優(yōu)點(diǎn)是技術(shù)應(yīng)用較成熟,但非定制的特點(diǎn)使其與無人機(jī)和配套軟件不協(xié)調(diào),且傳輸數(shù)據(jù)量較大,因此專業(yè)性、功能性、實(shí)時(shí)性無法滿足要求。隨著云計(jì)算的發(fā)展[3-5],陸續(xù)有研究將其應(yīng)用到物聯(lián)網(wǎng)[6]、智能農(nóng)業(yè)[7]、電力系統(tǒng)[8]的遠(yuǎn)程支持或監(jiān)控領(lǐng)域,通過定制化開發(fā),實(shí)現(xiàn)遠(yuǎn)距離數(shù)據(jù)傳輸以及對相應(yīng)事物的監(jiān)控,發(fā)揮了云的通信、計(jì)算、存儲等優(yōu)勢,但普遍沒有考慮傳輸實(shí)時(shí)性等問題,云在無人機(jī)遠(yuǎn)程技術(shù)支持領(lǐng)域的應(yīng)用仍存在一定空缺。

        針對上述要求,本文提出一種基于云的無人機(jī)遠(yuǎn)程技術(shù)支持系統(tǒng),設(shè)計(jì)了系統(tǒng)流程和功能模塊。在C/S結(jié)構(gòu)[9]下,用Windows Presentation Foundation(WPF)[10]開發(fā)支持網(wǎng)絡(luò)傳輸?shù)臒o人機(jī)地面站軟件[11]客戶端,作為終端對無人機(jī)指令和數(shù)據(jù)進(jìn)行操作和處理;用Python在阿里云上開發(fā)服務(wù)器端,監(jiān)聽客戶端的操作請求和數(shù)據(jù),并完成相關(guān)處理。通過云和網(wǎng)絡(luò)連接客戶端和遠(yuǎn)程無人機(jī),設(shè)計(jì)基于HTTP和TCP[12]的傳輸協(xié)議,傳輸操作信息和數(shù)據(jù)指令,實(shí)現(xiàn)目標(biāo)功能。提出一種基于優(yōu)先級的無人機(jī)數(shù)據(jù)自適應(yīng)傳輸方法,通過劃分?jǐn)?shù)據(jù)優(yōu)先級、計(jì)算分配帶寬和預(yù)估數(shù)據(jù)量來調(diào)節(jié)數(shù)據(jù)頻率,實(shí)現(xiàn)重要數(shù)據(jù)的最優(yōu)傳輸和次要數(shù)據(jù)的可靠傳輸。最后,實(shí)際測試驗(yàn)證了本文設(shè)計(jì)的可行性,其滿足專業(yè)性、功能性和實(shí)時(shí)性等要求。

        1 主要技術(shù)基礎(chǔ)

        1.1 云計(jì)算平臺

        云計(jì)算(cloud computing)是基于互聯(lián)網(wǎng)的計(jì)算,憑借著遠(yuǎn)超傳統(tǒng)計(jì)算服務(wù)的彈性擴(kuò)展、靈活訪問資源、方便監(jiān)控、穩(wěn)定可靠等優(yōu)勢[3-5],被廣泛應(yīng)用于物聯(lián)網(wǎng)、通信等技術(shù)領(lǐng)域,可以為遠(yuǎn)程技術(shù)支持帶來高速網(wǎng)絡(luò)傳輸、高開發(fā)效率、低運(yùn)行成本等好處。本文選擇穩(wěn)定可靠的阿里云計(jì)算平臺作為服務(wù)端開發(fā)平臺。

        1.2 Python與aiohttp異步處理框架

        Python是一種面向?qū)ο蟾呒壋绦蛘Z言,具有開發(fā)迅速、可擴(kuò)展性強(qiáng)、兼容性好等優(yōu)點(diǎn)[13],是服務(wù)器開發(fā)的熱門語言。aiohttp是基于異步協(xié)程IO庫的Python服務(wù)器框架,該框架利用asyncio的異步協(xié)程IO技術(shù)[14],協(xié)程是可控的程序上下文切換技術(shù),在應(yīng)對高并發(fā)問題時(shí),相比進(jìn)程、線程更加輕量和高效,因此非常適合本文數(shù)據(jù)量不大、邏輯簡單、高并發(fā)的傳輸背景。

        1.3 WPF技術(shù)

        WPF是基于.NET和Windows的用戶界面框架,編程語言為XAML和C#,XAML是用于實(shí)例化.NET對象的標(biāo)記語言,負(fù)責(zé)構(gòu)建WPF的用戶界面,C#是面向?qū)ο蟮母呒壋绦蛟O(shè)計(jì)語言,負(fù)責(zé)界面的后臺邏輯實(shí)現(xiàn)。WPF具備界面和邏輯分開、自動(dòng)適應(yīng)分辨率,處理速度快等優(yōu)點(diǎn),提高了客戶端開發(fā)的效率和質(zhì)量[10]。

        2 遠(yuǎn)程技術(shù)支持系統(tǒng)總體設(shè)計(jì)

        2.1 系統(tǒng)關(guān)鍵與流程設(shè)計(jì)

        在常見的無人機(jī)系統(tǒng)中,無人機(jī)和地面控制站之間利用無線電鏈路傳輸控制站上的控制指令和無人機(jī)上的飛行數(shù)據(jù),結(jié)合相關(guān)站上或機(jī)上的顯示與處理,即可實(shí)現(xiàn)對無人機(jī)的通信傳輸、參數(shù)調(diào)整、實(shí)時(shí)監(jiān)視、飛行控制等功能。因此,無人機(jī)遠(yuǎn)程技術(shù)支持系統(tǒng)的關(guān)鍵是在上述基礎(chǔ)上,利用云和網(wǎng)絡(luò)連接無人機(jī)和客戶端,遠(yuǎn)距離傳輸無人機(jī)的飛行數(shù)據(jù)和技術(shù)支持方的控制指令,實(shí)現(xiàn)目標(biāo)功能。

        具體的系統(tǒng)流程如圖1所示,分為飛行數(shù)據(jù)回傳流程和控制指令上傳流程。前者中,無人機(jī)將飛行數(shù)據(jù)下傳給受支持者地面站,再利用TCP傳輸給云服務(wù)器和支持者地面站解析并顯示,實(shí)現(xiàn)遠(yuǎn)程監(jiān)視、參數(shù)檢查等功能;后者中,利用TCP將支持者地面站上產(chǎn)生的指令傳輸給云服務(wù)器端和受支持者地面站,最后通過無線電上傳給無人機(jī)從而實(shí)現(xiàn)調(diào)試、飛行控制等功能;另外,還包括用戶操作流程,地面站客戶端發(fā)起包含操作信息的HTTP請求,云服務(wù)器端做出相應(yīng)的處理和應(yīng)答。

        圖1 系統(tǒng)流程

        2.2 功能模塊設(shè)計(jì)

        針對專業(yè)性要求,本文采用C/S結(jié)構(gòu)對系統(tǒng)進(jìn)行定制化設(shè)計(jì),如圖2所示,由客戶端和服務(wù)器端組成。

        其中,客戶端由以下功能模塊組成:

        (1)操作模塊:提供人為操作的功能界面,包括登錄、連接、退出等連接操作和注冊、修改密碼等賬戶操作,將操作信息用HTTP發(fā)給服務(wù)器端,并處理返回的結(jié)果。

        (2)傳輸模塊:發(fā)起和維持與服務(wù)器端之間的TCP傳輸,將地面站中的數(shù)據(jù)和指令發(fā)送給服務(wù)器端,接收和解析來自服務(wù)器端的數(shù)據(jù)和指令。

        (3)地面站基礎(chǔ)功能模塊:維持與無人機(jī)的通信連接,作為數(shù)據(jù)指令傳輸通道;以圖形界面、虛擬儀表等形式顯示無人機(jī)狀態(tài)信息;提供參數(shù)調(diào)整等界面;提供飛行控制功能包括控制指令、飛行搖桿和任務(wù)規(guī)劃等。

        服務(wù)器端由以下模塊組成:

        (1)主模塊:服務(wù)器端主程序;接收和處理客戶端登錄等操作的HTTP請求并返回結(jié)果;接收和轉(zhuǎn)發(fā)無人機(jī)數(shù)據(jù)和指令的TCP消息,并進(jìn)行權(quán)限控制;連接和處理數(shù)據(jù)庫,處理用戶身份驗(yàn)證和操作記錄讀寫。

        (2)存儲模塊:利用數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)存儲功能,主要存儲賬戶、密碼等用戶信息和用戶操作、結(jié)果等記錄。

        下面對客戶端和服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn)方法,優(yōu)先級無人機(jī)數(shù)據(jù)自適應(yīng)傳輸方法等關(guān)鍵技術(shù)進(jìn)行重點(diǎn)闡述。

        3 客戶端設(shè)計(jì)與實(shí)現(xiàn)

        針對功能需求和專業(yè)性要求,設(shè)計(jì)客戶端為用戶進(jìn)行操作的運(yùn)行在聯(lián)網(wǎng)PC上的軟件,根據(jù)角色不同,分為飛行現(xiàn)場的受支持端和技術(shù)支持人員的支持端。本文使用WPF技術(shù)基于無人機(jī)地面站軟件開發(fā)客戶端,復(fù)用其站-機(jī)通信、地圖與儀表顯示、參數(shù)調(diào)試等功能,并加入遠(yuǎn)程支持的相關(guān)功能。

        圖2 系統(tǒng)功能結(jié)構(gòu)

        3.1 界面功能

        客戶端界面包括遠(yuǎn)程支持、用戶注冊和修改密碼等子界面,如圖3所示,利用XAML語言調(diào)用控件并定制樣式,實(shí)現(xiàn)了用戶名、可連接對象和登錄等顯示框和按鈕,按照MVC模式,在上述控件中通過事件機(jī)制在后臺邏輯來實(shí)現(xiàn)相應(yīng)的功能。

        圖3 客戶端用戶界面

        3.2 后臺程序

        客戶端的程序流程圖如圖4所示,用戶填入信息后點(diǎn)擊登錄,客戶端程序發(fā)起TCP連接,并用HTTP登錄請求將賬號和密碼發(fā)送給服務(wù)端:收到反饋為登錄成功,則進(jìn)入下一步;收到登錄失敗或等待超時(shí),則返回上一步。登錄成功后,開始向服務(wù)端定時(shí)發(fā)送HTTP輪詢請求,并解析返回的輪詢結(jié)果,顯示結(jié)果中的用戶狀態(tài)和可連接用戶列表。根據(jù)用戶狀態(tài):

        (1)登錄狀態(tài),選擇一名可連接用戶點(diǎn)擊連接,用HTTP連接請求將賬戶和口令發(fā)給服務(wù)端:收到反饋為連接成功,則開始往TCP傳輸隊(duì)列中讀寫無人機(jī)數(shù)據(jù)和指令;收到連接失敗,則返回上一步。

        (2)連接狀態(tài),繼續(xù)往傳輸隊(duì)列讀寫數(shù)據(jù)和指令。

        (3)斷開狀態(tài),結(jié)束讀寫并退出程序。

        點(diǎn)擊斷開,程序向服務(wù)端發(fā)送HTTP斷開請求:收到反饋為退出成功,則退出程序;收到退出失敗,則繼續(xù)處于連接狀態(tài)。

        圖4 客戶端程序流程

        代碼實(shí)現(xiàn)中,將System.NET類庫中的Socket和TcpClient類封裝成RemoteSupport類,提供發(fā)起、維持及斷開TCP通信的功能。在地面站軟件的數(shù)據(jù)指令收發(fā)程序中調(diào)用這個(gè)類,當(dāng)受支持方收到無人機(jī)下傳或支持者發(fā)出的數(shù)據(jù)和指令時(shí),通過事件發(fā)布函數(shù),執(zhí)行RemoteSupport類的發(fā)送函數(shù),實(shí)現(xiàn)向服務(wù)端發(fā)送的功能,關(guān)鍵代碼如下:

        //發(fā)送控制指令的事件訂閱

        this.DataSendEvent += MainWindow_DataSendEvent;

        //將控制指令字節(jié)流寫入TCP

        MainWindow_DataSendEvent(byte[] bytes)

        {

        RemoteSupport.WriteTcp(bytes);

        }

        在收到服務(wù)端下傳的數(shù)據(jù)和指令時(shí),執(zhí)行RemoteSupport類的數(shù)據(jù)接收函數(shù),再通過事件發(fā)布函數(shù)傳給地面站解包處理程序(支持方)或者轉(zhuǎn)發(fā)給飛控(受支持方),實(shí)現(xiàn)遠(yuǎn)程下傳接收功能,關(guān)鍵代碼如下:

        //收到服務(wù)端數(shù)據(jù)的事件訂閱

        RemoteSupport.DataReceivedEvent+=RemoteSupport_DataReceivedEvent;

        //下傳接收處理函數(shù)

        RemoteSupport_DataReceivedEvent(byte[] bytes)

        {

        //根據(jù)是否支持方處理接收數(shù)據(jù)

        DataProcessSupport(bytes);

        }

        聲明NewWebClient類繼承自System.NET類庫中的WebClient類,提供收發(fā)HTTP請求和回復(fù)的功能。當(dāng)進(jìn)行登錄、連接等操作時(shí),客戶端將相關(guān)信息放入HTTP協(xié)議后以POST方式發(fā)送給服務(wù)端并解析回復(fù),關(guān)鍵代碼如下:

        //發(fā)送信息接收回復(fù)

        byte[]response=newWebClient.UploadValues(URL,"POST",formData);

        4 服務(wù)器端設(shè)計(jì)與實(shí)現(xiàn)

        針對功能需求和專業(yè)性要求,設(shè)計(jì)服務(wù)器端為運(yùn)行在阿里云服務(wù)器上,接收客戶端請求并完成相應(yīng)處理,存儲用戶信息和操作記錄的程序。

        4.1 主程序

        服務(wù)器端用Python開發(fā),程序流程圖如圖5所示,啟動(dòng)后創(chuàng)建線程,主線程運(yùn)行后,讀取待連接和連接列表,創(chuàng)建傳輸線程并讀寫連接雙方的Socket套接字,根據(jù)口令驗(yàn)證結(jié)果實(shí)現(xiàn)不同權(quán)限的數(shù)據(jù)指令傳輸直至收到退出請求為止。

        TCP線程運(yùn)行后,監(jiān)聽TCP請求,在收到連接請求時(shí),接收并保存Socket套接字中的用戶信息和數(shù)據(jù)。關(guān)鍵代碼如下:

        //開啟TCP監(jiān)聽

        TcpListener.bind(IP,Port)

        TcpListener.listen(10)

        //獲取TCP請求中的套接字信息

        sock,addr=TcpListener.accept()

        HTTP線程運(yùn)行后,監(jiān)聽HTTP請求,收到請求時(shí),利用aiohttp異步處理框架解析請求并根據(jù)HTTP協(xié)議中的操作類型進(jìn)入相應(yīng)的處理函數(shù):

        (1)登錄請求,解析請求并利用數(shù)據(jù)庫驗(yàn)證用戶的賬號密碼等信息。驗(yàn)證通過,存入登錄用戶列表并返回登錄成功;不通過,則返回登錄失敗。

        (2)輪詢請求,獲取登錄用戶列表中該用戶的狀態(tài)和可連接的用戶名單,返回給客戶端。

        (3)連接請求,解析請求中的連接雙方賬號,檢查雙方狀態(tài),若雙方在線,將雙方存入待連接列表中,等主線程完成連接后返回連接成功;否則返回連接失敗。

        (4)退出請求,解析請求中的用戶賬號,若處于連接狀態(tài),關(guān)閉連接后從連接列表中刪去用戶信息,并返回退出成功;如果處于登錄狀態(tài),則從登錄用戶列表刪去用戶信息,并返回退出成功;其余情況返回退出失敗。

        (5)注冊賬戶請求,解析請求中待注冊的賬號和密碼,讀取數(shù)據(jù)庫判斷該用戶是否存在,若不存在,則將注冊信息寫入數(shù)據(jù)庫并返回注冊成功;否則返回注冊失敗。

        關(guān)鍵代碼如下:

        //創(chuàng)建web服務(wù)器

        app = web.Application(loop=loop)

        圖5 服務(wù)端程序流程

        //將處理函數(shù)注冊進(jìn)應(yīng)用路徑

        app.router.add_route(′POST′,′/remote/Login′,Login)

        //創(chuàng)建HTTP監(jiān)聽服務(wù)。

        srv=yieldfrom loop.Createserver(handler,ip, port)

        4.2 數(shù)據(jù)庫

        本文用MySQL建立“無人機(jī)遠(yuǎn)程技術(shù)支持系統(tǒng)數(shù)據(jù)庫”,由用戶信息表和操作記錄表組成。用戶信息見表1,用來存儲和管理用戶信息。表中No是用戶編號,是主鍵;Name和Password是用戶姓名和密碼,提供處理用戶注冊、登陸、修改密碼等請求時(shí)的驗(yàn)證功能;ModifyTime是用戶修改信息的時(shí)間;LoginTime是上次登錄系統(tǒng)的時(shí)間。

        操作記錄見表2,用來存儲和管理用戶操作記錄。表中No是操作記錄編號,是表主鍵并自動(dòng)加1;Action是注冊、登陸、連接等操作;Result是操作結(jié)果,1表示操作成功,0表示失??;UserNo是用戶編號,是該表連接用戶信息表的外鍵。

        表1 用戶信息表Users_Table

        表2 操作記錄表Action_Table

        以用戶登錄時(shí)的賬號密碼檢驗(yàn)為例,關(guān)鍵代碼如下:

        //連接數(shù)據(jù)庫

        db=pymysql.connect(host="",user="",password="",db="remote")

        //獲取游標(biāo)、執(zhí)行SQL語句

        db.cursor.execute(sql)

        //根據(jù)查詢結(jié)果判斷密碼是否正確

        result=cursor.fetchone()

        IsRight = (result==password) ? true:false

        //關(guān)閉連接

        db.close()

        5 基于優(yōu)先級的無人機(jī)數(shù)據(jù)自適應(yīng)傳輸方法

        5.1 數(shù)據(jù)優(yōu)先級分析

        系統(tǒng)中傳輸?shù)臄?shù)據(jù)可分為以下3類:控制指令數(shù)據(jù)Ic、飛行狀態(tài)數(shù)據(jù)Iu以及系統(tǒng)操作數(shù)據(jù)Is,如果按混合產(chǎn)生的順序傳輸會導(dǎo)致重要數(shù)據(jù)等待傳輸?shù)臅r(shí)間過長,影響系統(tǒng)實(shí)時(shí)性。為了保證重要數(shù)據(jù)的傳輸性能,需要根據(jù)實(shí)時(shí)性要求劃分?jǐn)?shù)據(jù)優(yōu)先級,用不同的隊(duì)列進(jìn)行傳輸。Ic是人為產(chǎn)生的飛行控制、載荷控制等指令,由于無人機(jī)的控制特性與要求,實(shí)時(shí)性要求最高;Iu是無人機(jī)的飛行狀態(tài)、載荷狀態(tài)等數(shù)據(jù),實(shí)時(shí)性要求僅次于Ic;Is是遠(yuǎn)程技術(shù)支持系統(tǒng)操作數(shù)據(jù),與飛行任務(wù)無直接關(guān)聯(lián),實(shí)時(shí)性要求最低。由此可定義數(shù)據(jù)傳輸?shù)膬?yōu)先級為:Ic>Iu>Is。

        5.2 傳輸協(xié)議設(shè)計(jì)

        根據(jù)上述數(shù)據(jù)的特點(diǎn),分別設(shè)計(jì)了TCP數(shù)據(jù)指令傳輸協(xié)議和HTTP操作信息傳輸協(xié)議。

        數(shù)據(jù)指令傳輸協(xié)議用來傳輸Ic、Iu。如表3所示,協(xié)議包括幀頭、幀長度、類型編號、數(shù)據(jù)內(nèi)容、校驗(yàn)位、幀尾6個(gè)部分。其中,幀頭、幀長和幀尾保障TCP流式傳輸中單個(gè)數(shù)據(jù)包的完整性,校驗(yàn)位保證正確性。ID用來區(qū)分協(xié)議的類型,數(shù)據(jù)內(nèi)容用來承載數(shù)據(jù)或指令。

        表3 數(shù)據(jù)指令協(xié)議幀結(jié)構(gòu)

        操作信息傳輸協(xié)議利用HTTP的請求-響應(yīng)模型,具有簡單、靈活、無連接的特點(diǎn),協(xié)議中URL用來表示登錄、連接等操作的類型,請求體用來搭載Is數(shù)據(jù)。以注冊賬號的代碼為例:

        //URL標(biāo)記為注冊

        URL="http://1.1.1.1:9090/remote/Register";

        //用POST的方式上傳注冊信息

        newWebClient.UploadValues(URL,"POST",Register)

        5.3 自適應(yīng)傳輸算法設(shè)計(jì)

        優(yōu)先級傳輸方法保證了重要數(shù)據(jù)的最優(yōu)傳輸,但當(dāng)系統(tǒng)維持多個(gè)遠(yuǎn)程技術(shù)支持時(shí),單個(gè)可用帶寬b將減小,導(dǎo)致傳輸延遲增大甚至擁塞,這對低優(yōu)先級數(shù)據(jù)的影響尤為明顯。在時(shí)隙T內(nèi)完成全部數(shù)據(jù)的傳輸,需滿足下式

        Ic+Iu+Is≤b×T

        (1)

        進(jìn)一步分析數(shù)據(jù)傳輸情況可知:Ic和Is由人為操作產(chǎn)生,由于人為操作具有發(fā)生時(shí)的突變性和發(fā)生后的連續(xù)性,因此,下一時(shí)隙的數(shù)據(jù)量可由最近一次突變后歷史時(shí)隙的數(shù)據(jù)發(fā)送情況來預(yù)估;Iu由飛控采集模擬量轉(zhuǎn)換為數(shù)字量后按一定頻率fu發(fā)送,根據(jù)經(jīng)驗(yàn),fu在5 Hz-50 Hz內(nèi)可調(diào)。因此可以通過計(jì)算可用帶寬和預(yù)估Ic、Is數(shù)據(jù)量來調(diào)整頻率fu,優(yōu)化帶寬占用,保證次要數(shù)據(jù)的可靠、實(shí)時(shí)傳輸。

        云服務(wù)器固定帶寬為B,可用帶寬系數(shù)為β,遠(yuǎn)程支持組數(shù)為m,系統(tǒng)采用平均的帶寬分配策略,則單個(gè)遠(yuǎn)程支持的可用帶寬b可由下式計(jì)算

        b=β×B/m

        (2)

        下一時(shí)隙的Iu數(shù)據(jù)量可由下式計(jì)算

        Iu=fu×du×T

        (3)

        其中,du為Iu的單包數(shù)據(jù)量,根據(jù)前文設(shè)計(jì)的傳輸協(xié)議確定。

        (4)

        其中,Ii=qi×d,qi為服務(wù)器端記錄的收到包數(shù),d為Ic和Is單包數(shù)據(jù)量。

        求解上式的關(guān)鍵在于最近一次突變后的有效時(shí)隙數(shù)n和計(jì)算權(quán)重wi。以Is為例,定義時(shí)隙間的數(shù)據(jù)量變化率如下

        (5)

        (6)

        設(shè)完成傳輸對預(yù)估的影響因子為ks∈(0.5,1),則未完成的影響因子為1-ks。那么,權(quán)重計(jì)算公式如下

        (7)

        Ic的預(yù)估同理,由于其優(yōu)先級最高,Si恒等于1,ks恒等于1,則其計(jì)算權(quán)重為:w1=W,wi=(1-W)/(n-1),i=2,3,…,n。

        算法步驟如下:

        步驟1 確定服務(wù)器固定帶寬B,單包數(shù)據(jù)量dc、du、ds等常數(shù),初始化β,W,perM,ks,fu和T等參數(shù)。

        步驟2 按優(yōu)先級順序和fu約束預(yù)處理產(chǎn)生的數(shù)據(jù)包,放入相應(yīng)的傳輸隊(duì)列并標(biāo)記序號。

        步驟3 傳輸數(shù)據(jù),記錄時(shí)隙T內(nèi)3個(gè)隊(duì)列各自的發(fā)送包數(shù)pi和收到包數(shù)qi,再根據(jù)式(5)和式(6)計(jì)算數(shù)據(jù)變化率perc,i,pers,i和傳輸完成情況Sc,i,Ss,i,并更新對應(yīng)的nc,ns。

        步驟4 根據(jù)Sc,i,Ss,i,nc,ns和式(7)分別計(jì)算Ic和Is的過去時(shí)隙權(quán)重wc,i,ws,i。

        步驟6 獲取當(dāng)前在線遠(yuǎn)程支持組數(shù)m,根據(jù)式(2)計(jì)算單個(gè)可用帶寬b。

        步驟8 根據(jù)Iu,du和式(3)計(jì)算下一時(shí)隙的fu。若fu<5 Hz,進(jìn)入步驟9,其余情況返回步驟2。

        步驟9 取fu=5 Hz,若fu無法滿足任務(wù)要求,適當(dāng)增大時(shí)隙到T=(1+λ)T,其中λ∈(0,1)為時(shí)隙調(diào)整因子。返回步驟2。

        6 系統(tǒng)運(yùn)行結(jié)果

        從以下方面對本文設(shè)計(jì)的無人機(jī)遠(yuǎn)程技術(shù)支持系統(tǒng)進(jìn)行實(shí)際飛行驗(yàn)證。

        (1)在兩臺計(jì)算機(jī)上啟動(dòng)無人機(jī)地面站軟件,一臺作為支持者客戶端,另一臺連接無人機(jī)作為受支持者客戶端,注冊賬號后登錄服務(wù)器,選擇對方進(jìn)行連接,開始遠(yuǎn)程技術(shù)支持。依次驗(yàn)證各個(gè)功能,如圖6所示,支持者端的地面站軟件可以觀察到和受支持者端一致的飛行姿態(tài)、位置、航點(diǎn)等數(shù)據(jù);遠(yuǎn)程無人機(jī)可以收到并執(zhí)行支持端發(fā)送的調(diào)試參數(shù)和起飛等指令。表明系統(tǒng)運(yùn)行穩(wěn)定,實(shí)現(xiàn)了目標(biāo)功能,滿足專業(yè)性和功能性要求。

        圖6 系統(tǒng)測試截圖

        (2)在上述實(shí)驗(yàn)中,分別在受支持者和支持者客戶端用DateTime函數(shù)記錄了5000條協(xié)議數(shù)據(jù)包的發(fā)送時(shí)間SendTime和收到時(shí)間RecvTime,計(jì)算每個(gè)包傳輸用時(shí)的結(jié)果為:用時(shí)最大為36 ms,最小為9 ms,平均為13 ms。如圖7所示,對連續(xù)100個(gè)包的傳輸用時(shí)畫折線圖可知,用時(shí)較為穩(wěn)定。由于人為連續(xù)操作軟件的最快反應(yīng)時(shí)間在幾百毫秒左右,大于傳輸用時(shí),因此傳輸對操作的延時(shí)影響很小,滿足實(shí)時(shí)性要求。

        圖7 傳輸用時(shí)變化

        (3)為模擬多組遠(yuǎn)程技術(shù)支持并發(fā),實(shí)驗(yàn)中限制可用帶寬為15 000 bit/s,初始化算法參數(shù),其中時(shí)隙T為1 s,Iu的初始頻率fu為25 Hz。分別在啟用和未啟用基于優(yōu)先級的無人機(jī)數(shù)據(jù)自適應(yīng)傳輸方法下,重復(fù)相同操作。如圖8所示,當(dāng)帶寬受限時(shí),該方法隨著Ic和Is數(shù)據(jù)量的變化自動(dòng)調(diào)節(jié)fu,調(diào)節(jié)效果如圖9所示,以時(shí)隙內(nèi)收到包數(shù)與發(fā)送包數(shù)的比例計(jì)算傳輸成功率,相比未啟用方法,該方法提高了數(shù)據(jù)傳輸成功率,尤其是低優(yōu)先級數(shù)據(jù)。計(jì)算各隊(duì)列及全部數(shù)據(jù)的平均傳輸用時(shí),如圖10所示,相比未開啟方法,該方法的傳輸用時(shí)更小,這在低優(yōu)先級數(shù)據(jù)上尤為明顯。表明系統(tǒng)在多組并發(fā)導(dǎo)致可用帶寬減少的情況中,通過調(diào)整數(shù)據(jù)頻率仍能保證數(shù)據(jù)的傳輸性能,滿足實(shí)時(shí)性要求。

        圖8 數(shù)據(jù)頻率調(diào)節(jié)效果

        圖9 傳輸成功率對比

        圖10 平均傳輸用時(shí)對比

        7 結(jié)束語

        本文針對無人機(jī)需求,設(shè)計(jì)并實(shí)現(xiàn)了基于云的無人機(jī)遠(yuǎn)程技術(shù)支持系統(tǒng)。定制化開發(fā)了云服務(wù)器端和客戶端,利用云和網(wǎng)絡(luò)完成遠(yuǎn)距離通信,并在此基礎(chǔ)上實(shí)現(xiàn)飛行監(jiān)控、參數(shù)調(diào)整等多種遠(yuǎn)程支持功能,相比通用遠(yuǎn)程支持工具,專業(yè)性、功能性和實(shí)時(shí)性更好;根據(jù)數(shù)據(jù)傳輸特點(diǎn),提出一種基于優(yōu)先級的無人機(jī)數(shù)據(jù)自適應(yīng)傳輸方法,相比常規(guī)傳輸方法,保證了重要數(shù)據(jù)的傳輸性能,在可用帶寬減少的情況下傳輸實(shí)時(shí)性和可靠性更好。通過實(shí)際飛行實(shí)驗(yàn),驗(yàn)證了該系統(tǒng)運(yùn)行正常,滿足功能需求和性能要求。

        猜你喜歡
        指令用戶功能
        聽我指令:大催眠術(shù)
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        如何獲取一億海外用戶
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        丰满人妻中文字幕乱码| 亚洲av无码一区二区三区不卡| 日本丰满熟妇bbxbbxhd| 国产免费资源| 国模无码视频一区| 99久久国内精品成人免费| 亚洲伊人av综合福利| 视频在线观看一区二区三区| 中文字幕在线精品视频入口一区| 欧美末成年videos在线观看| 少妇高潮无码自拍| 91九色视频在线国产| 24小时日本在线视频资源| 亚洲av成人综合网| 校花高潮一区日韩| 九九精品国产亚洲av日韩| 国产人成无码视频在线观看| 日夜啪啪一区二区三区| 丝袜国产高跟亚洲精品91| 亚洲av第一区综合激情久久久| 一区二区视频在线观看地址| 东北女人毛多水多牲交视频| 国产亚洲欧美在线观看的| 国产一区二区精品久久呦| 精品一区三区视频在线观看| 亚洲av无码国产精品色午夜洪| 亚洲AⅤ无码片一区二区三区| 日本高清人妻一区二区| 人妻丰满熟妇av无码区app| 中文字幕乱码免费视频| 久久99久久99精品免视看国产成人| 99久久婷婷国产精品网| 国产精品亚洲lv粉色| 啪啪免费网站| 亚洲产在线精品亚洲第一页| 久久精品第九区免费观看| 久久久久久免费毛片精品| av无码一区二区三| 丝袜美腿人妻第一版主| 女人张开腿让男桶喷水高潮| 人妻丰满熟妇av无码区hd|