Hospital Analyser  1.0
Fusion.h
Go to the documentation of this file.
1 #ifndef _FUSION_H_
2 #define _FUSION_H_
3 
4 #include "main.h"
5 #include "math.h"
6 #include "TargetFeatures.h"
7 #include "motion_gc.h"
8 
14 typedef union
15 {
16  float array[3];
18  struct
19  {
20  float x;
21  float y;
22  float z;
23  } axis;
24 } Vector3;
25 
29 typedef struct
30 {
31  float w;
32  float x;
33  float y;
34  float z;
35 } Quaternion;
36 
40 typedef struct
41 {
42  float Roll;
43  float Pitch;
44  float Yaw;
46 } Orientation;
47 
51 typedef struct
52 {
57 } Fusion;
58 
62 typedef struct
63 {
67 
68 
75 Vector3 SubstractVector3(const Vector3 *vectorA, const Vector3 *vectorB);
76 
81 void CalculateOrientation(Fusion *fusion);
82 
88 void CalculateLinearAcceleration(Fusion *fusion, const Vector3 *acceleration);
89 
95 Vector3 GetLinearAcceleration(const Fusion *fusion);
96 
102 Orientation GetOrientation(const Fusion *fusion);
103 
109 void GetReadings(const SensorHandles *handle, SensorDataNormalised *dataOut);
110 
116 float deg2rad(float degrees);
117 
122 void MotionGC_Init(float freq);
123 
129 void MotionGC_updateBias(SensorDataNormalised *imuData, uint8_t *isStable);
130 
131 
132 
133 #endif
Quaternion quaternion
Definition: Fusion.h:56
void CalculateOrientation(Fusion *fusion)
CalculateOrientation Calculates object's orientation from Quaternion and stores this information in F...
float Yaw
Definition: Fusion.h:44
float deg2rad(float degrees)
deg2rad Converts degrees to radians
Vector3 gyro
Definition: Fusion.h:65
Orientation orientation
Definition: Fusion.h:55
Vector3 acc
Definition: Fusion.h:64
void GetReadings(const SensorHandles *handle, SensorDataNormalised *dataOut)
GetReadings Reads new data from accelerometer and gyroscope and saves them in SensorDataNormalised da...
float z
Definition: Fusion.h:22
void CalculateLinearAcceleration(Fusion *fusion, const Vector3 *acceleration)
CalculateLinearAcceleration Calculates object's linear acceleration using Quaternion and acceleromete...
Structure for holding Quaternion [w, x, y, z].
Definition: Fusion.h:29
Orientation GetOrientation(const Fusion *fusion)
GetOrientation Getter for orientation.
float y
Definition: Fusion.h:21
void MotionGC_Init(float freq)
MotionGC_Init Initializes dynamic gyroscope calibration library.
void MotionGC_updateBias(SensorDataNormalised *imuData, uint8_t *isStable)
MotionGC_updateBias Calculates gyroscope offset and compensates gyroscope readings.
float Roll
Definition: Fusion.h:42
Structure for holding Euler angles [Roll, Pitch, Yaw].
Definition: Fusion.h:40
Union data structure for holding vector of 3 elements.
Definition: Fusion.h:14
Vector3 linearAcceleration
Definition: Fusion.h:53
Vector3 SubstractVector3(const Vector3 *vectorA, const Vector3 *vectorB)
SubstractVector3 Substracts two Vector3 vectors.
Vector3 gravity
Definition: Fusion.h:54
Structure holding normalised accelerometer and gyroscope readings.
Definition: Fusion.h:62
Structure holding input and output data from sensor fusion.
Definition: Fusion.h:51
Vector3 GetLinearAcceleration(const Fusion *fusion)
GetLinearAcceleration Getter for linear accelearation.
float Pitch
Definition: Fusion.h:43
float x
Definition: Fusion.h:20