辛長浩 常玉克 趙宏智 張彬
摘? 要:文章針對四旋翼無人機與動態(tài)目標組成的系統(tǒng)協(xié)同作業(yè)的任務,研究四旋翼無人機與動態(tài)目標的目標識別和目標跟蹤問題。設計由單目相機、視覺計算機(樹莓派3B)和飛行控制系統(tǒng)組成的自主跟蹤控制系統(tǒng)框架,利用Camshift運動目標識別算法對目標位置進行識別并預測動態(tài)目標運動軌跡,通過Mavlink協(xié)議將無人機的位置信息實時發(fā)送給飛行控制系統(tǒng),從而控制無人機進行動態(tài)目標跟蹤。實現(xiàn)無人機對動態(tài)目標的目標識別,目標跟蹤。
關鍵詞:四旋翼無人機;動態(tài)目標;目標跟蹤
中圖分類號:V279? ? ? ? ? 文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2020)08-0046-03
Abstract: Aiming at the task of cooperation between four-rotor UAV and dynamic target, this paper studies the target recognition and tracking of four-rotor UAV and dynamic target. An autonomous tracking control system framework is designed, which is composed of a monocular camera, a vision computer (raspberry pie 3B) and a flight control system. The Camshift moving target recognition algorithm is used to identify the target position and predict the dynamic target trajectory. The position information of the UAV is sent to the flight control system in real time through the Mavlink protocol, so as to control the UAV for dynamic target tracking and realize the target recognition and target tracking of the UAV to the dynamic target.
Keywords: four-rotor UAV; dynamic target; target tracking
引言
隨著現(xiàn)代科學技術的不斷發(fā)展,四旋翼無人機的單獨工作能力已逐步提高。但是現(xiàn)實中的很多問題由單個無人機完成并不是完成任務的最佳方式,需要由四旋翼無人機和其他動態(tài)目標來組成一個系統(tǒng)共同完成。對空中無人機與動態(tài)目標構成的系統(tǒng)協(xié)同合作問題的研究,是當前無人機技術領域研究的前沿課題之一。四旋翼無人機在執(zhí)行目標識別與跟蹤任務時,需要重點解決以下兩個關鍵問題:首先,傳統(tǒng)的無人機目標跟蹤研究大多采用GPS定位技術,但是GPS信號受環(huán)境影響較大,無法對動態(tài)目標進行穩(wěn)定的識別和跟蹤;其次,在進行目標跟蹤時,需要對無人機機載相機所拍攝視頻進行實時分析,準確識別并跟蹤動態(tài)目標。因此,本文對空中無人機與動態(tài)目標構成的系統(tǒng)協(xié)同合作問題進行深入研究,進而提高工作效率。
1 整體框架
目標物體的搜索鎖定與跟蹤由硬件與軟件兩部分組成。硬件部分由單目相機,微型視覺計算機和飛控組成。單目相機將拍攝的周圍視頻信息傳輸?shù)轿⑿鸵曈X計算機中,微型視覺計算機在視頻中逐幀識別提取出目標物,并將目標在圖像中的位置轉化為無人機坐標系下的位置,同時將轉化后的位置信息發(fā)送到四旋翼無人機飛控,以控制無人機實現(xiàn)目標跟蹤。
1.1 單目相機
單目相機可以實時拍攝無人機周圍的視頻信息,如周圍的各種障礙物,以及目標物。由于無人機在飛行過程中會受到各種干擾因素導致機身輕微晃動,使得相機拍攝畫面模糊不穩(wěn)定,因此需要選擇高清晰度,高幀率,具有防抖功能的運動相機。同時為了盡可能使拍攝內容更多,最后我們選擇了山狗C4高清運動記錄儀。
1.2 微型視覺計算機
微型視覺計算機的功能是處理單目相機拍攝的視頻信息,并將相關信息傳送給飛控。因為無人機運動速度較快,運動形式較復雜,所以對視頻信息清晰度與視頻幀率要求較高。微型計算機要有快速的運算處理能力,同時在重量體積上也有一定限制。最后我們選擇了RaspberryPi3b+開發(fā)板,其具有64位1.4GHz的CPU,足以支持視覺跟蹤方面的計算。
我們選擇Apsync為RaspberryPi的操作系統(tǒng),DroneKit-Python以控制飛控,Open-cv以進行視頻圖像處理。Apsync是專用于無人機機載電腦的Linux發(fā)行版本。Apsync內置很多實用功能,不必再對RaspberryPi進行繁瑣配置,DroneKit提供了用于控制無人機的API,代碼獨立于飛控,單獨運行在RaspberryPi上,通過串口或無線的方式經(jīng)MAVLink協(xié)議與飛控通信。
微型視覺計算機具有視頻讀取,目標識別,目標位置處理三個主要功能:
(1)視頻讀取
單目相機將拍攝的30幀/s的周邊視頻信息讀取到相關程序中,實現(xiàn)對無人機周邊環(huán)境信息和目標信息的輸入。
(2)目標識別
RaspberryPi對讀取到的視頻信息進行分析處理,識別到目標物,并加以鎖定標記。
(3)目標位置處理
RaspberryPi處理后的目標位置信息是在圖像坐標系下的位置,不能直接用于飛行控制,因為還需要將其通過坐標轉換算法轉化為無人機坐標系,最后發(fā)送到飛控中以控制無人機飛行。
1.3 飛行控制系統(tǒng)
在飛控方面,我們選擇的是Pixhawk,Pixhawk價格便宜、功能強大,是一款基于ARM芯片的32位開源飛控,采用了ST先進的處理器M4架構,同時搭載了NuttX實時系統(tǒng),且有一個自定義的PX4底層驅動來確保全周期的實時處理,成熟典型的內外環(huán)控制結構來對無人機姿態(tài)和位置進行控制調整。
(1)位置與速度控制器
如圖1所示,由位置控制器和速度控制器兩部分組成,均選擇GPS和光流傳感器作為反饋信號源。位置控制器通過反饋獲取無人機的位置信息x,y,并根據(jù)位置給定,通過PID控制方法計算處理,并作為速度環(huán)節(jié)的輸入。速度控制器通過反饋信號源獲取無人機的速度信息Vx,Vy,并根據(jù)位置環(huán)輸出的速度給定,通過PID控制方法計算處理,并作為姿態(tài)控制器的輸入。
(2)姿態(tài)控制器
如圖2所示,姿態(tài)控制器由兩個閉環(huán)組成。內環(huán)基于載體坐標系,是角速度控制環(huán),采用P控制,其反饋信號為陀螺儀角速度輸出p,q,r。外環(huán)為角度控制環(huán),采用PID控制,基于大地坐標系,其姿態(tài)角采用歐拉角表示。
2 基于圖像的目標跟蹤
為了實現(xiàn)無人機基于單目攝像頭的動態(tài)目標跟蹤,主要步驟分為:(1)四旋翼無人機在平穩(wěn)起飛后基于視覺識別系統(tǒng)和檢測算法自主搜索并識別地面目標。(2)利用Meanshift算法對目標位置進行濾波和運動預測跟蹤地面運動平臺,實現(xiàn)無人機對運動平臺實時捕捉。(3)從Meanshift算法中獲取無人車的位置和速度信息,設計基于預測控制的無人機軌跡跟蹤控制器實現(xiàn)無人機對無人車的跟蹤。
2.1基于機器視覺的運動目標識別
對于Meanshift算法可以快速找到領域目標中相似的部分,面對需要自適應跟蹤目標的情況,最終采取了其改良算法Camshift?;贑amshift的原理,便于提高精度我們采取了黃色目標作為其動態(tài)識別的目標。
軟件部分主要采用Python-Opencv及Camshift通過計算跟蹤目標HSV空間下的HUE分量直方圖,通過分量直方圖反向投影得到目標像素的概率分布,然后通過調用Opencv庫中的Camshift算法,自動跟蹤并調整目標窗口的大小與中心位置。其主要分為以下部分:
(1)對單目攝像頭攝取的視頻進行反向投影。鑒于RGB顏色空間中對于亮度的變換較為敏感,便先對圖像進行了RGB到HSV空間的轉變,從而減少光照亮度變化所帶來的對于目標跟蹤效果的不良影響。
(2)對其中H分量做直方圖。假設攝取到的圖像中共有N個像素,每個像素都是有H、S、V三個部分組成,直方圖有M幀,黨像素的S和V值都處于初始閾值時,H值便被計入直方圖。
(3)利用目標的顏色直方圖將攝像頭拍攝到的目標畫面轉換為顏色概率分布圖,第一步初始一個搜索窗口,再根據(jù)上一幀圖像得到結果自適應的調整搜索窗口的位置及其大小,從而定位到目標的中心位置。
2.2 無人機自主控制算法
采用Python-Dronekit以及Ardupilot所提供的TISL模擬器在MissonPlanner及MAVproxy兩個地面站進行基本操作模擬,后在樹莓派上使用Python-Dronekit通過MAVlink來向PIX飛控發(fā)送和獲取信息,通過運動目標識別所得到的與無人機的坐標關系,從而調整無人機運動狀態(tài)。
硬件部分主要由單目攝像機、視覺計算機(樹莓派3B)和飛控(PIX)組成,單目相機將拍攝的四旋翼無人機周圍視頻信息傳輸?shù)揭曈X計算機中;視覺計算機在視頻流中識別并提取被追蹤的目標,計算出所追蹤目標在圖像中的實時位置,同時將此位置信息通過Mavlink協(xié)議發(fā)送到無人機飛行控制系統(tǒng),把圖像坐標下的位置信息轉換到三維機體坐標系中。采取通過計算無人機與目標之間相對高度和偏航角度來精確預估地面目標在無人機坐標系下的三維位置信息。后通過xyz坐標與期望xyz之間差值,及偏航角的前后差值做微分得到速度和角速度,通過Mavlink返回給飛控,以指導無人機實現(xiàn)動態(tài)目標跟蹤。
3 目標追蹤實驗過程
實驗過程,總體分為計算機上的軟件模擬和實際中的目標追蹤。為了提高追蹤的準確性和有效性,所選擇的追蹤目標為單一顏色的物體。在實驗現(xiàn)場中,我們還適當增加小物體從鏡頭前飛過,短暫擋住追蹤目標,以測試無人機的抗干擾能力。此外,我們還設計了目標物體的轉彎,測試無人機追蹤的小規(guī)模預測航線能力。
實驗中,四旋翼無人機需要對地面上的物體進行鎖定以及實時追蹤。實驗的具體流程包括以下幾方面:
(1)在進行實體操作演示之前,需要對程序的可靠性和準確性進行評估。采用Python-Dronekit以及TISL模擬器在Misson Planner及MAVproxy兩個地面站進行基本操作模擬,模擬四旋翼無人機起飛、追蹤目標、降落過程。
(2)進行實際操作,對無人機進行系統(tǒng)狀態(tài)檢查,其中包括校準調試、GPS信號接收等。
(3)設定飛機距離地面2.5m處恒高度飛行。無人機先升高到指定高度,開始搜索目標物體;待無人機搜索到目標物體后,無人機開始計算目標與無人機之間的距離目標在機體坐標下的位置等,目標物體的必要坐標信息,并開始進入追蹤模式,與目標物體延同方向前進。
(4)在無人機飛行途中,使用不透明紙板短暫遮擋攝像機鏡頭(或者短暫遮擋住目標體),使無人機短暫失去追蹤物體的信息,無人機先維持原狀態(tài)飛行,若失去目標信息時間超出設定時間10s,則發(fā)出報警指令;若追蹤目標在指定時間內復現(xiàn),則重新進行搜索模式,重新確定目標物體的必要坐標信息之后,繼續(xù)開始進入追蹤模式。
(5)在無人機飛行途中,檢測無人機對于飛行航線的預測能力,小幅度改變目標物體的運動軌跡(適當超出鏡頭的覆蓋范圍),無人機根據(jù)目標物體“失蹤”前運行軌跡、趨勢,重新進入高級搜索模式,無人機以5°/s 的速度繞機體坐標系Z 軸做旋轉運動搜索目標;若旋轉360°未搜索到目標物體,則發(fā)出報警指令;若尋找到目標物體,則重新進行搜索模式,重新確定目標物體的必要坐標信息之后,繼續(xù)開始進入追蹤模式。
(6)將計算出的目標相對位置信息通過Mavlink協(xié)議發(fā)送到無人機飛行控制系統(tǒng)中。該位置信息作為四旋翼無人機的位置控制系統(tǒng)的輸入,指導無人機到達該位置,實現(xiàn)對目標的跟蹤。
4 結束語
本文對于四旋翼無人機的動態(tài)目標跟蹤進行了研究,設計了基于Camshift的無人機跟蹤動態(tài)目標的系統(tǒng),并得到了較好的實驗效果。對于Camshift算法本身的問題進行了代碼優(yōu)化,例如面對遮擋物,容易出現(xiàn)丟失目標物體的問題,實驗過程中也展現(xiàn)出了較好的可靠性,更加接近實際場景。但是依然有很多需要改進的地方,例如為了提高精度對跟蹤目標進行了特殊顏色處理,僅能高效率地跟蹤個別物體,以及目前相機的抖動帶來的準確性問題。我們會在后續(xù)的研究中從算法及機械結構來改善實驗結果。
參考文獻:
[1]連鑫,楊化斌.基于DSP的四旋翼飛行器視覺導航避障系統(tǒng)研究[J].信息通信,2017,179(11):69-71.
[2]胡海兵,汪國慶,賴重遠,等.四旋翼無人機自主避障系統(tǒng)的設計與實現(xiàn)[J].現(xiàn)代電子技術,2018,41(22):133-137.
[3]張舸,伊國興,高翔.基于視覺導航的旋翼無人機自主降落系統(tǒng)[J].傳感器與微系統(tǒng),2018,37(9):77-83.
[4]李國仁,年曉紅,周志豪.基于視覺的四旋翼無人機目標跟蹤研究[J].控制與信息技術,2018(6):68-72.