63 virtual void update(
double gx,
double gy,
double gz,
64 double ax,
double ay,
double az,
65 double mx,
double my,
double mz,
66 double dt,
bool useMag =
true) = 0;
75 virtual void getQuaternion(
double &w,
double &i,
double &j,
double &k)
const = 0;
110 void update(
double gx,
double gy,
double gz,
111 double ax,
double ay,
double az,
112 double mx,
double my,
double mz,
113 double dt,
bool useMag =
true)
override;
115 void getQuaternion(
double &w,
double &i,
double &j,
double &k)
const override;
117 void reset()
override;
131 double m_q0, m_q1, m_q2, m_q3;
134 void update9DOF(
double gx,
double gy,
double gz,
135 double ax,
double ay,
double az,
136 double mx,
double my,
double mz,
140 void update6DOF(
double gx,
double gy,
double gz,
141 double ax,
double ay,
double az,
169 explicit MahonyFilter(
double kp = 2.0,
double ki = 0.005);
172 void update(
double gx,
double gy,
double gz,
173 double ax,
double ay,
double az,
174 double mx,
double my,
double mz,
175 double dt,
bool useMag =
true)
override;
177 void getQuaternion(
double &w,
double &i,
double &j,
double &k)
const override;
179 void reset()
override;
203 double m_q0, m_q1, m_q2, m_q3;
204 double m_integralFBx, m_integralFBy, m_integralFBz;
Abstract base class for IMU sensor fusion algorithms.
virtual void getQuaternion(double &w, double &i, double &j, double &k) const =0
Return the current orientation quaternion.
virtual ~IMUSensorFusion()=default
virtual void reset()=0
Reset the filter to the identity quaternion.
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.
Madgwick AHRS filter (9-DOF and 6-DOF).
void getQuaternion(double &w, double &i, double &j, double &k) const override
Return the current orientation quaternion.
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 reset() override
Reset the filter to the identity quaternion.
virtual ~MadgwickFilter()=default
void setBeta(double beta)
Set the filter gain β.
Mahony AHRS filter (9-DOF and 6-DOF).
void reset() override
Reset the filter to the identity quaternion.
void setKp(double kp)
Set proportional gain Kp.
void setKi(double ki)
Set integral gain Ki.
virtual ~MahonyFilter()=default
void getQuaternion(double &w, double &i, double &j, double &k) const override
Return the current orientation quaternion.
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.
Namespace to encapsulate INDI client, drivers, and mediator classes.