1. 程式人生 > >IMU加速度、磁力計校正--橢球擬合

IMU加速度、磁力計校正--橢球擬合

版權宣告:本文為博主原創文章,未經博主允許不得轉載。

博主:shenshikexmu

聯絡方式:[email protected]

問題

考慮到IMU中,x,y,z軸的度量單位並不相同,假設各軸之間相互直。

那麼加速度感測器在靜止狀態(也就是隻受重力的狀態下),各個姿態只受重力的,x,y,z軸值(假設x,y,z軸相互垂直並且度量單位都一致,如mpu9250三軸的度量單位都是2048,16g量程的情況下),在三維空間中,重力點都在一個球面上,但各軸之間的度量單位都會有偏差,所以各姿態重力點都落在一個橢球面上,橢球的中心,就是加速度的偏移量,也就是校準值

在磁力計上,由於測量磁場強度,在環境不變的情況下,感測器每個姿態感受磁場強度是相同,所以不需要靜止狀態,磁力計測量的x,y,z軸值,在沒有偏差的情況下,在感測器內部x,y,z軸相互垂直的情況下,在三維空間中組成一個圓球面。但是磁力計存在Hard Iron Distortion和Soft Iron Distortion。使得x,y,z軸度量單位不相同,各軸也並非相互垂直,(說明一下,任意橢球的三個軸都是相互垂直的,幾何上,橢球最長的軸與最短的軸相互垂直,從代數的角度看,對稱正定矩陣

A = R B R ,其中B為對角線大於0表示各軸長度,其他位置為0的矩陣, R
為旋轉矩陣, R R = I ,所以磁通量的空間座標雖然形成一個橢球,橢球各軸相互垂直,但這個垂直的軸已經不是感測器x,y,z軸了)橢球球心也並非[0,0,0]座標磁通量在三維空間組成的橢球球心,是磁力計的校準值的一部分

數學模型

所以問題在於給定橢球球面上的點,如何求橢球球心。其實就是一個橢球擬合問題

a 1 x 2 + a 2 y 2 + a 3 z 2 + a 4 x y + a 5 x z + a 6 y z + a 7 x + a 8 y + a 9 z = 1

從幾何的角度表示上式的橢球為

[ x c x y c y z c z ] [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] T [ λ 1 0 0 0 λ 2 0 0 0 λ 3 ] [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] [ x c x y c y z c z ] = 1

上式寫成矩陣形式

[ X C ] M [ X C ] T = 1
X M X T 2 C M X T + C M C T = 1

其中
X = [ x y z ] ,表示球面上的點。
C = [ c x c y c z ] ,表示球心。