diff --git a/src/modules/flight_mode_manager/tasks/FlightTask/FlightTask.cpp b/src/modules/flight_mode_manager/tasks/FlightTask/FlightTask.cpp index 55b587d270d..cbecf517f6d 100644 --- a/src/modules/flight_mode_manager/tasks/FlightTask/FlightTask.cpp +++ b/src/modules/flight_mode_manager/tasks/FlightTask/FlightTask.cpp @@ -66,6 +66,8 @@ void FlightTask::_checkEkfResetCounters() if (_sub_vehicle_local_position.get().dist_bottom_reset_counter != _reset_counters.hagl) { _ekfResetHandlerHagl(_sub_vehicle_local_position.get().delta_dist_bottom); _reset_counters.hagl = _sub_vehicle_local_position.get().dist_bottom_reset_counter; + + _dist_to_bottom = NAN; } if (_sub_vehicle_local_position.get().vz_reset_counter != _reset_counters.vz) { diff --git a/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.cpp b/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.cpp index 9c22ae66a3d..280aea617f0 100644 --- a/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.cpp +++ b/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.cpp @@ -279,6 +279,11 @@ void FlightTaskManualAltitude::_ekfResetHandlerHeading(float delta_psi) _stick_yaw.ekfResetHandler(delta_psi); } +void FlightTaskManualAltitude::_ekfResetHandlerHagl(float delta_hagl) +{ + _dist_to_ground_lock = NAN; +} + void FlightTaskManualAltitude::_updateSetpoints() { _stick_yaw.generateYawSetpoint(_yawspeed_setpoint, _yaw_setpoint, _sticks.getYawExpo(), _yaw, _deltatime, _unaided_yaw); diff --git a/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.hpp b/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.hpp index 4df9444e986..600e81fe36a 100644 --- a/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.hpp +++ b/src/modules/flight_mode_manager/tasks/ManualAltitude/FlightTaskManualAltitude.hpp @@ -56,6 +56,8 @@ public: protected: void _ekfResetHandlerHeading(float delta_psi) override; /**< adjust heading setpoint in case of EKF reset event */ + void _ekfResetHandlerHagl(float delta_hagl) override; + virtual void _updateSetpoints(); /**< updates all setpoints */ virtual void _scaleSticks(); /**< scales sticks to velocity in z */ bool _checkTakeoff() override;