mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-24 13:55:51 +08:00
solved compilation errors - need to make function to check both indi attitude and indi rate controllers
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user