diff --git a/conf/flight_plans/poles.xml b/conf/flight_plans/poles.xml
index dbc0b3731f..2789c36e4e 100644
--- a/conf/flight_plans/poles.xml
+++ b/conf/flight_plans/poles.xml
@@ -48,7 +48,7 @@
-
+
diff --git a/sw/airborne/nav.c b/sw/airborne/nav.c
index 07b2609ab0..9907bc1be6 100644
--- a/sw/airborne/nav.c
+++ b/sw/airborne/nav.c
@@ -205,11 +205,16 @@ static inline void nav_follow(uint8_t _ac_id, float _distance, float _height);
#ifdef NAV_GROUND_SPEED_PGAIN
/** \brief Computes cruise throttle from ground speed setpoint
*/
-static bool_t nav_ground_speed_loop( void ) {
- float err = estimator_hspeed_mod - nav_ground_speed_setpoint;
- v_ctl_auto_throttle_cruise_throttle += nav_ground_speed_pgain*err;
- Bound(v_ctl_auto_throttle_cruise_throttle, V_CTL_AUTO_THROTTLE_MIN_CRUISE_THROTTLE, V_CTL_AUTO_THROTTLE_MAX_CRUISE_THROTTLE);
- return FALSE;
+static void nav_ground_speed_loop( void ) {
+ if (MINIMUM_AIRSPEED < nav_ground_speed_setpoint
+ && nav_ground_speed_setpoint < MAXIMUM_AIRSPEED) {
+ float err = estimator_hspeed_mod - nav_ground_speed_setpoint;
+ v_ctl_auto_throttle_cruise_throttle += nav_ground_speed_pgain*err;
+ Bound(v_ctl_auto_throttle_cruise_throttle, V_CTL_AUTO_THROTTLE_MIN_CRUISE_THROTTLE, V_CTL_AUTO_THROTTLE_MAX_CRUISE_THROTTLE);
+ } else {
+ /* Reset cruise throttle to nominal value */
+ v_ctl_auto_throttle_cruise_throttle = V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE;
+ }
}
#endif