測試感測器:mpu9250,九軸感測器,其中有三個軸就是陀螺儀的三個方向角速度。
陀螺儀在每個取樣點獲得:取樣時刻(單位微妙),xyz三個方向的角速度(單位弧度/秒),記為:wx, wy, wz。陀螺儀靜止時,wx, wy, wz也是有讀數的,這就是陀螺儀的零漂。
實驗一:將陀螺儀繞x軸旋轉時,只有wx有讀數;將陀螺儀繞y軸旋轉時,只有wy有讀數;將陀螺儀繞z軸旋轉時,只有wz有讀數;
實驗二:將陀螺儀繞xy面上的軸旋轉,wz讀數為零,即與旋轉軸垂直的軸上的角速度為零。
因為陀螺儀取樣率很高(1000hz),通過瞬時讀數計算姿態,可以看做:先繞x軸旋轉,再繞y軸旋轉,再繞z軸旋轉。
下面這段**實現了乙個簡單的陀螺儀姿態演算法,開機並靜置幾十秒後,拿著陀螺儀旋轉,十幾分鐘內姿態是正確的,之後由於積分累積,誤差就越來越大了。
//引數說明:
//samplets : 取樣時刻,單位:微秒
//wx, wy, wz :陀螺儀取樣,單位:弧度/秒
void gyroexperiment(uint64_t samplets, float wx, float wy, float
wz)
//採用啟動後5秒-35秒的採用平均值作為陀螺儀零漂
//在此期間,應保持陀螺儀靜止
static
float s_wx = 0, s_wy = 0, s_wz = 0; //
陀螺儀零漂
static uint64_t s_elapsed = 0
;
if(s_elapsed < 35000000
) s_elapsed += (samplets -s_lasttime);
s_lasttime =samplets;
}//初始姿態,採用三個軸向量表示
static
float xx=1,xy=0,xz=0; //
x軸static
float yx=0,yy=1,yz=0; //
y軸static
float zx=0,zy=0,zz=1; //
z軸
//根據陀螺儀讀數計算三個軸的旋轉量
float interval = (samplets - s_lasttime) /1e6;
float rx = (wx - s_wx) *interval;
float ry = (wy - s_wy) *interval;
float rz = (wz - s_wz) *interval;
//分別構造繞三個軸旋轉的四元數
float
cos,sin;
cos = cosf(rx/2); sin = sinf(rx/2); quaternion qx(cos, xx * sin, xy * sin, xz *sin);
cos = cosf(ry/2); sin = sinf(ry/2); quaternion qy(cos, yx * sin, yy * sin, yz *sin);
cos = cosf(rz/2); sin = sinf(rz/2); quaternion qz(cos, zx * sin, zy * sin, zz *sin);
//依次旋轉三個軸向量
quaternion q = qx*qz*qy; q.normalize(); quaternion qi =q.inverse();
quaternion qx(
0, xx, xy, xz); qx = q*qx*qi; qx.normalize(); xx = qx.q2; xy = qx.q3; xz = qx.q4; //
旋轉x軸;
quaternion qy(0, yx, yy, yz); qy = q*qy*qi; qy.normalize(); yx = qy.q2; yy = qy.q3; yz = qy.q4; //
旋轉y軸;
quaternion qz(0, zx, zy, zz); qz = q*qz*qi; qz.normalize(); zx = qz.q2; zy = qz.q3; zz = qz.q4; //
旋轉z軸;
//每1秒輸出一次姿態資料
s_lasttime =samplets;
if(samplets - s_lastlog > 1000000
)}
MEMS陀螺儀抗震動研究
機械振動極大的影響mems陀螺儀的測量精度,如何消除機械振動對mems 測量的影響是這個行業的核心工作 原理框圖如下 專案使用梳齒結構mems陀螺儀表頭 驅動電路 檢測電路.mems表頭採用孟氏c v轉換電路,孟氏c v轉換電路不同於常見的c v轉換電路的地方是,孟氏c v轉換電路巧妙地利用了mem...
陀螺儀計算姿態待完善
測試感測器 mpu9250,九軸感測器,其中有三個軸就是陀螺儀的三個方向角速度。陀螺儀在每個取樣點獲得 取樣時刻 單位微妙 xyz三個方向的角速度 單位弧度 秒 記為 wx,wy,wz。陀螺儀靜止時,wx,wy,wz也是有讀數的,這就是陀螺儀的零漂。實驗一 將陀螺儀繞x軸旋轉時,只有wx有讀數 將陀...
陀螺儀的學習
從陀螺儀得到x y z三個角速度後就需要通過積分來得到角度,事實上,經過簡單的積分是得不到正確的角度的,更得不到尤拉角,在這裡說一下通過的runge kunta更新四元數,從而對角速度積分得到角度的過程。四元數能到快速的發展,得益於飛行器控制與導航的發展,要求更合理的描述剛體空間的運動,以便於計算機...