From 3827897406a09a563f2f07482919a05d96ccd11d Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Wed, 5 Feb 2020 15:25:43 +0900 Subject: [PATCH] Copter: avoid SITL failure when changing current_loc.alt frame This change avoids a SITL failure caused by an attempt to change current_loc.alt's frame when current_loc is 0,0,0 --- ArduCopter/inertia.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArduCopter/inertia.cpp b/ArduCopter/inertia.cpp index 5dc037e132..89ba4abc25 100644 --- a/ArduCopter/inertia.cpp +++ b/ArduCopter/inertia.cpp @@ -20,7 +20,7 @@ void Copter::read_inertia() // current_loc.alt is alt-above-home, converted from inertial nav's alt-above-ekf-origin const int32_t alt_above_origin_cm = inertial_nav.get_altitude(); current_loc.set_alt_cm(alt_above_origin_cm, Location::AltFrame::ABOVE_ORIGIN); - if (!current_loc.change_alt_frame(Location::AltFrame::ABOVE_HOME)) { + if (!ahrs.home_is_set() || !current_loc.change_alt_frame(Location::AltFrame::ABOVE_HOME)) { // if home has not been set yet we treat alt-above-origin as alt-above-home current_loc.set_alt_cm(alt_above_origin_cm, Location::AltFrame::ABOVE_HOME); }