solved compilation errors - need to make function to check both indi attitude and indi rate controllers

This commit is contained in:
Rohan
2020-08-22 00:52:12 +02:00
committed by Ewoud Smeur
parent 85cf72a07b
commit fb9bb3e202
4 changed files with 10 additions and 8 deletions
@@ -62,7 +62,9 @@ void stabilization_attitude_set_earth_cmd_i(struct Int32Vect2 *cmd, int32_t head
void stabilization_attitude_run(bool in_flight)
{
stabilization_indi_run(in_flight, FALSE);
struct Int32Quat quat_sp = {1, 0, 0, 0}; // always hover
stabilization_indi_attitude_run(in_flight, quat_sp);
}
void stabilization_attitude_read_rc(bool in_flight, bool in_carefree, bool coordinated_turn)
@@ -74,7 +74,7 @@
struct Int32Eulers stab_att_sp_euler;
struct Int32Quat stab_att_sp_quat;
static int32_t stabilization_att_indi_cmd[COMMANDS_NB];
// static int32_t stabilization_att_indi_cmd[COMMANDS_NB];
static inline void lms_estimation(void);
static void indi_init_filters(void);
@@ -384,14 +384,14 @@ void stabilization_indi_attitude_run(bool in_flight __attribute__((unused)), str
rates_for_feedback.r = indi.rate[2].o[0];
#endif
indi.angular_accel_ref.p = indi.reference_acceleration.err_p * QUAT1_FLOAT_OF_BFP(att_err->qx)
indi.angular_accel_ref.p = indi.reference_acceleration.err_p * QUAT1_FLOAT_OF_BFP(att_err.qx)
- indi.reference_acceleration.rate_p * rates_for_feedback.p;
indi.angular_accel_ref.q = indi.reference_acceleration.err_q * QUAT1_FLOAT_OF_BFP(att_err->qy)
indi.angular_accel_ref.q = indi.reference_acceleration.err_q * QUAT1_FLOAT_OF_BFP(att_err.qy)
- indi.reference_acceleration.rate_q * rates_for_feedback.q;
//This separates the P and D controller and lets you impose a maximum yaw rate.
float rate_ref_r = indi.reference_acceleration.err_r * QUAT1_FLOAT_OF_BFP(att_err->qz) / indi.reference_acceleration.rate_r;
float rate_ref_r = indi.reference_acceleration.err_r * QUAT1_FLOAT_OF_BFP(att_err.qz) / indi.reference_acceleration.rate_r;
BoundAbs(rate_ref_r, indi.attitude_max_yaw_rate);
indi.angular_accel_ref.r = indi.reference_acceleration.rate_r * (rate_ref_r - rates_for_feedback.r);
@@ -88,7 +88,7 @@ extern void stabilization_indi_enter(void);
extern void stabilization_indi_set_failsafe_setpoint(void);
extern void stabilization_indi_set_rpy_setpoint_i(struct Int32Eulers *rpy);
extern void stabilization_indi_set_earth_cmd_i(struct Int32Vect2 *cmd, int32_t heading);
extern void stabilization_indi_calc_cmd(struct FloatRates angular_accel_ref, bool in_flight)
extern void stabilization_indi_calc_cmd(struct FloatRates angular_accel_ref, bool in_flight);
extern void stabilization_indi_attitude_run(bool in_flight, struct Int32Quat quat_sp);
extern void stabilization_indi_read_rc(bool in_flight, bool in_carefree, bool coordinated_turn);
@@ -44,7 +44,7 @@ struct ReferenceSystem reference_acceleration = {
STABILIZATION_INDI_REF_RATE_R
}; // these values are defined in airframe.h file
// variables in case we use "stabilization_indi.c" module
// variables in case we use "stabilization_indi.c"
float q_filt = 0.0;
float r_filt = 0.0;
@@ -165,7 +165,7 @@ void stabilization_rate_set_setpoint_i(struct Int32Rates *pqr)
/**
* @brief Calculate commanded rates, given setpoint rates
*/
static void stabilization_rate_indi_calc_cmd(struct Int32Rates rates_sp, )
static void stabilization_rate_indi_calc_cmd(struct Int32Rates rates_sp, bool in_flight)
{
struct FloatRates angular_acc_ref;