42#ifndef VISION_VELOCITY_ESTIMATE_ID 
   43#define VISION_VELOCITY_ESTIMATE_ID ABI_BROADCAST 
   47#define CMD_OF_SAT  1500  
   49#ifndef VISION_PHI_PGAIN 
   50#define VISION_PHI_PGAIN 400 
   54#ifndef VISION_PHI_IGAIN 
   55#define VISION_PHI_IGAIN 20 
   59#ifndef VISION_THETA_PGAIN 
   60#define VISION_THETA_PGAIN 400 
   64#ifndef VISION_THETA_IGAIN 
   65#define VISION_THETA_IGAIN 20 
   69#ifndef VISION_DESIRED_VX 
   70#define VISION_DESIRED_VX 0 
   74#ifndef VISION_DESIRED_VY 
   75#define VISION_DESIRED_VY 0 
   80#if (VISION_PHI_PGAIN < 0)      ||  \ 
   81  (VISION_PHI_IGAIN < 0)        ||  \ 
   82  (VISION_THETA_PGAIN < 0)      ||  \ 
   83  (VISION_THETA_IGAIN < 0) 
   84#error "ALL control gains have to be positive!!!" 
Main include for ABI (AirBorneInterface).
Event structure to store callbacks in a linked list.
Core autopilot interface common to all firmwares.
Common code for AP and FBW telemetry.
int32_t phi
in rad with INT32_ANGLE_FRAC
int32_t psi
in rad with INT32_ANGLE_FRAC
int32_t theta
in rad with INT32_ANGLE_FRAC
static struct Int32Eulers * stateGetNedToBodyEulers_i(void)
Get vehicle body attitude euler angles (int).
float err_vx_int
The integrated velocity error in x direction (m/s)
struct Int32Eulers cmd
The commands that are send to the hover loop.
float err_vy_int
The integrated velocity error in y direction (m/s)
int32_t theta_pgain
The pitch P gain on the err_vy.
int32_t theta_igain
The pitch I gain on the err_vy_int.
float desired_vy
The desired velocity in the y direction (cm/s)
float desired_vx
The desired velocity in the x direction (cm/s)
int32_t phi_pgain
The roll P gain on the err_vx.
int32_t phi_igain
The roll I gain on the err_vx_int.
struct opticflow_stab_t opticflow_stab
#define VISION_VELOCITY_ESTIMATE_ID
Default sender to accect VELOCITY_ESTIMATE messages from.
#define VISION_THETA_PGAIN
#define VISION_DESIRED_VY
void guidance_opticflow_hover_init(void)
Initialization of horizontal guidance module.
void guidance_module_enter(void)
guidance mode enter resets the errors and starts the controller.
static abi_event velocity_est_ev
void guidance_module_run(bool in_flight)
Main guidance loop.
static void stabilization_opticflow_vel_cb(uint8_t sender_id, uint32_t stamp, float vel_x, float vel_y, float vel_z, float noise_x, float noise_y, float noise_z)
Update the controls on a new VELOCITY_ESTIMATE ABI message.
#define VISION_DESIRED_VX
#define VISION_THETA_IGAIN
Optical-flow based control for Linux based systems.
PRINT_CONFIG_VAR(ONELOOP_ANDI_FILT_CUTOFF)
void guidance_v_mode_changed(uint8_t new_mode)
struct ThrustSetpoint guidance_v_run(bool in_flight)
Guidance vertical run functions.
Vertical guidance for rotorcrafts.
#define GUIDANCE_V_MODE_HOVER
General attitude stabilization interface for rotorcrafts.
void stabilization_attitude_run(bool in_flight, struct StabilizationSetpoint *sp, struct ThrustSetpoint *thrust, int32_t *cmd)
Attitude control run function.
struct Stabilization stabilization
struct StabilizationSetpoint stab_sp_from_eulers_i(struct Int32Eulers *eulers)
int32_t cmd[COMMANDS_NB]
output command vector, range from [-MAX_PPRZ:MAX_PPRZ] (store for messages)
union StabilizationSetpoint::@278 sp
Thrust setpoint // TODO to a setpoint header Structure to store the desired thrust vector with differ...
union ThrustSetpoint::@284 sp
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.