洪富祥,陳沖,丘仲鋒?
(1南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇 南京 210044;2南京信息工程大學(xué)海洋科學(xué)學(xué)院,江蘇 南京 210044)
隨著無(wú)人機(jī)(UAV)在各行各業(yè)的廣泛運(yùn)用,無(wú)人機(jī)的自動(dòng)化和智能化得到越來(lái)越多的關(guān)注,無(wú)人機(jī)如何實(shí)現(xiàn)智能化精準(zhǔn)降落是其中的關(guān)鍵技術(shù)之一,而智能化降落的關(guān)鍵又在于無(wú)人機(jī)能否對(duì)降落目標(biāo)進(jìn)行精準(zhǔn)定位。關(guān)于無(wú)人機(jī)的自動(dòng)降落,人們開(kāi)展了大量研究,研發(fā)了各種方法,比如基于全球定位系統(tǒng)(GPS)記錄的一鍵返航、結(jié)合運(yùn)動(dòng)檢測(cè)技術(shù)定位方法、光流傳感器和慣性測(cè)量模塊定位方法等。當(dāng)前采用較多的自動(dòng)降落方法是依托于GPS記錄無(wú)人機(jī)起飛點(diǎn)的一鍵返航。這種方法通過(guò)獲取無(wú)人機(jī)起飛點(diǎn)坐標(biāo),規(guī)劃飛行路徑并實(shí)時(shí)獲取中途位置點(diǎn)的坐標(biāo),形成飛行路徑信息,接收到無(wú)人機(jī)返回指令后進(jìn)行返航。然而,GPS定位精度誤差大,無(wú)人機(jī)較難精準(zhǔn)定位起飛點(diǎn),從而無(wú)法實(shí)施自動(dòng)精準(zhǔn)降落,在某些特殊情況下可能造成降落點(diǎn)嚴(yán)重偏離起飛點(diǎn)的情況,造成事故。因此,當(dāng)前常用的做法是,無(wú)人機(jī)降落到一定高度后加入人工干預(yù),實(shí)現(xiàn)安全降落。針對(duì)GPS定位不夠精準(zhǔn)的問(wèn)題,人們?cè)诖嘶A(chǔ)上做了改進(jìn)。Liu等[1]利用GPS粗定位與運(yùn)動(dòng)檢測(cè)技術(shù)定位相結(jié)合的方法,將攝像頭置于無(wú)人機(jī)起飛點(diǎn)處,通過(guò)攝像頭獲取無(wú)人機(jī)位置,然后發(fā)送命令來(lái)控制無(wú)人機(jī)運(yùn)動(dòng)。通過(guò)采用無(wú)人機(jī)雙攝像頭和慣性導(dǎo)航系統(tǒng),Song等[2]采用光流傳感器和慣性測(cè)量模塊定位的方法來(lái)提高無(wú)人機(jī)的定位精度。此外,擴(kuò)展卡爾曼算法[3]也用作無(wú)人機(jī)定位,當(dāng)GPS突然失效的時(shí)候,利用機(jī)載無(wú)線射頻的接收信號(hào)強(qiáng)度來(lái)解決定位問(wèn)題。這些方法一定程度上提高了無(wú)人機(jī)降落時(shí)的定位精度,但需安置攝像頭等,或需要較復(fù)雜的光流計(jì)算,實(shí)施起來(lái)較為復(fù)雜。
針對(duì)這種情況,本文采用GPS粗定位和圖像處理模塊相結(jié)合的方法,通過(guò)GPS一鍵返航后的圖像處理模塊來(lái)控制無(wú)人機(jī),實(shí)現(xiàn)室外應(yīng)用場(chǎng)景中無(wú)人機(jī)的精準(zhǔn)降落。該系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單,硬件成本較低,可以改善僅依賴GPS定位降落的精度。
無(wú)人機(jī)采用大疆公司的A2[4]飛行控制模塊,該系統(tǒng)包括電源管理單元(PMU)、慣性測(cè)量單元(IMU)、GPS等主要單元。由A2飛行控制系統(tǒng)用戶手冊(cè)可知A2飛行控制系統(tǒng)的定位性能為:水平方向1.5 m,支持外接S-BUS、PPM等接收機(jī),使用者可通過(guò)系統(tǒng)接口獲取無(wú)人機(jī)當(dāng)前的狀態(tài)、位姿等信息,并通過(guò)簡(jiǎn)單的指令控制飛行。
圖像處理單元使用樹(shù)莓派3B+,它是一款基于ARM的微型電腦主板,具有PC的基本功能,該平臺(tái)能夠搭載Raspbian官方操作系統(tǒng),該系統(tǒng)上能夠安裝QT和Opencv的開(kāi)發(fā)環(huán)境。QT獨(dú)有的信號(hào)槽機(jī)制有利于消息的傳遞,適合本系統(tǒng)通信任務(wù)繁多的特點(diǎn)。Opencv屬于輕量級(jí)視覺(jué)庫(kù),樹(shù)莓派3B+能夠滿足該視覺(jué)庫(kù)運(yùn)行時(shí)對(duì)速度和內(nèi)存的要求[5]。
搭載開(kāi)發(fā)環(huán)境的樹(shù)莓派通過(guò)SBUS總線將主控制器與A2飛控連接,其余傳感器還包括攝像頭和超聲波測(cè)距模塊。
無(wú)人機(jī)精準(zhǔn)降落的控制流程如下:
步驟1)飛行控制模塊接收到自動(dòng)返航命令后,調(diào)取起飛時(shí)無(wú)人機(jī)起落機(jī)坪的GPS定位信息,并根據(jù)該GPS定位信息控制無(wú)人機(jī)進(jìn)行返航,直至無(wú)人機(jī)懸停在無(wú)人機(jī)起落機(jī)坪正上方高度H1處,H1為飛控中可編程實(shí)現(xiàn)的定高高度,然后發(fā)送樹(shù)莓派開(kāi)機(jī)指令,QT應(yīng)用程序自啟;樹(shù)莓派中的QT應(yīng)用程序初始化攝像頭和超聲波測(cè)距模塊;同時(shí)運(yùn)行步驟2)和步驟3)。
步驟2)QT應(yīng)用程序線程一,逐幀抓取攝像頭拍攝的圖像,每幀圖像經(jīng)過(guò)圖像處理算法得到起落機(jī)坪同心圓圓心像素級(jí)別坐標(biāo),該圓心像素級(jí)別坐標(biāo)是以攝像頭幾何中心為原點(diǎn)建立的坐標(biāo)系中的坐標(biāo),并將該圓心像素級(jí)別坐標(biāo)發(fā)送至線程二;其中,待處理的圖像緩存在隊(duì)列中。
步驟3)QT應(yīng)用程序線程二,計(jì)算機(jī)發(fā)送查詢高度指令,超聲波測(cè)距模塊查詢高度并將查詢到的無(wú)人機(jī)當(dāng)前高度H通過(guò)串口發(fā)送給樹(shù)莓派;將線程一的圓心像素級(jí)別坐標(biāo)代入坐標(biāo)轉(zhuǎn)換算法,得到對(duì)應(yīng)的無(wú)人機(jī)起落機(jī)坪同心圓圓心真實(shí)坐標(biāo);所述無(wú)人機(jī)當(dāng)前高度H為超聲波測(cè)距模塊相對(duì)于無(wú)人機(jī)起落機(jī)坪的高度。
如果孩子丟失了,家長(zhǎng)應(yīng)該怎么辦?第一,去跟孩子約定好的會(huì)合地點(diǎn),例如服務(wù)臺(tái)、售票口等有工作人員、標(biāo)志性地點(diǎn)且孩子熟悉好找的地方。第二,尋找工作人員或志愿者守住商場(chǎng)、超市游樂(lè)場(chǎng)所等出口,并對(duì)出入者仔細(xì)盤查。第三,在孩子丟失地點(diǎn)的四個(gè)不同方向進(jìn)行尋找,每個(gè)方向最少找20分鐘。第四,撥打報(bào)警電話,并準(zhǔn)確說(shuō)明孩子丟失情況,保持手機(jī)暢通。
步驟4)飛行控制模塊控制無(wú)人機(jī)水平移動(dòng),并實(shí)時(shí)按步驟2)和步驟3)獲取圓心真實(shí)坐標(biāo),直至圓心真實(shí)坐標(biāo)與紅外攝像頭幾何中心坐標(biāo)在橫縱軸的誤差值小于等于預(yù)設(shè)誤差值,則水平移動(dòng)完成;飛行控制模塊控制無(wú)人機(jī)垂直下降1 m,再進(jìn)入步驟5);所述預(yù)設(shè)誤差值范圍在0~30 cm間。
步驟5)超聲波測(cè)距模塊發(fā)送查詢高度指令,當(dāng)查詢到的H大于H2時(shí),重復(fù)步驟2)、步驟3)和步驟4)的方法,直至查詢到的H與H2相等,無(wú)人機(jī)精準(zhǔn)降落完成,其中,所述H2為無(wú)人機(jī)停機(jī)狀態(tài)超聲波測(cè)距模塊距離起落機(jī)坪的高度。無(wú)人機(jī)起落機(jī)坪如圖1所示(圓環(huán)由內(nèi)向外的顏色依次為黑、紅、黑、綠、黑、藍(lán)、黑),其中紅色圓環(huán)的半徑分別為10 cm、15 cm,綠色圓環(huán)的半徑分別為20 cm、30 cm,藍(lán)色圓環(huán)的半徑分別為35 cm、45 cm。這種設(shè)計(jì)能夠使無(wú)人機(jī)在下降過(guò)程中總是能檢測(cè)到圓的存在。流程圖如圖2所示。
圖1 無(wú)人機(jī)停機(jī)坪俯視圖Fig.1 Top view of UAV landing apron
無(wú)人機(jī)精準(zhǔn)降落算法包括兩部分:基于Opencv的圖像處理算法,用于獲取起落機(jī)坪的位置信息;將獲取的像素級(jí)別坐標(biāo)信息轉(zhuǎn)換為真實(shí)坐標(biāo)信息的坐標(biāo)轉(zhuǎn)換算法?;贠pencv的圖像處理算法流程圖如圖3所示,可描述為:
1)將當(dāng)前待處理的圖像記為Frame。
2)對(duì)Frame進(jìn)行灰度化處理,得到圖片記為midImage。
3)對(duì)midImage進(jìn)行閾值比較,得到midImage中所有同心圓中最外部圓輪廓的圖片,并記為destImage。
4)對(duì)destImage進(jìn)行圖像形態(tài)學(xué)處理和Canny邊緣檢測(cè)處理,得到destImage對(duì)應(yīng)的清晰輪廓灰度圖。
圖2 無(wú)人機(jī)著陸控制流程圖Fig.2 Control flow chart of UAV landing
圖3 圖像處理算法流程圖Fig.3 Flow chart of image processing algorithm
6)將1)中的Frame由RGB顏色空間模型轉(zhuǎn)換到HSV顏色空間模型下,得到HSV顏色空間模型下的圖片F(xiàn)rame,然后在HSV顏色空間模型下對(duì)Frame提取紅、綠、藍(lán)三種顏色,由于無(wú)人機(jī)在下降過(guò)程中視野會(huì)減小,提取到的色環(huán)可能是紅、綠、藍(lán)三色環(huán)或者是紅、綠兩個(gè)色環(huán)或者是紅色同心圓。
7)將6)中的提取到的色環(huán)由HSV顏色空間模型轉(zhuǎn)換到RGB顏色空間模型,分別得到在RGB顏色空間模型下對(duì)應(yīng)的色環(huán);然后再對(duì)RGB顏色空間模型下的色環(huán)分別按步驟2)、步驟3)和步驟4)的方法處理,得到提取到的色環(huán)對(duì)應(yīng)的灰度圖。
8)將步驟5)中無(wú)人機(jī)起落機(jī)坪同心圓圓心像素級(jí)別坐標(biāo)和步驟7)中得到的色環(huán)對(duì)應(yīng)的灰度圖作為參數(shù)代入到霍夫變換函數(shù),分別得到圓環(huán)半徑對(duì)應(yīng)的像素級(jí)別長(zhǎng)度;其中,最大同心圓半徑對(duì)應(yīng)的像素級(jí)別長(zhǎng)度記為Bpix/2。
在數(shù)字圖像處理的過(guò)程中,為了提高圖像處理的速度,通常會(huì)將需要處理的彩色圖像進(jìn)行灰度化處理,再將灰度化處理后的圖像進(jìn)行閾值比較二值化處理。灰度化處理采用平均值法,可表示為
經(jīng)過(guò)上述兩種方法的處理,不僅可以加快圖像處理的速度,還便于對(duì)圖像局部進(jìn)行處理,方便對(duì)目標(biāo)圖形調(diào)試和觀察。閾值比較方法是利用待檢測(cè)目標(biāo)和整個(gè)圖像的區(qū)別,把圖形分為兩個(gè)不一樣的灰度級(jí)別,選擇一個(gè)合適的閾值,即可得到需要對(duì)圖像后續(xù)處理的部分。由于在灰度化和二值化后得到的圖像具有較大的噪聲,故需對(duì)所得圖像進(jìn)行圖像形態(tài)學(xué)處理。圖像形態(tài)學(xué)可以用來(lái)解決抑制噪聲、特征提取、邊緣檢測(cè)、圖像分割、形狀識(shí)別、紋理分析、圖像恢復(fù)、圖像壓縮等圖像處理問(wèn)題。此處主要是利用圖像形態(tài)學(xué)處理中的膨脹和腐蝕[7]。膨脹腐蝕能夠消除去噪,分割單個(gè)圖像單元,在圖像中連接相鄰的元素,查找明顯的極大值區(qū)域和極小值區(qū)域,求出圖像的梯度等。通過(guò)膨脹腐蝕的操作,可以有效去除目標(biāo)圖像的噪聲,為后面霍夫圓檢測(cè)做準(zhǔn)備。
邊緣檢測(cè)算法有Sobel、Laplace、Canny等檢測(cè)算子。Sobel處理后的圖像邊緣有強(qiáng)有弱,抗噪性好;Laplace較為敏銳,一些噪音會(huì)包含進(jìn)入處理后的圖像中;Canny檢測(cè)后的邊緣較細(xì),分布較為均勻。由于前面做完了膨脹腐蝕操作,已過(guò)濾一部分邊緣噪聲,故采用Canny算法進(jìn)行邊緣檢測(cè)。
RGB顏色空間模型是由紅、綠、藍(lán)三原色構(gòu)成,其他各種顏色出現(xiàn)在紅、綠、藍(lán)的原色光譜分析中,該顏色空間模型在Opencv視覺(jué)庫(kù)中能夠?qū)崿F(xiàn)與灰度圖的相互轉(zhuǎn)化,但是不能提取某個(gè)區(qū)域特定的顏色,HSV是一種將RGB顏色空間的點(diǎn)在倒圓錐中表示的顏色空間模型,該模型用色相h、色彩飽和度s和亮度v來(lái)描述色彩。在Opencv視覺(jué)庫(kù)中,該顏色空間模型能夠提取區(qū)域特定顏色,但是不能將區(qū)域圖片轉(zhuǎn)化成灰度圖,因此采用HSV顏色空間提取起落機(jī)坪的色環(huán),然后轉(zhuǎn)化到RGB顏色空間進(jìn)行圖像處理,其中RGB顏色空間模型轉(zhuǎn)化到HSV顏色空間模型的公式可表示為
式中:r、g、b是圖片在RGB顏色空間模型下的分量,Mmax為r、g、b中的最大值,Mmin為最小值。h在0~360°之間,s在0~100%之間,v在0~max之間。
HSV顏色空間模型轉(zhuǎn)化到RGB顏色空間模型的公式為
對(duì)于每個(gè)顏色向量,有
式中:h、s、v為HSV顏色空間的色彩分量,hi、x、y、z、f為變量。
由感光器件成像原理可知,感光元器件將光信號(hào)轉(zhuǎn)換為電信號(hào),通過(guò)模數(shù)轉(zhuǎn)換器將高低不同的電信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。因此在圖像處理算法中獲取的停機(jī)坪圓環(huán)信息是在攝像機(jī)感光元件上的像素坐標(biāo)信息,下面將介紹將像素坐標(biāo)轉(zhuǎn)換為真實(shí)坐標(biāo)的算法。
感光元件成像示意圖如圖4所示,圖中Spix表示攝像機(jī)中像素點(diǎn)固定數(shù)量,L為攝像機(jī)的焦距,a為如圖所示感光器件與視野中起落機(jī)坪圓環(huán)建立的幾何圖形角度的一半,b為攝像頭的最大視角的一半,R為攝像頭視野中的同心圓環(huán)中最外圓環(huán)的半徑,由幾何關(guān)系得
圖4 感光元件成像圖Fig.4 Imaging diagram of photosensitive element
則有
進(jìn)一步得到
對(duì)于特定成像元件來(lái)說(shuō),Spix、tanb為常數(shù),令k=tanb/Spix,則有
根據(jù)無(wú)人機(jī)精準(zhǔn)降落圖像處理算法中的步驟5)所得的像素級(jí)別坐標(biāo)乘以比例系數(shù)k,得到紅外攝像頭幾何中心相對(duì)于同心圓圓心的真實(shí)坐標(biāo)。截?cái)噙b控信號(hào)接收模塊的信號(hào),樹(shù)莓派生成飛控SBUS指令,通過(guò)三極管接入到飛行控制模塊,即通過(guò)自己模擬遙控桿量的方式[5]實(shí)現(xiàn)控制無(wú)人機(jī)水平移動(dòng)。
根據(jù)圖像處理算法的思想及實(shí)現(xiàn)方法,在樹(shù)莓派中安裝QT開(kāi)發(fā)環(huán)境,在QT中加載Opencv視覺(jué)庫(kù)來(lái)編寫(xiě)程序,無(wú)人機(jī)在下降過(guò)程中,起落機(jī)坪圖片經(jīng)圖像處理算法處理后的結(jié)果如圖5所示。圖5(a)是無(wú)人機(jī)降落過(guò)程中,起落機(jī)坪俯視圖經(jīng)過(guò)灰度化、二值化和形態(tài)學(xué)處理后的圖片,圖5(b)是圖5(a)經(jīng)過(guò)Canny檢測(cè)后所得到的視圖邊緣輪廓,圖5(c)~(e)是對(duì)應(yīng)照片經(jīng)過(guò)HSV顏色空間下的處理,提取得到的特定顏色圖,通過(guò)計(jì)算轉(zhuǎn)換到RGB色空間后,經(jīng)過(guò)形態(tài)學(xué)處理得到該視圖下的同心圓半徑,并通過(guò)程序篩選得到最大同心圓半徑。
圖5 (a)灰度二值化和形態(tài)學(xué)處理;(b)Canny邊緣檢測(cè);(c)~(e)在HSV顏色空間中提取不同的色塊Fig.5 (a)Gray-scale binarization and morphological treatment;(b)Canny edge detection;(c)~ (e)Different color blocks extracted in HSV color space
經(jīng)過(guò)上述步驟得到的坐標(biāo)信息,需經(jīng)過(guò)坐標(biāo)轉(zhuǎn)換算法轉(zhuǎn)換為真實(shí)坐標(biāo)信息,如表1所示為測(cè)試的不同高度下像素大小與圓環(huán)半徑的關(guān)系,圖6為數(shù)據(jù)的線性擬合,其中線性擬合的橫坐標(biāo)X=HmBpix,Rm為圓環(huán)半徑大小,Bpix為像素點(diǎn)的個(gè)數(shù),Hm為攝像頭距離圓環(huán)的距離。
表 1像素大小與圓環(huán)半徑的關(guān)系Table 1 Relationship between the size of pixels and radius of torus
根據(jù)無(wú)人機(jī)的飛行控制流程,選取無(wú)人機(jī)的返航高度20、15、9、6、3 m,分別對(duì)應(yīng)圖5的第1~5行的圖片,返航時(shí)獲取的同心圓靶圓心坐標(biāo)的橫坐標(biāo)乘以比例系數(shù)k作為無(wú)人機(jī)降落精度的衡量,如表2所示。
表 2無(wú)人機(jī)著陸點(diǎn)誤差比較Table 2 Error comparison of UAV landing point
針對(duì)傳統(tǒng)的無(wú)人機(jī)自動(dòng)返航時(shí)降落精度誤差大的問(wèn)題,在解決方案中提出了將攝像頭置于無(wú)人機(jī)上,通過(guò)在高性能的微控制器中實(shí)現(xiàn)圖像處理算法來(lái)獲取無(wú)人機(jī)相對(duì)于起落機(jī)坪的相對(duì)位置,通過(guò)模擬桿量的方法來(lái)控制無(wú)人機(jī)的運(yùn)動(dòng),通過(guò)多次無(wú)人機(jī)姿態(tài)的調(diào)整來(lái)實(shí)現(xiàn)無(wú)人機(jī)的精準(zhǔn)降落。實(shí)驗(yàn)表明所設(shè)計(jì)方案在無(wú)人機(jī)懸停在15~20 m時(shí),無(wú)人機(jī)能夠識(shí)別無(wú)人機(jī)停機(jī)坪的圖片,并控制無(wú)人機(jī)進(jìn)行降落,由表2可知與只有GPS定位的無(wú)人機(jī)降落相比精度有了明顯提高。
圖6 數(shù)據(jù)線性擬合Fig.6 Linear fitting of data
提出了基于機(jī)器視覺(jué)的無(wú)人機(jī)同心園靶精準(zhǔn)降落方法,該方法中的圖像處理算法依托搭載在無(wú)人機(jī)上的圖像處理模塊直接與飛行控制系統(tǒng)進(jìn)行通信。采用GPS粗定位和圖像處理算法二者結(jié)合,來(lái)獲取無(wú)人機(jī)距目標(biāo)靶的水平距離差,通過(guò)模擬遙控器桿量的方式來(lái)控制無(wú)人機(jī)運(yùn)動(dòng)。實(shí)驗(yàn)表明所涉及的方法能夠穩(wěn)定識(shí)別同心圓并實(shí)現(xiàn)無(wú)人機(jī)精準(zhǔn)降落。