徐喜梅,黃大慶,徐 誠
(1.南京航空航天大學電子信息工程學院,南京 210016;2.南京航空航天大學中小型無人機先進技術工信部重點實驗室,南京 210016)
無人機 (Unmanned Aerial Vehicle)是一種無線遙控的無人駕駛飛機。最初無人機的誕生是用于軍事上,隨著信息技術的高速發展以及高新技術在武器裝備的應用,以及我國低空空域對民用的開放,其使用范圍已拓寬到軍事、民用和科學研究三大領域,無人機的應用將是一個巨大的潛在市場[1]。無論是在軍事、民用、還是科學研究領域,無人機在執行任務時首先要解決的問題就是確定自身在工作環境中的準確位置,因此無人機自主定位是無人機執行任務的基礎和關鍵。
傳統的無人機自主定位技術使用最廣泛的是GPS導航和慣性 (IMU)導航,其可以提供精確的位置和姿態信息,而衛星信號易受干擾、技術敏感,以及慣性測量單元的成本較高,且測量結果會隨時間漂移,存在誤差累積的問題,不適合進行長時間、遠距離的定位應用。近年來,視覺傳感器在無人機的自主定位技術中應用越來越廣泛,基于圖像匹配的無人機自主定位技術已成為研究熱點,其中利用圖像匹配導航技術確定無人機位姿參數的研究,國外開始的比較早,最初其研究主要是采用光學傳感器,結合相機成像原理以及計算機視覺理論推導出無人機相對位置信息[2],后期又有利用相對位置和絕對位置估計復合定位算法,該方法雖然計算精度比較高而且克服了一些地理位置的不足,但其對設備性能要求很高,且計算量非常大。另外澳大利亞Monash University提出了一種結合GPS的圖像導航的無人機自主定位方式[3]。在國內此方向的研究起步比較晚,大多是在算法上的研究工作,包括基于地形輔助的圖像導航研究,此系統研究比較成熟,但其一般適用于地形起伏比較大的地方[4],利用影像匹配和攝影測量法實現無人機自主定位導航[5],其前提是要求一幅圖像上必須有3個以上的同名點已知。利用雷達實現無人機自主定位[6],然而該方法對無人機飛行路徑的地貌特征有苛刻的要求,增加了計算量,且實時性較差。
本文在研究分析了上述各種方法優缺點的基礎上,設計了一種利用地面景象信息輔助的無人機自主定位算法,此算法能夠在誤差允許范圍內,解決無人機的GPS信號接收機喪失定位功能時,無法獲取無人機自身的位置信息的問題,具有較大的實用價值,且簡單易于實現。
本文提出的利用地面景象信息輔助的無人機自主定位算法,首先假設在平坦區域內,利用景象匹配導航技術,將無人機拍攝的實時航拍圖,與預先儲存在無人機計算機內的地面景象的數字化地形圖進行圖像匹配,從匹配結果中獲取數字化地形圖上的一個同名像點D和此點對應在實時航拍圖像上的點D',利用數字化地形圖所提供的地理位置數據,獲取此同名像點D的大地坐標信息,最后結合機載光電測量系統的坐標轉換過程,推導出無人機的大地坐標信息,實現無人機的自主定位?;诘孛婢跋筝o助的無人機自主定位的模型如圖1所示。其中地面景象的數字化地形圖的獲取可以通過大地測量、航空攝影、衛星攝影或是已有的地形圖等方法將地形數據 (主要是地形位置和高度數據)制成數字化地形圖[7]。最后利用蒙特卡羅思想設計無人機自主定位誤差模型,并進行仿真試驗及誤差分析。本研究在無人機GPS定位系統失效的情況下,充分利用無人機飛行區域的地面景象數字化地形圖的地理位置數據,以及無人機位置與地面上同名像點位置之間的幾何關系,再結合機載光電測量系統的坐標轉換過程,實現無人機的自主定位過程,此自主定位算法富有一定創新性,且簡單易于實現。
利用地面景象輔助的單點定位算法實現無人機的自主定位,在此過程中需要定義以下幾個輔助坐標系:
圖1 基于地面景象輔助的無人機自主定位模型
1)攝像機坐標系T(Ot-XtYtZt):原點在攝像機光軸與橫軸的交點上,Zt軸為攝像機光軸指向目標,光軸指向角以方位角α和高低角β表示,其中方位角α為繞方位軸Xt的旋轉角度,高低角β為繞俯仰軸Yt的旋轉角度。
2)載機坐標系A(Oa-XaYaZa):原點是某一時刻載機質心所處的位置,Xa軸由機腹指向機背,Ya軸代表無人機橫軸,Za軸代表無人機縱軸。設ψas,θas,φas為三軸姿態角,分別繞Xa(偏航),Ya(俯仰),Za(橫滾)的旋轉。
3)地理坐標系S(Os-XsYsZs):Zs指向正北方向,Xs指向天頂,Ys與Zs、Xs構成右手坐標系,指向西為正。本文定義兩個地理坐標系,首先地理坐標系Su定義為其原點是某一時刻無人機質心所處的位置(Bu,Lu,Hu)。地理坐標系Sd定義為以地面對應同名像點所處的位置(Bd,Ld,Hd)為原點。兩坐標系的X,Y,Z三軸指向相同且互相平行。
NEU坐標系N(ON-XNYNZN)[8]:其原點為地面對應同名像點所處的位置(Bd,Ld,Hd),XN軸正方向指向正北,YN軸正方向指向正東,ZN軸與XN軸YN軸構成右手坐標系,指向天頂為正。
4)大地直角坐標系G(Og-XgYgZg),大地坐標系C(Oc- XcYcZc)[9]。
無人機的自主定位流程圖如圖2所示,首先利用景像匹配導航技術獲取地面景象的數字化地形圖上的一個同名像點D,以及此點的大地坐標值。利用無人機的激光測距儀獲取無人機與地面上對應同名像點D的距離R。定義此同名像點D在攝像機坐標系下的坐標為(0,0,R),利用各個坐標系間的轉換關系可以得到點D在地理坐標系Su中的坐標值,利用兩地理坐標系Su和Sd之間的空間幾何關系如圖3所示,點D在Su地理坐標系V,VI,VII,VIII四個象限的情況相同,因此本文只討論同名點D位于VIII卦限的情況。將點D在地理坐標系Su中的坐標值X,Y,Z均加反向符號,即可獲得無人機在地理坐標系Sd中的坐標值,繼而求出無人機在大地直角坐標系中的坐標值 (Xu,Yu,Zu),最后利用公式 (8)求出無人機大地坐標系(Bu,Lu,Hu)。
圖2 無人機自主定位流程圖
圖3 地理坐標系Su和Sd之間的空間幾何關系
無人機自主定位過程,即已知同名點D的大地坐標(Bd,Ld,Hd),無人機姿態角 ψas,θas,φas,攝像機的方位角α、高低角β,以及無人機與地面同名像點D之間的距離R,求解無人機大地坐標(Bu,Lu,Hu)的過程。
具體計算過程如下:
1)已知同名像點D在攝像機坐標系中的坐標T=(0,0,R),將T代入公式 (1)可得無人機在NEU坐標系中的坐標值N=(n,e,u)。
2)NEU坐標系N到大地直角坐標系G的轉換關系:
已知無人機在 NEU坐標系N下的坐標值為(n,e,u),NEU坐標系原點ON的大地坐標為(Bd,Ld,Hd),大地坐標系C(Oc-XcYcZc)到大地直角坐標系G(Og-XgYgZg)之間的轉換關系如式 (6)所示。則NEU坐標系N(n,e,u)到大地直角坐標系G(Og-XgYgZg)的變換如式 (7)所示。
y0,z0為NEU坐標系原點ON的大地坐標(Bd,Ld,Hd)在大地直角坐標系G中的坐標表示。
3)大地直角坐標系G轉換到大地坐標系C有兩種方法,迭代法和直接法[10],本文采用直接法,如公式 (8)所示。
最后由無人機在大地直角坐標系下的坐標值(Xu,Yu,Zu)帶入公式 (8)求得無人機在大地坐標系下的坐標值(Bu,Lu,Hu)。
為了對利用地面景象信息輔助的單點定位算法,實現無人機自主定位的性能進行分析,本文采用蒙特卡羅統計實驗的方法,對本文無人機自主定位的誤差進行仿真試驗。由于定位方程會涉及到大量的矩陣相乘,其運算和結果比較繁瑣因此本文采用MATLAB程序進行仿真。
蒙特卡羅法也稱統計試驗法或隨機模擬法,它是通過隨機變量的統計或隨機模擬,求解數學、物理和工程技術問題近似解的數值方法[11]。本文利用蒙特卡羅方法,模擬一套定位誤差源的樣本值而且各個樣本值相互獨立,隨著樣本數量的增加,大量的模擬結果就與實際結果非常接近,因此充分考慮樣本的數量以及計算時間,使得計算結果具有很高的置信度[12]。
無人機自主定位誤差模型用蒙特卡羅法可以表示為:
其中:x1為坐標轉換中各參數的測量值,Δxi為各參數測量誤差;f為定位計算過程。
基于地面景象輔助的無人機自主定位的計算方程可以簡單表示為:
則定位誤差模型:
其中:Bu,Lu,Hu為無人機在大地坐標系下的坐標值,ΔBu,ΔLu,ΔHu為無人機定位誤差,X,ΔX分別表示轉換中各參數的測量值和測量誤差。這些參數包括:無人機與地面上同名點之間的距離,無人機姿態角,攝像機的方位角、高低角,同名點大地坐標;
參數的誤差模型:
由式 (11)可知定位誤差與多種因素有關,包括各個參數的測量值及其誤差,由概率論知識可知這些參數的誤差大都服從正態分布。因此假設定位計算的參數誤差ΔX服從均值為0,均方差為σΔX的正態分布即:
在計算機仿真中,利用MATLAB提供的randn()函數,產生服從標準正態分布的隨機數序列X'。經過轉換ΔX=σΔXX'就可以得到正態分布的隨機數ΔX~N(0,σΔX)。
首先根據無人機實際飛行數據記錄各個量的名義值,參數的誤差值 (均來源于平臺各個部件的說明書),將仿真計算過程中所用到的參數的名義值,誤差值列于表1中。本文根據基于地面景象輔助的無人機自主定位方程,以及用蒙特卡羅法設計的定位誤差分析模型編寫誤差仿真的MATLAB程序,其詳細計算步驟如下所示:
1)初始化程序;
2)首先按照表1輸入各參數的真實值,設定所有參數誤差為零,求得無誤差情況下的定位結果(Bu,Lu,Hu),記錄數據。
3)利用randn()函數,生成服從正態分布的各個參數的隨機數X',設定隨機序列長度為10 000;
4) 根據隨機誤差量Δ Xi=σΔXXi',其中σΔXi是表1中的誤差值。用蒙特卡羅法計算加入誤差后的定位結果(Bi,Li,Hi);
5) 計算 (ΔBi,ΔLi,ΔHi)=(Bi,Li,Hi) - (B,L,H);
6) 統計(ΔBi,ΔLi,ΔHi)的標準差并輸出結果。
表1 無人機自主定位仿真數據
利用上述的仿真步驟建立的定位模型和誤差仿真模型結合表1仿真數據進行仿真試驗,最終得到無人機的經緯度和大地高的誤差分布,以及無人機自主定位結果的空間分布,試驗結果如圖4所示,其中由圖 (a)、圖 (b)、圖(c)可以看出,無人機的經緯度和大地高的誤差分布皆服從μ=0的正態分布。無人機自主定位的結果中心占的比例最大,呈中心分布形狀符合正態分布,采用表1數據計算無人機自主定位誤差,并對試驗結果經過統計求均值可以得到,經度誤差0.000343°,緯度誤差為0.000259°,高程誤差21.1 m,換算為空間誤差為20.9 m。
利用本文的無人機自主定位算法和表1的數據,結合對定位誤差的實驗結果的分析,最終會得到一個定位結果及誤差,如表2所示。
表2 無人機定位結果
本文提出了一種利用地面景象信息輔助的單點定位算法,實現無人機的自主定位。本算法首先利用景象匹配導航技術,獲取無人機拍攝區域內對應地面上的一個同名像點,結合地面景象的數字化地形圖提供的地理位置信息,獲取此同名像點的位置坐標信息,利用同名像點位置與無人機位置的幾何關系定義多種輔助坐標系,通過機載光電測量系統的坐標轉換過程推導出基于地面景象輔助的單點定位方程,最終實現無人機的自主定位過程。最后本文利用蒙特卡羅思想對無人機自主定位誤差進行仿真試驗。經試驗證明,此算法在誤差允許范圍內能夠實現無人機的自主定位過程,可以有效的解決無人機在室內、惡劣環境中或是受敵方電子干擾時,GPS信號接收機喪失自主定位功能的問題,本研究具有較高的實用性和可行性。
圖4 試驗仿真結果