From b0b108baeef56272c1d013cffcdc63a39c21f7e1 Mon Sep 17 00:00:00 2001
From: Matteo Pignataro <matteo.pignataro@skywarder.eu>
Date: Fri, 30 Sep 2022 13:28:06 +0200
Subject: [PATCH] [Payload] Added barometric reference altitude in nas
 calibration

---
 .../Payload/StateMachines/NASController/NASController.cpp   | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/boards/Payload/StateMachines/NASController/NASController.cpp b/src/boards/Payload/StateMachines/NASController/NASController.cpp
index 2ea33a82c..d5571e330 100644
--- a/src/boards/Payload/StateMachines/NASController/NASController.cpp
+++ b/src/boards/Payload/StateMachines/NASController/NASController.cpp
@@ -115,13 +115,17 @@ void NASController::calibrate()
     ReferenceValues reference = nas.getReferenceValues();
     reference.refPressure     = pressure.getStats().mean;
 
+    // Set reference altitude using barometric measure
+    reference.refAltitude = Aeroutils::relAltitude(pressure.getStats().mean);
+
     // If in this moment the GPS has fix i use that position as starting
     UBXGPSData gps = Sensors::getInstance().getUbxGpsLastSample();
     if (gps.fix != 0)
     {
+        // We don't set the altitude with the GPS because of not precise
+        // measurements
         reference.refLatitude  = gps.latitude;
         reference.refLongitude = gps.longitude;
-        reference.refAltitude  = gps.height;
     }
 
     // Update the algorithm reference values
-- 
GitLab