diff --git a/ArduCopter/Attitude.pde b/ArduCopter/Attitude.pde index c37f41e4b2..b1520d3999 100644 --- a/ArduCopter/Attitude.pde +++ b/ArduCopter/Attitude.pde @@ -894,9 +894,17 @@ get_throttle_accel(int16_t z_target_accel) d = g.pid_throttle_accel.get_d(z_accel_error, .01f); - // - // limit the rate +#if FRAME_CONFIG == HELI_FRAME + if (ap.takeoff_complete == true){ + output = constrain_float(p+i+d+g.throttle_cruise, g.throttle_min, g.throttle_max); + } else { + // Avoid harshing the mechanics pushing into the ground + // stab_col_min should gently push down on the ground + output = constrain_float(p+i+d+g.throttle_cruise, motors.stab_col_min*10, motors.stab_col_max*10); + } +#else output = constrain_float(p+i+d+g.throttle_cruise, g.throttle_min, g.throttle_max); +#endif // HELI_FRAME #if LOGGING_ENABLED == ENABLED // log output if PID loggins is on and we are tuning the yaw