mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
added missing attitude state variable ;)
This commit is contained in:
parent
34294d2635
commit
1bd9cdafab
@ -36,16 +36,18 @@ typedef enum {
|
|||||||
gyr_UPDATED = 1 << 0,
|
gyr_UPDATED = 1 << 0,
|
||||||
acc_UPDATED = 1 << 1,
|
acc_UPDATED = 1 << 1,
|
||||||
mag_UPDATED = 1 << 2,
|
mag_UPDATED = 1 << 2,
|
||||||
pos_UPDATED = 1 << 3,
|
att_UPDATED = 1 << 3,
|
||||||
vel_UPDATED = 1 << 4,
|
pos_UPDATED = 1 << 4,
|
||||||
air_UPDATED = 1 << 5,
|
vel_UPDATED = 1 << 5,
|
||||||
bar_UPDATED = 1 << 6,
|
air_UPDATED = 1 << 6,
|
||||||
|
bar_UPDATED = 1 << 7,
|
||||||
} sensorUpdates;
|
} sensorUpdates;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
float gyr[3];
|
float gyr[3];
|
||||||
float acc[3];
|
float acc[3];
|
||||||
float mag[3];
|
float mag[3];
|
||||||
|
float att[4];
|
||||||
float pos[3];
|
float pos[3];
|
||||||
float vel[3];
|
float vel[3];
|
||||||
float air[2];
|
float air[2];
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
#include <magstate.h>
|
#include <magstate.h>
|
||||||
#include <barostate.h>
|
#include <barostate.h>
|
||||||
#include <airspeedstate.h>
|
#include <airspeedstate.h>
|
||||||
|
#include <attitudestate.h>
|
||||||
#include <positionstate.h>
|
#include <positionstate.h>
|
||||||
#include <velocitystate.h>
|
#include <velocitystate.h>
|
||||||
|
|
||||||
@ -51,7 +52,7 @@
|
|||||||
#include "homelocation.h"
|
#include "homelocation.h"
|
||||||
#include "flightstatus.h"
|
#include "flightstatus.h"
|
||||||
|
|
||||||
// #include "CoordinateConversions.h"
|
#include "CoordinateConversions.h"
|
||||||
|
|
||||||
// Private constants
|
// Private constants
|
||||||
#define STACK_SIZE_BYTES 2048
|
#define STACK_SIZE_BYTES 2048
|
||||||
@ -397,6 +398,17 @@ static void StateEstimationCb(void)
|
|||||||
statename##Set(&s); \
|
statename##Set(&s); \
|
||||||
}
|
}
|
||||||
STORE1(BaroState, bar, Altitude);
|
STORE1(BaroState, bar, Altitude);
|
||||||
|
// attitude nees manual conversion from quaternion to euler
|
||||||
|
if (ISSET(states.updated, att_UPDATED)) { \
|
||||||
|
AttitudeStateData s;
|
||||||
|
AttitudeStateGet(&s);
|
||||||
|
s.q1 = states.att[0];
|
||||||
|
s.q2 = states.att[1];
|
||||||
|
s.q3 = states.att[2];
|
||||||
|
s.q4 = states.att[3];
|
||||||
|
Quaternion2RPY(&s.q1, &s.Roll);
|
||||||
|
AttitudeStateSet(&s);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// clear alarms if everything is alright, then schedule callback execution after timeout
|
// clear alarms if everything is alright, then schedule callback execution after timeout
|
||||||
|
Loading…
Reference in New Issue
Block a user