成海秀,陳河源,曹惠茹,徐欣桐,黃暢
(1.中山大學(xué)南方學(xué)院電氣與計算機工程學(xué)院,廣州 510970;2.廣東工程技術(shù)職業(yè)學(xué)院信息工程學(xué)院,廣州 510075)
無人駕駛飛機(unmanned aerial vehicle,UAV)是利用無線電遙控設(shè)備和自備的程序控制裝置操控的不載人飛機,簡稱無人機[1]。無人機具有方便攜帶、體積小、低成本、質(zhì)量輕、操作靈活等優(yōu)點[2-5],在眾多領(lǐng)域具有廣泛的應(yīng)用前景,例如交通檢查、電力巡檢、資源勘探、森林防火、大氣監(jiān)測、航拍等[6-8]。隨著無人機技術(shù)和傳感器技術(shù)的急速發(fā)展,兩者的充分結(jié)合孕育出了許多功能各異的飛行器,這使得無人機在軍事和商業(yè)上的應(yīng)用成為一種可行的選擇。然而現(xiàn)有的大部分無人機仍然采用人為遠程操控和跟蹤預(yù)定的航跡[9-10]。因此本文設(shè)計一款能智能跟蹤目標(biāo)的無人機目標(biāo)跟蹤系統(tǒng)。
無人機跟蹤系統(tǒng)設(shè)計中,視覺識別跟蹤技術(shù)是研究無人機跟蹤的關(guān)鍵領(lǐng)域[11-14],對于無人機的發(fā)展而言,更是必不可少。根據(jù)目標(biāo)的不同,視覺跟蹤技術(shù)可以分為對人的跟蹤和對物的跟蹤兩種類型[15-16]。對人的跟蹤需要考慮人的動作姿態(tài)等問題,識別難度較高,而對物的識別主要是從大小、形狀和顏色的特征進行識別,在圖像中獲取物體的外部特征信息通常是固定不變的,識別難度較小。因此本系統(tǒng)中無人機對目標(biāo)的跟蹤是通過顏色視覺識別技術(shù)和超聲波測距技術(shù)對物的跟蹤進行的。
傳統(tǒng)視覺識別主要存在的問題如下。
(1)數(shù)據(jù)量大,實時性差。例如傳統(tǒng)的視覺識別傳感器在獲取圖像信息時不可避免地會產(chǎn)生大量的數(shù)據(jù),實時性較差[17]。
(2)對處理器要求比較高。在視覺識別中,處理器要實時性獲取圖像信息,大部分處理器的性能無法支撐,往往需要依賴計算能力強大的遠端主機來完成。
為了解決傳統(tǒng)無人機視覺跟蹤由于目標(biāo)的快速移動而導(dǎo)致的無人機與被跟蹤目標(biāo)易發(fā)生碰撞的問題,本文采用超聲波測距模塊與Pixy2傳感器模塊相結(jié)合的方式進行無人機目標(biāo)跟蹤。本文中的無人機目標(biāo)跟蹤系統(tǒng)中的開發(fā)機飛行控制是在無人機體上使用Arduino Mega 2560 主控板結(jié)合超聲波模塊測距數(shù)據(jù)和Pixy2傳感器模塊的顏色識別數(shù)據(jù)綜合進行的。
Pixy2 CMUcam5 視覺傳感器是一款具有圖像處理能力的開源視覺傳感器[18],使用色調(diào)過濾算法(hue-based color filtering algorithm)對目標(biāo)圖像進行處理,可以從一幀完整的圖像中提取出需要的顏色數(shù)據(jù),傳感器模塊內(nèi)置的專用處理器對所獲得顏色數(shù)據(jù)進行處理后,傳輸?shù)紸rduino或者其他適配的微控制器中。傳統(tǒng)的圖像識別處理,通常由微控制器負(fù)責(zé)全局的數(shù)據(jù)處理。 而使用Pixy2 CMUcam5視覺傳感器時,其自帶的具有圖像處理功能的處理器可以獨立完成圖像方面的數(shù)據(jù)處理,大大減輕了微處理器的工作負(fù)擔(dān),使得微控制器可以進行更多更為復(fù)雜的操作。Pixy2 CMUcam5視覺傳感器如圖1所示。
圖1 Pixy2傳感器
Pixy2傳感器最高支持7種顏色,具有強大的多色彩顏色識別及色塊追蹤能力,圖像識別容易,支持多物體識別。目標(biāo)跟蹤系統(tǒng)在通過Pixy2模塊進行目標(biāo)跟蹤時,提前將與被跟蹤物體相同的顏色進行記錄存儲。其可以同時識別多個物體,具備優(yōu)秀且快速的圖像處理能力,只需要16.7 ms就能完成對一幀圖像的處理。在實際的識別跟蹤中,Pixy2可以每16.7 ms對物體的位置進行完整更新,應(yīng)對快速移動中的物體也能做到很好地識別跟蹤。
Pixy2 支持多種通信接口,例如常用的UART 串行、SPI、I2C、USB、數(shù)字I/O、模擬I/O等,通過USB線連接到計算機的PixyMon,當(dāng)PixyMon 運行后,你會看到如下信息“Pixy programming state detected”在PixyMon 的命令窗口區(qū)。此時Pixy2 與計算機連接成功,然后就可以對Pixy2 傳感器進行功能設(shè)置和調(diào)試,提高檢測精度。本文設(shè)計的無人機目標(biāo)跟蹤系統(tǒng)使用FC-10P轉(zhuǎn)FC-6P連接線將Pixy2連接到Arduino Mega 2560開發(fā)板的ICSP接口上,使得無人機系統(tǒng)可以每秒完成60幀畫面的處理,實現(xiàn)了無人機對目標(biāo)物體移動的快速跟蹤響應(yīng)。PixyMon軟件演示效果圖如圖2所示。
圖2 PixyMon軟件演示效果圖
圖3 超聲波模塊HC-SR04
HC-SR04 超聲波模塊是一種可以提供2~400 cm 的距離感測功能的傳感器,可測量精度達到3 mm。模塊由超聲波發(fā)射器、接收器與控制電路組成,如圖3所示。
超聲波模塊啟動時,需要給至少10 μs 的高電平脈沖信號,觸發(fā)引腳Trig。HC-SR04會持續(xù)發(fā)出8個40 kHz的方波,不斷檢測信號值是否有返回。檢測到返回信號后引腳Echo輸出一個高電平脈沖,高電平脈沖的持續(xù)時間從超聲波發(fā)射到反射返回。計算公式:距離=(高電平脈沖時間×340)/2。HC-SR04模塊可以不斷檢測無人機周圍的環(huán)境情況,輔助無人機目標(biāo)跟蹤系統(tǒng)的運行。
本文設(shè)計的無人機目標(biāo)系統(tǒng)機構(gòu)如圖4 所示。各部分的主要功能如下。
(1)Pixy2傳感器模塊。該模塊負(fù)責(zé)對指定物體進行視覺識別,并根據(jù)指定物體相對攝像頭的位置將物體的大小和位置信息發(fā)送給主控板的ICSP端口。
圖4 Pixy2視覺識別無人機跟蹤硬件系統(tǒng)結(jié)構(gòu)
(2)超聲波模塊。該模塊負(fù)責(zé)對指定物體進行測距,將超聲波發(fā)射模塊與超聲波接收模塊的數(shù)據(jù)發(fā)送到主控板I/O口。
(3)無線模塊。該模塊主要由遙控器與接收機組成,接收機將6個通道遙控的信號發(fā)送到主控板I/O口。
(4)主控模塊。系統(tǒng)采用配置了ATmega256處理器的Arduino Mega 2560 開發(fā)板作為主控板。其主要功能包括接收來自Pixy2 傳感器模塊的視覺識別信號與超聲波模塊的距離信號,根據(jù)指定物體獲取信息中的大小和位置數(shù)據(jù),判定物體相對攝像頭的運動關(guān)系;根據(jù)指定物體相對攝像頭的運動關(guān)系,判決無人機應(yīng)采取的飛行姿態(tài)。
(5)無人機體。無人機體采用F450 機架、XXD 電機1000 kV馬達、XXD30A電調(diào)、1045正反槳、2200 mAh鋰電池。
本文Arduino IDE開發(fā)環(huán)境下完成了系統(tǒng)的軟件設(shè)計。首先將需要的端口進行定義,編寫函數(shù)指令,將傳感器數(shù)據(jù)與遙控器油門通道數(shù)據(jù)結(jié)合,實現(xiàn)對指定目標(biāo)進行識別跟蹤,獲得目標(biāo)顏色、橫縱向位移、水平距離等參數(shù),根據(jù)獲得數(shù)據(jù)改變無人機的飛行軌跡。因此分為5個模塊功能:
(1)Pixy2 代CMUcam 5 模塊對跟蹤目標(biāo)的顏色、目標(biāo)的移動位移;
(2)超聲波模塊檢測目標(biāo)物體與無人機的水平距離;
(3)Arduino Mega 2560 作為處理中心,處理整套無人機控制系統(tǒng)數(shù)據(jù);
(4)接收機向Arduino Mega 2560傳輸遙控數(shù)據(jù);
(5)qq 飛控接受Arduino Mega 2560 處理好的傳感器數(shù)據(jù)控制無人機飛行。
圖5 無人機跟蹤系統(tǒng)工作流程
系統(tǒng)供電后,Pixy2中間的LED閃爍后熄滅,模塊啟動正常,按壓Pixy2上方的黑色按鈕,大約1 s后,LED亮起白燈,待LED變?yōu)榧t色后松開按鈕,Pixy2會進入“l(fā)ightpipe”模式,LED的顏色與被測物體的顏色匹配時,Pixy2的LED會亮起與被測物體顏色相同的燈光,此時按下頂部按鈕松開,即完成顏色的記錄。LED燈的亮度與物體色調(diào)的飽和度成正比,所以亮度越高越好。
進行系統(tǒng)測試時,使用PixyMon軟件進行校準(zhǔn)和設(shè)置。首先打開PixyMon軟件進行Pixy2的校準(zhǔn)和設(shè)置。
當(dāng)軟件運行后,Pixy2 視覺傳感器模塊上的LED 會關(guān)閉,此時在屏幕上PixyMon 的命令窗口區(qū)會看到“Pixy programming state detected”這樣的信息,然后就可以對多個被測物體的視覺特征進行定義。待Pixy2 配置好后,打Arduino IDE 軟件運行系統(tǒng)代碼,通過Arduino IDE 的串口助手測試Pixy2 模塊與超聲波模塊是否正常工作。即完成了整個系統(tǒng)的測試前準(zhǔn)備。視覺識別無人機現(xiàn)場如圖6所示。
圖6 無人機跟蹤測試
準(zhǔn)備8 張彩色A4 紙,顏色分別為紅、黃、藍、綠、紫、青、黑、灰等8個RGB格式下典型色彩,然后將顏色不同的A4紙與無人機在不同光照環(huán)境下進行識別范圍的測試,每種顏色A4紙測試15次,取其平均值。
測試超聲波模塊的識別距離,測15次,取其平均值。
(1)同一顏色在不同的光照環(huán)境下,Pixy2傳感器識別的準(zhǔn)確性與距離有所不同,在光照充足的環(huán)境下,青色與藍色有效識別的距離較遠,在弱光環(huán)境下,青色與黃色有效識別距離較遠。黑色與灰色在整個實驗過程中均無法有效識別,與Pixy2傳感器識別算法的預(yù)期結(jié)果一致,測試結(jié)果如圖7所示。由于Pixy2傳感器采用的是色調(diào)過濾算法,受環(huán)境光照影響較大,在不同的光照下攝像頭獲取到的圖像信息有所差異,所以圖像識別的距離和準(zhǔn)確度都會受到環(huán)境的影響。相對而言,環(huán)境亮度越高,Pixy2傳感器對目標(biāo)的識別距離越遠。
圖7 光照強度與識別距離及色調(diào)差異
(2)超聲波模塊的有效測試距離為183 cm,與超聲波模塊的預(yù)期效果一致。
通過以上測試結(jié)果分析可知,Pixy2傳感器的硬件配置和軟件算法仍有很大的改進空間。在實際的視覺識別中,可以參考上述數(shù)據(jù),根據(jù)所在環(huán)境的光照需要,設(shè)置合適的跟蹤距離。
將多種顏色混合與形狀不同的目標(biāo)物體做進一步測試,對系統(tǒng)的視覺識別和自動跟蹤性能進行測試。實驗結(jié)果表明,該無人機目標(biāo)跟蹤系統(tǒng)對長方形、正方形、圓形等相對飽滿的物體與顏色相對單一的物體識別率較高,跟蹤響應(yīng)速度快,并能夠?qū)Χ鄠€物體進行識別跟蹤。因此本文設(shè)計的無人機目標(biāo)跟蹤系統(tǒng)可以有效地完成對色塊的識別和對運動物體的跟蹤。
本文設(shè)計的無人機目標(biāo)跟蹤系統(tǒng)經(jīng)實驗檢驗,能夠?qū)σ?guī)則形狀和顏色的物體進行視覺識別,并且能使無人機實現(xiàn)自動跟蹤。該無人機通過使用Pixy2 傳感器、超聲波傳感器和Arduino Mage 2560 主控板對無人機進行控制,為視覺識別技術(shù)在無人機領(lǐng)域的應(yīng)用進行了實踐探索。該無人機的整體設(shè)計,在進一步完善后有望應(yīng)用到更復(fù)雜的無人駕駛系統(tǒng)中。目前,無人機目標(biāo)跟蹤系統(tǒng)存在以下問題需要進一步完善:
(1)Pixy2 傳感器在實際工作中對被測物體的顏色飽和度、形狀大小及其所處的環(huán)境光照強度有著很高的要求,需要進一步完善算法、提升性能;
(2)目前Pixy2傳感器固定安裝在無人機上,只能檢測前方180°視角的物體,通過加裝可移動云臺增加Pixy2的可檢測范圍;
(3)由于超聲波模塊的局限性,該系統(tǒng)的有效跟蹤距離較短,需要進一步優(yōu)化傳感器的算法;
(4)對于無人機的防碰撞性,目前只能防止與正面物體發(fā)生碰撞,需要加裝更多的超聲波模塊達到全方位防碰撞。