文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.011
中文引用格式: 安鶴男,陳陽,張軍,等. 基于AVR單片機的機載慣性穩(wěn)定云臺設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(11):41-44.
英文引用格式: An Henan,Chen Yang,Zhang Jun,et al. Design of airborne inertial stabilization camera platform based on AVR microcontroller[J].Application of Electronic Technique,2015,41(11):41-44.
0 引言
近年來,隨著自動化技術(shù)、計算機技術(shù)和微電子技術(shù)的飛速發(fā)展,多旋翼無人機如雨后春筍般出現(xiàn),并以航空攝影為核心,在遙感測繪、地質(zhì)勘查、反恐防暴、抗災(zāi)救援、城市服務(wù)等多個領(lǐng)域發(fā)揮著重要作用[1]。
在傳統(tǒng)的無人機航拍系統(tǒng)結(jié)構(gòu)中,攝像頭往往直接固定于無人機機身或安裝在一個僅能對攝像頭姿態(tài)進行手動調(diào)整的云臺上。這類系統(tǒng)雖然結(jié)構(gòu)簡單,成本低廉,但卻具有較大的不足。當(dāng)無人機在巡航過程中需要改變飛行姿態(tài)時,攝像頭拍攝出來的畫面往往非常不穩(wěn)定。
為了解決這一問題,本文設(shè)計并實現(xiàn)了一種基于AVR單片機和MEMS陀螺儀的無人機載三軸慣性穩(wěn)定云臺。該云臺能夠在無人機飛行姿態(tài)發(fā)生變化時對攝像頭姿態(tài)進行實時調(diào)整,保證了拍攝畫面的穩(wěn)定。經(jīng)過實驗驗證了該系統(tǒng)的穩(wěn)定性和可靠性。
1 系統(tǒng)硬件電路設(shè)計
1.1 系統(tǒng)總體方案設(shè)計
如圖1所示,系統(tǒng)由一個中央控制單元和三個運動控制單元組成。中央控制單元的主要功能是根據(jù)上位機的指令對整個系統(tǒng)進行控制和調(diào)度,同時對系統(tǒng)各部分的運行狀態(tài)進行實時監(jiān)測和調(diào)整。三個運動控制單元分別在三個軸向上對經(jīng)卡爾曼濾波的陀螺儀輸出數(shù)據(jù)進行實時監(jiān)測,在云臺姿態(tài)發(fā)生變化時驅(qū)動步進電機,穩(wěn)定現(xiàn)有姿態(tài)。三個運動控制單元在系統(tǒng)進入自穩(wěn)定狀態(tài)后同時開始工作,協(xié)同運行,提高了系統(tǒng)的實時性和可靠性。此外,系統(tǒng)還在三個軸向上分別設(shè)置了一個行程限位開關(guān),用于云臺姿態(tài)的上電復(fù)位。
本系統(tǒng)各控制單元均采用ATmega系列AVR單片機作為控制器。該系列單片機具有高效、穩(wěn)定、外圍電路簡單、性價比高等優(yōu)點,內(nèi)置10位高精度A/D轉(zhuǎn)換器,非常適合本系統(tǒng)的設(shè)計使用。另外,本系統(tǒng)采用層次化、模塊化的設(shè)計架構(gòu),有利于系統(tǒng)的測試及維護,可靠性與穩(wěn)定性好。
1.2 中央控制單元設(shè)計
在本系統(tǒng)中,中央控制單元基于Atmel公司的ATmega1280單片機開發(fā)。如圖2所示,ATmega1280單片機具有4個異步串口。在本系統(tǒng)中,這4個異步串口分別連接上位機和3個軸向的運動控制單元,用于系統(tǒng)控制指令和狀態(tài)數(shù)據(jù)的雙向傳遞。
中央控制單元的主要功能是負責(zé)接收上位機發(fā)來的指令,并根據(jù)指令對相應(yīng)軸向的運動控制單元發(fā)出二級指令,調(diào)度和控制各運動控制單元,使之能夠協(xié)調(diào)地完成云臺姿態(tài)的實時穩(wěn)定保持以及手動控制操作。此外,中央控制單元還負責(zé)對系統(tǒng)各部分的運行狀態(tài)進行實時監(jiān)控并適時做出調(diào)整。
1.3 運動控制單元設(shè)計
系統(tǒng)設(shè)有3個運動控制單元,分別與云臺航向、俯仰和橫滾3個軸向上的陀螺儀和步進電機驅(qū)動模塊相連,用于云臺的實時姿態(tài)調(diào)整。當(dāng)云臺在相應(yīng)軸向上發(fā)生姿態(tài)變化時,陀螺儀的輸出電壓也會跟隨著發(fā)生線性變化。運動控制單元檢測到這一變化后,向步進電機驅(qū)動模塊發(fā)出控制信號和驅(qū)動脈沖,驅(qū)動相應(yīng)軸向上的步進電機對云臺姿態(tài)進行實時反向補償,消除外界振動或飛行姿態(tài)的變化對云臺產(chǎn)生的影響,使云臺保持穩(wěn)定。
3個運動控制單元的硬件結(jié)構(gòu)相同,都是由ATmega32單片機和外圍電路構(gòu)成。運動控制單元的電路原理圖如圖3所示。
電源VCC的電壓為直流5 V;U1是ATmega32單片機,內(nèi)置10位高精度A/D轉(zhuǎn)換器,量程為0~5 V,分辨率約4.88 mV;U2是Silicon Sensing公司的CRS03-02型MEMS陀螺儀,該陀螺儀能夠以電壓模擬量的方式輸出其安裝位置的軸角角速度,量程0~±100°/s,其輸出端直接與單片機U1的A/D轉(zhuǎn)換器模擬量輸入引腳相連;J1和J3分別是運動控制單元與中央控制單元同步進電機驅(qū)動模塊的通信接口。
此外,運動控制單元還設(shè)置了一個行程限位開關(guān)S1與U1單片機的中斷0引腳連接。當(dāng)系統(tǒng)上電時,運動控制單元會將U1中斷0引腳置高電平并驅(qū)動步進電機,讓云臺平面以較低的角速度向有限位開關(guān)的一側(cè)運動。當(dāng)云臺觸碰到限位開關(guān)后,U1中斷0引腳與地接通,U1的低電平中斷被觸發(fā)。由于云臺平面在各軸向上的最大旋轉(zhuǎn)角度在機械結(jié)構(gòu)設(shè)計完成后就是一個固定的參數(shù),因此,運動控制單元接著驅(qū)動步進電機,將云臺平面旋轉(zhuǎn)到中間的平衡位置,完成云臺姿態(tài)的上電復(fù)位。
1.4 步進電機驅(qū)動模塊設(shè)計
本云臺系統(tǒng)的步進電機驅(qū)動模塊基于Toshiba公司的TA8435H步進電機驅(qū)動芯片開發(fā)。圖4是步進電機驅(qū)動模塊的電路原理圖,供電電壓VDD為直流24 V,VCC為直流5 V。
圖中M1是兩相步進電機,整步的步距角為1.8°;U1是步進電機驅(qū)動芯片TA8435H,細分設(shè)置為1/8,這使得步進電機每步的步距角縮小至0.225°,大大增加了系統(tǒng)的運行精度和穩(wěn)定性。
圖中J1是模塊與運動控制單元連接的數(shù)據(jù)接口,其中引腳2為步進電機的正反轉(zhuǎn)控制引腳,當(dāng)該引腳的輸入為低電平時,步進電機按順時針方向轉(zhuǎn)動,當(dāng)輸入為高電平時,步進電機按逆時針方向轉(zhuǎn)動;引腳3為步進電機轉(zhuǎn)速控制引腳,向該引腳每輸入一個上升沿,步進電機能夠向指定方向轉(zhuǎn)動0.225°,通過改變輸入信號中每兩個上升沿之間的時間間隔,即可控制步進電機的轉(zhuǎn)速。
2 系統(tǒng)軟件設(shè)計
2.1 中央控制單元軟件設(shè)計
系統(tǒng)中央控制單元的主要功能是完成上位機指令的判別與傳遞以及系統(tǒng)各運動控制單元的綜合調(diào)度,軟件工作流程如圖5所示。
2.2 運動控制單元云臺姿態(tài)自穩(wěn)定算法設(shè)計
2.2.1 卡爾曼濾波
當(dāng)運動控制單元收到來自上位機的自穩(wěn)定指令并進入慣性穩(wěn)定狀態(tài)后就開始不斷對陀螺儀輸出的模擬量進行采樣和模數(shù)轉(zhuǎn)換,將陀螺儀輸出的模擬量轉(zhuǎn)化為數(shù)字量并進行讀取和處理。
由于陀螺輸出的原始數(shù)據(jù)中包含一系列干擾和噪聲,因而需要對原始數(shù)據(jù)進行預(yù)處理,降低這些干擾和噪聲。本系統(tǒng)選用卡爾曼濾波算法對原始數(shù)據(jù)進行去噪處理。
卡爾曼濾波是一種利用線性系統(tǒng)狀態(tài)方程和測量方程,通過觀測數(shù)據(jù)對系統(tǒng)自身狀態(tài)進行估計,使估計的均方誤差達到最小的濾波算法[2]。
設(shè)系統(tǒng)的狀態(tài)方程為:
Xk=Ak,k-1 Xk-1+Bk,k-1 Wk(1)
測量方程為:
Yk=Ck Xk+Vk(2)
其中,Xk為k時刻系統(tǒng)的狀態(tài)向量;Ak,k-1為k到(k-1)時刻的狀態(tài)轉(zhuǎn)移矩陣;Bk,k-1為k到(k-1)時刻的過程噪聲驅(qū)動矩陣;Yk為k時刻系統(tǒng)的輸出向量;Ck為測量矩陣;Wk和Vk分別為過程噪聲和測量噪聲,并且被假設(shè)為高斯白噪聲[2-3]和隨機數(shù)噪聲[4]。
根據(jù)狀態(tài)方程和測量方程,有卡爾曼濾波的五個遞推公式:
狀態(tài)一步預(yù)測:
其中,yk是k時刻卡爾曼濾波前的數(shù)據(jù)。根據(jù)上述5個方程,只要給定初值X0和P0,即可根據(jù)k時刻的觀測值Yk計算出k時刻的狀態(tài)估計k。為達到最佳效果,選取[2]:
2.2.2 云臺姿態(tài)自穩(wěn)定算法設(shè)計
系統(tǒng)進入自穩(wěn)定狀態(tài)后,3個軸向的運動控制單元同時對云臺在各自軸向上的姿態(tài)進行實時姿態(tài)保持。各軸向的運動控制單元軟件工作流程如圖6所示。
3 系統(tǒng)測試及分析
3.1 卡爾曼濾波性能測試及分析
為了驗證2.2.1節(jié)所述卡爾曼濾波算法的有效性,以運動控制單元中的MEMS陀螺儀在平衡狀態(tài)下的輸出量作為卡爾曼濾波器的輸入,其處理結(jié)果及濾波前后對比如圖7所示。濾波前后的數(shù)據(jù)特征對比如表1所示。
從圖7可以直觀地看出,卡爾曼濾波對陀螺輸出數(shù)據(jù)的作用明顯。濾波前,陀螺輸出信號中含有較多白噪聲,濾波后,這部分白噪聲被很大程度地削弱了且均值保持不變,濾波前后數(shù)據(jù)特征對比見表1。這說明本文2.2.1節(jié)所述的卡爾曼濾波算法對消除MEMS陀螺輸出信號中的噪聲有效。
3.2 云臺姿態(tài)自穩(wěn)定算法性能測試及分析
本文2.2.2節(jié)提出了無人機載云臺姿態(tài)的自穩(wěn)定算法。為了驗證這一算法的實際性能,云臺上安裝了一個3軸角速度傳感器,當(dāng)云臺處于慣性穩(wěn)定的狀態(tài)下,在云臺的3個軸向上同時以0~±100°/s范圍內(nèi)的任意角速度對云臺基座進行變速晃動。每次實驗持續(xù)1分鐘,每隔5 s記錄一次云臺穩(wěn)定平面在3個軸向上的角速度值,以判斷云臺平面在自穩(wěn)定狀態(tài)下的精度和誤差,實驗共重復(fù)20次。
根據(jù)20次實驗的結(jié)果,方位軸角速度均值為0.025 °/s,方差均值為0.001 6,俯仰軸角速度均值為0.013 °/s,方差均值為0.000 8,橫滾軸角速度均值為0.016 °/s,方差均值為0.001 0。
以上試驗數(shù)據(jù)表明,云臺在慣性穩(wěn)定狀態(tài)下能夠較好地保持云臺姿態(tài)。云臺角速度樣本方差較表1所示靜止?fàn)顟B(tài)下的角速度方差略大,可能的原因是步進電機在運行過程中,步與步之間產(chǎn)生了輕微的機械振動。
4 結(jié)論
本文所提出的基于ATmega單片機的無人機載三軸慣性穩(wěn)定云臺系統(tǒng),能夠有效地在每軸向0~±100 °/s的角速度變化范圍內(nèi)實現(xiàn)無人機在飛行過程中云臺的姿態(tài)保持,確保了無人機在進行航空拍攝時畫面的穩(wěn)定。
與其他機載慣性穩(wěn)定云臺相比,本系統(tǒng)具有3個彼此獨立的運動控制單元,并且由中央控制單元統(tǒng)一進行調(diào)度和管理,而其他機載慣性穩(wěn)定云臺系統(tǒng)往往只有一個負責(zé)云臺姿態(tài)自穩(wěn)定的處理芯片。
當(dāng)系統(tǒng)進入慣性自穩(wěn)定狀態(tài)后,一般的機載慣性穩(wěn)定云臺系統(tǒng)往往只能以時間片輪詢的方式來實現(xiàn)各個軸向姿態(tài)穩(wěn)定功能的同時進行運行,實時性和可靠性較低;本系統(tǒng)具有3個獨立的運動控制單元,能夠?qū)?個軸向的狀態(tài)進行實時并行處理,有效地縮短了系統(tǒng)的響應(yīng)時間,提高了系統(tǒng)的實時性和可靠性。
另外,相較于其他一些基于FPGA等類型嵌入式處理器開發(fā)的慣性平臺[5],本系統(tǒng)在成本上具有較大優(yōu)勢。經(jīng)過大量驗證,本系統(tǒng)穩(wěn)定、可靠、精度高,具有較高的應(yīng)用價值。
參考文獻
[1] 辛哲奎,方勇純,張雪波.小型無人機地面目標(biāo)跟蹤系統(tǒng)機載云臺自適應(yīng)跟蹤控制[J].控制理論與應(yīng)用,2010,27(8):1001-1006.
[2] 楊慶輝,杜紅英,陳雄,等.微機電陀螺隨機漂移建模與卡爾曼濾波[J].計算機仿真,2015,32(3):68-72.
[3] 王正生,仇雅芳,王琳,等.卡爾曼濾波算法在單站無源定位中的應(yīng)用[J].艦船電子對抗,2014,37(5):27-30.
[4] 關(guān)吉.卡爾曼濾波器的MATLAB仿真實現(xiàn)[J].東南傳播,2014(6):178-180.
[5] 高迎彬,胡昌華,何華鋒,等.基于FPGA的慣性平臺嵌入式調(diào)平系統(tǒng)設(shè)計[J].電子測量技術(shù),2011,34(6):60-63.