給51黑論壇的朋友們分享關于MPU6050的超好文章,介紹姿態解算的入門知識,非常通俗易懂.
AHRS俗稱航姿參考系統,AHRS由加速度計,磁場計,陀螺儀構成,AHRS的真正參考來自于地球的重力場和地球的磁場~~他的靜態終精度取決于對磁場的測量精度和對重力的測量精度 ,而則陀螺決定了他的動態性能。
這就是AHRS~在這種前提下。說明AHRS離開了地球這種有重力和磁場環境的時候是沒法正常工作的~~
本章旨在講解以下內容
1.加速度
2.陀螺儀
3.磁力計
一直想寫篇文章關于姿態解算原理的,使用盡量通俗的語句說明如何從加速度計和陀螺 儀的數據,融合得到載體的姿態角。無奈自己的水平有限,一直擱置。 淡泊以明志,寧靜以致遠.人總是要逼自己做些事,才過得心安理得。那就拿點時間把這 方面的資料整合一下吧。這篇文章的大部分內容都不是本人原創的,感謝網絡上無私奉獻的 人.
在此介紹一下實驗的姿態板 ,新一代的mini AHRS,采用STM32F103單片機進行姿態解算,板子上集成有
1.MPU6050,三軸的加速度和陀螺儀
2.HMC5883 三軸的磁力計
3.BMP180 高精度氣壓高度計
這些傳感器都通過I2C接口連接到主控制器STM32.不需要額外的ADC電路,直接通過數字接口就可以讀取傳感器的當前輸出.
Mini AHRS硬件框圖
0.png (154.82 KB, 下載次數: 246)
下載附件
2017-8-18 18:24 上傳
1 加速度計
加速度計顧名思義,就是測量加速度的.那么,我們如何認識這個加速度呢?在此用一個盒子形 狀的立方體來做模型,認識加速度,如下,盒子內的圖像。
0.png (58.78 KB, 下載次數: 213)
下載附件
2017-8-18 18:24 上傳
如果我們把盒子形狀的立方體 放在一個沒引力場的地方,球會保持在盒子的中間.你可以想 象,這個盒子是在外太空,遠離任何天體,很難找到這樣的地方,就想象飛船軌道圍繞地球飛,一切都是在失重狀態下。那么六個壁面感受到的壓力都是0.
如果我們突然將立方體向左側移動(我們加快加速,1G =9.8米/ S ^ 2),皮球打在了墻上X-。然后,我們測量球適用于在X軸上的壁和輸出-1g值的壓力。如下圖
0.png (85.86 KB, 下載次數: 214)
下載附件
2017-8-18 18:25 上傳
請注意,加速度計反應的加速向量與當前的受力方向是相反的.如上圖所示,受力方向向 左,但是加速度的向量方向為右.
如果我們把這個小盒子拿來放在地球上,那么小球會落在Z-壁面上,并會為1G的底壁施加一個力,在下面的圖片所示:
0.png (73.79 KB, 下載次數: 187)
下載附件
2017-8-18 18:25 上傳
在這種情況下,框不動,但我們仍然可以得到Z軸的讀數-1G。球在墻壁上的壓力造成的引力場。
到目前為止,我們已經分析了單個軸加速度計的輸出,這是你會得到一個單軸加速度計。 三軸加速度計的真正價值,即是他們可以同時檢測到所有三個軸的慣性力。讓我們回到我 們的盒模型,并讓旋轉45度在右邊的框中。球會觸及兩面墻:Z和X-在下面的圖片所示:
0.png (101.99 KB, 下載次數: 217)
下載附件
2017-8-18 18:26 上傳
x 和 z 軸受到值的0.71是不是任意的? 它們實際上是一個近似SQRT(1/2).要知道當盒子只受重力場時,x^2+Y^2+z^2 =1g 這將變得更加清晰,為大家介紹一下我們的下一個樣子的加速度計。
在之前的盒子模型中,我們有固定的引力場及旋轉。在剛剛說明的兩個例子中,我們分析 了2個不同的輸出框位置,而力矢量保持不變。這更有利于了解加速度計如何與外部交互, 并顯示當前讀數。
0.png (48.19 KB, 下載次數: 194)
下載附件
2017-8-18 18:26 上傳
請看一下上面的模型,這是一個新的模型代替剛剛的盒子立方體。試想一下,在新模型中 的每個軸是垂直于盒子的壁面。向量R是加速度計測量(從上面的例子或這兩者的組合,它 可以是引力場或慣性力)的力矢量。接收時,Ry,R Z與上的X,Y,Z軸的R矢量投影。請注 意下面的關系式:
R ^ 2 = RX ^ 2 + RY ^ 2 + RZ ^ 2 (公式1)
請記住,早一點我告訴你,SQRT(1/2)的值不是隨機的〜0.71。如果您將上述公式中,回 顧我們的引力場為1 g后,我們可以驗證:
1 ^ 2 =(-SQRT(1/2))^ 2 + 0 ^ 2 +(-SQRT(1/2))^ 2
簡單地通過代以R = 1時,接收= SQRT(1/2)時,Ry = 0,RZ = SQRT(1/2)在方程
經過以上的理論分析我們越來越接近現實生活中的加速度計。 值RX,RY,RZ實際上是呈線性關系對應到真正的現實加速度計的x軸 y軸 z軸.
在此提出一個問題, 加速度計如何將這些信息告訴我們? 目前市面上的加速度計從輸出上區分為兩種,一種是數字的,另一種是模擬
的.miniAHRS 使用的是MPU6050三軸加速度計,是I2C接口的數字傳感器.通過特定的命令可以配置加速度的量程,并將內部ADC的轉換結果讀出來.
現在,我們有我們的加速度計的讀數,以LSB為單位的,它仍然不是g(9.8米/秒^ 2),需要最后的轉換,我們要知道加速度計靈敏度,通常表示為LSB /g。比方說當我們選擇2g的量程時,對應的靈敏度= 16384 LSB/ G 。為了得到最終的力值,單位為g,我們用下面的公式:
RX = ADCRx /靈敏度
也就是說 當x軸的計數為ADCRx 時,那么對應的加速度值就是 (ADCRx/16384)g.回到加速度向量模型,將相關角度符號補上,如下圖
0.png (72.75 KB, 下載次數: 196)
下載附件
2017-8-18 18:28 上傳
方向余弦
我們感興趣的是向量R 和 X、Y、Z軸之間的角度,將它們定義為 Axr Ayr Azr. 可以看到
由R 和Rx 組成的直角三角形:
COS(Axr)= RX / R 依此類推:
COS(Ayr)= RY / R
COS(Azr)= RZ / R
可以得到 R = SQRT(RX ^ 2 + RY ^ 2 + RZ ^ 2) 我們發現 當使用 arccos() 反余弦 :
Axr = arccos(RX / R)
Ayr = arccos(RY / R)
Azr = arccos(RZ / R)
已以通過很多公式解釋加速度計模型。我們也會很快解釋陀螺儀 以及如何用加速度計和陀 螺儀的數據進行整合,以得到更精確的角度估計。
在這之前 我們先來看看更有用的公式: cosX = cos(Axr) = Rx / R
cosY = cos(Ayr) = Ry / R
cosZ = cos(Azr) = Rz / R
這三個公式通常被稱為方向余弦。你可以輕松地驗證: SQRT(cosX ^ 2 + COSY ^ 2 + cosZ ^ 2)= 1
這個屬性可以避免監視R矢量的模(長度)。很多時候,我們只對慣性矢量方向感興趣,對 矢量進行規范化對簡化程序運算很有意義。
重力向量
我們暫且從理論分析回到現實的傳感器輸出中,當水平放置MPU6050,只有Z軸感受到重力向量,它將輸出1g。對應的ADC值就是16384 (2g的量程)。此時,R就是重力向量,Rx=0. Ry=0. Rz = R =1g.滿足 R ^ 2 = RX ^ 2 + RY ^ 2 + RZ ^ 2 得到重力向量與各個軸的夾角
Axr = arccos(RX / R) = 90度
Ayr = arccos(RY / R) = 90度
Azr = arccos(RZ / R) = 0 度
加速度計的標定
當MPU6050水平放置時,理論上Z軸感受到重力 將讀出16384。同時X 軸和Y軸的讀數將是0.可實際并不是這樣的。這是由于每個芯片在制作時都不一樣,數據手冊上的都是理論的值,真正的芯片在水平時Z軸可能并不是16384.我們需要找到當各個軸在0g重力時的計數,
1g時的讀數,以及-1g時的讀數,得到一個補償值,在每次讀取ADC結果后都進行補償。這個過程我們稱之為標定。用數學公式表示為:
ADCx = K*Gx + Offset
ADCx 傳感器輸出
Gx 真實的加速值
Offset 加速度為0g時傳感器的輸出
K 標度因數
陀螺儀
陀螺儀是測試角速度的傳感器,也有人把角速度說成角速率,說的是一樣的物理量。拿電機做例子,當我們說一個電機10轉每秒。一轉是360度,那么它的主軸在一秒內轉過3600度。也就是說這個電機在轉動時的角速度是3600dps.dps 就是dergee per second 度每秒(或者寫成 deg/s).
MPU6050 集成了三軸的陀螺儀.角速度全格感測范圍為±250、±500、±1000與±2000°/sec (dps).當選擇量程為±250dps的時候,將會得到分辯率為131LSB/(º/s).也就是當載體在X+軸轉動1dps時,ADC將輸出131.
0.png (64.47 KB, 下載次數: 203)
下載附件
2017-8-18 18:29 上傳
回到加速度向量模型,將相關角度符號補上,如下圖
0.png (63.47 KB, 下載次數: 176)
下載附件
2017-8-18 18:30 上傳
陀螺儀測量什么?
MPU6050帶有三個陀螺儀,每個陀螺儀各自負責檢測相應軸的轉動速度,也就是檢測圍繞各個軸轉動的速度。像三軸的陀螺儀將同時檢測 X Y Z軸的旋轉。 由上面這個模型圖,首先我們定義: Rxz - 是R向量在XZ平面上的投影 Ryz - 是R向量在XY平面上的投影 Rxz和Rz所形成的直角三角形,利用勾股定理,我們得到: Rxz ^ 2 = RX ^ 2 + RZ ^ 2,和同樣: Ryz ^ 2 = RY ^ 2 + RZ ^ 2
還要注意的是:
R ^ 2 = RXZ ^ 2 + Ry^ 2,這可以來自從公式1和上面的等式,或它可以是來自于由R和Ryz
R ^ 2 = Ryz ^ 2 + Rx^ 2 形成的直角三角我們不會在本文中使用這些公式,只是讓讀者認識到所有值之間的關系。 同時我們將定義Z軸和Rxz 、RyZ之間的夾角。 Axz - Rxz和Z軸間的夾角 Ayz - Ryz和Z軸間的夾角 現在看看,從這個模型中,陀螺儀測量什么?
上述的說明,已經知道陀螺儀測量角度的變化率.為了解釋這一點,讓我們假設,我們已經 測量圍繞Y軸的旋轉角(這將是Axz角)在時刻t0,我們將其定義為Axz0,接下來,我們測 量這個角度是在稍后的時間t1是Axz1。變化率將被計算如下:
RateAxz =(Axz1 - Axz0)/(t1 - t0)
如果Axz單位是度,并以秒為時間單位,那么RateAxz將以deg / s表示。
MPU6050并不會以 deg / s 單位輸出,我們需要在讀完后進行轉換。先來看看各個量程對 應的靈敏度。
0.png (98.4 KB, 下載次數: 182)
下載附件
2017-8-18 18:33 上傳
從ADC值到 dps
通過I2C接口讀出來的轉換結果ADC值,并不是以度每秒為單位。一般按以下公式進行轉換:
Anglerate = ADCrate /靈敏度
以量程為±1000º/s為例,說明如何轉換。假設讀取x軸的ADC值為200,從上表中得知在±1000º/s下的靈敏度為32.8LSB/(º/s) 。根據上面的公式:
Anglerate = 200/32.8 = 6.09756º/s
這就是說,MPU6050檢測到模塊正在以約6度每秒的速度繞X軸(或者叫在YZ平面上)旋轉.
ADC值并不都是正的,請注意,當出現負數時,意味著該設備從現有的正方向相反的方向旋轉.
磁力計
通過上面的介紹,讀者對加速度和陀螺儀已經有一個認識了。
1.陀螺儀的強項在于測量設備自身的旋轉運動。對設備自身運動更擅長。但不能確定設備的方位。
2.加速計的強項在于測量設備的受力情況。對設備相對外部參考物(比如,地面)的運動更擅長。
那么 為什么所有的AHRS模塊都帶有一個三軸的磁力計呢?磁力計是做什么用的?
首先,AHRS 全稱為姿態航向參考系統,加速度和陀螺只能提供姿態參考,并不能解算出正確的航向。而磁力計是用于感受地磁向量以解算出模塊與北的夾角。磁力計的這個功能類似 于指南針,所以也叫電子指南針,或者稱為電子磁羅盤。 為了認識這個傳感器,重新認識一下指南針。
0.png (405.83 KB, 下載次數: 193)
下載附件
2017-8-18 18:34 上傳
從指南針開始
指南針是用以測定方向基準的儀器。其主要組成部分是一根裝在軸上可以自由轉動的磁 針。指南針之所以能夠指示方向,是因為地球本身存在磁場,磁針在地磁場作用下能保持在 磁子午線的切線方向上。磁針的N極指向地磁的南極,利用這一性能可以辨別方向。常用于 航海、大地測量、旅行及軍事等方面。 指南針是用以測定方向基準的儀器。其主要組成部分是一根裝在軸上可以自由轉動的磁 針。指南針之所以能夠指示方向,是因為地球本身存在磁場,磁針在地磁場作用下能保持在 磁子午線的切線方向上。磁針的N極指向地磁的南極,利用這一性能可以辨別方向。常用于 航海、大地測量、旅行及軍事等方面。
0.png (100.29 KB, 下載次數: 199)
下載附件
2017-8-18 18:34 上傳
霍爾傳感器
霍爾傳感器是根據霍爾效應制作的一種磁場傳感器。霍爾效應是磁電效應的一種,這一現 象是霍爾(A.H.Hall,1855—1938)于1879年在研究金屬的導電機構時發現的.
在半導體薄片兩端通以控制電流I,并在薄片的垂直方向施加磁感應強度為B的勻強磁場,則在垂直于電流和磁場的方向上,將產生電勢差為VH的霍爾電壓.
霍爾效應的典型應用就是霍爾開關,它由穩壓器、霍爾元件、差分放大器,斯密特觸發器和輸出級組成,它輸出數字量。常常用于檢測發動機轉速和產生點火信號,等等 在這里說霍爾效應 是證明磁場是存在的,也是可以被檢測到的.
磁力計與霍爾傳感器是有差別的,前者是用于檢測微量的磁場,大地磁場約在0.3-0.6高斯,如此微弱的磁力,我們需要借助惠斯通電橋來檢測,
0.png (50.56 KB, 下載次數: 169)
下載附件
2017-8-18 18:35 上傳
磁力計的惠斯通電橋
如上圖所示。R1/R2/R3/R4是初始狀態相同的AMR電阻,但是R1/R2和R3/R4具有相反的磁化特性。當檢測到外界正交偏置磁場的時候,R1/R2阻值增加∆R而R3/R4減少∆R。這樣在沒有外界正交偏置磁場的情況下,電橋的輸出為零;而在有外界磁場時電橋的輸出為一個微小的電壓∆V。磁力計就是利用惠斯通電橋檢測AMR阻值的變化,來感覺外部的磁力.當然這里的∆V很小,需要進入放大電路處理。
在些解釋一下電橋的關鍵部件AMR電阻,也叫各向異性磁電阻效應,簡稱磁控電阻.當外部的 磁力線垂直于電阻時與外部磁力線平行于電阻時呈現不一樣的電阻率.
HMC5883是三軸的磁力計,當然它內部有三個電橋.將三維磁阻傳感器按照載體三維坐標系安裝,通過測量載體空間磁場的三維磁感應強度,按照一定的算法就可以計算出載體在空間 的姿態信息。 這就是電子指南針.
磁干擾
這個世界上不是只有地球才能產生磁場,我們身邊很多的物體都是可以產生磁場的,比如磁 鐵,電機,鋼筋構建的樓房,通電流的直導線也會產生磁場.
我們可以做這樣的實驗,找個指南針,當用磁鐵靠近指南針時,它指示的方向會發生變化,此 時它再不能用做指南針給我們導航.因為它受到外界磁力干擾,指示的方向已經不能保證正確 了.這樣的現象,我們稱之為磁干擾.
電子指南針主要是通過感知地球磁場的存在來計算磁北極的方向。然而由于地球磁場在一 般情況下只有微弱的0.5高斯左右,而一個普通的手機喇叭當相距2厘米時仍會有大約4高斯 的磁場,一個手機馬達在相距2厘米時會有大約6高斯的磁場,這一特點使得針對電子設備表 面地球磁場的測量很容易受到電子設備本身的干擾。 磁場干擾是指由于具有磁性物質或者可以影響局部磁場強度的物質存在,使得磁傳感器所 放置位置上的地球磁場發生了偏差。 磁干擾又分成兩種,一種是硬磁干擾,另一個是軟磁干擾.
硬鐵磁場由磁力計平臺(可認為是載體)上的永久性磁鐵和被磁化的鋼鐵物質組成,其特點 是當載體位于某一固定位置時,其強度為一定值,不隨航向的變化而變化.軟鐵磁場可認為 由地球磁場與磁力計周圍的磁化物質相互作用而產生。與硬鐵磁場不同的是,軟鐵磁場強度 的大小與方向與磁力計的方位有關.
磁校準
受環境因素和電子磁羅盤自身因素的影響,電子磁羅盤常存在較大的航向角誤差,因此經 常需要在使用前校準.磁羅盤校準的一般方法是使安裝有磁羅盤的載體做特定的運動,或者 將載體轉動到某些特定的角度,得到磁羅盤在不同姿態下的磁場強度測量值.通過對測量值 分析,進行磁羅盤的校準
平面校準方法 針對XY軸的校準,將配備有磁傳感器的設備分別在XY平面內自轉,相當于將地球磁場矢量 繞著過點O(γx,γy)垂直于XY平面的法線旋轉, 而紅色的圓為磁場矢量在旋轉過程中在XY平 面內投影的軌跡。這可以找到圓心的位置為((Xmax + Xmin)/2, (Ymax + Ymin)/2).
完整的pdf格式文檔51黑下載地址(共11頁):
MPU6050原始數據分析.pdf
(1.93 MB, 下載次數: 635)
2017-8-18 17:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|