|
Instrument Neutral Distributed Interface INDI 2.2.5
|
Madgwick AHRS filter (9-DOF and 6-DOF). More...
#include <imusensorfusion.h>
Public Member Functions | |
| MadgwickFilter (double beta=0.1) | |
| virtual | ~MadgwickFilter ()=default |
| void | update (double gx, double gy, double gz, double ax, double ay, double az, double mx, double my, double mz, double dt, bool useMag=true) override |
| Perform one filter update step. | |
| void | getQuaternion (double &w, double &i, double &j, double &k) const override |
| Return the current orientation quaternion. | |
| void | reset () override |
| Reset the filter to the identity quaternion. | |
| void | setBeta (double beta) |
| Set the filter gain β. | |
| double | getBeta () const |
Public Member Functions inherited from INDI::IMUSensorFusion | |
| virtual | ~IMUSensorFusion ()=default |
Madgwick AHRS filter (9-DOF and 6-DOF).
A computationally efficient gradient-descent based orientation filter. A single tuning parameter β (beta) controls the trade-off between gyroscope integration accuracy and accelerometer/magnetometer correction:
Recommended starting value: β = 0.1 for astronomical applications.
Reference: Madgwick, S.O.H. (2010) "An efficient orientation filter for inertial and inertial/magnetic sensor arrays"
Definition at line 99 of file imusensorfusion.h.
|
explicit |
| beta | Algorithm gain β. Controls gyroscope measurement error (rad/s). Default 0.1 is suitable for slow-moving astronomical applications. |
Definition at line 37 of file imusensorfusion.cpp.
|
virtualdefault |
|
inline |
Definition at line 124 of file imusensorfusion.h.
|
overridevirtual |
Return the current orientation quaternion.
Implements INDI::IMUSensorFusion.
Definition at line 50 of file imusensorfusion.cpp.
|
overridevirtual |
Reset the filter to the identity quaternion.
Implements INDI::IMUSensorFusion.
Definition at line 42 of file imusensorfusion.cpp.
|
inline |
Set the filter gain β.
Definition at line 120 of file imusensorfusion.h.
|
overridevirtual |
Perform one filter update step.
| gx | Gyroscope X-axis angular rate (rad/s) |
| gy | Gyroscope Y-axis angular rate (rad/s) |
| gz | Gyroscope Z-axis angular rate (rad/s) |
| ax | Accelerometer X-axis (m/s² or any unit — only direction used) |
| ay | Accelerometer Y-axis |
| az | Accelerometer Z-axis |
| mx | Magnetometer X-axis (µT or any consistent unit) |
| my | Magnetometer Y-axis |
| mz | Magnetometer Z-axis |
| dt | Time step in seconds since last update |
| useMag | If false the magnetometer data is ignored (6-DOF mode) |
Implements INDI::IMUSensorFusion.
Definition at line 58 of file imusensorfusion.cpp.