|
Instrument Neutral Distributed Interface INDI 2.2.5
|
Abstract base class for IMU sensor fusion algorithms. More...
#include <imusensorfusion.h>
Public Member Functions | |
| virtual | ~IMUSensorFusion ()=default |
| virtual 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)=0 |
| Perform one filter update step. | |
| virtual void | getQuaternion (double &w, double &i, double &j, double &k) const =0 |
| Return the current orientation quaternion. | |
| virtual void | reset ()=0 |
| Reset the filter to the identity quaternion. | |
Abstract base class for IMU sensor fusion algorithms.
Accepts calibrated 9-DOF sensor data (accelerometer, gyroscope, magnetometer) and produces a quaternion representing the orientation of the sensor in the world frame. Gracefully degrades to 6-DOF if magnetometer data is not available.
All inputs use SI units:
Definition at line 43 of file imusensorfusion.h.
|
virtualdefault |
|
pure virtual |
Return the current orientation quaternion.
Implemented in INDI::MadgwickFilter, and INDI::MahonyFilter.
|
pure virtual |
Reset the filter to the identity quaternion.
Implemented in INDI::MadgwickFilter, and INDI::MahonyFilter.
|
pure virtual |
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) |
Implemented in INDI::MadgwickFilter, and INDI::MahonyFilter.