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