diff --git a/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c b/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c index 75393851bc..6217fbfeac 100644 --- a/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c +++ b/sw/airborne/firmwares/rotorcraft/oneloop/oneloop_andi.c @@ -499,7 +499,6 @@ static void send_eff_mat_stab_oneloop_andi(struct transport_tx *trans, struct li ANDI_NUM_ACT, EFF_MAT_RW[3], ANDI_NUM_ACT, EFF_MAT_RW[4], ANDI_NUM_ACT, EFF_MAT_RW[5], - 1, &zero, 1, &zero); } diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_andi.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_andi.c index 970fa1c2b4..0503a7501d 100644 --- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_andi.c +++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_andi.c @@ -425,13 +425,11 @@ static void send_wls_u_stabilization_andi(struct transport_tx *trans, struct lin static void send_eff_mat_stabilization_andi(struct transport_tx *trans, struct link_device *dev) { - float zero = 0.0f; pprz_msg_send_EFF_MAT_STAB(trans, dev, AC_ID, ANDI_NUM_ACT, &ce_mat[0 * ANDI_NUM_ACT], ANDI_NUM_ACT, &ce_mat[1 * ANDI_NUM_ACT], ANDI_NUM_ACT, &ce_mat[2 * ANDI_NUM_ACT], - ANDI_NUM_ACT, &ce_mat[3 * ANDI_NUM_ACT], - 1, &zero); + ANDI_NUM_ACT, &ce_mat[3 * ANDI_NUM_ACT]); } static void send_stab_attitude_stabilization_andi(struct transport_tx *trans, struct link_device *dev) diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c index bee83175ba..09340ee2b0 100644 --- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c +++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi.c @@ -347,8 +347,27 @@ static void send_eff_mat_g_indi(struct transport_tx *trans, struct link_device * INDI_NUM_ACT, g1g2[0], INDI_NUM_ACT, g1g2[1], INDI_NUM_ACT, g1g2[2], - INDI_NUM_ACT, g1g2[3], INDI_NUM_ACT, g2_est); +#if INDI_OUTPUTS <= 5 + float zero = 0; +#endif +#if INDI_OUTPUTS > 3 + pprz_msg_send_EFF_MAT_STAB_THRUST(trans, dev, AC_ID, +#if INDI_OUTPUTS == 4 + 1, &zero, + 1, &zero, + INDI_NUM_ACT, g1g2[3] +#elif INDI_OUTPUTS == 5 + INDI_NUM_ACT, g1g2[4], + 1, &zero, + INDI_NUM_ACT, g1g2[3] +#elif INDI_OUTPUTS == 6 + INDI_NUM_ACT, g1g2[3], + INDI_NUM_ACT, g1g2[4], + INDI_NUM_ACT, g1g2[5] +#endif + ); +#endif } static void send_ahrs_ref_quat(struct transport_tx *trans, struct link_device *dev) diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi_simple.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi_simple.c index 3f097086a5..97a7e260fd 100644 --- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi_simple.c +++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_indi_simple.c @@ -169,13 +169,11 @@ static void send_eff_mat_g_indi_simple(struct transport_tx *trans, struct link_d struct FloatRates g1_disp; RATES_SMUL(g1_disp, indi.est.g1, INDI_EST_SCALE); float g2_disp = indi.est.g2 * INDI_EST_SCALE; - float zero = 0.0; pprz_msg_send_EFF_MAT_STAB(trans, dev, AC_ID, 1, &g1_disp.p, 1, &g1_disp.q, 1, &g1_disp.r, - 1, &g2_disp, - 1, &zero); + 1, &g2_disp); } static void send_ahrs_ref_quat(struct transport_tx *trans, struct link_device *dev)