M5Unit-IMU 0.0.2 git rev:e5b00aa
Loading...
Searching...
No Matches
filter_base.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
53#ifndef M5_UNIT_IMU_IMU_FILTER_FILTER_BASE_HPP
54#define M5_UNIT_IMU_IMU_FILTER_FILTER_BASE_HPP
55
56#include <cstdint>
57
58namespace m5 {
59namespace imu {
60
65enum class FilterType : uint8_t {
67 Madgwick,
68 Mahony,
69 EKF,
70 Fusion,
71 VQF,
72};
73
82public:
83 virtual ~AhrsFilterBase() = default;
84
86 virtual void reset() = 0;
87
96 virtual void update(const float dt, const float accel[3], const float gyro[3], const float* mag) = 0;
97
105 virtual void quaternion(float& w, float& x, float& y, float& z) const = 0;
106};
107
108} // namespace imu
109} // namespace m5
110#endif
Framework-independent contract shared by every AHRS attitude filter.
Definition filter_base.hpp:81
virtual void quaternion(float &w, float &x, float &y, float &z) const =0
Current fused attitude.
virtual void reset()=0
Reset the internal attitude estimate (and any filter state) to identity.
virtual void update(const float dt, const float accel[3], const float gyro[3], const float *mag)=0
Fuse one IMU sample into the attitude estimate.
FilterType
Built-in AHRS filter implementations selectable via AhrsController::selectFilter.
Definition filter_base.hpp:65
@ Madgwick
Gradient-descent orientation filter (Madgwick 2010)
@ EKF
Quaternion extended Kalman filter.
@ Mahony
Explicit complementary filter with PI feedback (Mahony)
@ Fusion
Vendored x-io Fusion AHRS.
@ Complementary
Angle-based first-order complementary filter.
@ VQF
Vendored basicvqf (Versatile Quaternion-based Filter)
Top level namespace of M5Stack.
Definition ahrs_controller.cpp:26