dRonin
adbada4
dRonin firmware
|
Control the UAV attitude to StabilizationDesired. More...
#include "openpilot.h"
#include "stabilization.h"
#include "pios_thread.h"
#include "pios_queue.h"
#include "accels.h"
#include "actuatordesired.h"
#include "attitudeactual.h"
#include "cameradesired.h"
#include "flightstatus.h"
#include "gyros.h"
#include "ratedesired.h"
#include "systemident.h"
#include "stabilizationdesired.h"
#include "stabilizationsettings.h"
#include "subtrim.h"
#include "subtrimsettings.h"
#include "systemsettings.h"
#include "manualcontrolcommand.h"
#include "vbarsettings.h"
#include "lqgsettings.h"
#include "rtkfestimate.h"
#include "lqgsolution.h"
#include "systemalarms.h"
#include "altitudeholdsettings.h"
#include "altitudeholdstate.h"
#include "positionactual.h"
#include "velocityactual.h"
#include "coordinate_conversions.h"
#include "physical_constants.h"
#include "pid.h"
#include "misc_math.h"
#include "smoothcontrol.h"
#include "lqg.h"
#include "sensors.h"
#include "virtualflybar.h"
Go to the source code of this file.
Macros | |
#define | MAX_QUEUE_SIZE 1 |
#define | STACK_SIZE_BYTES 1200 |
#define | TASK_PRIORITY PIOS_THREAD_PRIO_HIGHEST |
#define | FAILSAFE_TIMEOUT_MS 30 |
#define | COORDINATED_FLIGHT_MIN_ROLL_THRESHOLD 3.0f |
#define | COORDINATED_FLIGHT_MAX_YAW_THRESHOLD 0.05f |
#define | HORIZON_MODE_MAX_BLEND 0.85f |
Set the stick position that maximally transitions to rate. More... | |
#define | THROTTLE_EPSILON 0.000001f |
Minimum sane positive value for throttle. More... | |
#define | get_deadband(axis) (deadbands ? (deadbands + axis) : NULL) |
Enumerations | |
enum | { PID_GROUP_RATE, PID_RATE_ROLL = PID_GROUP_RATE, PID_RATE_PITCH, PID_RATE_YAW, PID_GROUP_ATT, PID_ATT_ROLL = PID_GROUP_ATT, PID_ATT_PITCH, PID_ATT_YAW, PID_GROUP_VBAR, PID_VBAR_ROLL = PID_GROUP_VBAR, PID_VBAR_PITCH, PID_VBAR_YAW, PID_COORDINATED_FLIGHT_YAW, PID_MAX } |
Functions | |
DONT_BUILD_IF ((MAX_AXES+0!=3), stabAxisWrongCount) | |
DONT_BUILD_IF ((PID_RATE_ROLL+0!=ROLL)||(PID_ATT_ROLL!=PID_GROUP_ATT+ROLL), stabAxisPidEnumMapping1) | |
DONT_BUILD_IF ((PID_RATE_PITCH+0!=PITCH)||(PID_ATT_PITCH!=PID_GROUP_ATT+PITCH), stabAxisPidEnumMapping2) | |
DONT_BUILD_IF ((PID_RATE_YAW+0!=YAW)||(PID_ATT_YAW!=PID_GROUP_ATT+YAW), stabAxisPidEnumMapping3) | |
DONT_BUILD_IF (STABILIZATIONSETTINGS_MAXLEVELANGLE_ROLL!=ROLL+0, LevelAngleConstantRoll) | |
DONT_BUILD_IF (STABILIZATIONSETTINGS_MAXLEVELANGLE_PITCH!=PITCH+0, LevelAngleConstantPitch) | |
DONT_BUILD_IF (STABILIZATIONSETTINGS_MAXLEVELANGLE_YAW!=YAW+0, LevelAngleConstantYaw) | |
static void | stabilizationTask (void *parameters) |
static void | zero_pids (void) |
static void | calculate_pids (float dT) |
static void | update_settings (float dT) |
static float | get_throttle (ActuatorDesiredData *actuator_desired, SystemSettingsAirframeTypeOptions *airframe_type) |
int32_t | StabilizationStart () |
int32_t | StabilizationInitialize () |
bool | stabilization_failsafe_checks (StabilizationDesiredData *stab_desired, ActuatorDesiredData *actuator_desired, SystemSettingsAirframeTypeOptions airframe_type, float *input, uint8_t *mode) |
static void | calculate_attitude_errors (uint8_t *axis_mode, float *raw_input, AttitudeActualData *attitudeActual, float *local_attitude_error, float *horizon_rate_fraction) |
MODULE_HIPRI_INITCALL (StabilizationInitialize, StabilizationStart) | |
static float | calculate_thrust (StabilizationDesiredThrustModeOptions mode, FlightStatusData *flightStatus, SystemSettingsAirframeTypeOptions airframe_type, float desired_thrust) |
static uint8_t | remap_smoothing_mode (uint8_t m) |
static void | calculate_vert_pids (float dT) |
Variables | |
static struct pios_thread * | taskHandle |
static StabilizationSettingsData | settings |
static VbarSettingsData | vbar_settings |
static SubTrimData | subTrim |
uint16_t | ident_wiggle_points |
static float | axis_lock_accum [MAX_AXES] = {0,0,0} |
static uint8_t | max_axis_lock = 0 |
static uint8_t | max_axislock_rate = 0 |
static float | weak_leveling_kp = 0 |
static uint8_t | weak_leveling_max = 0 |
static bool | lowThrottleZeroIntegral |
static float | max_rate_alpha = 0.8f |
float | vbar_decay = 0.991f |
static struct pid | pids [PID_MAX] |
static smoothcontrol_state | rc_smoothing |
struct pid_deadband * | deadbands = NULL |
Control the UAV attitude to StabilizationDesired.
Definition in file stabilization.c.