Autodrone
Multi-Domain Vehicle
autodrone32.h
Go to the documentation of this file.
1
9#ifndef __AUTODRONE32_H__
10#define __AUTODRONE32_H__
11
12#ifndef PI
13#define PI 3.14159265358979f
14#endif
15
16#define TWO_PI (2.0f * PI)
17
18#define D2R (PI / 180.0f)
19
20#define R2D (180.0f / PI)
21
22#define KNOTS2MPS 0.51444444f
23
24#define EARTH_RADIUS 6371000f
25
26#define SQR(x) ((x) * (x))
27
28#define CUBE(x) ((x) * (x) * (x))
29
31
32#define ROLL 0
33#define PITCH 1
34#define YAW 2
35#define THROTTLE 3
36#define AUX1 4
37#define AUX2 5
38#define AUX3 6
39#define AUX4 7
40#define AUX5 8
41#define AUX6 9
42#define AUX7 10
43#define AUX8 11
44
45#define XAXIS 0
46#define YAXIS 1
47#define ZAXIS 2
48
49#define MINCOMMAND 2000
50#define MIDCOMMAND 3000
51#define MAXCOMMAND 4000
52
54// Misc Type Definitions
56
57typedef union {
58 int16_t value;
59 uint8_t bytes[2];
61
62typedef union {
63 int32_t value;
64 uint8_t bytes[4];
66
67typedef union {
68 uint16_t value;
69 uint8_t bytes[2];
71
72typedef union {
73 uint32_t value;
74 uint8_t bytes[4];
76
78
79typedef volatile uint8_t semaphore_t;
80
82// Sensor Variables
84
85typedef struct sensors_t
86{
87 float accel500Hz[3];
88 float accel100Hz[3];
89 float attitude500Hz[3];
90 float gyro500Hz[3];
91 float attDeg500Hz[3];
93
94extern sensors_t sensors;
95
97// PID Definitions
99
100#define NUMBER_OF_PIDS 6
101
102#define ROLL_RATE_PID 0
103#define PITCH_RATE_PID 1
104#define YAW_RATE_PID 2
105
106#define ROLL_ATT_PID 3
107#define PITCH_ATT_PID 4
108#define HEADING_PID 5
109
111// Flight Modes
113
114typedef enum
115{
119 ROVER
121
122typedef enum
123{
125 ANGLE
127
129// MPU6000 DLPF Configurations
131
133
135// EEPROM
137
138typedef struct eepromConfig_t
139{
141
142 uint8_t version;
143
144 float accelBiasMPU[3]; // Bias for MPU60x0 Accel
145 float accelScaleFactorMPU[3]; // Scale factor for MPU60x0 Accel
146
149
152
154
155 float KpAcc;
156
157 float KiAcc;
158
159 uint8_t dlpfSetting;
160
162
164
168
170
172
174 float minCheck;
175 float maxCheck;
178
180
182
184
186
188
190
191
193
195
197
198
199#endif /* __AUTODRONE32_H__ */
@ DLPF_98HZ
Definition: autodrone32.h:132
@ DLPF_256HZ
Definition: autodrone32.h:132
@ DLPF_42HZ
Definition: autodrone32.h:132
@ DLPF_188HZ
Definition: autodrone32.h:132
volatile uint8_t semaphore_t
Definition: autodrone32.h:79
struct eepromConfig_t eepromConfig_t
struct sensors_t sensors_t
flightModes_e
Definition: autodrone32.h:123
@ ANGLE
Definition: autodrone32.h:125
@ RATE
Definition: autodrone32.h:124
crcFlags
Definition: autodrone32.h:194
@ CRC_HistoryBad
Definition: autodrone32.h:194
modes_e
Definition: autodrone32.h:115
@ FLIGHT
Definition: autodrone32.h:117
@ ROVER
Definition: autodrone32.h:119
@ TRANS_ROVER
Definition: autodrone32.h:118
@ TRANS_FLIGHT
Definition: autodrone32.h:116
#define NUMBER_OF_PIDS
Definition: autodrone32.h:100
eepromConfig_t eepromConfig
sensors_t sensors
Definition: pid.h:13
Definition: autodrone32.h:139
float KpAcc
Definition: autodrone32.h:155
float maxCheck
Definition: autodrone32.h:175
float minThrottle
Definition: autodrone32.h:176
float gyroTCBiasSlope[3]
Definition: autodrone32.h:150
uint8_t dlpfSetting
Definition: autodrone32.h:159
float gyroTCBiasIntercept[3]
Definition: autodrone32.h:151
float accelTCBiasSlope[3]
Definition: autodrone32.h:147
uint16_t activeTelemetry
Definition: autodrone32.h:185
float minCheck
Definition: autodrone32.h:174
float maxThrottle
Definition: autodrone32.h:177
float accelTCBiasIntercept[3]
Definition: autodrone32.h:148
float yawRateScaling
Definition: autodrone32.h:167
float accelBiasMPU[3]
Definition: autodrone32.h:144
float attitudeScaling
Definition: autodrone32.h:169
float accelCutoff
Definition: autodrone32.h:153
uint8_t sensorOrientation
Definition: autodrone32.h:161
double rateCoeffAlpha
Definition: autodrone32.h:165
uint8_t version
Definition: autodrone32.h:142
float KiAcc
Definition: autodrone32.h:157
float midCommand
Definition: autodrone32.h:173
float rateCoeffBravo
Definition: autodrone32.h:166
float yawDirection
Definition: autodrone32.h:189
PIDdata_t PID[NUMBER_OF_PIDS]
Definition: autodrone32.h:181
float accelScaleFactorMPU[3]
Definition: autodrone32.h:145
Definition: autodrone32.h:86
float gyro500Hz[3]
Definition: autodrone32.h:90
float attDeg500Hz[3]
Definition: autodrone32.h:91
float accel500Hz[3]
Definition: autodrone32.h:87
float attitude500Hz[3]
Definition: autodrone32.h:89
float accel100Hz[3]
Definition: autodrone32.h:88
Definition: autodrone32.h:57
int16_t value
Definition: autodrone32.h:58
Definition: autodrone32.h:62
int32_t value
Definition: autodrone32.h:63
Definition: autodrone32.h:67
uint16_t value
Definition: autodrone32.h:68
Definition: autodrone32.h:72
uint32_t value
Definition: autodrone32.h:73