10#ifndef M5_UNIT_IMU_IMU_FILTER_MADGWICK_HPP
11#define M5_UNIT_IMU_IMU_FILTER_MADGWICK_HPP
36 virtual void reset()
override;
37 virtual void update(
const float dt,
const float accel[3],
const float gyro[3],
const float* mag)
override;
38 virtual void quaternion(
float& w,
float& x,
float& y,
float& z)
const override;
63 bool writeQuaternion(
const float w,
const float x,
const float y,
const float z);
Framework-independent contract shared by every AHRS attitude filter.
Definition filter_base.hpp:81
Gradient-descent orientation filter (Madgwick 2010)
Definition madgwick.hpp:32
bool writeQuaternion(const float w, const float x, const float y, const float z)
Overwrite the current attitude estimate directly.
Definition madgwick.cpp:132
virtual void reset() override
Reset the internal attitude estimate (and any filter state) to identity.
Definition madgwick.cpp:22
bool writeBeta(const float beta)
Set the gradient descent gain.
Definition madgwick.cpp:123
virtual void update(const float dt, const float accel[3], const float gyro[3], const float *mag) override
Fuse one IMU sample into the attitude estimate.
Definition madgwick.cpp:27
virtual void quaternion(float &w, float &x, float &y, float &z) const override
Current fused attitude.
Definition madgwick.cpp:115
float readBeta() const
Current gradient descent gain.
Definition madgwick.hpp:47
Common contract for AHRS attitude filters.
Top level namespace of M5Stack.
Definition ahrs_controller.cpp:26
Minimal quaternion arithmetic for attitude representation (framework independent)
Plain Hamilton quaternion (float) used to represent attitude.
Definition quaternion.hpp:31