diff --git a/ArduCopter/mode_althold.cpp b/ArduCopter/mode_althold.cpp index aac5dd2cd8..13f8da8f0c 100644 --- a/ArduCopter/mode_althold.cpp +++ b/ArduCopter/mode_althold.cpp @@ -66,6 +66,9 @@ void Copter::ModeAltHold::run() // force descent rate and call position controller pos_control->set_alt_target_from_climb_rate(-abs(g.land_speed), G_Dt, false); heli_flags.init_targets_on_arming=true; + if (ap.land_complete_maybe) { + pos_control->relax_alt_hold_controllers(0.0f); + } #else pos_control->relax_alt_hold_controllers(0.0f); // forces throttle output to go to zero #endif diff --git a/ArduCopter/mode_loiter.cpp b/ArduCopter/mode_loiter.cpp index b822a3bd2a..530596ff3d 100644 --- a/ArduCopter/mode_loiter.cpp +++ b/ArduCopter/mode_loiter.cpp @@ -122,6 +122,9 @@ void Copter::ModeLoiter::run() #if FRAME_CONFIG == HELI_FRAME // force descent rate and call position controller pos_control->set_alt_target_from_climb_rate(-abs(g.land_speed), G_Dt, false); + if (ap.land_complete_maybe) { + pos_control->relax_alt_hold_controllers(0.0f); + } #else loiter_nav->init_target(); attitude_control->reset_rate_controller_I_terms();