馮新宇,王賀磊,蔣洪波
(黑龍江科技大學電氣與控制工程學院,哈爾濱 150022)
四旋翼無人飛行器測量方位采用慣導器件實現,而室外測量通常采用GPS的方法,激光雷達和超聲波器件用于避障。在城市的狹小空間或者敵對環境下這種方式是不可靠的[1-3]。引入計算機視覺技術來實現更復雜的任務是無人機技術的發展趨勢,如目標跟蹤、軍事偵查、電力巡檢等[4]。目前小型四旋翼飛行器的自主飛行通過自駕儀模塊實現,半自主飛行一般通過遙控器實現[5]。飛行器在飛行過程中,空間的絕對位置獲取是飛行安全的重要指標之一[6]。目前利用計算機視覺和慣性導航器件相結合以準確估計無人機位置和方位已成為發展的主流。視覺實現部分自主飛行的算法包括:跟蹤FAST算法[7]、SIFT算法[8]、SURF算法[9]、Harris檢測算法[10]等。這些算法不是專用的巡線算法,在小型四旋翼飛控運行響應時間較長,響應時間超過100ms。在特定的領域應用,兼顧圖像處理和飛行控制是小型四旋翼飛行器主要面臨的問題。本文在設計了基于STM32F407微控制器的四旋翼飛行器基礎之上,分析幾種經典圖像處理算法的基礎上,提出一種自主巡線圖像快速檢測算法,滿足小型微控制器的處理要求,能快速感知路徑的信息,按規定的路線完成飛行任務。
四旋翼飛行器飛行的參照飛行目標設定為深色黑線。圖像處理的核心就是短時間快速識別這條路線,保證飛行器在高速飛行過程中快速響應,保證正常的飛行姿態。本文針對傳統圖像處理算法并不能完全滿足一些特定場合的飛行需求,提出一種圖像融合處理算法控制四旋翼按指定路徑飛行,原理如圖1所示。
系統上電后完成初始化攝像頭,進入圖像數據準備就緒狀態,通過STM32F407微控制器獲取圖像數據。在不影響圖像質量的前提下,為了保證信息處理實時性,本文處理黑白圖像,以減少數據量提高運行的速度。利用采集處理的數據融合PID算法實現對四旋翼飛行器的空間絕對位置的控制。

圖1 圖像處理流程
算法核心思想是減少圖像的數據量的同時,快速檢測路徑。圖像融合算法首先處理攝像頭采集的圖像數據的椒鹽噪聲即噪聲處理。然后,在去噪圖像基礎上識別出路徑的邊緣,同時變成黑白效果。為了進一步減少圖像處理的數據量,對圖像進行細化,用骨架來表示圖像,通過擬合實現需要的圖像。融合處理后的圖像數據量較小,在飛行器快速飛行過程中結合PID算法,能有效地識別路徑,提高飛行器姿態的控制精度。
(1)去噪處理
在圖像采集后傳輸的過程中受到干擾后形成椒鹽噪聲,椒鹽噪聲會影響圖像的邊緣輪廓和細節,對圖像進行去噪處理后的像素值為:
g(x,y)=mendian{f(x-i,y-j) };(i,j)∈S
(1)
式中,f(x,y)為原始圖像在(i,j)出的像素值;g(x,y)為處理后的圖像在(i,j)出的像素值;S為模板,采用3×3矩陣。
(2)路徑邊緣的獲取
圖像的邊緣部分一般像素灰度變化較大,形成了階躍信號。因此可通過對階躍變化信號的檢測獲取路徑邊緣信息,我們采用卷積的計算方法實現,將式(1)分別在水平方向和垂直方向求導。
水平方向求導:
(2)
垂直方向求導:
(3)
根據公式(2)和(3)可得到近似梯度值:
(4)
(3)圖像灰度和骨架的提取
可根據圖像的二值化獲取圖像的灰度及骨架信息。圖像二值化就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的黑白效果,再進一步獲取圖像骨架。根據式(4)可得:
(5)
式中,G(x,y)為原始圖像素值,T(x,y)為灰度處理后像素值。
(4)圖像擬合
四旋翼飛行器絕對位置控制以黑色的直線為參照物,本文采用霍夫變換擬合方法擬合圖像檢測過程中的黑色直線。T(x,y)為圖像輪廓上任意一點。采用極坐標(ρ,θ)表示。它們的關系用(x,y)表示為:
ρ=xcosθ+ysinθ
(6)
把(ρ,θ)看成一個二維平面,經過累加之后就是某個方向點的數量。該步驟最終可以計算直線圖像的起點和終點坐標,進而計算出直線的斜率。斜率數據可以使用PID算法對飛行器的飛行平面進行位置控制,進而實現了圖像數據和PID算法的融合。
(5)位置式PID融合
這樣四旋翼飛行器在飛行過程中傾角小于10度,近似看成在平面運動。四旋翼飛行系沿著圖像擬合后的斜率直線飛行,設定起點偏航角參數。根據當前的圖像融合后的直線斜率作為輸入,PID的輸出對應的是計算后的偏航角,當斜率變化時,對應改變偏航角,達到修正直線斜率的作用。即實現了根據線路飛行。
位置式PID離散化后的數學表達式為:
(7)
其中,y(k)為第k個采樣時刻的控制,Kp比例放大系數,實際編程控制取值為0.05;Ki積分放大系數,取值為0.01;Kd為微分放大系數,取值為6。e(k)=x(k)-x(k-1),沿著這一點遍歷整條直線,得到最終控制的值。
本次實驗四旋翼飛行器的主要參數為,處理器采用STM32F407單片機搭載μC/OS-III操作系統。在2米×5米的白紙上粘有黑色直線與黑色直角彎的地面上進行實驗。攝像頭安裝位置為垂直地面,即鏡頭與地面呈90度角。具體參數如表1所示。

表1 四旋翼飛行器主要參數
根據這些參數,采用北航可靠飛行控制組研制開源在線評測系統,飛行器飛行最大速度5.1m/s。其他評測參數如圖2所示。

圖2 在線評測數據
根據公式(1)對采集到的圖像進行去燥處理,結果如圖3所示。圖3(a)為攝像頭讀取的原始灰度圖像和圖3(b)為經過濾波后的灰度圖像。

圖3 去燥處理結果
通過圖3(a)可以明顯地看出原始圖像數據的背景有很多污點可以看作椒鹽噪聲,而經過濾波處理后的圖像這些噪聲大部分被去除前景與背景可以輕易地區分出來。
根據公式(2)、(3)和(4),在3(b) X軸與Y軸卷積之后得到路徑邊緣獲取的結果如圖4所示。對于灰度圖像來說其邊緣變為白色前景,而原圖中灰度數值變化不明顯的區域則變為黑色背景。
圖4的圖像已經可以清楚地觀測到我們需要檢測的直線,但是每條線的像素點較多。為了進一步減少圖像數據量,進行圖像的灰度和骨架提取。圖5為提取后的結果。處理后的圖像數據量降低了很多,同時也滿足飛行要求。與傳統的Roberts、Prewitt、LOG的邊緣提取算子比較,減少了噪聲。

圖4 路徑邊緣處理結果

圖5 灰度骨架數據
圖5中共有三條直線,左側兩條距離較近可以通過后期軟件處理進行合并,右側的一條直線是無關數據,可通過在霍夫變換算法中添加直線有效長度來去除。最終獲取的控制信息,再由PID算法對四旋翼飛行器的X軸、Y軸及偏航進行控制。
根據圖PID算法式(7)實現了四旋翼飛行器的絕對位置控制通過了實際飛行測試驗證,結果如圖6和圖7所示。圖6為四旋翼飛行器通過算法確定X軸方向的位置信息而在X軸方向上固定順著Y軸方向飛行;圖7位四旋翼飛行器通過算法確定X軸與Y軸兩個方向的位置信息從而在一個固定的點飛行。

圖6 X軸方向的位置信息

圖7 X軸與Y軸兩個方向的位置信息
在實驗中圖像算法運行飛行器最大飛行速度5.1m/s,飛行器能穩定按預定路徑飛行。滿足了位置穩定的要求。通過圖像算法與控制算法可以實現在平面空間對四旋翼飛行器進行精確的巡線跟蹤控制飛行,增強了四旋翼飛行器的控制能力與靈活性。
筆者提出了巡線圖像的快速檢測算法,結合飛行器的姿態數據,給出了一種四旋翼飛行器自主巡線定位的控制策略。采用MPU9250慣性單元,獲取飛行器的姿態和角速度信息,攝像頭獲取圖像信息。利用圖像融合算法對飛行線路實時采樣,經測試連續兩幀圖像時間間隔50ms,適用于小型四旋翼飛控,特別是對于處理器能力較弱的飛控。實現有效時間的參數調整,改善了飛行器飛行偏差,可根據位置偏差及時調整飛行路徑,實現了飛行器空間巡線的實現。