|
dRonin
adbada4
dRonin firmware
|
Full attitude estimation algorithm. More...
#include "openpilot.h"#include "pios.h"#include "pios_thread.h"#include "pios_queue.h"#include "misc_math.h"#include "physical_constants.h"#include "coordinate_conversions.h"#include "WorldMagModel.h"#include "insgps.h"#include "accels.h"#include "attitudeactual.h"#include "attitudesettings.h"#include "baroaltitude.h"#include "flightstatus.h"#include "gpsposition.h"#include "gpstime.h"#include "gpsvelocity.h"#include "gyros.h"#include "gyrosbias.h"#include "homelocation.h"#include "sensorsettings.h"#include "inssettings.h"#include "insstate.h"#include "magnetometer.h"#include "nedaccel.h"#include "nedposition.h"#include "positionactual.h"#include "stateestimation.h"#include "systemalarms.h"#include "velocityactual.h"Go to the source code of this file.
Data Structures | |
| struct | complementary_filter_state |
| struct | cfvert |
| Struture that tracks the data for the vertical complementary filter. More... | |
Macros | |
| #define | STACK_SIZE_BYTES 2504 |
| #define | TASK_PRIORITY PIOS_THREAD_PRIO_HIGH |
| #define | FAILSAFE_TIMEOUT_MS 10 |
Enumerations | |
| enum | complementary_filter_status { CF_POWERON, CF_INITIALIZING, CF_ARMING, CF_NORMAL } |
Functions | |
| static void | AttitudeTask (void *parameters) |
| static int32_t | setNavigationRaw () |
| Set the navigation information to the raw estimates. More... | |
| static int32_t | setNavigationNone () |
| Provide no navigation updates (indoor flying or without gps) More... | |
| static int32_t | updateAttitudeComplementary (float dT, bool first_run, bool secondary, bool raw_gps, bool vel_compass) |
| Update the complementary filter attitude estimate. More... | |
| static int32_t | setAttitudeComplementary () |
| Set the AttitudeActual to the complementary filter estimate. More... | |
| static float | calc_ned_accel (float *q, float *accels) |
| static void | cfvert_reset (struct cfvert *cf, float baro, float time_constant) |
| Resets the vertical baro complementary filter and zeros the altitude. More... | |
| static void | cfvert_predict_pos (struct cfvert *cf, float z_accel, float dt) |
| Predict the position in the future. More... | |
| static void | cfvert_update_baro (struct cfvert *cf, float baro, float dt) |
| Update the baro feedback. More... | |
| static int32_t | updateAttitudeINSGPS (bool first_run, bool outdoor_mode) |
| Update the INSGPS attitude estimate. More... | |
| static int32_t | setAttitudeINSGPS () |
| Set the attitude to the current INSGPS estimate. More... | |
| static int32_t | setNavigationINSGPS () |
| Set the navigation to the current INSGPS estimate. More... | |
| static void | updateNedAccel () |
| static void | apply_accel_filter (const float *raw, float *filtered) |
| A low pass filter on the accels which helps with vibration resistance. More... | |
| static int32_t | getNED (GPSPositionData *gpsPosition, float *NED) |
| Convert the GPS LLA position into NED coordinates. More... | |
| static void | accumulate_gyro_compute () |
| Compute the mean gyro accumulated and assign the bias. More... | |
| static void | accumulate_gyro_zero () |
| Zero the gyro accumulators. More... | |
| static void | accumulate_gyro (GyrosData *gyrosData) |
| Store a gyro sample. More... | |
| static void | set_state_estimation_error (SystemAlarmsStateEstimationOptions error_code) |
| Set alarm and alarm code. More... | |
| static void | check_home_location () |
| Determine if it is safe to set the home location then do it. More... | |
| int32_t | AttitudeInitialize (void) |
| int32_t | AttitudeStart (void) |
Variables | |
| static struct pios_thread * | attitudeTaskHandle |
| static struct pios_queue * | gyroQueue |
| static struct pios_queue * | accelQueue |
| static struct pios_queue * | magQueue |
| static struct pios_queue * | baroQueue |
| static struct pios_queue * | gpsQueue |
| static struct pios_queue * | gpsVelQueue |
| static AttitudeSettingsData | attitudeSettings |
| static HomeLocationData | homeLocation |
| static INSSettingsData | insSettings |
| static StateEstimationData | stateEstimation |
| static bool | gyroBiasSettingsUpdated = false |
| static volatile bool | settings_flag = true |
| static volatile bool | homeloc_flag = true |
| static volatile bool | sensors_flag = true |
| static bool | home_location_updated |
| static const float | zeros [3] = {0.0f, 0.0f, 0.0f} |
| static struct complementary_filter_state | complementary_filter_state |
| static struct cfvert | cfvert |
| State information for vertical filter. More... | |
| static float | dT_expected = 0.001f |
| static float | T [3] |
| Scales used in NED transform (local tangent plane approx). More... | |
| static float | cf_q [4] |
| The complementary filter attitude estimate. More... | |
Full attitude estimation algorithm.
Definition in file attitude.c.