From 3e68e806b890d1c4273d8f21817ce8610f6fd3a6 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 2c53d19659..86b1eb1952 100644 --- a/src/modules/navigator/loiter.cpp +++ b/src/modules/navigator/loiter.cpp @@ -57,7 +57,8 @@ Loiter::on_inactive() 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 { @@ -72,7 +73,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(); }