|
Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
|
Go to the documentation of this file.
21 #ifndef OPTICAL_FLOW_FUNCTIONS_H_
22 #define OPTICAL_FLOW_FUNCTIONS_H_
float err
Current tracking error.
float D
D-gain for control.
int32_t PID_divergence_control(float dt, struct OpticalFlowHoverControl *of_hover_ctrl)
Determine and set the thrust for constant divergence control.
float past_OF[COV_WINDOW_SIZE]
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...
uint8_t cov_array_filledZ
struct GainsPID PID
The struct with the PID gains.
Paparazzi floating point algebra.
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 ca...
uint8_t cov_array_filledXY
float input[COV_WINDOW_SIZE]
float I
I-gain for control.
float previous_err
Previous tracking error.
struct OFhistory historyY
float ramp
The ramp pused is increased with per dt.
bool cov_method
method to calculate the covariance: between thrust and div / angle and flow (0) or div and div past /...
float flowX
Flow estimate in X direction.
float setpoint
setpoint for constant divergence/flow
float OF[COV_WINDOW_SIZE]
float reduction_factor
Reduce the gain by this factor when oscillating.
struct OpticalFlowHover of_hover
float divergence
Divergence estimate.
struct OFhistory historyX
float PID_flow_control(float dt, struct OpticalFlowHoverControl *of_hover_ctrl)
Determine and set the desired angle for constant flow control.
float sum_err
integration of the error for I-gain
float nominal_value
The nominal value of thrust, phi or theta depending on Z, Y, X.
float flowY
Flow estimate in Y direction.
float cov_setpoint
for adaptive gain control, setpoint of the covariance (oscillations)
float P
P-gain for control.
float d_err
difference of error for the D-gain