Paparazzi UAS
v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
|
Go to the source code of this file.
Data Structures | |
struct | GainsPID |
struct | OFhistory |
struct | OpticalFlowHoverControl |
struct | OpticalFlowHover |
struct | DesiredInputs |
Functions | |
float | set_cov_div (bool cov_method, struct OFhistory *history, struct DesiredInputs *inputs) |
Set the covariance of the divergence and the thrust / past divergence This funciton should only be called once per time step. More... | |
void | set_cov_flow (bool cov_method, struct OFhistory *historyX, struct OFhistory *historyY, struct DesiredInputs *inputs, struct FloatVect3 *covs) |
Set the covariance of the flow and past flow / desired angle This funciton should only be called once per time step. More... | |
float | PID_flow_control (float dt, struct OpticalFlowHoverControl *of_hover_ctrl) |
Determine and set the desired angle for constant flow control. More... | |
int32_t | PID_divergence_control (float dt, struct OpticalFlowHoverControl *of_hover_ctrl) |
Determine and set the thrust for constant divergence control. More... | |
Variables | |
uint32_t | ind_histXY |
uint8_t | cov_array_filledXY |
uint32_t | ind_histZ |
uint8_t | cov_array_filledZ |
struct OpticalFlowHover | of_hover |
struct GainsPID |
Definition at line 27 of file optical_flow_functions.h.
struct OFhistory |
Definition at line 37 of file optical_flow_functions.h.
Data Fields | ||
---|---|---|
float | input[COV_WINDOW_SIZE] | |
float | OF[COV_WINDOW_SIZE] | |
float | past_OF[COV_WINDOW_SIZE] |
struct OpticalFlowHoverControl |
Definition at line 43 of file optical_flow_functions.h.
Data Fields | ||
---|---|---|
float | cov_setpoint | for adaptive gain control, setpoint of the covariance (oscillations) |
float | nominal_value | The nominal value of thrust, phi or theta depending on Z, Y, X. |
struct GainsPID | PID | The struct with the PID gains. |
float | ramp | The ramp pused is increased with per dt. |
float | reduction_factor | Reduce the gain by this factor when oscillating. |
float | setpoint | setpoint for constant divergence/flow |
struct OpticalFlowHover |
Definition at line 56 of file optical_flow_functions.h.
Data Fields | ||
---|---|---|
float | divergence | Divergence estimate. |
float | flowX | Flow estimate in X direction. |
float | flowY | Flow estimate in Y direction. |
struct DesiredInputs |
Definition at line 62 of file optical_flow_functions.h.
Data Fields | ||
---|---|---|
float | phi | |
float | theta | |
int32_t | thrust |
int32_t PID_divergence_control | ( | float | dt, |
struct OpticalFlowHoverControl * | of_hover_ctrl | ||
) |
Determine and set the thrust for constant divergence control.
[out] | thrust | |
[in] | dt | time difference since last update |
[in] | *of_hover_ctrl | OpticalFlowHoverControl structure |
Definition at line 160 of file optical_flow_functions.c.
References GainsPID::D, GainsPID::d_err, GainsPID::err, GainsPID::I, MAX_PPRZ, OpticalFlowHoverControl::nominal_value, OF_LP_CONST, GainsPID::P, OpticalFlowHoverControl::PID, GainsPID::previous_err, and GainsPID::sum_err.
Referenced by vertical_ctrl_module_run().
float PID_flow_control | ( | float | dt, |
struct OpticalFlowHoverControl * | of_hover_ctrl | ||
) |
Determine and set the desired angle for constant flow control.
[out] | desired | angle |
[in] | dt | time difference since last update |
[in] | *of_hover_ctrl | OpticalFlowHoverControl structure |
Definition at line 132 of file optical_flow_functions.c.
References GainsPID::D, GainsPID::d_err, GainsPID::err, GainsPID::I, OF_LP_CONST, OFH_MAXBANK, GainsPID::P, OpticalFlowHoverControl::PID, GainsPID::previous_err, and GainsPID::sum_err.
Referenced by horizontal_ctrl_module_run().
float set_cov_div | ( | bool | cov_method, |
struct OFhistory * | history, | ||
struct DesiredInputs * | inputs | ||
) |
Set the covariance of the divergence and the thrust / past divergence This funciton should only be called once per time step.
[in] | thrust | the current thrust value |
Definition at line 52 of file optical_flow_functions.c.
References cov_array_filledZ, cov_div, COV_WINDOW_SIZE, covariance_f(), OpticalFlowHover::divergence, ind_histZ, OFhistory::input, MAX_PPRZ, normalized_thrust, OFhistory::OF, OF_COV_DELAY_STEPS, of_hover, OFhistory::past_OF, and DesiredInputs::thrust.
Referenced by vertical_ctrl_module_run().
void set_cov_flow | ( | bool | cov_method, |
struct OFhistory * | historyX, | ||
struct OFhistory * | historyY, | ||
struct DesiredInputs * | inputs, | ||
struct FloatVect3 * | covs | ||
) |
Set the covariance of the flow and past flow / desired angle This funciton should only be called once per time step.
Definition at line 89 of file optical_flow_functions.c.
References cov_array_filledXY, COV_WINDOW_SIZE, covariance_f(), OpticalFlowHover::flowX, OpticalFlowHover::flowY, ind_histXY, OFhistory::input, OFhistory::OF, OF_COV_DELAY_STEPS, of_hover, OFH_MAXBANK, OFhistory::past_OF, DesiredInputs::phi, DesiredInputs::theta, FloatVect3::x, and FloatVect3::y.
Referenced by horizontal_ctrl_module_run().
uint8_t cov_array_filledXY |
Definition at line 42 of file optical_flow_functions.c.
Referenced by reset_horizontal_vars(), and set_cov_flow().
uint8_t cov_array_filledZ |
Definition at line 44 of file optical_flow_functions.c.
Referenced by reset_vertical_vars(), and set_cov_div().
uint32_t ind_histXY |
Definition at line 41 of file optical_flow_functions.c.
Referenced by reset_horizontal_vars(), and set_cov_flow().
uint32_t ind_histZ |
Definition at line 43 of file optical_flow_functions.c.
Referenced by reset_vertical_vars(), and set_cov_div().
struct OpticalFlowHover of_hover |
Definition at line 73 of file optical_flow_functions.h.
Referenced by horizontal_ctrl_module_run(), reset_horizontal_vars(), reset_vertical_vars(), send_optical_flow_hover(), set_cov_div(), set_cov_flow(), and vertical_ctrl_module_run().