MPU6050模塊,如圖 1所示。該模塊集成了一片MPU6050芯片和一片STM8S003F3P6單片機,具有串口和I2C接口。MPU6050中的DMP(數(shù)字運動處理器)對姿態(tài)進行融合,STM8單片機通過IIC讀取DMP的處理結(jié)果,再添加上包頭串行輸出三軸加速度、三軸角速度、三軸角度和溫度數(shù)據(jù),輸出頻率為100Hz。
MPU6050芯片內(nèi)部由四部分組成:加速度計、陀螺儀、DMP(Digital Motion Processing)、溫度傳感器。DMP部分的Datasheet原文介紹:The DMPacquires data from accelerometers, gyroscopes, and additional 3rdparty sensorssuch as magnetometers, and processes the data. The resulting data can be readfrom the DMP’s registers, or can be buffered in a FIFO. The DMP has access toone of the MPU’s external pins, which can be used for generating interrupts.
陀螺儀誤差分析
imu誤差的效果
陀螺儀的偏移對于速度的影響是二次的,對于位置的影響是三次的。
對于收斂的并且設(shè)計很好的濾波器,估計和去除imu的誤差,能夠提高姿態(tài)的精度和長期穩(wěn)定性
常見誤差項:
首先介紹幾個常見的概念:
1.重復(fù)性
假設(shè)所有的條件一樣,對于相同的輸入,傳感器輸出相同的值的能力(對于每次啟動都相同)。陀螺儀的零偏不具有重復(fù)性。
2.穩(wěn)定性
對于同樣的輸入,在同一次啟動,輸出值都是相同的。
3.漂移
輸出隨著時間的變化(零漂是輸入為0的時候的輸出)
確定性誤差
傳感器非正交性(安裝誤差):
三軸加速度計和陀螺儀的三個軸不是完全的正交的,例如對于加速度計,理想情況下其中一個軸測量重力,其他兩個軸不應(yīng)該有輸出。傳感器不正交會出現(xiàn)在安裝和封裝的時候。生產(chǎn)和標定能夠一定程度的解決這個問題,在系統(tǒng)運行的時候持續(xù)的估計和矯正也是一種解決方法。
尺度誤差(scale)
隨機噪聲
《Notes on Stochastic Errors of Low Cost MEMS Inertial Units》
陀螺儀的噪聲分析不適用arma模型,應(yīng)該使用allan variance。
因為arma模型假設(shè)所有的誤差都是完全客觀的,然而在實際中:傳感器的輸出受到噪聲的影響,而且是不同的獨立隨機過程的和;目前的arma模型能夠解決噪聲的影響,但是不能夠解決獨立隨機過程的系數(shù)問題。誤差中最主要的是:(1)零偏、溫漂;(2)角速率噪聲,也叫作隨機游走
所有噪聲可以建模為:
(1)y(t)=u(t)+e(t)+b(T)+N(a,ω,T,t)
allan variance 建模
b(T)表示溫漂,一般不考慮,可以通過溫度補償來做
N(a,ω,T,t)表示加速度,角速度,溫度和時間等總的因素造成的影響(G 的依賴性(加速度影響),對于mems陀螺儀來說,有可能受到重力的影響,可以通過建模并采用一定的方法去除這個影響)
e(t)=ARW(t)+F(t)+Q(t)+S(t)表示隨機噪聲
陀螺儀的誤差分類
a。量化噪聲Q(t)(Quantization Noise)
AD采樣導(dǎo)致的噪聲,量化噪聲具有很寬的帶寬,屬于高頻噪聲,可以用低通濾波器處理或通過導(dǎo)航的積分環(huán)節(jié)去除,對精度的影響不大;
量化噪聲的分辨率為Δ(和AD的位數(shù)有關(guān)系),采樣頻率為f=1/τ(手冊中會介紹采樣的頻率),τ為采樣時間,則量化噪聲的功率譜密度為SΔ(f)=τ0Q2,Allan方差為σQN2(τ)=3Q2τ2。
量化噪聲屬于高頻噪聲,在實際的應(yīng)用中可進行低通濾波處理或大部分被導(dǎo)航的積分環(huán)節(jié)濾除。
b。角度隨機游走(ARW(t))(Angular Random Walk)
高斯白噪聲的影響,需要區(qū)別角速率輸出還是角增量輸出,mpu6050是角速度輸出。
角度隨機游走的功率譜密度為SΩ(f)=N2,Allan方差為σARW2(τ)=N2τ
一般陀螺儀內(nèi)部會有低通濾波器。白噪聲功率譜密度的等效帶寬,叫作陀螺儀的帶寬;(慣性儀器,157頁))通過高頻采樣和低通濾波能夠降低mems陀螺儀的角度隨機游走噪聲;
從另外一個角度分析:
假設(shè)每次測量的角速度受到白噪聲的影響,即δθk=δθ+Nk?τ,其中Nk為獨立同分布的零均值白噪聲,標準差σ,則經(jīng)過時間n?τ之后,誤差為
e=τ∑i=1nNi
從而e的數(shù)學特征為E(e)=0,Var(e)=δt2nVar(N)=δt?t?σ2
所以σ(e)=σ?δt?t
因此,在手冊中一般將上面的噪聲常時間的積分的標準差記做
ARW=σθ(1)
單位為°/hc。零偏不穩(wěn)定性(F(t))(Bias Instability) ,也叫作閃變噪聲(Flicker Noise)
準確的來說,并不是只有零偏導(dǎo)致偏移,零偏是沒有運動時平均輸出。零偏不穩(wěn)定性即零偏會隨著時間緩慢的變化。這是由于內(nèi)部電磁的善變噪聲和外部影響導(dǎo)致的,而且每次啟動之初的零偏是不相同的。
零偏不穩(wěn)定性的功率譜為SΩ(f)=B22πf,Allan方差為σBI2(τ)=4B29
零偏的不穩(wěn)定性描述一段時間之后,MEMS的零偏的變化情況。零偏穩(wěn)定性通常定義為1σ值,單位為°/h。舉例來說,假設(shè)當前時刻的零偏是已知的Bt,經(jīng)過100s后,零偏的均值為Bt,標準差為0.01°/h。實際上,零漂并不是一個完全的隨機游走,它的范圍是有限的。零漂對角度的影響是線性的。
d。速率斜坡(Rate Ramp)
陀螺的角速率輸出隨著時間緩慢變化,通常由系統(tǒng)誤差引起,比如環(huán)境溫度的緩慢變化,可以通過嚴格的環(huán)境控制或引入補償來降低此類誤差。這個不應(yīng)該存在,而且可以通過一定的措施去除掉。貌似就是b(T)溫漂
溫度補償和溫度閉環(huán)兩種方法比較:溫度補償很難做,而且效果不好,一般使用溫度閉環(huán);
e。指數(shù)相關(guān)噪聲(Exponential Correlation Noise)和正弦噪聲S(t)(Sinusoidal Noise)
正弦噪聲:由于mems單元在特定頻率工作,所以一般受到正弦噪聲的污染;
從算法上需要解決的:(1)角度隨機游走(2)零偏不穩(wěn)定性
MPU6050不論是做平衡還是四軸飛行器,關(guān)鍵的問題在于模塊姿態(tài)的確定,通常需要用到積分運算與卡爾曼濾波算法,需要較強的數(shù)學功底與編程能力,因此以下主要分析姿態(tài)確定問題。
雖然6050芯片能夠輸出三軸加速度和三軸角速度的數(shù)據(jù),但實際應(yīng)用的時候,直接使用的確不是這些量,而是需要根據(jù)這些數(shù)據(jù)解算出三軸的角度數(shù)據(jù)。比如平衡小車,需要算出模塊的俯仰角,然后控制算法根據(jù)角度大小控制小車輪子的移動。四軸飛行器需要根據(jù)俯仰角度、滾轉(zhuǎn)角度,和飛行指令來調(diào)節(jié)四個電機的轉(zhuǎn)速。
從6軸的原始數(shù)據(jù)得到三軸的角度計算是一個比較復(fù)雜的運動學解算過程,有三點需要注意的問題:
1.三軸姿態(tài)的解算不能直接積分。因為三軸是有耦合的,只有在三軸角度為小角度的時候可以這么算,角度大了以后,比如60度了,這么算的誤差就很大。標準的做法是用四元數(shù)的方法做姿態(tài)解算,積分的方法可以用4階龍格-庫塔法,或者4階Gill法。詳情請參考:航空航天器運動的建模——飛行動力學的理論基礎(chǔ)肖業(yè)倫著北京航空航天大學出版社。
2.積分運算的累積誤差。角速度積分運算是有累積誤差的,累積誤差在短時間內(nèi)表現(xiàn)不明顯,只要零點漂移處理得好了,1分鐘以內(nèi)的漂移都不大,但時間長了,就會有累積誤差。穩(wěn)像儀中使用的MPU6050模塊零點漂移比較小,5分鐘大概0.02度。
3.角速率零點漂移。所謂零點漂移就是模塊靜止的時候,我們認為正常的輸出應(yīng)該是0,或者均值為0的數(shù)據(jù),但是實際上6050的輸出不是,經(jīng)測量,小于0.15度/秒。
在紙上畫出四個角度,分別為0度、26.6度、45度、90度,將紙固定在桌子上,每次將陀螺儀模塊旋轉(zhuǎn)到對應(yīng)的位置,經(jīng)過多次實驗(實驗結(jié)果如圖2所示),證實所使用的MPU6050模塊的角度輸出確實存在很大的誤差。但是從datasheet上看,MPU6050芯片和其他精度高且價格昂貴的芯片如ADIS16系列差別不是大,那么極有可能是姿態(tài)融合算法部分的問題。MPU6050模塊的姿態(tài)融合是在STM8單片機中實現(xiàn)的,而且沒有源碼,精度難以保證。
綜上所述,有兩種解決方法:
一、使用MPU6050模塊輸出的角速度和加速度的原始數(shù)據(jù),用算法對其進行姿態(tài)融合,得到角度。綜合利用陀螺儀和加速度計的特點,優(yōu)勢互補獲得準確的姿態(tài)角度,方法就是用卡爾曼濾波做數(shù)據(jù)融合。大致的思路是將模塊的姿態(tài)用四元素表示,作為系統(tǒng)的狀態(tài)量,模塊的姿態(tài)運動學方程作為濾波的狀態(tài)轉(zhuǎn)移方程,加速度信息作為濾波的觀察量信息,然后利用卡爾曼濾波的計算方法迭代計算更新,詳細的過程可以參考慣性導(dǎo)航方面的書籍。不過卡爾曼濾波算法比較復(fù)雜,需要用到矩陣運算等等,而且MPU6050模塊是IIC接口輸出的。
二、采用更高精度的陀螺儀模塊,直接得到角度。
評論
查看更多