diff --git a/src/lib/mixer/mixer_multirotor.cpp b/src/lib/mixer/mixer_multirotor.cpp index 42d97e8e659b8e67ee06591552d97f1ff833a509..398f30a73b2aff791bff7dc375f8b3221c8c3135 100644 --- a/src/lib/mixer/mixer_multirotor.cpp +++ b/src/lib/mixer/mixer_multirotor.cpp @@ -217,7 +217,6 @@ MultirotorMixer::mix(float *outputs, unsigned space) } else if (max_out > 1.0f) { boost = -(max_out - 1.0f); - } } else { @@ -226,7 +225,13 @@ MultirotorMixer::mix(float *outputs, unsigned space) } if (!_airmode) { - boost = math::min(boost, 0.0f); // Disable positive boosting if not in air-mode + // disable positive boosting if not in air-mode + // boosting is positive when min_out < 0.0 + // roll_pitch_scale is reduced accordingly + if (boost > 0.0f) { + roll_pitch_scale = thrust / (thrust - min_out); + boost = 0.0f; + } } // capture saturation