Madgwickフィルタとは?
Arduinoで使えるMadgwickフィルタライブラリ
下記のライブラリが利用できる。
github.com
地磁気を入力しない場合、鉛直軸の回転はジャイロのドリフトを補正できない。重力加速度による角度推定が鉛直軸回転には利用できないためである。これは相補フィルタやカルマンフィルタも同様である。
使い方
【宣言】
#include <MadgwickAHRS.h> Madgwick madgwick;
【初期化】
madgwick.begin(100); //100Hz (10msec周期)
【計算】
// 6軸センサの場合 (ジャイロは[deg/s]、加速度は生値でも[G]でも[m/s^2]でも可) madgwick.updateIMU(gx, gy, gz, ax, ay, az); // 9軸センサの場合 (地磁気は生値でも[uT]でも可) madgwick.update(gx, gy, gz, ax, ay, az, mx, my, mz);
【姿勢角(オイラー角表現)の取得】
// [deg]で取得 float roll = madgwick.getRoll(); float pitch = madgwick.getPitch(); float yaw = madgwick.getYaw(); // [rad]で取得 float roll = madgwick.getRollRadians(); float pitch = madgwick.getPitchRadians(); float yaw = madgwick.getYawRadians();
6軸センサBMI160
BMI160はBOSCH社製の6軸センサである。詳しくは下記の記事を参照。
lipoyang.hatenablog.com
Arduino用ライブラリも公開されている。 (非公式)
github.com