mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
Create separate UAVOs for the sensors.
This commit is contained in:
parent
7273f87f9b
commit
d22e0e66dd
@ -50,7 +50,9 @@
|
||||
|
||||
#include "pios.h"
|
||||
#include "attitude.h"
|
||||
#include "attituderaw.h"
|
||||
#include "magnetometer.h"
|
||||
#include "accels.h"
|
||||
#include "gyros.h"
|
||||
#include "attitudeactual.h"
|
||||
#include "attitudesettings.h"
|
||||
#include "baroaltitude.h"
|
||||
@ -94,23 +96,13 @@ static int8_t rotate = 0;
|
||||
static bool zero_during_arming = false;
|
||||
static bool bias_correct_gyro = true;
|
||||
|
||||
struct gyro_data {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
};
|
||||
|
||||
struct accel_data {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
};
|
||||
|
||||
struct mag_data {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
};
|
||||
/**
|
||||
* API for sensor fusion algorithms:
|
||||
* Configure(xQueueHandle gyro, xQueueHandle accel, xQueueHandle mag, xQueueHandle baro)
|
||||
* Stores all the queues the algorithm will pull data from
|
||||
* FinalizeSensors() -- before saving the sensors modifies them based on internal state (gyro bias)
|
||||
* Update() -- queries queues and updates the attitude estiamte
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initialise the module, called on startup
|
||||
@ -119,10 +111,10 @@ struct mag_data {
|
||||
int32_t AttitudeStart(void)
|
||||
{
|
||||
// Create the queues for the sensors
|
||||
gyroQueue = xQueueCreate(SENSOR_QUEUE_SIZE, sizeof(struct gyro_data));
|
||||
accelQueue = xQueueCreate(SENSOR_QUEUE_SIZE, sizeof(struct accel_data));
|
||||
magQueue = xQueueCreate(SENSOR_QUEUE_SIZE, sizeof(struct mag_data));
|
||||
|
||||
gyroQueue = xQueueCreate(SENSOR_QUEUE_SIZE, sizeof(GyrosData));
|
||||
accelQueue = xQueueCreate(SENSOR_QUEUE_SIZE, sizeof(AccelsData));
|
||||
magQueue = xQueueCreate(SENSOR_QUEUE_SIZE, sizeof(MagnetometerData));
|
||||
|
||||
// Start main task
|
||||
xTaskCreate(SensorTask, (signed char *)"Sensors", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &sensorTaskHandle);
|
||||
xTaskCreate(AttitudeTask, (signed char *)"Attitude", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &attitudeTaskHandle);
|
||||
|
@ -32,7 +32,9 @@ UAVOBJSRCFILENAMES += attitudesettings
|
||||
UAVOBJSRCFILENAMES += inssettings
|
||||
UAVOBJSRCFILENAMES += insstatus
|
||||
UAVOBJSRCFILENAMES += attitudeactual
|
||||
UAVOBJSRCFILENAMES += attituderaw
|
||||
UAVOBJSRCFILENAMES += gyros
|
||||
UAVOBJSRCFILENAMES += accels
|
||||
UAVOBJSRCFILENAMES += magnetometer
|
||||
UAVOBJSRCFILENAMES += baroaltitude
|
||||
UAVOBJSRCFILENAMES += flightbatterysettings
|
||||
UAVOBJSRCFILENAMES += firmwareiapobj
|
||||
|
@ -29,7 +29,9 @@ HEADERS += $$UAVOBJECT_SYNTHETICS/accessorydesired.h \
|
||||
$$UAVOBJECT_SYNTHETICS/attitudeactual.h \
|
||||
$$UAVOBJECT_SYNTHETICS/inssettings.h \
|
||||
$$UAVOBJECT_SYNTHETICS/gcstelemetrystats.h \
|
||||
$$UAVOBJECT_SYNTHETICS/attituderaw.h \
|
||||
$$UAVOBJECT_SYNTHETICS/gyros.h \
|
||||
$$UAVOBJECT_SYNTHETICS/accels.h \
|
||||
$$UAVOBJECT_SYNTHETICS/magnetometer.h \
|
||||
$$UAVOBJECT_SYNTHETICS/camerastabsettings.h \
|
||||
$$UAVOBJECT_SYNTHETICS/flighttelemetrystats.h \
|
||||
$$UAVOBJECT_SYNTHETICS/systemstats.h \
|
||||
@ -79,7 +81,9 @@ SOURCES += $$UAVOBJECT_SYNTHETICS/accessorydesired.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/attitudeactual.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/inssettings.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/gcstelemetrystats.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/attituderaw.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/accels.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/gyros.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/magnetometer.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/camerastabsettings.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/flighttelemetrystats.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/systemstats.cpp \
|
||||
|
13
shared/uavobjectdefinition/accels.xml
Normal file
13
shared/uavobjectdefinition/accels.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<xml>
|
||||
<object name="Accels" singleinstance="true" settings="false">
|
||||
<description>The accel data.</description>
|
||||
<field name="x" units="deg/s" type="float" elements="1"/>
|
||||
<field name="y" units="deg/s" type="float" elements="1"/>
|
||||
<field name="z" units="deg/s" type="float" elements="1"/>
|
||||
<field name="temperature" units="deg C" type="float" elements="1"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
||||
<logging updatemode="never" period="0"/>
|
||||
</object>
|
||||
</xml>
|
@ -1,13 +0,0 @@
|
||||
<xml>
|
||||
<object name="AttitudeRaw" singleinstance="true" settings="false">
|
||||
<description>The raw attitude sensor data from @ref AHRSCommsModule. Not always updated.</description>
|
||||
<field name="magnetometers" units="mGa" type="int16" elementnames="X,Y,Z"/>
|
||||
<field name="gyros" units="deg/s" type="float" elementnames="X,Y,Z"/>
|
||||
<field name="temperature" units="deg C" type="float" elementnames="gyro,accel"/>
|
||||
<field name="accels" units="m/s^2" type="float" elementnames="X,Y,Z"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
||||
<logging updatemode="never" period="0"/>
|
||||
</object>
|
||||
</xml>
|
13
shared/uavobjectdefinition/gyros.xml
Normal file
13
shared/uavobjectdefinition/gyros.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<xml>
|
||||
<object name="Gyros" singleinstance="true" settings="false">
|
||||
<description>The gyro data.</description>
|
||||
<field name="x" units="deg/s" type="float" elements="1"/>
|
||||
<field name="y" units="deg/s" type="float" elements="1"/>
|
||||
<field name="z" units="deg/s" type="float" elements="1"/>
|
||||
<field name="temperature" units="deg C" type="float" elements="1"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
||||
<logging updatemode="never" period="0"/>
|
||||
</object>
|
||||
</xml>
|
12
shared/uavobjectdefinition/magnetometer.xml
Normal file
12
shared/uavobjectdefinition/magnetometer.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<xml>
|
||||
<object name="Magnetometer" singleinstance="true" settings="false">
|
||||
<description>The mag data.</description>
|
||||
<field name="x" units="mGa" type="float" elements="1"/>
|
||||
<field name="y" units="mGa" type="float" elements="1"/>
|
||||
<field name="z" units="mGa" type="float" elements="1"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
||||
<logging updatemode="never" period="0"/>
|
||||
</object>
|
||||
</xml>
|
Loading…
x
Reference in New Issue
Block a user