原 輝,裴 楚,王 帥,李勁松,姜 敏,仝家朋
1.國網山西省電力公司 電力科學研究院,太原 030001
2.華北電力大學 自動化系,河北 保定 071003
隨著無人機在各領域的不斷普及,對其功能的要求越來越高,其中無人機精準自主降落技術是無人機自主飛行的關鍵技術。目前,大多數廠商選用全球定位系統(global positioning system,GPS)來進行無人機的定位[1],這種定位方式雖然簡單易行,但是需要考慮GPS精度,而且在某些特殊環境下,GPS 信號容易受到干擾。所以,如何實現無人機的精準降落,突破GPS 定位在特殊環境下的局限性,成為了無人機領域亟待解決的問題。近年來,國內外越來越多的研究者對該領域做研究,南京航空航天大學的何昱等人[2]對微小型四旋翼無人機自主著陸視覺系統做了研究,采用嵌入式處理器設計了一種適用于微型四旋翼無人飛行器自主降落的視覺系統,在實際應用中證實了嵌入式設備的實用性。湖南工業大學的羅哲[3]對著陸標志的拍攝圖像進行預處理后,通過改進的Wellner自適應閾值算法獲得二值圖像,查找輪廓并采用最小周長多邊形(MPP)對輪廓進行多邊形逼近,從而找到目標。瓦倫西亞理工大學的Wubben等學者[4]設計了ArUco 地面標識,通過視覺特征來計算搭載低成本相機的無人機與目標標記之間的相對位置,并通過實驗驗證了該方法的可行性。哈爾濱工業大學樊瓏[5]提出用超聲波測量高度、再通過機載相機尋找停機坪上黑白相間的圓環降落標志來計算出無人機位置的的視覺定位方法,完成自動降落控制。西北工業大學張咪等人[6]通過對特定地標進行預處理、Canny 算子二值化、腐蝕膨脹等算法進行濾噪、提取圖像的輪廓信息并經過校驗后進行位姿估計的方式,實現無人機的降落。
但是上述方法都有著一些問題:
(1)地標占地面積較大,不利于在特定環境中例如電廠桿塔針對小型無人機的精準降落的需求。
(2)在環境信息豐富的環境中不便于應用,例如有著豐富物體存在的室外環境會對地標識別造成干擾,或者誤識別。
(3)算法都需要對圖像進行預處理等步驟,增加了圖像處理環節,不利于在嵌入式設備上計算。
考慮到無人機的自主運行環境以及嵌入式計算設備計算力有限的問題,提出一種基于地標的輕量化精準降落算法,對ArUco地面標識法與張咪論文中地標過大與室外環境復雜會出現干擾的情況這兩個方面改進。
(1)通過加入顏色域信息,取消了張咪、羅哲等人在圖像處理中常有的灰度化、高斯濾波等濾噪、提高對比度的環節,節省了圖像處理時間,降低了信息提取難度。
(2)通過提出基于地標長度的二維空間相對位置計算方法,取消了張咪、樊瓏等人通過無人機三維空間位姿估計方式,也避免了因機載相機的焦距計算不準確帶來的影響,方便了本文算法在不同無人機、采用不同機載相機時的使用。通過識別設定的兩種形成對比的顏色和指定形狀實現快速實時地檢測地面標識,然后通過二維層面相對位置計算得到無人機與降落地標的相對位置和相對方向,從而可以引導無人機精準降落且無人機方向準確。此過程便于在復雜環境中準確查找地標,不需要考慮相機焦距,所以結果更加準確且方法便于移植。
無人機的降落地標在設計時需考慮三個重要因素,分別為標志需要包含定點降落所需的信息、標志需要是機載處理器能夠快速識別的形狀以及標志需要容易辨識[7]。設計的降落地標如圖1 所示,該圖形由兩個菱形疊加組成,一個是黃色菱形,另一個是比前菱形略大的藍色菱形,兩種顏色形成對比;再外圍是白色方形背景板,其可以將目標圖像與其他有色噪聲隔離開。

圖1 降落地標Fig.1 Landing landmark
地標的大小視無人機降落的初始高度而定。將地標的黃色菱形的狹長邊界構成的角記為頂角,與頂角對應的、兩個短邊界形成的夾角記為底角,則定好地標后,地標的頂角角度和頂角到底角的距離可以測量得到。對地標大小的要求是在無人機初始降落高度上機載相機拍攝圖片后地標藍色邊界寬度要大于4個像素,而黃色菱形的底角處寬度要3 倍于藍色邊界寬度。黃色菱形的頂角弧度值要不同于另外三個角。所以使用的地標可以根據GPS精度、無人機大小等要求自行設計其他尺寸的地標,同時地標的顏色構成和頂角大小也可以自行更換。
后面的實驗中無人機初始降落高度是10 m,地標藍色邊界為5 cm 寬,黃色菱形頂角到底角長0.45 m,頂角弧度值是0.68,且黃色菱形其余三個角度均大于此弧度。圖2 中地標是圖1 地標的變體,其上藍黃地標被金屬薄片遮擋了一部分,頂角弧度大于底角弧度,用于實驗設計地標被遮擋時的情況。

圖2 被遮擋的地標Fig.2 Obscured landmark
無人機部分主要分為硬件部分和軟件系統,如圖3。硬件部分包括無人機機體、機載計算機、機載相機、機載飛控、GPS等,該部分主要完成無人機飛行、飛行動作控制、圖像拍攝、執行算法等功能。軟件部分主要是降落初始階段的GPS信息處理和降落第二階段的算法執行。

圖3 無人機架構Fig.3 UAV architecture
通過檢測地標的兩個狹長邊界線來確定地標的位置,分析地標位置來獲取無人機位移所需信息的。算法流程分為邊界提取、邊界篩選、確定中心、相對位置計算、無人機位移控制等步驟。下文中說的像素坐標系即圖像處理中常用的笛卡爾坐標系,以圖像的左上角為原點。
無人機在初始降落階段會依據GPS信息控制飛行,使無人機飛到地標上空,以使無人機機載相機可以拍攝到地標。接下來就進入圖像處理的環節。
機載相機拍攝的彩色圖像從RGB顏色空間轉換到HSV空間。因為顏色信息在HSV空間中更貼近人類感官,且受光照等變化的影響更小[8-9]。地標圖片轉化為HSV空間后,黃色在H、S、V通道上有一段對應的閾值,其中H 通道對應顏色色相。根據黃色的三個通道的閾值進行二值化,做法是介于此閾值內的像素點設為255,其余的都設為0。然后對該二值圖使用Robert算法[10]進行邊緣檢測,然后使用累計概率霍夫變換[11-13]直線檢測算法進行處理,得到的直線檢測結果。
上面直線檢測結果中會存在誤檢測的線段,這種情況在復雜環境中尤為多,所以還需對邊界檢測出的線段進行篩選和確定。
檢測上面邊界檢測結果中每個線段兩側是否分別為黃藍二色。做法是依次在每個線段左右兩側對稱位置取檢測點,當驗證檢測點的像素值分別屬于黃色H值和藍色H 值時,保留該線段。設當前線段Li的兩端在像素坐標系中坐標值為(x1,y1)和(x2,y2),要在Li上取Npi個等間距的分割點,在這些分割點的兩側、與Li垂直的方向上距線段Li為像素值Nin取測試點對,如圖4。樣本點集合為(xsim,ysim)。一般情況下樣本點的坐標求取公式為:

圖4 線段兩側的樣本點(Npi=2)Fig.4 Sample points on both sides of line segment(Npi=2)

其中k=0,1,…,Npi-1。
公式(1)和(2)是針對一般情況下直線檢測結果的計算。對于水平和垂直情況下的直線檢測結果,實現類似計算只需對公式(1)和(2)進行化簡即可,后面所有計算公式也只針對一般情況下的直線檢測結果。
然后對上述檢測結果做同一直線的多次描述的剔除,從而實現一個邊界處只由一個檢測線段來描述,做法是從上述檢測結果中任選兩條直線記為L1、L2,然后按照由兩直線延長線夾角為θ12,當θ12≤θpa(其中θpa為設定臨界值)時認為兩直線為同一線,且保留L1、L2中線段長度較長的線段。如此將所有的線段兩兩配對且處理。
之后篩選上述結果中線段延長線夾角符合地標頂角弧度的兩個線段,這兩個線段就是最終的地標提取結果。做法是設事先測量確定的地標狹長邊界的夾角的弧度值為θLi。設定閾值θma,當兩線段夾角滿足|θ12-θLi|>|θma-θLi|則認定為不合格。在合格線段中所有兩線段之間按照直線向量的余弦值反求夾角,當θ12滿足 |θ12-θLi|>|θma-θLi|則此兩線段不合格;而對于合格的θ12,只保留本環節中 |θ12-θLi|最小的θ12和其對應的兩線段。如此計算一輪后,會得到最靠近θLi的θ12和其對應的兩線段。
此時篩選出的兩個線段準確描述了圖像上地標黃藍色交界的狹長線,記為邊界描述線,用LL和LR。
篩選出的兩個邊界描述線相交處就是地標的頂角處。認定地標上從底角點(xb,yb)到頂角點(xv,yv)連線上距底角點S比例處就是地標的中心點(xp,yp),如圖5。若無人機準確降落,機載相機光心應該與地標中心相重疊。

圖5 地標的中心Fig.5 Center of landmark
先由兩個邊界描述線相交求出頂角點位置,做法是在兩個邊界描述線的延長線上找到兩線的交點。一般情況下設線段LL和LR的兩端坐標分別為(x1,y1)、(x2,y2)和(x3,y3)、(x4,y4),則對于頂角點(xv,yv)有公式如下:

再求地標的底角。做法是在兩個線段上找出距頂角點相同距離的點,記為(xD1,yD1)、(xD2,yD2),此兩個點連線的中點(xm,ym)與頂角點的連線就是頂角點和底角點的共線,然后從頂角點沿上述連線找到第一個顏色為藍、同時倒退2 個像素后顏色為黃的點,此點就是提取到的底角點(xb,yb)。在一般情況下先計算(xD1,yD1),即:

其中,Llen為LL與LR中距離較小的長度,(xt1,yt1)、(xt2,yt2)為方程(1+kc2)x2+(2kcbc-2xv-2kc yv)x+x2v+b2c+yv(yv-2bc)-Llen的兩個根。
LL01與LL02分別為(xt1,yt1)、(xt2,yt2)到(xc,yc)的距離。當LL01≤LL02時,(xD1,yD1)為(xt1,yt1),否則,(xD1,yD1)為(xt2,yt2)。
按照同樣的方式,在公式(7)的條件下求出(xD2,yD2)。

此時可得(xm,ym)為:

接下來計算底角點位置:


公式(10)和(11)中xadd和yadd用于表明像素坐標系上從頂角點到底角點的過程中x方向和y方向上增長趨勢。
判斷在像素坐標系上從頂角點到底角點的過程中x方向和y方向的增長快慢。

Ltpv1與Ltpv2分別為(xtp1,ytp1)、(xtp2,ytp2)到(xv,yv)的距離。
當Ltpv1≤Ltpv2時認為xadd方向上增長較慢;否則yadd方向上增長較慢。
開始通過測試找到底角點。設定(xla,yla)為(xv,yv)。
當xadd方向上增長相對慢時,初始n=0,

檢測點(xla,yla)的像素值是否為黃色H值,同時點(xtm,ytm)的像素值是否為藍色H 值,成立則認定點(xtm,ytm)就是底角點(xb,yb);否則按下面公式計算:

再令n=1,計算公式(14),并對點(xla,yla)和(xtm,ytm)進行顏色檢測。如此進行測試,直到找到底角點或者n等于圖像的短邊界的長度值時停止。
當yadd方向上增長相對慢時,初始n=0,

檢測點(xla,yla)的像素值是否為黃色H值,同時點(xtm,ytm)的像素值是否為藍色H 值,成立則認定點(xtm,ytm)就是底角點(xb,yb);否則按下面公式計算:

再令n=1 ,計算公式(16),并對點(xla,yla)和(xtm,ytm)進行顏色檢測。如此進行測試,直到找到底角點或者n等于圖像的短邊界的長度值時停止。
如此找到了底角點(xb,yb),然后計算地標中心點(xp,yp),計算如下:

本文無人機降落所需位置參數有三個:二維平面上無人機到地標中心所需位移距離,分為機頭方向所需前進距離xcmd和機身所需右移距離ycmd,參數若為負值表示需要反方向移動;無人機機頭方向轉到地標頂角所指方向的所需偏轉角度θL。
圖像的像素坐標系的y軸負向對應實際的無人機機頭方向。角度θL為地標頂角方向順時針偏離圖像的像素坐標系y軸負向的角度,如圖6。

圖6 地標相對位置參數Fig.6 Landmark relative position parameters
確定θL的角度值。先設定兩個輔助向量Ve和Le,其中Ve=( 0,-10 ),Le=(1 0,0 )。設底角點指向頂角點的向量為Mi。計算出Mi和Ve的夾角θVM,同樣計算出Mi和Le的夾角θLM。計算θL為:

然后開始計算地標相對位置。計算過程是按照針孔成像的原理,通過二次對比信息應用地標長度和像素數直接測得相對位置,不用測量相機的焦距。原理如圖7所示。

圖7 地標相對位置原理Fig.7 Principle of relative position of landmark
圖7 中f是機載相機的焦距,H是相機光心的對地高度,Pcmd是地標中心到圖像中心的像素值,Pla是地標頂角點到底角點的像素值,Lcmd是實際中地標中心到相機光心的平面距離,Lla是實際中地標頂角點到底角點的平面距離。Lla可以被事先很方便地測量得到;要得到f需要對所用相機進行測量,而且每個相機需要單獨去測,機載相機更換就需要重新測;要測得H需要讀取無人機GPS 信息或者氣壓計,有較大誤差;Lcmd是需要得到的數值。根據針孔成像原理可以得到:

所以可以得到:

這樣Lcmd可以十分方便地通過計算得到,而且當無人機更換機載相機時也不需要重新測量焦距。
計算xcmd和ycmd,設像素坐標系上圖像寬Lcol和圖像長Lrow,Lla是實際中地標頂角點到底角點的平面長度,參數Rt記錄比例。

計算出xcmd、ycmd和θL,當無人機按照該參數移動后,無人機的相機光心就會與地標中心重疊且無人機機頭方向與地標頂角的指向相同。
無人機在計算出上述參數后,就進入比例-積分-微分(PID)控制器[14-16]進行無人機位移控制,使無人機邊下降邊靠近地標中心。這個調節過程是分為兩步進行的,先迅速進行水平上的位置調整,再立即進行方向調整且同時下降一定高度。這樣無人機一邊調整一邊降落。待地標在機載相機中邊界超出圖像拍攝范圍時,無人機就停止位置調整,只進行降落和停機。至此無人機完成整個降落環節。
本文采用的飛行平臺是大疆經緯M210 RTK V2無人機,垂直懸停精度為±0.1 m,水平懸停精度為±0.3 m;計算核心使用的配套的妙算2 模塊。衡量降落方案的精準程度,需要比較降落結果的誤差,首先需要對圖標建立平面坐標系,如圖8 所示,圖中O處就是地標中心。根據無人機降落后相機光心與地標中心的相對位置,就可以看出降落的精準程度。圖中AO距離為直線誤差,AB向量與CO向量的夾角為無人機降落角度誤差。

圖8 降落圖標坐標系Fig.8 Landing icon coordinate system
優化后的算法在實際應用中有著顯著效果,如圖9到圖13 表示了算法在不同距離情況下檢測地標的效果。圖中青色線段表示檢測到的邊界線,黃色點表示頂角點和底角點,紅色點表示S=0.3 時地標中心點。從圖中可以看出,算法可以明顯對抗距離變化和地標旋轉。

圖9 地標距相機1 mFig.9 Result when distance from landmark to camera is 1 m

圖13 地標距相機5 m且左轉Fig.13 Result when distance from landmark to camera is 5 m and turning left
圖14展示算法在地標被遮擋或者地標與其他功能相結合時的應用情況。圖14中是地標上貼有兩塊用于無人機充電的電擊貼片,對于地標識別來說,這是很大的遮擋物。但是從圖14中可以看出地標識別情況依然良好。

圖14 地標距相機2 m且地標后側被占用Fig.14 Result when distance between landmark and camera is 2 m and landmark is blocked
為了驗證降落策略的可行性,實驗采用的降落方案分為三個階段,第一階段為GPS 位移,無人機以固定高度采用GPS信息移動到地標上空,使地標在相機“視野”范圍內;第二階段為算法執行階段,無人機根據地標測算出相對位置信息后,立即調整無人機位移和方向,使無人機飛到地標中心正上方且其機頭方向與地標正向相同,同時無人機勻速下降;第三階段為無人機只執行降落指令,當圖像匹配程序執行完畢之后,無人機只執行降落指令,完成降落。

圖10 地標距相機3 mFig.10 Result when distance from landmark to camera is 3 m

圖11 地標距相機5 mFig.11 Result when distance from landmark to camera is 5 m

圖12 地標距相機5 m且右轉Fig.12 Result when distance from landmark to camera is 5 m and turning right
實驗的過程如下,設定無人機的初始高度為10 m,在下降過程中使用圖1 地標,當無人機降落到1 m 高度時無人機開始進行只降落階段。無人機的高度變化如圖15所示,無人機的姿態橫滾角變化如圖16所示,俯仰角變化如圖17所示,降落結果如圖18所示。

圖15 高度變化Fig.15 Height change

圖16 橫滾角變化Fig.16 Roll angle change

圖17 俯仰角變化Fig.17 Pitch angle change

圖18 降落結果Fig.18 Landing results
本文算法、基于地標的TLD 算法[17]、基于ArUco 標記的方法[4]和大疆無人機基于GPS 的自有返航功能進行降落效果對比如表1所示。其中本文算法進行8次實驗,實驗結果使用8 次實驗的平均數,降落用時只計算第二階段和第三階段用時;大疆無人機返航功能定返航高度為10 m,降落用時只計算下降所用時間。其他方法使用對應論文中的結果。

表1 算法平均降落精度對比Table 1 Comparison of algorithm average landing accuracy
從表1 可以看出本文算法的位置精度和角度精度都相對較高。與基于地標的TLD 方式和基于ArUco 標記的方法相對比,本文算法位置誤差更小,且增加一個角度判斷功能。與基于GPS的自有返航功能進行對比,具有明顯的實用性。
本文算法與TLD的平均幀率如表2所示,本文算法的平均幀率達到了25.97 frame/s,雖然與TLD、KCF 方式的幀率相比略差了一些,但是在成功率上有了較為明顯的提升,不僅如此本文算法還考慮了角度方向的偏差,綜合整體而言,本文算法在本文所設定環境下性能是要明顯優于這兩種算法的,而且本文算法處理幀率完全滿足飛行過程中的需求,因此在實時性上也得到了一定的保證。

表2 算法平均幀率對比Table 2 Algorithm average frame rate comparison
針對無人機自主降落精度不高的問題,提出基于地標的輕量化精準降落算法,通過識別構成對比的顏色和地標形狀實現快速實時地檢測著陸標識,圖像處理流程簡單快速且準確,然后通過相對位置計算在二維層面得到無人機對于降落地標的相對位置和方向,引導無人機精準降落。算法執行過程不需要考慮相機焦距,無需事先進行相機標定,在一定遮擋情況下也能精準識別。圖像計算過程盡可能簡單,無需進行圖像降噪濾波等預處理,減少了圖像處理時間和對計算平臺計算力的需求。實驗結果表明,本文提出的策略能大大提高無人機自動降落的精度,在地標大小設計合適的情況下,無人機完全可以降落在地標上,且方向準確。