From 63f9acfa8424386ced0fdbba3de09bd00476d6f7 Mon Sep 17 00:00:00 2001 From: Silvan Date: Tue, 22 Jul 2025 13:21:59 +0200 Subject: [PATCH] Navigator: loiter direction check: use -FLT_EPS instad of <0 Signed-off-by: Silvan --- src/modules/fw_mode_manager/figure_eight/FigureEight.cpp | 2 +- src/modules/navigator/navigator_main.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/fw_mode_manager/figure_eight/FigureEight.cpp b/src/modules/fw_mode_manager/figure_eight/FigureEight.cpp index 9ab672d964..f7585f39b4 100644 --- a/src/modules/fw_mode_manager/figure_eight/FigureEight.cpp +++ b/src/modules/fw_mode_manager/figure_eight/FigureEight.cpp @@ -95,7 +95,7 @@ FigureEight::FigureEightPatternParameters FigureEight::sanitizeParameters(const if (!PX4_ISFINITE(parameters.loiter_radius)) { valid_parameters.loiter_radius = DEFAULT_MAJOR_TO_MINOR_AXIS_RATIO * valid_parameters.loiter_minor_radius; - valid_parameters.loiter_direction_counter_clockwise = _param_nav_loiter_rad.get() < 0; + valid_parameters.loiter_direction_counter_clockwise = _param_nav_loiter_rad.get() < -FLT_EPSILON; } valid_parameters.loiter_radius = math::max(valid_parameters.loiter_radius, diff --git a/src/modules/navigator/navigator_main.cpp b/src/modules/navigator/navigator_main.cpp index 3e8774bcc8..c3c2fb3656 100644 --- a/src/modules/navigator/navigator_main.cpp +++ b/src/modules/navigator/navigator_main.cpp @@ -525,7 +525,7 @@ void Navigator::run() if (PX4_ISFINITE(cmd.param1)) { rep->current.loiter_radius = fabsf(cmd.param1); - rep->current.loiter_direction_counter_clockwise = cmd.param1 < 0; + rep->current.loiter_direction_counter_clockwise = cmd.param1 < -FLT_EPSILON; } rep->current.lat = position_setpoint.lat; @@ -571,7 +571,7 @@ void Navigator::run() if (PX4_ISFINITE(cmd.param1)) { rep->current.loiter_radius = fabsf(cmd.param1); - rep->current.loiter_direction_counter_clockwise = cmd.param1 < 0; + rep->current.loiter_direction_counter_clockwise = cmd.param1 < -FLT_EPSILON; } rep->current.loiter_radius = math::max(rep->current.loiter_radius, 2.0f * rep->current.loiter_minor_radius);