From b6eb8dbfd947e393b426ffc63b9774dddc848935 Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Wed, 23 Oct 2024 15:45:27 +0200 Subject: [PATCH] Navigator: land: set lat/lon fields of triplet to NAN if global position is not valid Signed-off-by: Silvan Fuhrer --- src/modules/navigator/land.cpp | 3 ++- src/modules/navigator/mission_block.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/modules/navigator/land.cpp b/src/modules/navigator/land.cpp index 0a2346154a..d83b592a45 100644 --- a/src/modules/navigator/land.cpp +++ b/src/modules/navigator/land.cpp @@ -58,7 +58,8 @@ Land::on_activation() /* convert mission item to current setpoint */ struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet(); - if (_navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING) { + if (_navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING + && _navigator->get_local_position()->xy_global) { // only execute if global position is valid _navigator->calculate_breaking_stop(_mission_item.lat, _mission_item.lon); } diff --git a/src/modules/navigator/mission_block.cpp b/src/modules/navigator/mission_block.cpp index 89f42e6bb5..091597a488 100644 --- a/src/modules/navigator/mission_block.cpp +++ b/src/modules/navigator/mission_block.cpp @@ -832,8 +832,15 @@ MissionBlock::set_land_item(struct mission_item_s *item) item->nav_cmd = NAV_CMD_LAND; // set land item to current position - item->lat = _navigator->get_global_position()->lat; - item->lon = _navigator->get_global_position()->lon; + if (_navigator->get_local_position()->xy_global) { + item->lat = _navigator->get_global_position()->lat; + item->lon = _navigator->get_global_position()->lon; + + } else { + item->lat = (double)NAN; + item->lon = (double)NAN; + } + item->yaw = NAN; item->altitude = 0;