倪怡濤 李俊杰 李曉明
摘 ?要:無人機本身是一個復(fù)雜的機電系統(tǒng),是機械、電子、通訊、控制、信息等技術(shù)的高度融合體,如何模擬無人機單元是這些系統(tǒng)開發(fā)的一個重要課題。本文提出了基于通用半實物仿真平臺的無人機模擬方案,與傳統(tǒng)的數(shù)學(xué)模型或數(shù)據(jù)驅(qū)動模型方案相比,該模擬方案更接近真實系統(tǒng),更容易模擬各種故障,同時也更容易與真實系統(tǒng)進(jìn)行替換,方便系統(tǒng)整體的開發(fā)、測試與運行。提出的模擬器方案基于單元模擬,通過對無人機系統(tǒng)內(nèi)各個單元的數(shù)據(jù)交互和通訊協(xié)議進(jìn)行抽象,以真實的接口實現(xiàn)單元之間的數(shù)據(jù)交互,將無人機飛行模型仿真單元嵌入系統(tǒng)中,實現(xiàn)最大程度接近真機的模擬。測試表明,該模擬方案不但可以用于總體系統(tǒng)的開發(fā)和調(diào)試,而且對無人機自身的研制、測試等起到了關(guān)鍵作用。
關(guān)鍵詞:無人機系統(tǒng);組件;仿真;通訊
中圖分類號:TP311.5 ? ? 文獻(xiàn)標(biāo)識碼:A
Abstract: Unmanned Aerial Vehicle (UAV), a complex electromechanical system, is a high integration of machinery, electronics, communication, control, information and other technologies. How to simulate the UAV unit is an important topic in developing these systems. This paper proposes a UAV simulation solution based on semi-physical simulation platform. Compared with traditional mathematical model or data-driven model program, the simulation solution is closer to the real system, easier to simulate various faults, and easier to match the real system. The system facilitates the overall development, testing and operation of the system. The unit-based simulator solution proposed realizes data interaction between units by abstracting data interaction and communication protocol of each unit in the UAV system with a real interface. UAV flight model simulation unit is embedded in the system to realize the simulation as close as possible to the real machine. Tests show that the simulation solution proposed can not only be used for development and debugging of the overall system, but also play a key role in the development and testing of the UAV itself.
Keywords: UAV system; component; simulation; communication
1 ? 引言(Introduction)
無人機已廣泛應(yīng)用于航空、航天、測控和勘探等領(lǐng)域,其開發(fā)測試技術(shù)和流程越來越精細(xì)和復(fù)雜,無人機系統(tǒng)的仿真模擬技術(shù)應(yīng)運而生。目前國內(nèi)傳統(tǒng)無人機系統(tǒng)的開發(fā)仿真模擬平臺大多采用計算機半自動化的方案,例如LabVIEW[1-2]、MATLAB/Simulink[3]等提供仿真環(huán)境,通過軟件提供的模塊構(gòu)建仿真模型;基于機器人操作系統(tǒng)(ROS)仿真環(huán)境[4],通過ROS集成的可視化功能為無人機系統(tǒng)提供環(huán)境信息獲取、無人機動力模型搭建及可視化操作[5];基于組件化建模技術(shù)、消息總線結(jié)構(gòu)等思想,構(gòu)建無人機仿真實驗?zāi)P蛯o人機系統(tǒng)進(jìn)行半實物仿真[6-7]。
但是,在進(jìn)行設(shè)備模擬、仿真實驗時,開發(fā)人員必須手動操作和協(xié)調(diào)多個測試設(shè)備的控制計算機或上位機軟件進(jìn)行配合測試。我國現(xiàn)有的無人機系統(tǒng)模擬平臺較多,但是缺少具備自動化、通用化和可伸縮化等特點的無人機系統(tǒng)模擬平臺,導(dǎo)致無人機模擬開發(fā)測試效率低下,難以滿足現(xiàn)代化的無人機開發(fā)測試需求。針對該問題,本文以按照網(wǎng)絡(luò)化儀器概念自研的模塊化組合通用測試儀器系統(tǒng)為基礎(chǔ)[8],對滿足現(xiàn)代化需求的無人機半實物仿真平臺進(jìn)行研究,通過對無人機系統(tǒng)內(nèi)各個單元的數(shù)據(jù)交互和通訊協(xié)議進(jìn)行抽象,進(jìn)行軟硬件結(jié)合的單元模擬,提出了基于通用半實物仿真平臺的無人機模擬方案,最后使用該平臺完成無人機半實物仿真實驗。
2 ? 無人機系統(tǒng)模擬器方案設(shè)計(Program design of Unmanned Aerial Vehicle system simulator)
現(xiàn)有的設(shè)備模擬方案基本上可以分為兩類,分別是數(shù)據(jù)驅(qū)動[9]和仿真驅(qū)動[10]。前者通過預(yù)設(shè)的數(shù)據(jù)模型來模擬設(shè)備的輸入輸出數(shù)據(jù)與總系統(tǒng)進(jìn)行交互,如圖1所示;而后者則是通過數(shù)學(xué)模型和輸入數(shù)據(jù)進(jìn)行計算得到輸出數(shù)據(jù)與總系統(tǒng)進(jìn)行交互,如圖2所示。
基于數(shù)據(jù)模型的模擬適合固定流程與通訊協(xié)議的設(shè)備模擬,例如設(shè)備自檢、狀態(tài)查詢等,但對于無人機這種動態(tài)系統(tǒng)不太合適;基于仿真模型的模擬則相反,能夠動態(tài)地生成模擬數(shù)據(jù),但對于無人機系統(tǒng)開發(fā)流程各環(huán)節(jié),通訊等行為的模擬有困難,另外模擬的效果取決于數(shù)學(xué)模型的真實性,大多數(shù)情況下難以保證。
本文提出了基于半實物平臺的無人機設(shè)備模擬方案,該方案將無人機各個子系統(tǒng)(單元)虛擬化,但各單元的通訊接口采用實物實現(xiàn),通過接口傳送的信號均為真實物理信號。虛擬化的單元運行于計算機系統(tǒng)內(nèi),通過數(shù)據(jù)驅(qū)動或者仿真驅(qū)動的方式接收真實的輸入信號,同時在對應(yīng)的接口處生成應(yīng)答的信號。該方案結(jié)構(gòu)如圖3所示。
無人機系統(tǒng)可以抽象為飛行模型模擬單元、慣組模擬單元、控制器模擬單元、發(fā)動機模擬單元、視覺模擬單元、通訊模擬單元等六個模擬單元。通過該結(jié)構(gòu)圖可以看出,本文提出的模擬方案基于半實物仿真平臺,通過模擬各個單元的模型及其之間的相互通訊從而實現(xiàn)總體的設(shè)備模擬。具體到每個單元的模擬,則可以分別采用數(shù)據(jù)模型或者仿真模型的方式來實現(xiàn)。
該方案是在本課題組自研的半實物仿真平臺基礎(chǔ)上設(shè)計實現(xiàn)的,該半實物仿真平臺硬件上采用組合式結(jié)構(gòu),通過自有知識產(chǎn)權(quán)的儀器總線將嵌入式主機、各個DSP擴展模塊、電源系統(tǒng)等連接在一起,可根據(jù)需要選擇不同的DSP擴展模塊,例如CAN通訊模塊、串口模塊、專用計算模塊等。嵌入式主機運行嵌入式操作系統(tǒng),可以通過以太網(wǎng)絡(luò)接口與上位機PC進(jìn)行通訊;軟件上開發(fā)了基于組件的運行平臺和開發(fā)平臺,提供了圖形化編程的應(yīng)用開發(fā)方式以及所見即所得應(yīng)用界面開發(fā)方式。
3 ? 無人機模擬器半實物仿真平臺設(shè)計與實現(xiàn)(Design? ?and implementation of semi-physical simulation? ? ?platform for Unmanned Aerial Vehicle simulator)
3.1 ? 無人機模擬器系統(tǒng)架構(gòu)設(shè)計
無人機系統(tǒng)模擬以課題組自研的模塊化組合通用測試儀器系統(tǒng)為基礎(chǔ),用基于組件化的開發(fā)平臺/運行平臺來實現(xiàn)無人機系統(tǒng)的模擬。應(yīng)用軟件開發(fā)平臺構(gòu)成方面,無人機半實物仿真平臺主要由運行在上位機的客戶端、主機的服務(wù)端和前端擴展板的軟件程序構(gòu)成。
無人機系統(tǒng)模擬器采用三層架構(gòu)的設(shè)計,三層閉環(huán)模擬系統(tǒng)分為:上位機閉環(huán)、主機閉環(huán)和前端閉環(huán),如圖4所示。上位機閉環(huán)顯示無人機系統(tǒng)的人機界面,模擬數(shù)據(jù)顯示與應(yīng)答;主機閉環(huán)根據(jù)上位機下發(fā)的指令和數(shù)據(jù)進(jìn)行無人機功能模擬,進(jìn)行無人機系統(tǒng)內(nèi)部單元模擬;前端閉環(huán)是進(jìn)行無人機真實單元設(shè)備的數(shù)據(jù)和交互,完整地模擬設(shè)備的真實運行。三個層次之間通過數(shù)據(jù)通訊技術(shù)來實現(xiàn)同步,并實現(xiàn)數(shù)據(jù)自上而下的分解,例如上位機閉環(huán)處理的是無人機本體的相關(guān)數(shù)據(jù),主機閉環(huán)處理的是各個模擬單元的標(biāo)準(zhǔn)數(shù)據(jù),前端閉環(huán)則負(fù)責(zé)將標(biāo)準(zhǔn)數(shù)據(jù)轉(zhuǎn)換為前端對應(yīng)的專用設(shè)備可以識別的專用數(shù)據(jù)或信號。
為了保證模擬器系統(tǒng)的通用性,需要將無人機模擬器內(nèi)的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,制定各單元間標(biāo)準(zhǔn)的通訊協(xié)議,這樣在上位機、主機和前端之間交互的數(shù)據(jù)就是內(nèi)部的、標(biāo)準(zhǔn)化的數(shù)據(jù)[11]。所有的數(shù)據(jù)處理、控制流程、模型計算等都可以標(biāo)準(zhǔn)化并實現(xiàn)通用化;前端與外部物理接口輸入輸出的數(shù)據(jù)(信號)是面向應(yīng)用的,是專用的,由前端模塊里的DSP程序負(fù)責(zé)轉(zhuǎn)換,如圖5所示。
3.2 ? 無人機系統(tǒng)模擬器主機與前端通訊接口選擇
無人機系統(tǒng)模擬器是模擬真實的無人機設(shè)備,系統(tǒng)內(nèi)部常用設(shè)備有慣組、控制器、發(fā)動機、視覺傳感器等,不同功能、生產(chǎn)廠家和型號的設(shè)備產(chǎn)品的硬件體系結(jié)構(gòu)、程序語言定義和具體程序編制等往往不同,它們對外開放的硬件通訊接口和軟件通訊協(xié)議通常也都各有差異,因此,需要對真實無人機系統(tǒng)內(nèi)部模塊的硬件通訊接口進(jìn)行梳理歸納,如表1所示。
由此可見,無人機系統(tǒng)中各單元之間通訊方式大部分是標(biāo)準(zhǔn)的通訊接口,可以選用課題組開發(fā)的通用IO前端模塊系列來實現(xiàn)。該IO通訊系列前端具有標(biāo)準(zhǔn)化的各類硬件通訊接口,包括USB接口、LAN接口、CAN總線接口、RS232/422/485接口等,解決了半實物仿真系統(tǒng)中無人機系統(tǒng)硬件通訊接口不足的問題。對于特別稀有的通訊接口,可以開發(fā)專用的前端模塊來解決。
3.3 ? 無人機模擬器系統(tǒng)應(yīng)用高層通訊協(xié)議
應(yīng)用高層協(xié)議是主機與DSP前端之間數(shù)據(jù)交換的標(biāo)準(zhǔn)化協(xié)議。該協(xié)議建立在半實物仿真平臺內(nèi)部高速儀器總線通訊協(xié)議的基礎(chǔ)上,在設(shè)計時除了數(shù)據(jù)字段外,預(yù)留了32位留給應(yīng)用層協(xié)議實現(xiàn)。該32位主要影響的是發(fā)送數(shù)據(jù)包的優(yōu)先級問題,由于優(yōu)先級與具體的操作和消息類型有關(guān),因此該32位主要用來定義發(fā)送的消息和數(shù)據(jù)的類型以及標(biāo)識。
應(yīng)用高層協(xié)議主要描述的是數(shù)據(jù)/消息的標(biāo)識定義方法以及該數(shù)據(jù)/消息攜帶的數(shù)據(jù)的具體封裝格式[12-13]。因此,無人機高層協(xié)議里主要需要抽象出完整系統(tǒng)中各種數(shù)據(jù)和消息的定義及結(jié)構(gòu)并標(biāo)準(zhǔn)化,實現(xiàn)通用。
由于數(shù)據(jù)和消息依賴于具體的單元,因此首先對無人機設(shè)備的硬件類型進(jìn)行歸納,如表2所示。
下面以慣組模擬單元為例介紹高層協(xié)議的設(shè)計。
慣組模擬單元主要進(jìn)行環(huán)境參數(shù)采集、初始經(jīng)緯度數(shù)據(jù)采集、初始三軸加速度采集、初始三軸角速度采集、導(dǎo)航參數(shù)設(shè)置和導(dǎo)航數(shù)據(jù)采集等操作,如表3所示是慣組模擬單元的每個操作及其對應(yīng)的參數(shù)集合。慣組模擬的類型編號為0,基礎(chǔ)操作編號是指該類測試硬件單個基礎(chǔ)操作的編號,可以對慣組模擬單元的特定數(shù)據(jù)進(jìn)行采集與設(shè)置。無人機系統(tǒng)的總線實現(xiàn)了優(yōu)先級仲裁功能,高優(yōu)先級的消息能更快地得到響應(yīng),因此將慣組模擬單元數(shù)據(jù)采集、設(shè)置以及無人機系統(tǒng)設(shè)備設(shè)置類從低到高設(shè)置優(yōu)先級。無人機系統(tǒng)硬件的類型數(shù)和操作數(shù)都在10 個以內(nèi),因此將測試硬件類型、優(yōu)先級和基礎(chǔ)操作編號分別預(yù)留4 byte、2 byte和4 byte。
3.4 ? 無人機模擬器仿真模型實現(xiàn)
無人機系統(tǒng)模擬器可以抽象為飛行模型組件、慣組組件、控制器組件、發(fā)動機組件、視覺組件、通訊組件等基礎(chǔ)組件,這些組件遵循通用儀器平臺組件設(shè)計規(guī)范,能夠被設(shè)計平臺和運行平臺自動識別,并在設(shè)計和運行階段提供相應(yīng)的參數(shù)屬性設(shè)置以及預(yù)設(shè)的功能、操作等。
無人機系統(tǒng)內(nèi)部設(shè)備抽象為單元模擬組件之后,設(shè)計相關(guān)組件具體功能,如表4所示。
以慣組組件為例,如圖6所示,該組件實現(xiàn)模擬慣組設(shè)備功能:(1)進(jìn)行實時仿真慣組的行為模擬;(2)接受控制器模塊發(fā)來的指令和數(shù)據(jù);(3)根據(jù)接受的指令做動作或應(yīng)答;(4)產(chǎn)生應(yīng)答數(shù)據(jù)發(fā)送給控制器模塊,對數(shù)據(jù)進(jìn)行實時打包和傳遞。對該組件,我們定義三個輸入端口和兩個輸出端口,具體組件的端口類型、數(shù)據(jù)類型、功能說明如表5所示。
4 ? 實例測試(Example demonstration)
本實驗基于課題組的模塊化組合通用測試儀器系統(tǒng),實物如圖7所示。在軟件構(gòu)成方面,無人機測試平臺主要由運行在主控計算機上的客戶端、主機的服務(wù)端以及前端的DSP程序組成;應(yīng)用開發(fā)平臺主要由測試界面(UI)軟件開發(fā)平臺、測試應(yīng)用軟件開發(fā)平臺、下載管理工具和其他擴展插件組成;測試界面軟件開發(fā)平臺包括UI組件庫、UI組件更新軟件、測試界面可視化編程軟件和測試界面運行軟件等部分,其功能是組件的加載和更新,為UI組件提供界面屬性編輯視圖,允許用戶以嵌套界面組件的方式組合和編輯無人機仿真測試界面,最終運行生成無人機測試界面軟件;測試應(yīng)用軟件開發(fā)平臺主要是應(yīng)用組件庫、應(yīng)用組件更新軟件、測試應(yīng)用可視化編程軟件(分別為客戶端和服務(wù)端)和測試應(yīng)用運行軟件,為應(yīng)用組件提供加載和更新的功能,其屬性編輯視圖允許用戶以拖放組件圖標(biāo)和組件端口連線的方式組合和編輯無人機仿真測試應(yīng)用,最終運行生成無人機測試應(yīng)用軟件。
進(jìn)行無人機系統(tǒng)半實物仿真測試,流程圖如圖8所示,搭建無人機客戶端的測試界面軟件和應(yīng)用軟件。本實例進(jìn)行慣組組件的單元模擬測試。
首先從應(yīng)用組件庫通過拖拉的方式將組件圖標(biāo)拖入可視化編程視圖中,如圖9所示;再通過嵌套的組合搭建UI測試頁面,編輯組件屬性;最后綁定開發(fā)平臺組件的端口進(jìn)行數(shù)據(jù)交互,運行測試應(yīng)用軟件進(jìn)行無人機系統(tǒng)的半實物仿真。
通過上位機客戶端展示無人機系統(tǒng)模擬器的實時仿真數(shù)據(jù),可以按照測試要求搭建界面數(shù)據(jù)信息展示組件,啟動按鈕可以開始無人機界面測試軟件的運行,指示燈表示軟件運行狀態(tài),如圖10所示。
通過上位機客戶端與主機服務(wù)端互相通訊,運行界面測試軟件,實時展示無人機慣組組件的傳感器數(shù)據(jù)、導(dǎo)航數(shù)據(jù)等,如圖11所示。
5 ? 結(jié)論(Conclusion)
本文所提出的模擬器方案基于單元模擬,通過對無人機系統(tǒng)內(nèi)各個單元的數(shù)據(jù)交互和通訊協(xié)議進(jìn)行抽象,以真實的接口實現(xiàn)單元之間的數(shù)據(jù)交互,將無人機飛行模型仿真單元嵌入系統(tǒng)中,實現(xiàn)最大程度接近真機的模擬。測試表明,使用基于模塊化組合通用測試儀器系統(tǒng)的無人機系統(tǒng)測試平臺對無人機單元模擬測試,通過組合模塊化組件的方式搭建無人機測試軟件,說明無人機系統(tǒng)測試平臺能夠與不同硬件通訊接口和軟件通訊協(xié)議的無人機系統(tǒng)單元進(jìn)行通訊,驗證了無人機系統(tǒng)測試應(yīng)用通訊協(xié)議的有效性。本文所提出的模擬方案不但可以用于總體系統(tǒng)的開發(fā)和調(diào)試,同時對無人機自身的研制、測試等也提供了一個重要的平臺。
參考文獻(xiàn)(References)
[1] 董祥見,陸洋.基于LabVIEW的電控旋翼測控系統(tǒng)設(shè)計[J].南京航空航天大學(xué)學(xué)報,2017,49(02):251-257.
[2] PATEL S, SHARMA V. Analysis of Different Controllers used for boiler drum level control by using LabVIEW simulation[J]. Journal of Trend in Scientific Research and Development, 2019, 4(1):17-24.
[3] 梁勤,馬捷中,翟正軍,等.基于MATLAB的通用飛行器仿真[J].計算機測量與控制,2008,16(8):1141-1144.
[4] LI Y T, SCANAVINO M, CAPELLO E, et al. A novel distributed architecture for UAV indoor navigation[J].Transportation Research Procedia, 2018(35):6-9.
[5] 陳晉音,楊東勇,俞山青,等.基于ROS的無人機仿真開放性實驗教學(xué)設(shè)計與實現(xiàn)[J].實驗科學(xué)與技術(shù),2018,16(1):40-43.
[6] 黃克明,張明義,王濤.基于組件化建模技術(shù)的無人機仿真實驗?zāi)P拖到y(tǒng)設(shè)計[J].艦船電子工程,2015,35(12):86-89.
[7] 沈為群,王福,葉斌斌.基于消息總線結(jié)構(gòu)的某無人機仿真平臺的研究[J].系統(tǒng)仿真技術(shù),2008,4(04):272-281.
[8] 趙仕俊.網(wǎng)絡(luò)儀器概念及有關(guān)問題的研究[J].儀表技術(shù)與傳感器,2002(03):37-39.
[9] 馬竹青.數(shù)據(jù)分析模型的構(gòu)建[J].黑龍江科學(xué),2016,7(17):? ? ? 22-23.
[10] 張啟信,張莉英,王輝.地地戰(zhàn)役戰(zhàn)術(shù)導(dǎo)彈武器系統(tǒng)仿真方案設(shè)計與實現(xiàn)[C]//中國自動化學(xué)會系統(tǒng)仿真專業(yè)委員會,中國系統(tǒng)仿真學(xué)會仿真計算機與軟件專業(yè)委員會.2003系統(tǒng)仿真技術(shù)及其應(yīng)用學(xué)術(shù)交流會論文集.合肥:中國科學(xué)技術(shù)大學(xué)出版社,2003:495-499.
[11] 溫立輝.軟件設(shè)計模式分析[J].科技創(chuàng)新與應(yīng)用,2020(07):? ? ? ? 92-93.
[12] NEUFELD G, VUONG S. An overview of ASN.1[J]. Elsevier, 1992, 23(5):393-415.
[13] 王沁,許娜,張燕,等.優(yōu)化TLV編碼規(guī)則[J].計算機科學(xué),? ? ? ? 2008(11):104-106.
作者簡介:
倪怡濤(1995-),男,碩士生.研究領(lǐng)域:無人機系統(tǒng)仿真模擬的關(guān)鍵技術(shù).
李俊杰(1986-),女,碩士,工程師.研究領(lǐng)域:測試與診斷,軟件開發(fā).
李曉明(1976-),男,博士,副教授.研究領(lǐng)域:機電系統(tǒng)集成,軟件開發(fā).本文通訊作者.