Madgwick Filterをライブラリ化しました.内容はオープンソースになっていたやつのほぼ同じです.

Dependencies:   Quaternion

Dependents:   Hybrid_main_FirstEdtion rocket_logger_sinkan2018_v1 HYBRYD2018_IZU_ROCKET Hybrid_IZU2019 ... more

Fork of MadgwickFilter by Gaku Matsumoto

Embed: (wiki syntax)

« Back to documentation index

MadgwickFilter Class Reference

MadgwickFilter Class Reference

Madgwick Filterを用いて,角速度・加速度・地磁気データを統合し,姿勢を推定するライブラリです. More...

#include <MadgwickFilter.hpp>

Public Member Functions

 MadgwickFilter (float B=BETA_DEF)
 マドグウィックフィルター(マッジュウィックフィルター)クラスのコンストラクタ
void MadgwickAHRSupdate (float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz)
 MadgwickFilterによって角速度・加速度・地磁気データを統合し,姿勢計算します.
void MadgwickAHRSupdate (float *gyro, float *acc, float *mag)
 MadgwickFilterによって角速度・加速度・地磁気データを統合し,姿勢計算します.
void MadgwickAHRSupdateIMU (float gx, float gy, float gz, float ax, float ay, float az)
 MadgwickFilterを角速度と加速度のみで動かし,姿勢計算を更新します.
void getAttitude (Quaternion *Q)
 姿勢を四元数で取得します.
void getAttitude (float *_q0, float *_q1, float *_q2, float *_q3)
 姿勢を四元数で取得します.
void getEulerAngle (float *val)
 オイラー角で姿勢を取得します.

Detailed Description

Madgwick Filterを用いて,角速度・加速度・地磁気データを統合し,姿勢を推定するライブラリです.

Note:
Quaternion.hppを利用されることをお勧めいたします.

Definition at line 13 of file MadgwickFilter.hpp.


Constructor & Destructor Documentation

MadgwickFilter ( float  B = BETA_DEF )

マドグウィックフィルター(マッジュウィックフィルター)クラスのコンストラクタ

Parameters:
Bdouble型, この値を大きくすると重力の影響を大きく取るようになります.
Note:
引数無しの場合,B = 0.1fが代入されます.

Definition at line 82 of file MadgwickFilter.hpp.


Member Function Documentation

void getAttitude ( Quaternion *  Q )

姿勢を四元数で取得します.

Parameters:
Qクォータニオンクラスのインスタンスアドレス, w・i・j・kを更新します.
Note:
unityに入れる際は軸方向を修正してください.

Definition at line 95 of file MadgwickFilter.hpp.

void getAttitude ( float *  _q0,
float *  _q1,
float *  _q2,
float *  _q3 
)

姿勢を四元数で取得します.

Parameters:
_q0実部w, double型, アドレス
_q1虚部i, double型, アドレス
_q2虚部j, double型, アドレス
_q3虚部k, double型, アドレス
Note:
unityに入れる際は軸方向を修正してください.

Definition at line 102 of file MadgwickFilter.hpp.

void getEulerAngle ( float *  val )

オイラー角で姿勢を取得します.

Parameters:
valロール,ピッチ,ヨーの順に配列に格納します.3つ以上の要素の配列を入れてください.
Note:
値は[rad]です.[degree]に変換が必要な場合は別途計算して下さい.

Definition at line 111 of file MadgwickFilter.hpp.

void MadgwickAHRSupdate ( float *  gyro,
float *  acc,
float *  mag 
)

MadgwickFilterによって角速度・加速度・地磁気データを統合し,姿勢計算します.

Parameters:
gyro角速度データ,[rad]に変換してから入れてください.
acc加速度データ, 特に規格化は必要ありません
mag地磁気データ, キャリブレーションを確実に行って下さい.
Note:
角速度は[rad]にしてください.この関数は出来るだけ高速に呼び出し続けた方が良いと思います.
外部でローパスフィルタなどをかけることをお勧めします.

Definition at line 238 of file MadgwickFilter.hpp.

void MadgwickAHRSupdate ( float  gx,
float  gy,
float  gz,
float  ax,
float  ay,
float  az,
float  mx,
float  my,
float  mz 
)

MadgwickFilterによって角速度・加速度・地磁気データを統合し,姿勢計算します.

Parameters:
gx,gy,gz角速度データ,[rad]に変換してから入れてください.
ax,ay,az加速度データ, 特に規格化は必要ありません
mx,my,mz地磁気データ, キャリブレーションを確実に行って下さい.
Note:
角速度は[rad]にしてください.この関数は出来るだけ高速に呼び出し続けた方が良いと思います.
外部でローパスフィルタなどをかけることをお勧めします.

Definition at line 120 of file MadgwickFilter.hpp.

void MadgwickAHRSupdateIMU ( float  gx,
float  gy,
float  gz,
float  ax,
float  ay,
float  az 
)

MadgwickFilterを角速度と加速度のみで動かし,姿勢計算を更新します.

Parameters:
gx,gy,gz角速度データ,[rad]に変換してから入れてください.
ax,ay,az加速度データ, 特に規格化は必要ありません
Note:
通常の関数でも,地磁気成分を0.0にすればこの関数が呼ばれます.

Definition at line 370 of file MadgwickFilter.hpp.