高宇航,向政蓉,黃慶南,吳和龍,吳其琦
(1.廣西科技大學(xué) 自動化學(xué)院,廣西 柳州 545006;2.廣西科技師范學(xué)院 機(jī)電學(xué)院,廣西 來賓 546199;3.工信部電子第五研究所,廣東 廣州 511370)
無人機(jī)結(jié)合物聯(lián)網(wǎng)的應(yīng)用越來越廣泛,例如利用無人機(jī)完成測量環(huán)境參數(shù)、搬運(yùn)貨物等任務(wù)[1-2]。由于影響飛行的不確定因素越來越多,因此對飛行控制系統(tǒng)(以下簡稱飛控)的設(shè)計(jì)與開發(fā)提出了更高的要求。Pixhawk 是一款開源、可二次開發(fā)的飛控,支持多旋翼、固定翼等類型的無人機(jī),在工業(yè)、農(nóng)業(yè)、民用等領(lǐng)域得到了廣泛使用[3]。因此,針對Pixhawk 飛控設(shè)計(jì)飛行仿真系統(tǒng)用于驗(yàn)證無人機(jī)的新航線、新功能或新算法,都具有積極的現(xiàn)實(shí)意義[4-5]。對于飛控的設(shè)計(jì),驗(yàn)證其正確性和穩(wěn)定性尤為重要。如果使用全軟件仿真對飛控系統(tǒng)進(jìn)行驗(yàn)證,由于仿真環(huán)境理想化,因此無法反映無人機(jī)飛行時的真實(shí)情況;如果使用真實(shí)無人機(jī)測試,由于設(shè)計(jì)的飛控系統(tǒng)存在不確定性,可能會出現(xiàn)墜機(jī)危險,試驗(yàn)風(fēng)險大;而硬件在環(huán)仿真具有較真實(shí)的仿真效果,也不存在測試風(fēng)險,因此是一種較好的仿真方式。
目前,國內(nèi)外已經(jīng)有多所科研單位以及高校對飛控硬件在環(huán)仿真系統(tǒng)進(jìn)行研究。呂永璽等人結(jié)合無人機(jī)數(shù)學(xué)模型和xPC 實(shí)時系統(tǒng)設(shè)計(jì)了無人機(jī)飛控半實(shí)物仿真系統(tǒng)[6];李瑞等人采用上位機(jī)、仿真計(jì)算機(jī)、飛控三部分相結(jié)合的方式設(shè)計(jì)了基于VxWorks 的四旋翼半實(shí)物仿真平臺[7];Yaqub 等人通過飛控硬件控制無人機(jī)模型,實(shí)現(xiàn)了在環(huán)仿真系統(tǒng),并使用FlightGear 顯示仿真飛行畫面[8]。目前,大多數(shù)無人機(jī)仿真系統(tǒng)使用專用飛控,缺乏通用性,難以推廣。此外,在仿真完成后,缺少實(shí)際飛行測試功能用以驗(yàn)證仿真效果。
因此,針對上述仿真系統(tǒng)的不足,設(shè)計(jì)了基于物聯(lián)網(wǎng)的無人機(jī)仿真與測試系統(tǒng)。系統(tǒng)基于Pixhawk 開源飛控,能夠?yàn)槭褂肞ixhawk 飛控的無人機(jī)進(jìn)行硬件在環(huán)仿真,具有良好的通用性;測試系統(tǒng)裝備了物聯(lián)網(wǎng)通信設(shè)備,能夠?qū)崿F(xiàn)單機(jī)或多機(jī)的遠(yuǎn)程測試;系統(tǒng)使用服務(wù)器存儲數(shù)據(jù),便于測試數(shù)據(jù)的采集、分析與管理。
無人機(jī)仿真與測試系統(tǒng)結(jié)構(gòu)如圖1 所示。系統(tǒng)由無人機(jī)、云服務(wù)器、仿真計(jì)算機(jī)和飛行地面站組成,具備硬件在環(huán)仿真與實(shí)際飛行測試功能。在室內(nèi)仿真時,無人機(jī)與飛行地面站通過WiFi 連接云服務(wù)器,實(shí)現(xiàn)無人機(jī)與地面站的連接。飛控與仿真計(jì)算機(jī)連接后進(jìn)行硬件在環(huán)仿真,使用飛控駕駛仿真計(jì)算機(jī)的無人機(jī)模型在虛擬環(huán)境中飛行,并將飛行數(shù)據(jù)發(fā)送至云服務(wù)器。在進(jìn)行室外飛行測試時,飛控駕駛真實(shí)無人機(jī)飛行,無人機(jī)和地面站通過5G 網(wǎng)絡(luò)與云服務(wù)器連接,使得無人機(jī)具備遠(yuǎn)程通信能力,地面站能夠控制單機(jī)或多機(jī)同時飛行。在無人機(jī)飛行過程中把飛行數(shù)據(jù)通過物聯(lián)網(wǎng)設(shè)備發(fā)送到云服務(wù)器中,并存儲在云服務(wù)器。當(dāng)無人機(jī)飛行測試完畢后,從云服務(wù)器獲取飛行數(shù)據(jù)進(jìn)行分析。
圖1 無人機(jī)仿真與測試系統(tǒng)結(jié)構(gòu)
為了使無人機(jī)具備物聯(lián)網(wǎng)接入功能,在Pixhawk 飛控上進(jìn)行硬件二次開發(fā),在原硬件的基礎(chǔ)上加入了5G 與WiFi 模塊。當(dāng)無人機(jī)在室外進(jìn)行真實(shí)飛行測試時,使用5G 網(wǎng)絡(luò)實(shí)現(xiàn)長距離數(shù)據(jù)傳輸;當(dāng)在室內(nèi)仿真時,使用WiFi 傳輸數(shù)據(jù),以減少流量的消耗。系統(tǒng)硬件結(jié)構(gòu)如圖2 所示。
圖2 Pixhawk 飛控硬件結(jié)構(gòu)
Pixhawk 飛控采用帶有FMU 的32 位STM32F427 芯片作為主處理器[9],采用STM32F103 芯片作為協(xié)處理器,并采用雙加速度計(jì)和雙陀螺儀結(jié)構(gòu),保證無人機(jī)飛行的穩(wěn)定性[10-11]。主處理器與協(xié)處理器間通過DMA 交互,如果在無人機(jī)飛行時主處理器發(fā)生錯誤,無法對動力系統(tǒng)進(jìn)行控制,此時協(xié)處理器獲得電機(jī)的控制權(quán),控制電機(jī)在安全模式下繼續(xù)運(yùn)行,直到檢測到主處理器能夠正常控制電機(jī)為止。因此,采用主協(xié)雙處理器結(jié)構(gòu)能夠提高系統(tǒng)的穩(wěn)定性和安全性。姿態(tài)控制模塊通過加速度計(jì)、陀螺儀、磁力計(jì)對無人機(jī)的姿態(tài)進(jìn)行感知和測量,位置控制模塊通過GPS 和氣壓計(jì)對無人機(jī)當(dāng)前所處的位置及高度進(jìn)行測量。
對飛控硬件二次開發(fā)的重點(diǎn)是加入物聯(lián)網(wǎng)通信模塊,其中,5G 模塊選用的是移遠(yuǎn)RG200U 模組,該模組支持國內(nèi)四大運(yùn)營商,內(nèi)置豐富的網(wǎng)絡(luò)協(xié)議,集成了多個工業(yè)接口,支持多種驅(qū)動和軟件,適用于大多數(shù)物聯(lián)網(wǎng)設(shè)備;WiFi 模塊選用ESP8266 芯片,該芯片具有超低功耗,并且性能穩(wěn)定,有多種工作模式和外設(shè)功能,可滿足室內(nèi)仿真時數(shù)據(jù)傳輸?shù)囊骩12]。為了把通信模塊封裝在飛控內(nèi),重新設(shè)計(jì)了飛控電路板與外殼,如圖3 所示。新設(shè)計(jì)采用微型鍍金航空插頭引出所有信號線,提高了連接的可靠性;為傳感器模塊構(gòu)建避震結(jié)構(gòu)以提高飛行穩(wěn)定性;使用鋁合金外殼以提高抗電磁干擾能力。
圖3 具有物聯(lián)功能的Pixhawk 飛控
硬件在環(huán)仿真系統(tǒng)設(shè)計(jì)方案如圖4 所示。仿真系統(tǒng)主要由Pixhawk 飛控和仿真計(jì)算機(jī)組成。飛控作為硬件部分接入仿真系統(tǒng),仿真計(jì)算機(jī)運(yùn)行無人機(jī)仿真模型與虛擬飛行場景,通俗地說,硬件在環(huán)仿真就是使用飛控駕駛計(jì)算機(jī)中的無人機(jī)模型在虛擬場景中飛行。無人機(jī)仿真模型輸出位置與姿態(tài)數(shù)據(jù)(簡稱位姿數(shù)據(jù))送至飛控的內(nèi)核,運(yùn)算后得到轉(zhuǎn)速數(shù)據(jù),內(nèi)核再把轉(zhuǎn)速數(shù)據(jù)送至計(jì)算機(jī),控制仿真模型,形成硬件在環(huán)的閉環(huán)控制。
圖4 硬件在環(huán)仿真系統(tǒng)設(shè)計(jì)方案
仿真計(jì)算機(jī)運(yùn)行MATLAB 軟件,在SimuLink 環(huán)境中運(yùn)行無人機(jī)模型,同時嵌入運(yùn)行視景窗口軟件[13]。無人機(jī)仿真模型的結(jié)構(gòu)如圖5 所示,包括動力單元模型、控制效率模型和無人機(jī)剛體模型。模型的輸入信號為四軸電機(jī)的轉(zhuǎn)速數(shù)據(jù),輸出為模型的位姿數(shù)據(jù)[14]。視景窗口選用FlightGear 開源飛行模擬軟件,使用位姿數(shù)據(jù)顯示仿真過程中無人機(jī)模型的飛行畫面。使用Mission planner 地面站軟件實(shí)現(xiàn)無人機(jī)的飛行控制、參數(shù)設(shè)定與狀態(tài)監(jiān)控等功能[15]。
圖5 無人機(jī)仿真模型
為了使Pixhawk 飛控具備硬件在環(huán)仿真功能,在原生軟件的基礎(chǔ)上,設(shè)計(jì)了仿真接口程序。接口程序從飛控串口接收仿真計(jì)算機(jī)的位姿數(shù)據(jù),再傳遞到飛控內(nèi)核參與運(yùn)算;同時,從飛控內(nèi)核取出電機(jī)的轉(zhuǎn)速數(shù)據(jù),通過串口發(fā)送至仿真計(jì)算機(jī)。當(dāng)進(jìn)行硬件在環(huán)仿真時,通過參數(shù)設(shè)定切換器使用外部位姿數(shù)據(jù),飛控根據(jù)位姿數(shù)據(jù)計(jì)算電機(jī)轉(zhuǎn)速,在無人機(jī)模型與飛控間形成閉環(huán)的飛行控制。當(dāng)進(jìn)行實(shí)飛測試時,設(shè)定切換器使用傳感器解算得到的位姿數(shù)據(jù),在飛控與無人機(jī)間形成閉環(huán)控制環(huán)路,控制真實(shí)無人機(jī)在真實(shí)環(huán)境下飛行。
飛控測試系統(tǒng)在四旋翼無人機(jī)上搭建,硬件主要包括四軸機(jī)架、電機(jī)、電調(diào)、遙控器等固有設(shè)備,以及經(jīng)過二次開發(fā)后包含了5G 模塊與WiFi 模塊的Pixhawk 飛控。在軟件設(shè)計(jì)方面,主要是在Pixhawk 原生軟件中加入相關(guān)通信功能,實(shí)現(xiàn)飛控通信功能的軟件結(jié)構(gòu)如圖6 所示。主要包括飛控內(nèi)核、MAVLink 通信協(xié)議以及自主設(shè)計(jì)的5G 驅(qū)動和WiFi 驅(qū)動。在傳輸數(shù)據(jù)時,飛控內(nèi)核使用MAVLink 協(xié)議把無人機(jī)的位置數(shù)據(jù)、姿態(tài)數(shù)據(jù)、心跳數(shù)據(jù)等關(guān)鍵數(shù)據(jù)封裝成為MAVLink數(shù)據(jù)包,再通過5G 或WiFi 驅(qū)動傳輸?shù)较鄳?yīng)的通信模塊。當(dāng)通信模塊收到地面站發(fā)送的控制指令時,利用MAVLink 協(xié)議解析數(shù)據(jù)包,讀出相應(yīng)指令后傳輸至飛控內(nèi)核,實(shí)現(xiàn)對無人機(jī)的遠(yuǎn)程控制。
圖6 飛控通信功能結(jié)構(gòu)
MAVLink 通信協(xié)議是一個專門為微型飛行器設(shè)計(jì)的只由頭文件構(gòu)成的信息編組庫,用于無人機(jī)與地面站之間的雙向通信,該通信協(xié)議具有高效、穩(wěn)定、多機(jī)通信等特點(diǎn)[16]。在通信過程中,TCP/IP 協(xié)議把MAVLink 數(shù)據(jù)包傳輸至服務(wù)器,MAVLink 數(shù)據(jù)包成為TCP/IP 協(xié)議的載荷。TCP/IP 與MAVLink 的關(guān)系如圖7 所示。
圖7 TCP/IP 與MAVLink 的關(guān)系
服務(wù)器的功能是存儲測試數(shù)據(jù)以及轉(zhuǎn)發(fā)飛控與地面站之間的通信數(shù)據(jù),成為兩者之間數(shù)據(jù)傳輸?shù)臉蛄?。服?wù)器軟件的邏輯功能結(jié)構(gòu)如圖8 所示。服務(wù)器主要由MAVLink 解析與封裝模塊、數(shù)據(jù)存儲模塊、轉(zhuǎn)發(fā)模塊組成。當(dāng)?shù)孛嬲景l(fā)送指令時,服務(wù)器先解析MAVLink,獲取目標(biāo)無人機(jī)編號后再把數(shù)據(jù)包發(fā)送至相應(yīng)的無人機(jī),實(shí)現(xiàn)指令的轉(zhuǎn)發(fā)。當(dāng)飛控向服務(wù)器發(fā)送數(shù)據(jù)時,服務(wù)器先解析MAVLink,如果是數(shù)據(jù)包則送到數(shù)據(jù)存儲模塊存儲,如果是心跳包則發(fā)送給地面站。
圖8 服務(wù)器軟件功能結(jié)構(gòu)
無人機(jī)仿真與測試系統(tǒng)實(shí)物如圖9 所示,包括四旋翼無人機(jī)、仿真計(jì)算機(jī)與地面站。無人機(jī)的飛控經(jīng)過二次開發(fā)后具備了仿真與通信功能。飛控與仿真計(jì)算機(jī)相連進(jìn)行硬件在環(huán)仿真,在圖中四旋翼無人機(jī)的基礎(chǔ)上構(gòu)建無人機(jī)的仿真模型。無人機(jī)與地面站同時連接云服務(wù)器,實(shí)現(xiàn)無人機(jī)與地面站的互連。在進(jìn)行硬件在環(huán)仿真時,首先借助參數(shù)指定飛控使用無人機(jī)仿真模型的位姿數(shù)據(jù);然后運(yùn)行SimuLink 中的無人機(jī)模型,與飛控進(jìn)行位姿數(shù)據(jù)與轉(zhuǎn)速數(shù)據(jù)的交互通信;通過FlightGear 視景窗口顯示無人機(jī)的3D 飛行畫面,并使用Mission Planner 地面站對飛行數(shù)據(jù)進(jìn)行觀測和分析,仿真飛行界面如圖10 所示。硬件在環(huán)仿真完成后,修改參數(shù),指定飛控使用真實(shí)無人機(jī)的位姿數(shù)據(jù),然后進(jìn)行室外實(shí)際飛行測試。無論是仿真或?qū)嶏w測試,飛行數(shù)據(jù)都保存在云服務(wù)器中,供后期分析使用。
圖9 硬件在環(huán)飛行仿真系統(tǒng)實(shí)物
圖10 無人機(jī)仿真飛行界面
為驗(yàn)證仿真效果的真實(shí)度,使用相同航線進(jìn)行仿真飛行與真機(jī)飛行。飛行航線如圖11 所示,航線中共設(shè)有7 個航點(diǎn),無人機(jī)從初始位置航點(diǎn)H 起飛,高度設(shè)定為20 m,飛到2 號航點(diǎn)(2 號航點(diǎn)與6 號航點(diǎn)重合),按照航點(diǎn)順序繞航線飛行,直到飛到6 號航點(diǎn),無人機(jī)自動返回初始航點(diǎn),至此完成一次飛行,航時約160 s。
圖11 無人機(jī)飛行航線
完成仿真與測試后,從服務(wù)器獲取仿真飛行與真機(jī)飛行的數(shù)據(jù)進(jìn)行分析。圖12 是無人機(jī)橫滾角、俯仰角和偏航角的數(shù)據(jù)曲線。數(shù)據(jù)曲線顯示,整個飛行過程中各種角度的曲線在兩種飛行模式下變化趨勢一致,沒有出現(xiàn)發(fā)散或者振蕩等異常情況;在局部放大圖中,兩種飛行模式的曲線在相互交織與小幅波動中隨時間軸延伸,表明數(shù)據(jù)差異小,一致性好。然后再綜合分析位置數(shù)據(jù)、速度數(shù)據(jù)與轉(zhuǎn)速數(shù)據(jù)等,表明仿真的真實(shí)度較高。
圖12 無人機(jī)姿態(tài)角曲線
為降低真機(jī)飛行時受風(fēng)力、風(fēng)向與氣壓等環(huán)境因素帶來的隨機(jī)性,讓多機(jī)同時飛行采集多份數(shù)據(jù),經(jīng)過多數(shù)據(jù)融合后能更好分析仿真的真實(shí)度。多機(jī)飛行測試時仍然使用圖10的航線,但在水平位置上錯開以避免撞機(jī)。圖13 為仿真模型與三架無人機(jī)的飛行高度,數(shù)據(jù)顯示,四條曲線一致性較好。在無人機(jī)上升至20 m 的飛行高度后,三機(jī)的飛行曲線在仿真曲線上下小幅波動,表明仿真曲線與實(shí)飛曲線較接近。各條曲線未出現(xiàn)斷續(xù)等異常情況,驗(yàn)證了系統(tǒng)物聯(lián)網(wǎng)通信功能的準(zhǔn)確性。
圖13 無人機(jī)飛行高度
本文首次提出并實(shí)現(xiàn)了在Pixhawk 開源飛控上增加硬件在環(huán)仿真功能,從而為大量使用Pixhawk 飛控的無人機(jī)進(jìn)行仿真,具有較好通用性與實(shí)用價值。在Pixhawk 飛控上增加了物聯(lián)網(wǎng)通信功能,成功把仿真功能與測試功能相結(jié)合,為仿真結(jié)果的驗(yàn)證與測試工作帶來很大便利。目前,仿真與測試系統(tǒng)僅是一個雛形,系統(tǒng)仍然依賴MATLAB、FlightGear與Mission Planner 等軟件,若能把相關(guān)功能整合在一個軟件中,則功能將更強(qiáng)大,操作更便利,更易于推廣應(yīng)用。
注:本文通訊作者為向政蓉。