引言
四軸螺旋翼電機飛行器是一種小型的輕型四旋翼電機飛行器,4個電機螺旋獎與4個電機直接相連,通過改變4個電機的轉(zhuǎn)速來改變飛行器飛行狀態(tài)。四軸飛行器在發(fā)展過程中體積不斷變小,其控制技術越來越復雜,控制效果越來越好,使得無人機在各行業(yè)中被廣泛應用。四軸螺旋翼飛行器因其機動性強、飛行隱蔽、成本低及運行維護簡便等特點,被應用于宣傳、物流、航天拍攝、抗震救災、巡線跑道巡檢及大型農(nóng)業(yè)植保等領域。為了獲取飛行器實時飛行信息,通常采用GPs模塊進行自動定位。然而,只有準確搜索到衛(wèi)星信號,才能保證GPs模塊的正常運行。若飛行器內(nèi)存在任何電磁干擾或其他遮擋物,GPs等模塊就可能無法實時獲取機載飛行器的任何實時飛行信息。
因此,四軸飛行器可以利用openMV和openCV對目標物進行色塊識別,根據(jù)現(xiàn)場環(huán)境的不同區(qū)分不同的色塊,以獲取飛行器實時信息。四軸飛行器的定點懸停移動控制系統(tǒng)可以大致分為兩種姿態(tài),水平移動控制和高度移動控制。首先利用openMV中的光流模塊獲取飛行器實時信息,然后利用openCV實現(xiàn)對實時圖像中色塊的識別,最后利用PID算法實現(xiàn)對四軸飛行器的定點懸??刂?。
1基本原理
1.1光流傳感器工作原理
光流傳感器具有精度高和便攜特點。目前許多國內(nèi)外高等院?;?qū)I(yè)科研機構(gòu)對基于微型光流傳感器的小型四軸旋翼飛行器的自動控制技術進行了深入研究。光流對比法則是通過將圖中相鄰兩個像素點與光位移中的信息之間進行深度對比,從而計算并得出物體運動的加速度。光流是由于場景中前景目標本身的移動、相機的運動,或者兩者共同運動所產(chǎn)生。當人的眼睛觀察運動物體時,物體景象在人眼的視網(wǎng)膜上形成一系列連續(xù)變化的圖像,這一系列連續(xù)變化的信息不斷"流過"視網(wǎng)膜(成像平面),像一種光的"流",故稱之為光流。光流表達了圖像的變化,由于它包含了目標物體運動的信息,因為可被觀察者用以確定目標的運動情況。四軸雙旋翼載人飛行器上所搭載的四軸光學電流傳感器所能使用的4個攝像頭具有數(shù)據(jù)分辨率低、幀率高的特點,可以輕松實現(xiàn)圖像數(shù)據(jù)處理與信息的快速更新。
在本文設計中,飛行器可以利用相機安裝兩個無線光學電流傳感器,對相機捕捉的物體圖像數(shù)據(jù)進行在線分析,實時
跟蹤獲取兩個飛行器自身運動位置及物體運動速度情況。通過控制兩個小型光學電流傳感器之間的間隔高度并水平放置于航空飛行器下方的方法,獲取四軸驅(qū)動飛行器的實時圖像信息。
在本文設計中,初步提出可以采用光學電流傳感器,將兩個不相同型號的光學電流傳感器分別置于一個飛行器下方并檢測是否處于水平位置,當兩個光流運動傳感器檢測距離和地面的高度發(fā)生變化時,兩個光學電流傳感器之間采集的目標圖像追蹤信息的兩個重合節(jié)點部分也可能發(fā)生變化。利用openCV可以實現(xiàn)目標圖像追蹤、特征點追蹤檢測:利用新的PID算法可以實現(xiàn)對四軸驅(qū)動飛行器自主懸停的控制。
12壓縮感知追蹤原理
壓縮感知理論被廣泛應用于現(xiàn)在的電子工程圖像處理中,用于獲取少量的電子信號或者其他可能被壓縮的電子信號。該方法不僅可以憑借音頻信號稀疏的聲學特性,相比較于新的奈奎斯特還原理論,從較少的信息測量數(shù)值進行還原得出原來所想了解的音頻信號。核磁共振分析就是一個最有可能廣泛使用此分析方法的典型應用。
本文根據(jù)這一原理首先提出正負壓縮高維感知圖像追蹤,首先在正負壓縮高維區(qū)域范圍內(nèi)隨機采集抽取不同壓縮尺度高維圖像下的表觀特征,之后將高維特征模型信息隨機投射至低維的正負壓縮樣本區(qū)域,根據(jù)物體相應需要壓縮的區(qū)域表觀特征信息,建立特定的物體表觀特征模型,使用隨機稀疏矩陣技術實時壓縮落于前景和背景兩個目標上的物體,實現(xiàn)在每個壓縮域中對前景目標物體進行實時圖像更新感知追蹤。
1.3openCV的目標追蹤
openCV是一個基于跨行業(yè)平臺的計算機圖形視覺軟件庫,可以在許多不同操作系統(tǒng)上運行,擁有高效性、質(zhì)量輕等特點。openCV由C語言和C++類編程語言構(gòu)成,同時提供了不同的通用語言編程接口,例如xpython、ruby、matlab等多種語言,實現(xiàn)了在圖像信號處理和應用計算機軟件視覺設計方面很多主要通用語言的算法。
根據(jù)openCV特點,天空端機載攝像頭通過無線圖傳將畫面?zhèn)鬏數(shù)降孛嬲?地面站通過openCV處理圖像并輸出修正結(jié)果:通過無線數(shù)傳將地面端結(jié)果傳輸回天空端進行修正,從而實現(xiàn)四軸飛行器對目標的識別和追蹤:通過openCV對圖像顏色模塊的識別進行判斷,對目標色塊的坐標進行修正和傳輸,從而控制舵機的轉(zhuǎn)動,實現(xiàn)四軸飛行器的追蹤。
本文設計的核心在于機載攝像頭的畫面?zhèn)鬏斠约?penCV對圖像顏色模塊的識別,通過將獲取畫面轉(zhuǎn)灰,將圖像轉(zhuǎn)化為HsV格式,再通過滑塊確定所要識別的顏色,將顏色范圍外的顏色去除,將圖像轉(zhuǎn)二值,通過膨脹化處理,將像素點放大,獲取圖像輪廓坐標,返回圖像輪廓坐標值并繪制矩形框?qū)喞M行定位,最后標出圓心,將坐標值顯示在矩形中心。圖像識別代碼如圖1所示。
1.4openMV
0penMV上的自動視覺識別算法功能包括自動識別不同色塊、人臉識別、跟蹤品牌標志、追蹤用戶眼球等,可以用來檢測非法入侵,對產(chǎn)品的殘次等級進行區(qū)分篩選,對固定標志物進行跟蹤等。要想完成各種機器視覺任務,僅需要編寫一些Python代碼即可。
例如,可以給自己的智能飛行器產(chǎn)品提供人臉識別追蹤能力:給各種智能車產(chǎn)品增加人臉追蹤識別功能:給各種智能兒童玩具產(chǎn)品增加各種人臉識別追蹤功能等。
本文通過0penMV的光流模塊和攝像頭模塊,飛行器定點主要依靠光流模塊對實時圖像的識別,通過攝像頭模塊進行探測并分析小車的移動情況,將采集到的數(shù)據(jù)進行分析并得出PID值,再將PID值導入光流環(huán),結(jié)合加速度和角速度環(huán)的PID值進行總的PID值調(diào)節(jié),從而反饋給sTM32F301開發(fā)板的主控模塊,最終實現(xiàn)對四軸飛行器實現(xiàn)的定點和追蹤。
1.5運動狀態(tài)以及高度計算
本文通過改變四軸飛行器電機轉(zhuǎn)速,可以實現(xiàn)各種不同的運動,可將其運動分解為4個獨立方向,分別為:
1.5.1上下運動
實現(xiàn)方法:4個驅(qū)動電機轉(zhuǎn)速一致,4個電機旋翼轉(zhuǎn)動產(chǎn)生的電機升力不應大于或小于自身的承重力。
1.5.2前后運動
實現(xiàn)方法:電機2、4轉(zhuǎn)速不變,電機1、3轉(zhuǎn)速一增一減且改變值相同。
1.5.3左右運動
實現(xiàn)方法:電機1、3轉(zhuǎn)速不變,電機2、4轉(zhuǎn)速一增一減且改變值相同。
1.5.4偏航運動
實現(xiàn)方法:電機1、3為一組,電機2、4為一組,轉(zhuǎn)速一個增加、一個減少,且每次改變轉(zhuǎn)速值相同。四軸旋翼飛行器使用機體的旋轉(zhuǎn)方向與轉(zhuǎn)速快的四軸旋翼的旋轉(zhuǎn)速度方向相反。
為了測量四軸驅(qū)動飛行器的高度,在飛行器下方安裝光流高度傳感器,兩端的光流高度傳感器水平距離為L,光流高度傳感器的角度為θ,對本次飛行高度h的分析計算過程如下:兩個光學電流傳感器在高度至少為h0時,從一開始就會有一個重疊區(qū)域,從兩個光學電流傳感器共同獲取的飛行圖像中會有一個重疊后的區(qū)域同時開始,當高度再一次增加h0時,重疊后的區(qū)域所在x向軸方向上的寬度為大于m0,并可以選擇此處大于m0寬度的值作為一個高度參考值。假設從重疊區(qū)域開始高度區(qū)域的距離為h1時,則其對應的有重疊高度區(qū)域的寬為m1,飛行器的總體最高高度為h,其中L、θ為已知參數(shù)。
根據(jù)三角形特性,無重疊區(qū)域的高度h0計算公式如下:
計算關系如圖2所示,在一個飛行器高度為2h0時,重疊參考區(qū)域內(nèi)的寬度大于m0,可通過其對角點高度匹配函數(shù)算法直接計算其高度值,選取一個m0作為重疊參考區(qū)域?qū)挾?從它的有限無重疊高度區(qū)域距離開始,高度區(qū)域距離最大為hl時其所對應的無重疊高度區(qū)域的寬為ml,飛行器高度越高,重疊空間寬度的數(shù)值越大,反之,則越小。ml同樣由對角點高度匹配函數(shù)算法來確定運行值。由三角形相似原理可以,ml與其參考角點寬度大于m0的匹配關系定義如下:
則飛行器的飛行高度h為:
2系統(tǒng)硬件設計
該四軸飛行器系統(tǒng)主要由樹莓派、sTM32F301開發(fā)板、UsB攝像頭、無線圖像傳輸模塊、PwM驅(qū)動模塊、地面站PC組成,如圖3所示。
2.1樹莓派
本設計應用樹莓派是為了實現(xiàn)四軸飛行器的無線操作,憑借樹莓派的強大功能完成地面PC和四軸飛行器之間的圖像傳輸與處理,將樹莓派安裝在四軸飛行器上,使飛行器離開數(shù)據(jù)線的束縛,可完成遠距離無線操作。通過0penMV上的攝像頭模塊將實時圖像傳輸?shù)綐漭缮?在樹莓派中加入上文提到的圖像識別代碼和算法,對識別圖像中的中心坐標進行計算,并通過飛行器底部的兩個光流模塊進行定點,如圖4所示,對地面色塊進行識別,并確認中心坐標從而傳輸?shù)綐漭缮?在地面PC上進行監(jiān)控。
2.2%ST32F301開發(fā)板
采用sTM32F301單片機作為四軸飛行器控制系統(tǒng)核心,通過調(diào)制PwM信號控制無刷電機的轉(zhuǎn)動。在四軸飛行器的飛行控制原理學習過程中,通過學習算法、編程、調(diào)試,實現(xiàn)四軸飛行器的懸停。為了提高圖像獲取和處理的速度,采用sTM32F301開發(fā)板,通過將飛行控制核心板和串口通信進行連接,飛控板上所需要的控制量由圖像處理所獲得,從而實現(xiàn)巡線功能。在不斷的調(diào)試和改進中,飛行器實現(xiàn)定點懸停和巡線功能。本系統(tǒng)主要由sTM32F301飛行控制模塊和sTM32F301無線傳輸模塊、電機控制4路PwM、激光測距模塊組成,如圖5所示。
2.3PWT驅(qū)動模塊
四軸飛行器是一個高精度、擁有多種姿態(tài)的控制系統(tǒng)。本文采用PwM驅(qū)動模塊是為了通過調(diào)制
PwM波控制電機的轉(zhuǎn)速,實現(xiàn)對四軸飛行器轉(zhuǎn)速的精確控制,根據(jù)圖像傳輸回的信息,確定色塊的中心坐標,并調(diào)整中心坐標,使電機隨著坐標的改變而改變,如圖6所示。
2.4地面站PC機
本設計采用地面站PC是為了對四軸飛行器通過攝像頭所傳輸回來的圖像進行操作、識別,再返還給四軸飛行器,以實現(xiàn)四軸飛行器的懸停,根據(jù)圖像識別中的中心坐標,調(diào)整四軸飛行器的懸停狀態(tài)。應用地面站PC能對飛行器進行更好的監(jiān)控,掌握它的實時信息。
3結(jié)語
四軸驅(qū)動飛行器系統(tǒng)是一個高精度、多姿態(tài)、強動力耦合的飛行系統(tǒng)。采用OpenMV上的光流模塊作為圖像采集單元,利用0penCV對色塊的識別檢測,對目標色塊坐標進行修正和傳輸,實現(xiàn)四軸飛行器的追蹤,同時通過P1D算法完成對四軸飛行器的姿態(tài)控制及高度控制。本設計通過四軸飛行器對色塊的識別,脫離了GPs的束縛,完成了對不同環(huán)境中各種色塊的判斷,實現(xiàn)四軸飛行器實時信息的傳輸。實驗研究表明,在被測光線采集條件適當?shù)那闆r下,采用位于OpenMV上的光線電流采集模塊,對被測地面目標圖像追蹤信息進行實時的光線采集,并使用openCV模塊實現(xiàn)目標圖像追蹤、特征點追蹤檢測,將目標的中心坐標傳輸?shù)綐漭芍?在樹莓派中對坐標進行分析和計算,同時在地面站PC機上進行實時監(jiān)控,對四軸飛行器的定高和姿態(tài)進行處理,使用P1D算法可以實現(xiàn)對四軸飛行器的定點懸停。