Sensor Fusion Library 0.6.1
Orientation sensing for Espressif (ESP32, ESP8266) processors
Loading...
Searching...
No Matches
fusion.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
3 * Copyright 2016-2017 NXP
4 * All rights reserved.
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8
9
19#ifndef FUSION_H
20#define FUSION_H
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#include "sensor_fusion.h"
27
30#define FLPFSECS_1DOF_P_BASIC 1.5F
32
35#define FLPFSECS_3DOF_G_BASIC 1.0F
37
40#define FLPFSECS_3DOF_B_BASIC 7.0F
42
45#define FLPFSECS_6DOF_GB_BASIC 7.0F
47
50#define FQVY_6DOF_GY_KALMAN 2E2
51#define FQVG_6DOF_GY_KALMAN 1.2E-3
52#define FQWB_6DOF_GY_KALMAN 2E-2F
53#define FMIN_6DOF_GY_BPL -7.0F
54#define FMAX_6DOF_GY_BPL 7.0F
56
61#define FQVY_9DOF_GBY_KALMAN 2E2
62#define FQVG_9DOF_GBY_KALMAN 1.2E-3
63#define FQVB_9DOF_GBY_KALMAN 5E0
64#define FQWB_9DOF_GBY_KALMAN 2E-2F
65#define FMIN_9DOF_GBY_BPL -7.0F
66#define FMAX_9DOF_GBY_BPL 7.0F
68
74void fInitializeFusion(SensorFusionGlobals *sfg);
75void fFuseSensors(struct SV_1DOF_P_BASIC *pthisSV_1DOF_P_BASIC, struct SV_3DOF_G_BASIC *pthisSV_3DOF_G_BASIC,
76 struct SV_3DOF_B_BASIC *pthisSV_3DOF_B_BASIC, struct SV_3DOF_Y_BASIC *pthisSV_3DOF_Y_BASIC,
77 struct SV_6DOF_GB_BASIC *pthisSV_6DOF_GB_BASIC, struct SV_6DOF_GY_KALMAN *pthisSV_6DOF_GY_KALMAN,
78 struct SV_9DOF_GBY_KALMAN *pthisSV_9DOF_GBY_KALMAN,
79 struct AccelSensor *pthisAccel, struct MagSensor *pthisMag, struct GyroSensor *pthisGyro,
80 struct PressureSensor *pthisPressure, struct MagCalibration *pthisMagCal);
81void fInit_1DOF_P_BASIC(struct SV_1DOF_P_BASIC *pthisSV, struct PressureSensor *pthisPressure, float flpftimesecs);
82void fInit_3DOF_G_BASIC(struct SV_3DOF_G_BASIC *pthisSV, struct AccelSensor *pthisAccel, float flpftimesecs);
83void fInit_3DOF_B_BASIC(struct SV_3DOF_B_BASIC *pthisSV, struct MagSensor *pthisMag, float flpftimesecs);
84void fInit_3DOF_Y_BASIC(struct SV_3DOF_Y_BASIC *pthisSV);
85void fInit_6DOF_GB_BASIC(struct SV_6DOF_GB_BASIC *pthisSV, struct AccelSensor *pthisAccel, struct MagSensor *pthisMag, float flpftimesecs);
86void fInit_6DOF_GY_KALMAN(struct SV_6DOF_GY_KALMAN *pthisSV, struct AccelSensor *pthisAccel, struct GyroSensor *pthisGyro);
87void fInit_9DOF_GBY_KALMAN(struct SV_9DOF_GBY_KALMAN *pthisSV, struct AccelSensor *pthisAccel, struct MagSensor *pthisMag,
88 struct GyroSensor *pthisGyro, struct MagCalibration *pthisMagCal);
89void fRun_1DOF_P_BASIC(struct SV_1DOF_P_BASIC *pthisSV, struct PressureSensor *pthisPressure);
90void fRun_3DOF_G_BASIC(struct SV_3DOF_G_BASIC *pthisSV, struct AccelSensor *pthisAccel);
91void fRun_3DOF_B_BASIC(struct SV_3DOF_B_BASIC *pthisSV, struct MagSensor *pthisMag);
92void fRun_3DOF_Y_BASIC(struct SV_3DOF_Y_BASIC *pthisSV, struct GyroSensor *pthisGyro);
93void fRun_6DOF_GB_BASIC(struct SV_6DOF_GB_BASIC *pthisSV, struct MagSensor *pthisMag, struct AccelSensor *pthisAccel);
94void fRun_6DOF_GY_KALMAN(struct SV_6DOF_GY_KALMAN *pthisSV, struct AccelSensor *pthisAccel, struct GyroSensor *pthisGyro);
95void fRun_9DOF_GBY_KALMAN(struct SV_9DOF_GBY_KALMAN *pthisSV, struct AccelSensor *pthisAccel, struct MagSensor *pthisMag, struct GyroSensor *pthisGyro, struct MagCalibration *pthisMagCal);
97
98
99#ifdef __cplusplus
100}
101#endif
102
103#endif // #ifndef FUSION_H
The sensor_fusion.h file implements the top level programming interface.
The AccelSensor structure stores raw and processed measurements for a 3-axis accelerometer.
The GyroSensor structure stores raw and processed measurements for a 3-axis gyroscope.
Magnetic Calibration Structure.
Definition magnetic.h:61
The MagSensor structure stores raw and processed measurements for a 3-axis magnetic sensor.
The PressureSensor structure stores raw and processed measurements for an altimeter.
The SV_1DOF_P_BASIC structure contains state information for a pressure sensor/altimeter.
This is the 3DOF basic magnetometer state vector structure/.
This is the 3DOF basic accelerometer state vector structure.
SV_3DOF_Y_BASIC structure is the 3DOF basic gyroscope state vector structure.
SV_6DOF_GB_BASIC is the 6DOF basic accelerometer and magnetometer state vector structure.
SV_6DOF_GY_KALMAN is the 6DOF Kalman filter accelerometer and gyroscope state vector structure.
SV_9DOF_GBY_KALMAN is the 9DOF Kalman filter accelerometer, magnetometer and gyroscope state vector s...
The top level fusion structure.