From 2d80291b4363719804aaaa5379db974e91d10e8f Mon Sep 17 00:00:00 2001 From: Thomas Stastny Date: Wed, 13 Sep 2023 19:14:50 +0200 Subject: [PATCH] loiter: only accept reposition setpoint if commanded within last 0.5 sec guards against left over reposition commands (potentially set via geofence) from previous flights --- src/modules/navigator/loiter.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/navigator/loiter.cpp b/src/modules/navigator/loiter.cpp index a657f4ade4..3cb1a3fae3 100644 --- a/src/modules/navigator/loiter.cpp +++ b/src/modules/navigator/loiter.cpp @@ -51,7 +51,8 @@ Loiter::Loiter(Navigator *navigator) : void Loiter::on_activation() { - if (_navigator->get_reposition_triplet()->current.valid) { + if (_navigator->get_reposition_triplet()->current.valid + && hrt_elapsed_time(&_navigator->get_reposition_triplet()->current.timestamp) < 500_ms) { reposition(); } else { @@ -66,7 +67,8 @@ Loiter::on_activation() void Loiter::on_active() { - if (_navigator->get_reposition_triplet()->current.valid) { + if (_navigator->get_reposition_triplet()->current.valid + && hrt_elapsed_time(&_navigator->get_reposition_triplet()->current.timestamp) < 500_ms) { reposition(); } }