文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.174310
中文引用格式: 黃瑞敏,,李建奇,,張斌,等. 四旋翼飛行器追蹤地面移動目標(biāo)控制策略研究[J].電子技術(shù)應(yīng)用,,2018,,44(5):67-71,76.
英文引用格式: Huang Ruimin,,Li Jianqi,,Zhang Bin,et al. Research on control strategy of four rotorcraft tracking ground moving target[J]. Application of Electronic Technique,,2018,,44(5):67-71,76.
0 引言
四旋翼飛行器對地面移動目標(biāo)的追蹤在軍用、民用及商業(yè)化應(yīng)用中發(fā)揮著越來越重要的作用[1],,對敵軍車輛,、坦克實時跟蹤并偵查,以獲取敵軍行蹤,;對災(zāi)后的人員搜救,,以獲取實時災(zāi)情;對快速移動的物體進行拍攝,,以獲取可靠的影視資料等,,均涉及飛行器對地面移動目標(biāo)的追蹤,。李永健等人給出了采用OpenCV處理圖像獲取反饋信號的方案[2],但OpenCV運行需機載計算機或采用上位機,,不適合于小型嵌入式系統(tǒng),;文獻[3]給出了采用光流法對運動目標(biāo)進行檢測的方案,但由于光流法更多地是檢測移動目標(biāo)的速度,,無法檢測地面移動目標(biāo)相對于飛行器的位置,,追蹤效果不理想;文獻[4]給出了采用ADAMS與MATLAB仿真的多回路PID位置跟蹤控制的模型,,但該模型的實現(xiàn)較為困難,,需運行速度較快的處理器。文獻[5]給出了雙閉環(huán)軌跡跟蹤與控制的方案,,提高了飛行器追蹤地面移動目標(biāo)的魯棒性,;文獻[6]采用OpenMV制作了全自動模擬目標(biāo)搜救系統(tǒng),為飛行器追蹤地面移動目標(biāo)提供了新方案,。
要完成飛行器對地面移動目標(biāo)的快速追蹤,,需滿足以下要求:首先,飛行器本身運動控制須非常靈活,,響應(yīng)迅速,,滯后少;接著,,要為控制系統(tǒng)提供必要的反饋,,主要是運動目標(biāo)與飛行器的位置偏差以及運動目標(biāo)的移動速度;最后,,需根據(jù)反饋對飛行器做出可靠的控制,。
1 系統(tǒng)響應(yīng)速度提高
為了實現(xiàn)對地面快速移動目標(biāo)的實時追蹤,飛行器的響應(yīng)速度必須較快,,當(dāng)?shù)孛婺繕?biāo)移動時,,飛行器應(yīng)當(dāng)能夠根據(jù)地面目標(biāo)的位置變化實時追蹤。如果飛行器的響應(yīng)速度較慢,,當(dāng)?shù)孛婺繕?biāo)移動速度較快時,,飛行器未能實時追蹤,地面目標(biāo)可能已經(jīng)偏離攝像頭視野,,失去反饋信號,,繼而失控。主要從以下兩方面提高飛行器打舵響應(yīng)速度,。
1.1 姿態(tài)PID控制的改進
通常,,飛行器姿態(tài)控制為串級PID控制[7],控制流如圖1所示,。
飛行器在懸停狀態(tài)下,,PITCH、ROLL的姿態(tài)角都應(yīng)當(dāng)為0,,當(dāng)飛行器做出追蹤地面移動目標(biāo)的動作時,,PITCH、ROLL姿態(tài)角應(yīng)當(dāng)轉(zhuǎn)到一定的角度,,才可完成追蹤,,判斷飛行器響應(yīng)速度的標(biāo)準(zhǔn)也就為當(dāng)飛行器從0°姿態(tài)角轉(zhuǎn)到一定角度姿態(tài)角的時間,如果這個過程時間越短,,則飛行器的響應(yīng)速度就越快,,反之越慢。為了減少該過度過程的時間,,提高響應(yīng)速度,,在外環(huán)角度PID控制器上做出了改進,外環(huán)角度PID控制器的表達式為[8](1):
其中,,u(t)為輸出的角速度,,Kp為比例系數(shù),Ki為積分系數(shù),,Kd為微分系數(shù),,e(t)為期望的姿態(tài)角和實際的姿態(tài)角的偏差。式(1)中,,微分項代表姿態(tài)角偏差變化的速率,,當(dāng)期望的姿態(tài)角為零時,姿態(tài)角偏差變化的速率也就是姿態(tài)角變化的速率,,姿態(tài)角變化的速率為角速度,,而陀螺儀輸出的原始數(shù)據(jù)即為角速度。因此,,可用陀螺儀的原始數(shù)據(jù)代替外環(huán)角度PID控制器的微分項,,如式(2)所示:
其中,Gyro為陀螺儀的原始數(shù)據(jù),,Gyrox代表著ROLL方向的角速度,,Gyroy代表PITCH方向的角速度。陀螺儀輸出的原始數(shù)據(jù)動態(tài)響應(yīng)性能好,,能實時地反映飛行器的角速度,。相比采用角度偏差的微分作為微分項,陀螺儀輸出的角速度作為微分項更能體現(xiàn)飛行器姿態(tài)角的變化趨勢,,形成有效的震蕩阻尼,,進而抑制飛行器的震蕩。
1.2 參數(shù)的整定
整定合適的PID參數(shù),,可提高飛行器的動態(tài)響應(yīng)性,,串級PID中,,內(nèi)環(huán)為角速度控制,在角速度控制環(huán)中,,期望的角速度為外環(huán)輸入的角速度,,實際的角速度為陀螺儀輸出的角速度數(shù)據(jù),輸出的是PWM脈寬直接控制電機,。因此該控制環(huán)既控制著角速度又直接控制電機,,是最基礎(chǔ)、最重要的控制環(huán),,內(nèi)環(huán)應(yīng)當(dāng)根據(jù)角速度偏差輸出電機轉(zhuǎn)速及時修正角速度,,能否及時修正角速度偏差由該控制環(huán)決定,飛行器的動態(tài)響應(yīng)性能也由該控制環(huán)決定,。在整定該控制環(huán)參數(shù)過程中,,可適當(dāng)增大Kp值,當(dāng)系統(tǒng)產(chǎn)生等幅震蕩時,,加入Kd,;當(dāng)加入Kd能抑制系統(tǒng)的等幅震蕩時,繼續(xù)加入Kp,,直到加入Kd不能抑制系統(tǒng)的等幅震蕩為止,。采取此臨界狀態(tài)的Kp作為內(nèi)環(huán)的比例系數(shù),采取能抑制住震蕩的Kd作為內(nèi)環(huán)的微分系數(shù),。在抑制住系統(tǒng)的等幅震蕩之后,,如果系統(tǒng)仍然以一定的角速度轉(zhuǎn)動,則適當(dāng)加入積分項,以能消除系統(tǒng)的靜態(tài)誤差時的Ki作為微分系數(shù),。以繞陀螺儀y軸的角速度作為參考,,在整定合適的參數(shù)Kp=1.5、Ki=0.5,、Kd=1.6后,,PITCH姿態(tài)角的角速度期望值為0時,繞陀螺儀y軸的角速度變化如圖2所示,,考慮到陀螺儀數(shù)據(jù)會有零點漂移[9],,以及受電機震動的影響,角速度變化數(shù)據(jù)在0上下±50°/s的波動是可以接受的,。
當(dāng)給內(nèi)環(huán)一個期望的角速度時,,內(nèi)環(huán)角速度變化數(shù)據(jù)如圖3所示。
外環(huán)則為角度控制環(huán),,在角度控制環(huán)中,,輸入的期望值為視覺追蹤所期望的姿態(tài)角,輸入的實際值為姿態(tài)解算的實際姿態(tài)角,輸出的量作為角速度輸入給內(nèi)環(huán),。在角度控制環(huán)中,,外環(huán)角度的變化通過內(nèi)環(huán)角速度的變化去改變,即外環(huán)負責(zé)根據(jù)姿態(tài)角的偏差計算出應(yīng)當(dāng)以多大的角速度去修正該姿態(tài)角偏差,,內(nèi)環(huán)負責(zé)根據(jù)角速度的偏差計算出應(yīng)當(dāng)以多大的電機轉(zhuǎn)速去修正該角速度偏差,。外環(huán)主要控制對象為姿態(tài)角,而姿態(tài)角改變是視覺追蹤的基礎(chǔ),,因此,外環(huán)決定了飛行器能夠追蹤移動速度多快的目標(biāo),。在內(nèi)環(huán)的基礎(chǔ)上,,外環(huán)參數(shù)整定做到動態(tài)響應(yīng)即可,先增大Kp值,,當(dāng)飛行器能夠迅速修正姿態(tài)角偏差時,,增大Kd抑制震蕩;當(dāng)姿態(tài)角存在靜態(tài)誤差時,,增大Ki修正靜態(tài)誤差[10],。整定參數(shù)Kp=0.8、Ki=0.05,、Kd=0.6后,,打舵測試如圖4所示。
如圖4所示,,當(dāng)期望的姿態(tài)角發(fā)生改變時,,能以較大的角速度去修正姿態(tài)角偏差,迅速響應(yīng),,過程過渡時間短,,系統(tǒng)基本無震蕩,達到了較為理想的狀態(tài),。
2 移動目標(biāo)位置獲取
擁有反饋是一個系統(tǒng)閉環(huán)控制的重要條件,,在飛行器追蹤小車控制系統(tǒng)中,飛行器要獲取小車的位置最簡單有效的方式為判斷小車在攝像頭視野范圍的位置,。期望的位置為(0,,0),當(dāng)小車在攝像頭視野范圍中心時,,小車在攝像頭視野范圍的位置為(0,,0);若小車不在中心位置,,則期望位置與實際位置存在偏差,,需通過PID控制修正該偏差,以此達到追蹤小車的效果,。
2.1 OpenMV簡介
Python作為腳本語言,,無法進行底層的操作,,而MicroPython是一個Python3的語言解析器,非常小巧,,只需要256 KB的代碼空間及16 KB RAM空間,,并針對微處理器受限的環(huán)境進行了優(yōu)化,借助MicroPython,,32位的ARM處理器(比如STM32F405)就可以采用Python進行底層操作,。OpenMV是一款基于STM32F765和OV7725攝像頭且安裝了MicroPyhon解析器的開源機器視覺模塊,其底層驅(qū)動和圖像處理庫用C語言進行封裝,,并參考了部分OpenCV庫,,預(yù)留接口供MicroPython調(diào)用。采用OpenMV進行開發(fā),,可通過Python腳本借助MicroPython調(diào)用底層驅(qū)動與圖像處理庫,,可節(jié)省開發(fā)周期,同時封裝好的驅(qū)動層與圖像處理庫降低了嵌入式與圖像處理開發(fā)的門檻[11-12],。
2.2 OpenMV獲取小車位置的方法
在OpenMV內(nèi)置的圖像處理庫中,,包含了尋找色塊的庫函數(shù)find_blobs(),該函數(shù)對于彩色圖像而言,,輸入LAB參數(shù)值,,可輸出找到的各個彩色色塊中心點在攝像頭視野范圍的位置;對于灰度圖像而言,,輸入的是灰度閾值,,可輸出找到的各個灰色色塊中心點在攝像頭視野范圍的位置。當(dāng)處理彩色圖像時,,確定LAB參數(shù)值是關(guān)鍵,,若參數(shù)選擇不當(dāng),則可能無法識別目標(biāo)色塊,,在實際的參數(shù)確定過程中,,需多次試驗,確定目標(biāo)色塊的LAB參數(shù)范圍,。圖5為確定綠色LAB參數(shù)值的一次仿真,,在次仿真中,L的范圍為35~65,,A的范圍為-60~-25,,B的范圍為0~35。在該仿真中,,并無噪聲影響到對綠色色塊的識別,,是一個較為理想的參數(shù),圖6為在實驗過程中,由該LAB參數(shù)對綠色色塊的識別,。
當(dāng)處理灰度圖像時,,由于灰度圖像每一個像素點的顏色只需要用灰度值來區(qū)分,其中,,每一個像素點的取值范圍為0~255,,當(dāng)小于設(shè)定閾值時,判定為黑色,;反之,,判定為白色,調(diào)整該閾值即可區(qū)分黑色色塊與周圍環(huán)境,。
由于LAB色彩模型基于人對顏色的感覺,,L代表亮度,A代表從洋紅到綠色的范圍,,B代表從黃色至藍色的范圍[13],因此,,該色彩模型適合于人眼容易區(qū)分的色彩,,不適合對黑色色塊的捕捉。但實際環(huán)境是復(fù)雜的,,當(dāng)需要捕捉黑色色塊時,,采用灰度圖像,可提高捕捉色塊的魯棒性,。彩色圖像存儲維度比灰度圖像大,,因此處理速度也較慢,但實驗測試發(fā)現(xiàn),,使用OpenMV3硬件平臺,,采用QQVGA圖像,find_blobs()函數(shù)處理灰度圖像可達到約60幀/s,,處理彩色圖像可達到約40幀/s,,均能達到實時控制的需求。因此,,可根據(jù)實際情況采用灰度圖像或彩色圖像,,具體處理流程圖如圖7所示,計算色塊坐標(biāo)的方法如圖8所示。
如圖8所示,,由OpenMV捕捉到小車位于圖像第n行,、第m列個像素點之后,可計算出小車的坐標(biāo)(x,,y),,這就是系統(tǒng)的反饋數(shù)據(jù)。得到該數(shù)據(jù)后,將該數(shù)據(jù)發(fā)送至飛控,,在追蹤小車過程中,,期望的小車的位置始終是(0,0),。
3 追蹤控制實現(xiàn)
在獲取到系統(tǒng)反饋的基礎(chǔ)上,,可根據(jù)反饋信號對系統(tǒng)進行控制,主要是修正期望位置與實際位置的偏差,,即可實現(xiàn)對小車的跟蹤,。而PID控制是基于修正偏差的控制,能夠有效修正偏差,,但作為一個追蹤的控制過程,,還需要考慮到追蹤的速度。如果小車速度較快,,僅僅考慮到位置控制則可能追不上,,因此,本文還設(shè)計了位置-速度的雙環(huán)PID控制,。
3.1 單環(huán)控制的實現(xiàn)
若僅考慮到小車位置變化,,飛行器及時調(diào)整姿態(tài)角,從而改變飛行器的位置,,可達到追蹤目的,,具體控制流程圖如圖9所示。
采用單環(huán)位置控制時,,調(diào)整PID參數(shù)Kp=0.6,、Ki=0.16、Kd=0.43時,,飛行器移動坐標(biāo)的X軸,、Y軸如圖10、圖11所示,,在小車靜止或移動速度較慢的情況下,,飛行器能夠懸停在小車上方,可對移動速度較慢的小車進行追蹤,。
在圖10中小車坐標(biāo)X軸數(shù)據(jù)在-15左右上下波動,,在圖11中坐標(biāo)Y軸數(shù)據(jù)在15左右上下波動,而不是在理想的0值上下波動,,存在靜態(tài)誤差,。形成該靜態(tài)誤差的主要原因是加速計數(shù)據(jù)存在較大誤差。加速計每次上電后的誤差都有一定的變化,,隨時間偏移變化較小[14],,而飛行器無法做到每次上電時刻都處于水平狀態(tài),,加速計Z軸數(shù)據(jù)不一定等于重力加速度,因此無法上電校準(zhǔn),,形成了誤差,,飛行器此后以該不準(zhǔn)確的數(shù)據(jù)解算姿態(tài),形成姿態(tài)的誤差[15],,造成飛行器位置飄動,,位置PID控制器在克服由于姿態(tài)誤差造成的飛行器的位置飄動時,形成了位置控制時的靜態(tài)誤差,。
3.2 雙環(huán)控制的實現(xiàn)
為了解決在單環(huán)控制時小車速度較快,、飛行器無法及時追蹤的問題,設(shè)計了雙環(huán)控制,,控制流程圖如圖12所示,。
該控制將小車的位置與小車的移動速度作為反饋數(shù)據(jù),可有效修正位置偏差的同時修正速度偏差,。與單環(huán)PID控制相比,,雙環(huán)PID控制可追蹤速度更快的小車,并且位置坐標(biāo)浮動也比單環(huán)控制的小,,X軸與Y軸的位置數(shù)據(jù)變化如圖13,、圖14所示。
將圖10與圖13進行比較:圖10中縱坐標(biāo)數(shù)據(jù)上下飄動范圍為35左右,,圖13中縱坐標(biāo)數(shù)據(jù)上下飄動范圍為20左右,說明在X坐標(biāo)軸上,,串級PID控制使得飛行器飄動比單級PID控制小,,串級PID控制比單級PID控制更加穩(wěn)定。同理,,將圖11與圖14進行比較:圖11中縱坐標(biāo)數(shù)據(jù)上下飄動范圍為30左右,,圖14中縱坐標(biāo)數(shù)據(jù)上下飄動范圍為10左右,說明在Y坐標(biāo)軸上,,串級PID使得飛行器飄動比單級PID控制小,,串級PID控制比單級PID控制更加穩(wěn)定。在位置-速度PID控制中,,位置PID控制器輸出至速度PID控制器,,當(dāng)期望位置與當(dāng)前位置偏差越大時,輸出的期望速度越大,,速度PID控制器輸出的期望姿態(tài)角也越大,,飛行器會以更快的速度飛至小車上方,以完成追蹤速度較快的小車的任務(wù),。綜上所述,,位置-速度PID控制器不僅提升了飛行器懸停的穩(wěn)定性,,還使得飛行器能夠追蹤速度較快的小車。綜上,,在該飛行器控制系統(tǒng)中,,從姿態(tài)的串級PID控制,到位置的串級PID控制,,構(gòu)成了一個4環(huán)PID控制系統(tǒng),。控制流程如圖15所示,。
4 實驗驗證
本次實驗采用S500機架,,STM32F407處理器作為飛行控制板,整定響應(yīng)迅速的PID參數(shù),,采用OpenMV獲取飛行器相對于小車的位置數(shù)據(jù),,采用串級PID控制飛行器相對于小車的位置。測試飛行器在靜止目標(biāo)上的懸停以及在運動上的跟蹤,,并測試包含灰度與彩色兩種類型的圖像,。測試步驟如圖16所示。
在圖16所示的實驗步驟中,,先將小車放置在區(qū)域8,,然后飛行器在區(qū)域10起飛,起飛之后,,OpenMV采用灰度圖像捕捉大黑點,,并在大黑點上方懸停,懸停10 s之后,,飛行器往區(qū)域8方向飛,。同時OpenMV采用彩色圖像捕捉綠色小車,若未能捕捉到小車,,則一直往前飛,,直到捕捉到綠色小車為止,飛行器成功懸停在綠色小車上方10 s之后,,小車開始在區(qū)域1至區(qū)域9各個區(qū)域移動,,飛行器追蹤小車,并在區(qū)域1至區(qū)域9各個區(qū)域上方飛行,。實驗證明,,飛行器可有效在大黑點與綠色小車上方懸停,并能成功追蹤綠色小車,。
5 結(jié)論
本文設(shè)計了一種四旋翼飛行器追蹤地面移動目標(biāo)的控制策略,,并采用該策略成功實現(xiàn)了飛行器追蹤地面移動目標(biāo)。改良了四旋翼飛行器的PID控制算法,,整定了合適的PID參數(shù),,成功提高了四旋翼飛行器的打舵響應(yīng)速度,。采用OpenMV獲取地面移動目標(biāo)的位置,并采用串級PID控制器修正期望位置與當(dāng)前位置的偏差,,成功實現(xiàn)了四旋翼飛行器追蹤地面移動目標(biāo),。相比單環(huán)PID控制飛行器位置,串級PID控制不僅提高了懸停的魯棒性,,還使得飛行器可追蹤移動速度較快的目標(biāo),。
參考文獻
[1] 劉添勝,陳益平,,陳凱旋.四旋翼飛行器在臺山輸電巡維的應(yīng)用[J].電工技術(shù),2014(2):65-66.
[2] 李永健.基于機器視覺的四旋冀無人機定點著陸系統(tǒng)設(shè)計與實現(xiàn)[D].廣州:華南理工大學(xué),,2015.
[3] 王卉,李麗霞,,劉慧潔,,等.基于四旋翼飛行器的光流法動態(tài)目標(biāo)檢測[J].沈陽工程學(xué)院學(xué)報(自然科學(xué)版),2017,,13(1):76-81.
[4] 姜香菊,,曾幼涵,劉二林.四旋翼飛行器帶速度補償?shù)亩嗷芈稰ID位置跟蹤控制[J].測控技術(shù),,2017,,36(4):74-78,84.
[5] 許璟,,蔡晨曉,,李勇奇,等.小型四旋翼無人機雙閉環(huán)軌跡跟蹤與控制[J].控制理論與應(yīng)用,,2015,,32(10):1335-1342.
[6] 潘麗靜,張虹波,,周婷婷.全自動模擬目標(biāo)搜救系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2016,,12(28):178-180.
[7] 賈峰,,孫曼,秦磊.基于STM32的四旋翼飛行姿態(tài)串級控制[J].科學(xué)技術(shù)與工程,,2015,,15(6):220-225.
[8] 李俊,李運堂.四旋翼飛行器的動力學(xué)建模及PID控制[J].遼寧工程技術(shù)大學(xué)學(xué)報(自然科學(xué)版),,2012,,31(1):114-117.
[9] 段棟棟.高精度MEMS陀螺儀的濾波算法研究[D].成都:電子科技大學(xué),2014.
[10] 馮慶端,,裴海龍.串級PID控制在無人機姿態(tài)控制的應(yīng)用[J].微計算機信息,,2009,,25(22):9-10,45.
[11] Pan Lijing,,Zhang Hongbo,,Zhou Tingting,et al.The design and implementation of automatic simulation target search and rescue system[J].Computer Knowledge & Technology,,2016,,12(10):178-180.
[12] ISAKOV A.Using open MVL shell in research and education[C].Manufacturing Modelling,Management,,and Control,,2013:2191-2196.
[13] 張宏建.Lab色彩模式在圖像處理中的應(yīng)用[J].福建電腦,2011,,27(1):146-147.
[14] 鄭海潮.四軸飛行器自主飛行控制及避障系統(tǒng)研究[D].成都:電子科技大學(xué),,2016.
[15] 冀亮,錢正洪,白茹.基于四元數(shù)的四軸無人機姿態(tài)的估計和控制[J].現(xiàn)代電子技術(shù),2015(11):112-116.
作者信息:
黃瑞敏1,,2,,李建奇1,2,,張 斌1,,楊民生1,王文虎1
(1.湖南文理學(xué)院 電氣與信息工程學(xué)院,,湖南 常德415000,;
2.湖南文理學(xué)院 洞庭湖生態(tài)經(jīng)濟區(qū)建設(shè)與發(fā)展湖南省協(xié)同創(chuàng)新中心,湖南 常德415000)