From 34bcc277a564559495de77e2a52f8a7201cdad85 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Wed, 18 Dec 2024 15:59:45 +0100 Subject: [PATCH] FlightTaskTransition: keep high decelration when overshooting the transition target --- .../tasks/Transition/FlightTaskTransition.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/flight_mode_manager/tasks/Transition/FlightTaskTransition.cpp b/src/modules/flight_mode_manager/tasks/Transition/FlightTaskTransition.cpp index 3dd2c6b6a2..06e69a7e61 100644 --- a/src/modules/flight_mode_manager/tasks/Transition/FlightTaskTransition.cpp +++ b/src/modules/flight_mode_manager/tasks/Transition/FlightTaskTransition.cpp @@ -120,8 +120,12 @@ float FlightTaskTransition::computeBackTranstionPitchSetpoint() if (dist_to_target_in_moving_direction > FLT_EPSILON) { // Backtransition target point is ahead of the vehicle, compute the desired deceleration deceleration_setpoint = velocity_xy.norm_squared() / (2.f * dist_to_target_in_moving_direction); - deceleration_setpoint = math::min(deceleration_setpoint, 2.f * _param_vt_b_dec_mss); + + } else { + deceleration_setpoint = 2.f * _param_vt_b_dec_mss; } + + deceleration_setpoint = math::min(deceleration_setpoint, 2.f * _param_vt_b_dec_mss); } // Pitch up to reach a negative accel_in_flight_direction otherwise we decelerate too slow