File syn_sensor_fusion.h¶
FileList > sensor > syn_sensor_fusion.h
Go to the source code of this file
6-DOF IMU Sensor Fusion & AHRS Complementary / Mahony Filter (Q16.16 fixed-point).
#include "../common/syn_defs.h"#include "../util/syn_qmath.h"
Classes¶
| Type | Name |
|---|---|
| struct | SYN_EulerAngles 3D Euler attitude angles (in radians, Q16.16). |
| struct | SYN_Quaternion 3D Quaternion representation (w + xi + yj + zk). |
| struct | SYN_SensorFusion Mahony 6-DOF IMU Sensor Fusion state structure. |
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_sensor_fusion_get_euler (const SYN_SensorFusion * f, SYN_EulerAngles * euler) Retrieve current Euler attitude angles (Roll, Pitch, Yaw). |
| SYN_Status | syn_sensor_fusion_get_quaternion (const SYN_SensorFusion * f, SYN_Quaternion * q) Retrieve current quaternion orientation estimate. |
| void | syn_sensor_fusion_init (SYN_SensorFusion * f, q16_t Kp, q16_t Ki, q16_t dt) Initialize the IMU sensor fusion filter. |
| void | syn_sensor_fusion_reset (SYN_SensorFusion * f) Reset filter state to initial identity orientation (q = [1, 0, 0, 0]). |
| SYN_Status | syn_sensor_fusion_update (SYN_SensorFusion * f, q16_t gx, q16_t gy, q16_t gz, q16_t ax, q16_t ay, q16_t az) Update orientation estimate using 6-axis IMU sample. |
Public Functions Documentation¶
function syn_sensor_fusion_get_euler¶
Retrieve current Euler attitude angles (Roll, Pitch, Yaw).
Parameters:
fFilter instance.eulerOutput Euler angles pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
function syn_sensor_fusion_get_quaternion¶
Retrieve current quaternion orientation estimate.
Parameters:
fFilter instance.qOutput quaternion pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
function syn_sensor_fusion_init¶
Initialize the IMU sensor fusion filter.
Parameters:
fFilter instance.KpProportional error gain (e.g., Q16_FROM_FLOAT(2.0)).KiIntegral error gain (e.g., Q16_FROM_FLOAT(0.005)).dtSampling interval in seconds (e.g., Q16_FROM_FLOAT(0.01) for 100 Hz).
function syn_sensor_fusion_reset¶
Reset filter state to initial identity orientation (q = [1, 0, 0, 0]).
Parameters:
fFilter instance.
function syn_sensor_fusion_update¶
Update orientation estimate using 6-axis IMU sample.
SYN_Status syn_sensor_fusion_update (
SYN_SensorFusion * f,
q16_t gx,
q16_t gy,
q16_t gz,
q16_t ax,
q16_t ay,
q16_t az
)
Parameters:
fFilter instance.gxGyroscope X rate in rad/s (Q16.16).gyGyroscope Y rate in rad/s (Q16.16).gzGyroscope Z rate in rad/s (Q16.16).axAccelerometer X acceleration in g or m/s² (Q16.16).ayAccelerometer Y acceleration in g or m/s² (Q16.16).azAccelerometer Z acceleration in g or m/s² (Q16.16).
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
The documentation for this class was generated from the following file src/syntropic/sensor/syn_sensor_fusion.h