diff --git a/src/modules/vtol_att_control/tiltrotor.cpp b/src/modules/vtol_att_control/tiltrotor.cpp index 183f2090ef..59a5b50aa4 100644 --- a/src/modules/vtol_att_control/tiltrotor.cpp +++ b/src/modules/vtol_att_control/tiltrotor.cpp @@ -395,11 +395,10 @@ void Tiltrotor::fill_actuator_outputs() float Tiltrotor::thrust_compensation_for_tilt() { - // only compensate for tilt angle up to 0.5 * max tilt float compensated_tilt = math::constrain(_tilt_control, 0.0f, 0.5f); - // increase vertical thrust by 1/cos(tilt), limmit to [0,1] - return math::constrain(_v_att_sp->thrust_body[2] / cosf(compensated_tilt * M_PI_2_F), 0.0f, 1.0f); + // increase vertical thrust by 1/cos(tilt), limmit to [-1,0] + return math::constrain(_v_att_sp->thrust_body[2] / cosf(compensated_tilt * M_PI_2_F), -1.0f, 0.0f); }