李 強,莊麗葵,曹云峰,丁 萌
(南京航空航天大學(xué)自動化學(xué)院,南京210016)
基于視覺的自主著陸技術(shù)是近年來無人機導(dǎo)航、制導(dǎo)與控制(guidance navigation& control,GNC)領(lǐng)域的研究熱點[1-3],但在實際的研究過程中都將視覺導(dǎo)航、制導(dǎo)、控制三大系統(tǒng)分離出來單獨研究,主要原因是現(xiàn)有的視覺導(dǎo)航技術(shù)的魯棒性和實時性有待提高,其與制導(dǎo)、控制模塊的匹配能力有待加強,還無法實現(xiàn)在線閉環(huán)實驗.現(xiàn)有的GNC系統(tǒng)的仿真手段對于視覺導(dǎo)航研究存在嚴重的不足,如無法獲得實時更新的著陸場景圖像[4-5].因此開發(fā)能夠?qū)崿F(xiàn)三大系統(tǒng)閉環(huán)仿真的實驗手段非常重要,且意義重大.
本課題來源于實際項目,要求演示一架大型固定翼無人機從距已知跑道較遠處開啟視覺導(dǎo)引器導(dǎo)引著陸.由于種種原因,很難使用實際的大型無人機進行實驗驗證,因此有必要構(gòu)建一個能夠?qū)σ曈X著陸算法進行驗證的仿真系統(tǒng),利用這一仿真系統(tǒng)進行無人機著陸過程中航跡規(guī)劃、飛行控制、著陸控制、視覺導(dǎo)引等的研究開發(fā)與驗證演示.
基于上述目的,本文研究了一種基于 Flightgear[6]和Matlab的面向固定翼無人機的視覺導(dǎo)引仿真系統(tǒng),該仿真平臺的基本配置是由3臺計算機組成的局域網(wǎng),3臺計算機分別負責(zé)無人機的動力學(xué)模型與控制算法解算,基于FlightGear的著陸視景生成,視覺導(dǎo)引算法運行.3臺計算機協(xié)作完成包含視覺算法的無人機GNC閉環(huán)仿真系統(tǒng).其中著陸實時畫面由Flightgear內(nèi)的OpenGL模塊渲染生成,并通過HDMI視頻采集卡實時采集抓取,解決了著陸場景圖像生成及與視覺算法交互的問題.本系統(tǒng)的功能主要包括:
1)引入視覺信息的無人機飛行控制導(dǎo)引算法開發(fā)與驗證,如控制架構(gòu)設(shè)計、控制律設(shè)計等;
2)引入視覺信息的無人機自主著陸導(dǎo)引算法開發(fā)與驗證,如航跡規(guī)劃技術(shù)、航跡最優(yōu)技術(shù)、航跡跟蹤技術(shù)等;
3)引入視覺信息的無人機自主著陸任務(wù)管理策略開發(fā)與驗證,如多層次著陸任務(wù)規(guī)劃方法研究;
4)視覺導(dǎo)航算法開發(fā)與驗證.
本仿真系統(tǒng)實現(xiàn)了Matlab和FlightGear聯(lián)動的平臺交互式仿真,并且能有效融合視覺導(dǎo)引系統(tǒng)的信息,最終完成基于視覺的自主著陸閉環(huán)仿真系統(tǒng).為實現(xiàn)模塊化開發(fā),系統(tǒng)分為3個子系統(tǒng):自主著陸控制系統(tǒng)(簡稱控制機);可視化視景仿真演示系統(tǒng)(簡稱視景機);視覺導(dǎo)引系統(tǒng)(簡稱視覺機).
3個子系統(tǒng)分別獨立運行在3臺高性能計算機上,并通過網(wǎng)絡(luò)通訊實現(xiàn)控制閉環(huán).為了仿真出真實攝像頭視角的圖像,視景機使用了Flightgear,F(xiàn)lightgear利用OpenGL渲染出逼真的影像數(shù)據(jù),數(shù)據(jù)傳輸?shù)紿DMI接口后能被視覺機上安裝的HDMI視頻卡采集到.仿真系統(tǒng)的數(shù)據(jù)流為:①控制機負責(zé)實時著陸軌跡生成、航跡控制、飛行姿態(tài)控制和飛機動態(tài)模型的更新,輸出飛機實時位姿數(shù)據(jù)到視景機;②視景機的Flightgear依據(jù)位姿數(shù)據(jù)更新飛機的狀態(tài),即刷新了虛擬攝像頭的畫面;③視覺機采集視覺信號進行分析解算,輸出當(dāng)前飛機導(dǎo)航參數(shù)到控制機;④轉(zhuǎn)入①,形成閉環(huán).
仿真系統(tǒng)各子系統(tǒng)通過局域網(wǎng)連接,邏輯上是環(huán)形連接形式,物理上使用星形網(wǎng)絡(luò)連接形式.3個子系統(tǒng)間所有信息可實現(xiàn)共享,比如視景機會把飛機位置的真值共享給視覺機,視覺機依據(jù)此真值驗證其視覺識別,解算出飛機位置的準確性和魯棒性等.
控制機通過傳感器模型獲取控制所需要的反饋信息,從視覺導(dǎo)引系統(tǒng)中獲得飛機的位置信息來控制飛機(數(shù)學(xué)模型)按照在線實時生成的著陸軌跡完成基于視覺的自主著陸,并將無人機的位姿信息發(fā)給視景機.此子系統(tǒng)單獨運行在一臺計算機上的Simulink平臺上,主要包括:航跡規(guī)劃模塊;飛行控制器模塊;飛機模型模塊;傳感器模型模塊.
視景機專門運行Flightgear,它接受控制機的位姿指令實時刷新視景,其內(nèi)置的OpenGL模塊能渲染出逼真的視景畫,視景數(shù)據(jù)實時傳輸?shù)紿DMI接口,通過HDMI線纜傳輸?shù)揭曈X機.為模擬出真實的攝像頭視角的畫面,F(xiàn)lightGear被重新定制,定制的內(nèi)容有:
1)設(shè)置使用外部數(shù)學(xué)模型,即由外部程序控制其視景顯示的內(nèi)容;
2)制定通信協(xié)議,通過UDP方式將飛機狀態(tài)數(shù)據(jù)共享到網(wǎng)絡(luò)中;
3)設(shè)定目標跑道(機場),并在目標跑道周邊放置合作目標;
4)配置攝像頭視角,包括攝像頭在飛機上的位置,光軸方向,云臺控制,像面尺寸,焦距以及單目雙目等;
5)配置環(huán)境信息,如光照、氣象等.
視覺機主要由著陸跑道檢測識別與跟蹤、基于視覺的運動參數(shù)估計兩大模塊組成.視覺處理機對HDMI采集卡采集到的實時圖像進行處理分析,解算出飛機相對于目標跑道的位置信息,將結(jié)果發(fā)給控制機.
仿真系統(tǒng)的建立包括硬件和軟件,軟件包括應(yīng)用軟件的安裝、配置和仿真控制程序、視覺算法程序等,其中Flightgear的配置(定制)是系統(tǒng)建立的關(guān)鍵.硬件方面需要準備3臺計算機,1臺路由器,UB189 HDMI采集卡和必要的連接線纜.應(yīng)盡量使用性能高的計算機來組建仿真系統(tǒng),視景機的顯卡應(yīng)支持HDMI接口,視覺機應(yīng)支持PCI-E接口(用于安裝采集卡).
應(yīng)用軟件方面需要在控制機和視覺機上安裝Matlab,在視景機上安裝Flightgear.Flightgear用于渲染攝像頭視角的畫面,需要配置其使用外部數(shù)據(jù)驅(qū)動飛機模型,并配置畫面的尺寸和視場角的大小.視覺機需要安裝采集卡驅(qū)動包,并在Matlab中要啟動對應(yīng)的支持包,否則圖像不能正確讀取.
控制機負責(zé)控制算法和模型迭代運算,其程序結(jié)構(gòu)如圖3所示,其中的飛機模型和傳感器模型改自F-16高仿真模型[7],課題組自行開發(fā)了飛行控制器模塊和航跡規(guī)劃與控制模塊.飛機觸地后視覺機只提供相對于跑道中心線的側(cè)偏距信息,且整個過程中飛機的姿態(tài)和航向由IMU傳感器(在控制機的傳感器模型中)提供.
項目前期主要驗證航跡規(guī)劃和航跡跟蹤控制算法,因而降低了跑道識別和跟蹤的難度,通過編輯視景機Flightgear的地景數(shù)據(jù)庫可精確“放置”如圖4中的合作目標以便于識別跑道,視覺機通過檢測4個色塊來解算飛機相對于跑道的位置.
可以簡化視覺機的任務(wù)為合作目標搜索及飛機位置解算[8].分別編寫 VisionSearch 和 uv2xyz[9]2 個函數(shù)(圖5),VisionSearch函數(shù)負責(zé)從圖像中找到4個色塊的中心位置的像素坐標,uv2xyz函數(shù)利用這4個坐標值,用正交迭代的方法計算出旋轉(zhuǎn)矩陣R和平移向量T,進而得到相機在跑道坐標系中的坐標(即飛機的坐標).
為了從視覺信息中解算出飛機的運動參數(shù),需要對Flightgear的攝像頭內(nèi)參數(shù)進行標定,虛擬攝像頭的標定原理與實物攝像頭的完全相同,可以采用張正友[10]的標定方法,利用 Matlab的 CameraCalibrator[11]工具箱進行標定,先在 Flightgear地景中放置棋盤格標定板,手動操縱飛機到不同的位置,對標定板進行拍照,用標定工具箱對得到的圖像樣本進行標定(如圖6),得到內(nèi)參數(shù)矩陣 M=[1109,0,640.5;0,1109,360.5;0,0,1].
3臺計算機分別運行3個子系統(tǒng),通過組網(wǎng)實現(xiàn)高速實時的數(shù)據(jù)交互,完成分布式聯(lián)合仿真.為了避免數(shù)據(jù)延遲,采用局域網(wǎng)UDP協(xié)議進行通訊,并保持局域網(wǎng)內(nèi)只有這3臺計算機.組網(wǎng)的地址分配和端口分配如圖7所示,3個子系統(tǒng)的程序嚴格按照此設(shè)定進行通訊.
實驗前檢查所有的設(shè)置無誤,按順序啟動視景機的 Flightgear,視覺機的 Simulink程序,控制機的Simulink程序.飛機從指定進近點開始,依靠視覺機的位置信息順利完成了下滑操作,拉平操作,觸地操作和滑行;從視景機和視覺機的監(jiān)視器界面可以看到攝像頭視角的著陸全過程,在控制機上可以實時查看飛機運行的參數(shù)曲線.距離跑道1 km以內(nèi)時,視覺得到的位置信息誤差保持在1.0 m以內(nèi)(對比視景機共享的真值),如圖8.
針對現(xiàn)有方案的不足和實際無人機視覺著陸研究工作的需要,本文提出了利用Flightgear渲染實時攝像頭畫面,并利用HDMI高速數(shù)字端口進行采集和傳輸圖像信號,以模塊化運行的方式聯(lián)網(wǎng)組成閉環(huán)仿真系統(tǒng),利用實驗驗證了該系統(tǒng)能夠完成:
1)視覺導(dǎo)引的圖像算法驗證功能;
2)著陸控制算法驗證功能;
3)視覺導(dǎo)引下自主著陸全過程演示功能.
總之,通過該仿真系統(tǒng)的研制,構(gòu)建了面向固定翼無人機自主著陸的視覺導(dǎo)引仿真系統(tǒng),可以解決現(xiàn)有GNC系統(tǒng)的仿真手段不能支持在線實時視覺導(dǎo)引與控制的研究與驗證.
[1]王亮,康鳳舉,鄧紅德,等.基于視覺的無人機著陸半物理仿真系統(tǒng)的應(yīng)用[J].系統(tǒng)工程與電子技術(shù),2012,34(7):1511-1517.
[2]阮利鋒.小型無人直升機自主著陸視覺導(dǎo)航系統(tǒng)設(shè)計及仿真[D].上海:上海交通大學(xué),2009.
[3]ALLERTON D.Principles of flight simulation[M].John Wiley& Sons,2009.
[4]張珍.無人機自主著陸的視覺識別與定位算法設(shè)計及仿真研究[D].南京:南京航空航天大學(xué),2008.
[5]徐李云.無人直升機視覺導(dǎo)引著陸驗證實驗平臺系統(tǒng)設(shè)計[D].南京:南京航空航天大學(xué),2009.
[6]翟彬,薛明旭.FlightGear在無人機實時飛行仿真中的應(yīng)用[J].現(xiàn)代電子技術(shù),2010,33(13):24-26.
[7]SHELARE M.Fuzzy logic controller for steady level flight of F-16 aircraft using Matlab and Simulink[D].Texas A& M University-Kingsville,2004.
[8]張琴.基于序列圖像的無人機進近著陸跑道識別與跟蹤研究[J]云南民族大學(xué)學(xué)報:自然科學(xué)版,2014,23(2):146-150.
[9]WONG T Y,KOVESI P,DATTA A.Projective transformations for image transition animations[C]//Image Analysis and Processing,2007,14th International Conference on.IEEE,2007:493-500.
[10]ZHANG Z.Flexible camera calibration by viewing a plane from unknown orientations[C]//Computer Vision,The Proceedings of the Seventh IEEE International Conference on.IEEE,1999,1:666-673.
[11]作者不詳.Camera calibration toolbox for Matlab[EB/OL].[2015 - 03 - 22].http://www.vision.caltech.edu/bouguetj.