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