#ifndef MADGWICK_FILTER_H #define MADGWICK_FILTER_H typedef struct { float q[4]; // Quaternion: [qw, qx, qy, qz] float beta; // Filter gain (tunes correction strength) float sampleFreq; // Sampling frequency in Hz } MadgwickFilter; void MadgwickFilter_Init(MadgwickFilter* filter, float sampleFreq, float beta); void MadgwickFilter_Update(MadgwickFilter* filter, float gx, float gy, float gz, float ax, float ay, float az); void MadgwickFilter_GetEulerAngles(MadgwickFilter* filter, float* roll, float* pitch, float* yaw); #endif /* MADGWICK_FILTER_H */