File syn_sensor_fusion.c¶
FileList > sensor > syn_sensor_fusion.c
Go to the source code of this file
6-DOF IMU Mahony Sensor Fusion & AHRS Filter implementation.
#include "syn_sensor_fusion.h"#include "../util/syn_assert.h"#include "../util/syn_matrix.h"#include <string.h>
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.c