吳 振, 吳紅蘭, 吳宇辰
(南京航空航天大學 民航學院,江蘇 南京 211106)
根據(jù)特定的任務(wù)類型,一些無人機在整個飛行過程中實現(xiàn)了完全自主飛行,無需從地面站發(fā)送控制指令[1-2]。但是對于幾乎所有的應(yīng)用來說,都需要地面操作員與無人機進行雙向通信,地面控制站已成為無人機系統(tǒng)執(zhí)行任務(wù)時必不可少的組成部分。
然而,隨著無人機作業(yè)任務(wù)的增多以及飛行環(huán)境越來越復(fù)雜,地面操作員需要處理的信息量激增,當有突發(fā)或緊急任務(wù)時,工作負荷增大。由于人為因素的存在,即使是訓練有素的地面操作員也會出現(xiàn)意想不到的操作失誤。調(diào)查結(jié)果表明,人為因素引起的嚴重飛行事故在眾多無人機事故中占有非常高的比例[3]。
在某些功能上給予無人機自主性可以降低地面站操作員的工作量,提高態(tài)勢感知能力,機組人員可以把精力集中在關(guān)鍵性任務(wù)上[4]。作為無人機系統(tǒng)核心技術(shù)之一的自主航路規(guī)劃技術(shù),能夠代替人在復(fù)雜的動態(tài)環(huán)境下進行飛行任務(wù)的規(guī)劃與決策,有效地避免地面站操作員的不安全控制行為,分擔其任務(wù)工作壓力。因此,構(gòu)建自主航路規(guī)劃平臺,對提高無人機系統(tǒng)智能化水平,保證無人機飛行安全具有重要意義。
目前已有很多專家學者針對無人機地面站關(guān)鍵技術(shù)與設(shè)計展開研究,但多是從控制角度進行軟件的開發(fā)與設(shè)計,很少有人考慮到地面站,尤其是航路規(guī)劃子系統(tǒng)的人機交互需求。楊帆等[5]基于某型號靶機需求,采用模塊化思想開發(fā)了具備實時控制與監(jiān)測功能的地面站軟件,但忽略了人機交互需求,監(jiān)測數(shù)據(jù)顯示不直觀,操作相對復(fù)雜。金強等[6]基于Qt對四旋翼無人機地面站的虛擬儀表進行了設(shè)計,使得飛行狀態(tài)等監(jiān)控數(shù)據(jù)的顯示更加直觀,但其并未涉及航路規(guī)劃系統(tǒng)。馬夏瑩等[7]設(shè)計了一款無人機地面站武器控制系統(tǒng),實驗部分考慮到了操作人員負擔問題,但設(shè)計前沒有對其人機交互需求進行梳理,也未曾提供人機交互的可視化界面。
基于以上問題,首先對航路規(guī)劃系統(tǒng)功能和無人機系統(tǒng)適航標準規(guī)范分析,總結(jié)歸納航路規(guī)劃系統(tǒng)設(shè)計的基本原則與必要條件;然后,從系統(tǒng)功能要求和人機交互需求出發(fā),構(gòu)建航路規(guī)劃系統(tǒng)軟件的基本框架,并采用MATLAB APP Designer完成軟件平臺的開發(fā)。
航路規(guī)劃系統(tǒng)是實現(xiàn)無人機自主飛行和避障導航的關(guān)鍵系統(tǒng)。然而,從對國內(nèi)外無人機系統(tǒng)相關(guān)標準以及規(guī)范的分析來看,目前還沒有專門針對無人機航路規(guī)劃系統(tǒng)的適航標準規(guī)范。但國內(nèi)外很多標準都從任務(wù)需求和適航角度,以無人機任務(wù)規(guī)劃系統(tǒng)子功能的方式對其提出了相關(guān)要求[8-16]。
通過對無人機航路規(guī)劃系統(tǒng)功能(如圖1所示)和無人機系統(tǒng)適航標準規(guī)范分析,無人機航路規(guī)劃系統(tǒng)在設(shè)計時應(yīng)當滿足如下要求:
① 無人機航路規(guī)劃系統(tǒng)的功能是能夠在已知數(shù)字地圖的基礎(chǔ)上,根據(jù)無人機性能等各種約束條件和飛行任務(wù)需求,在起點和目標點之間規(guī)劃出一條某種評價標準下的最優(yōu)航路[17]。
② 無人機所規(guī)劃航路信息的準確性、完整性和一致性高。無人機按照預(yù)定航路自主飛行的具體執(zhí)行過程都是以航路規(guī)劃輸出的先驗數(shù)據(jù)信息為基礎(chǔ)的,因此規(guī)劃航路信息的準確性、完整性和一致性對無人機的任務(wù)執(zhí)行結(jié)果及自身的飛行安全至關(guān)重要。
圖1 無人機航路規(guī)劃系統(tǒng)
③ 無人機航路規(guī)劃系統(tǒng)應(yīng)具備快速的再規(guī)劃能力。無人機在按照預(yù)定航路飛行的過程中,由于飛行環(huán)境復(fù)雜多變,很多情況下不得不對預(yù)先規(guī)劃的飛行航路和任務(wù)模式進行重新修正,以確保無人機的飛行安全、提高任務(wù)的成功率。
④ 無人機航路規(guī)劃系統(tǒng)應(yīng)當具備一定的通用性和一致性。未來空域必定是無人機與有人機等各種飛行器的集成空域,因此為保障空域飛行安全,通常要求航路規(guī)劃系統(tǒng)之間具備一定的通用性和一致性,以保證各種飛行器(包括無人機和載人航空器)之間能夠協(xié)同飛行。
⑤ 開發(fā)人員應(yīng)同時具備實際任務(wù)經(jīng)驗和技術(shù)素養(yǎng)。航路規(guī)劃是實際任務(wù)執(zhí)行過程的載體,所以需要將具體的航路和要求轉(zhuǎn)換為無人機可識別并執(zhí)行的數(shù)據(jù)結(jié)構(gòu)。此外,任務(wù)規(guī)劃還需要充分地滿足兩個主要的約束(裝備約束、環(huán)境和任務(wù)的約束)來確保任務(wù)執(zhí)行過程的安全性和可靠性。因此,對任務(wù)規(guī)劃系統(tǒng)設(shè)計人員而言,既要熟悉無人機具體任務(wù)的使用方法,又要掌握無人機系統(tǒng)知識,即對無人機實際任務(wù)經(jīng)驗和技術(shù)素養(yǎng)要求都比較高。
⑥ 無人機航路規(guī)劃系統(tǒng)應(yīng)當進行適當評估。評估測試內(nèi)容主要集中于對航路的設(shè)置及規(guī)劃能力、狀態(tài)回報與顯示能力等方面,其目的是為了保證無人機系統(tǒng)的安全性和可靠性。
⑦ 無人機航路規(guī)劃平臺應(yīng)當具備友好的人機交互界面。友好的人機交互界面是指地面操作員與無人機之間的接口在滿足所有功能需求的前提下,其操作應(yīng)當簡單易行、便于理解。
航路規(guī)劃軟件平臺是無人機自主航路規(guī)劃系統(tǒng)的核心,是無人機智能化水平的重要體現(xiàn)。一方面,軟件平臺是地面操作員與無人機交互的接口,其設(shè)計好壞嚴重影響著操作員的任務(wù)決策與執(zhí)行;此外,作為航路規(guī)劃軟件的重要組成部分,相關(guān)智能算法的復(fù)雜度與可靠性決定著無人機的智能化與安全性水平,其設(shè)計應(yīng)當經(jīng)過嚴格的理論分析與驗證。因此,在進行無人機航路規(guī)劃平臺的設(shè)計與開發(fā)過程中,不僅要注重軟件平臺的可靠性,也應(yīng)當同時參考航路規(guī)劃系統(tǒng)的整體性要求。
軟件平臺主要應(yīng)用于無人機飛行前的航路規(guī)劃工作,它能夠在已知任務(wù)環(huán)境信息的基礎(chǔ)上,根據(jù)任務(wù)需求,規(guī)劃出一條有效航路,同時能夠?qū)⑵湫纬娠w行指令,控制無人機飛行,且在無人機飛行過程中能對其飛行狀態(tài)進行實時監(jiān)控。航路規(guī)劃系統(tǒng)功能劃分如圖2所示。
圖2 航路規(guī)劃系統(tǒng)功能劃分
此外,根據(jù)標準和應(yīng)用的人機交互需求,自主航路規(guī)劃平臺人機交互模塊應(yīng)當具備以下功能。
① 數(shù)字地圖,異常氣象區(qū)、禁飛區(qū)等威脅源的顯示。
② 無人機預(yù)定飛行航跡與實時飛行航跡顯示。
③ 支持任務(wù)計劃的自動或人工生成操作。
④ 任務(wù)計劃的編輯與輸出,導航指令與參數(shù)的輸入與發(fā)送。
⑤ 具備地圖比例縮放、平移等功能。
航路規(guī)劃軟件邏輯框圖如圖3所示。該平臺軟件主要以環(huán)境信息作為外部輸入,同時能夠?qū)崟r接收無人機下發(fā)的狀態(tài)信息,進而形成飛行日志作為輸出。
航路規(guī)劃模塊主要完成自動航路規(guī)劃功能。它通過改進的遺傳算法和人為設(shè)置的參數(shù)自動生成滿足約束條件的無人機航路。規(guī)劃航路最終都會形成航路文件進行保存,同時還可以通過通信模塊形成無人機飛行指令,引導無人機完成飛行任務(wù)。
人機交互界面是幫助用戶與系統(tǒng)進行交互的接口。友好、簡約的操作界面能夠幫助用戶高效地進行任務(wù)規(guī)劃。
圖3 航路規(guī)劃軟件邏輯框圖
該功能模塊具有初始化地圖、威脅的導入、任務(wù)設(shè)置、航路輸出等功能。航路規(guī)劃功能模塊設(shè)計的核心是航路規(guī)劃算法的設(shè)計。本文所構(gòu)建的平臺采用改進的遺算法進行航路規(guī)劃。雖然許多改進的遺傳算法針對其早熟收斂或迭代速度過慢等問題提出了改進措施,但忽略了各種局限性之間存在的耦合關(guān)系,其結(jié)果往往是以犧牲其他優(yōu)良特性為代價的?;诖耍岢隽诉m應(yīng)度值標定、種群多樣化和精英保留策略的融合改進方案[18]。
基于改進遺傳算法的航路規(guī)劃流程如圖4所示。
圖4 基于改進遺傳算法的航路規(guī)劃流程
下面給出了改進遺傳算法的核心程序。
① 按適應(yīng)度值大小對種群個體(航路)進行排序。
② 取出適應(yīng)度值最大的航路,放入精英池,并對精英池按適應(yīng)度值大小排序。
③ 計算種群適應(yīng)度平均值,并以此為闕值,選擇適應(yīng)度值大于平均值的航路。
④ 計算航路相似度程度,并以適應(yīng)度最高的航路為模板,去除相似度高的航路。
⑤ 判斷是否達到所要求的種群規(guī)模,如果是,則進行遺傳操作;否則重復(fù)④。如果不能得到足夠的種群規(guī)模,順次引入精英池中的航路進行補充。
⑥ 判斷是否符合終止。如果是則終止算法;否則跳轉(zhuǎn)到①。
基于以上改進遺傳算法,構(gòu)建了無人機航路規(guī)劃平臺。航路規(guī)劃平臺主界面如圖5所示。除了基本的無人機航路和狀態(tài)信息顯示界面,該平臺還提供了航路規(guī)劃、無人機控制等人機交互的接口。
圖5 航路規(guī)劃平臺主界面
通信功能模塊由數(shù)傳電臺(包括地面數(shù)傳和機載數(shù)傳)構(gòu)成地空通信的上行和下行數(shù)據(jù)鏈路。應(yīng)用層采用MavLink協(xié)議,其基于串口通信采用發(fā)布/訂閱模式實現(xiàn)無人機組件及地面站之間的消息傳遞[19]。通信模塊的上行鏈路和下行鏈路設(shè)計流程分別如圖6和圖7所示。
圖8為控制功能面板,實現(xiàn)對無人機的直接控制。該模塊支持對無人機的解鎖、onboard和offboard模式切換,固定高度起飛、著陸、返航等功能。
無人機的控制指令(MAV_CMD)主要由7個參數(shù)的值來定義,這些參數(shù)封裝在任務(wù)協(xié)議(Mission Protocol)和命令協(xié)議(Command Protocol)使用的特定消息中。
為了能夠監(jiān)控無人機按照規(guī)劃航跡飛行時的動態(tài),需要對無人機的飛行參數(shù)進行實時顯示,軟件平臺提供了數(shù)字儀表盤和參數(shù)列表兩種顯示方式,分別如圖9和圖10所示。
圖6 上行鏈路
圖7 下行鏈路
圖8 控制功能面板
圖9 飛行儀表
圖10 狀態(tài)列表
在與無人機建立通信之后,無人機會根據(jù)請求以一定的頻率不間斷地向地面發(fā)送消息包,其數(shù)據(jù)接收流程如圖7所示。數(shù)據(jù)包經(jīng)解析后,即可進行顯示。
該功能模塊主要實現(xiàn)對飛行日志文件的解析與可視化,可用于飛行后對無人機姿態(tài)及飛行航跡的回放分析及算法約束的調(diào)整。
為驗證軟件平臺的可用性,需要對其任務(wù)設(shè)置及規(guī)劃能力、系統(tǒng)在線修改與加載能力、狀態(tài)回報與顯示能力等進行測試。
4.1.1 通信功能測試
該部分通過串口助手進行串口虛擬模擬,驗證平臺的串口數(shù)據(jù)發(fā)送功能。如圖11所示,通過串口助手模擬了兩個端口,端口COM1連接到圖中左側(cè)所示的串口測試軟件(相當于飛控),端口COM2連接到航路規(guī)劃軟件平臺。通過實驗,串口測試軟件可以接收到航路規(guī)劃軟件發(fā)送的指令碼,說明軟件的數(shù)據(jù)發(fā)送功能正常。
圖11 數(shù)據(jù)發(fā)送功能測試
4.1.2 任務(wù)設(shè)置及規(guī)劃能力測試
在進行任務(wù)設(shè)置之前需要導入任務(wù)執(zhí)行空間的障礙環(huán)境地圖。虛擬障礙是安全實驗的有效選擇,在標準足球場地模擬了一系列障礙物,并在此基礎(chǔ)上進行任務(wù)設(shè)置。在導入虛擬障礙后,地圖會自動縮放到虛擬障礙環(huán)境所適應(yīng)的比例。
在上述虛擬障礙地圖的基礎(chǔ)上進行起點和目標任務(wù)點的設(shè)置,即可進行航路規(guī)劃,航路規(guī)劃結(jié)果如圖12所示。此外,為凸顯關(guān)鍵信息,系統(tǒng)對規(guī)劃結(jié)果進行了處理,隱藏了環(huán)境中的非必要信息。
飛行測試部分主要完成無人機地面站可視化平臺與無人機之間實時的狀態(tài)回報和顯示能力以及無人機按照規(guī)劃航路飛行能力的測試。其中無人機按規(guī)劃航路飛行測試場地為標準足球場,試驗時天氣晴、微風(3級)。
4.2.1 狀態(tài)回報與顯示能力測試
首先,搭建了數(shù)據(jù)接收功能測試平臺,如圖13所示。其中地面數(shù)傳電臺連接上位機,機載數(shù)傳電臺與飛控相連。建立連接后,上位機接收到以下消息結(jié)構(gòu)。
MsgID: 0
SystemID: 1
ComponentID: 1
Payload: [1×1 struct]
Seq: 20
custom_mode: 0
type: 2
autopilot: 3
base_mode: 81
system_status: 3
mavlink_version: 3
從該消息結(jié)構(gòu)可以看出,該消息ID為0(心跳包)。上位機接收到該消息包說明上位機與無人機之間建立了可靠的連接。至此,無人機航路規(guī)劃平臺的連接功能測試完畢,實驗結(jié)果表明該平臺具備正常的數(shù)據(jù)收發(fā)功能。
圖13 數(shù)據(jù)接收功能測試
無人機地面站可視化平臺與無人機之間建立可靠的通信鏈路后,會向無人機發(fā)送數(shù)據(jù)請求。無人機飛控接收到請求后,通過機載數(shù)傳以一定的頻率實時向地面站發(fā)送數(shù)據(jù)包。測試結(jié)果表明該軟件平臺飛行儀表(如圖9所示)與狀態(tài)顯示能力(如圖10所示)正常。
4.2.2 規(guī)劃航路飛行測試
規(guī)劃航路飛行測試主要驗證系統(tǒng)把預(yù)規(guī)劃航路形成飛行指令,進而下達給無人機的能力。選用四旋翼無人機進行飛行測試,如圖14所示。
在與無人機建立通信連接后,即可通過軟件平臺對無人機進行控制。首先,將預(yù)先規(guī)劃出的飛行航路導入到無人機飛控系統(tǒng)當中;導入完成后,軟件顯示窗口同步顯示出待飛行的規(guī)劃航跡;然后點擊解鎖、開啟引導模式后,指示燈呈現(xiàn)綠色,同時聽到無人機發(fā)出聲音響應(yīng),說明地面站平臺對無人機發(fā)出了有效的指令。
在向無人機發(fā)送自主飛行命令后,無人機開始按照預(yù)定的航路進行飛行。無人機飛行航跡如圖15所示。
圖14 四旋翼無人機
圖15 無人機飛行航跡
實驗結(jié)果表明,無人機能夠按照預(yù)先規(guī)劃的航路飛行。但無人機在實際飛行過程中,由于性能及各種不確定性因素的影響(如風速變化等),不可能完全按照預(yù)先規(guī)劃的航路飛行,這給無人機的安全性帶來了極大的挑戰(zhàn)。
航路規(guī)劃系統(tǒng)是實現(xiàn)無人機自主飛行和避障導航的關(guān)鍵系統(tǒng)。然而,目前還沒有專門針對無人機航路規(guī)劃系統(tǒng)的適航標準規(guī)范,這為系統(tǒng)的標準化設(shè)計增加了難度。此外,雖然國內(nèi)外針對航路規(guī)劃系統(tǒng)進行了大量的研究,但多是從控制和系統(tǒng)安全角度進行設(shè)計,鮮有人考慮到無人機地面站的人機交互需求。雖然,基于現(xiàn)有的無人機適航標準規(guī)范總結(jié)歸納了系統(tǒng)設(shè)計應(yīng)當兼顧的7個方面,但并未給出具體的量化指標,同時所設(shè)計的系統(tǒng)未實現(xiàn)突發(fā)及相對惡劣環(huán)境下無人機規(guī)劃航路的自適應(yīng)響應(yīng)機制。在后續(xù)的研究中應(yīng)當繼續(xù)豐富平臺功能,建立無人機航路飛行的狀態(tài)監(jiān)控與健康的管理,以提高無人機系統(tǒng)的安全性與可靠性。