From 8f784d470cd193dcc463ec87ac8b4c45cbd4d74c Mon Sep 17 00:00:00 2001
From: "Ciccarelli, Edoardo (PG/R - Comp Sci & Elec Eng)"
 <e.ciccarelli@surrey.ac.uk>
Date: Wed, 22 Mar 2023 15:40:00 +0000
Subject: [PATCH] IT WORKS!

---
 Analisys_With_Features.m          |  78 +++++++
 CovarianceAnalysisParameters.m    |   7 +-
 Measurement_read.m                |  68 ++++++
 Observables_model_with_Features.m | 189 +++++++++++++++++
 Observations_Generation.m         |  20 +-
 Observations_with_features.m      |  76 ++++---
 PlotGeometryAndLight.m            |   8 +-
 Results.m                         | 330 ++++++++++++++++++++++++++++++
 Test_Features.m                   |  53 +++++
 UKF_Tool.m                        | 301 +++++++++++++++++++++++++++
 YObs.mat                          | Bin 0 -> 84280 bytes
 features_list.m                   |  11 +
 visible_features.m                |   5 +-
 13 files changed, 1103 insertions(+), 43 deletions(-)
 create mode 100644 Analisys_With_Features.m
 create mode 100644 Measurement_read.m
 create mode 100644 Observables_model_with_Features.m
 create mode 100644 Results.m
 create mode 100644 Test_Features.m
 create mode 100644 UKF_Tool.m
 create mode 100644 YObs.mat
 create mode 100644 features_list.m

diff --git a/Analisys_With_Features.m b/Analisys_With_Features.m
new file mode 100644
index 0000000..b62aae3
--- /dev/null
+++ b/Analisys_With_Features.m
@@ -0,0 +1,78 @@
+clear
+close all
+clc
+
+%%  Setup
+
+    warning('off', 'all'); format longG;
+    set(0,'DefaultTextInterpreter','latex');
+    set(0,'DefaultAxesFontSize', 16);
+
+%   Mac
+    restoredefaultpath
+    addpath('../useful_functions/');
+    addpath('../dynamical_model/');
+    addpath(genpath('../mice/'));
+    addpath(genpath('../computer-vision/'));
+    addpath(genpath('../paper/'));
+    addpath(genpath('../generic_kernels/'));
+    addpath(genpath('../paper/MMX_Fcn_CovarianceAnalyses/'));
+    addpath(genpath('../paper/MMX_Product/MMX_BSP_Files_GravLib/'));
+    MMX_InitializeSPICE
+    cspice_furnsh(which('mar097.bsp'));
+    cspice_furnsh(which('MARPHOFRZ.txt'));
+    cspice_furnsh(which('MMX_QSO_049_2x2_826891269_828619269.bsp'));
+    cspice_furnsh(which('Phobos_826891269_828619269.bsp'));
+
+
+%%  Load observations and path for syntethic pictures
+
+    load("YObs.mat");
+
+
+%%  Initial conditions for the analysis
+
+%   Model parameters
+    [par, units] = MMX_DefineNewModelParametersAndUnits;
+
+%   Time of the analysis
+    data        = '2026-03-16 00:00:00 (UTC)';
+    data        = cspice_str2et(data);
+    day         = 86400;
+    par.et0     = data;
+    [Ph,par]    = Phobos_States_NewModel(data,par);
+
+%   Covariance analysis parameters
+    [par, units] = CovarianceAnalysisParameters(par, units);
+    par.sigma    = 1e-10/(units.vsf*units.tsf);
+    par.sigmaPh  = 0/(units.vsf*units.tsf);
+
+%   Initial Phobos's state vector
+    Ph0     = Ph./units.sfVec2;
+
+%   Initial MMX's State vector
+    MMX0    = cspice_spkezr('-34', data, 'MarsIAU', 'none', '499');
+    MMX0    = MMX0./units.sfVec;
+
+%   Analysis initial state vector
+    St0     = [MMX0; Ph0; par.I2; par.bias];
+
+    Est0.X  = St0;
+    Est0.dx = zeros(size(St0,1),1);
+    Est0.P0 = par.P0;
+    Est0.t0 = data*units.tsf;
+
+%%  Analysis
+
+    par.alpha = 1;
+    par.beta  = 2;
+    file_features = 'Principal_Phobos_Ogni10.mat';
+
+    [Est] = UKF_Tool(Est0,@Dynamics_MPHandMMX_Inertia,...
+        @Cov_Dynamics_Good, @Observables_model_with_Features,...
+        par.R,YObs,par,units,file_features);
+
+
+    Results(Est, YObs, par, units)
+
+
diff --git a/CovarianceAnalysisParameters.m b/CovarianceAnalysisParameters.m
index 3c31b03..0e1d8df 100644
--- a/CovarianceAnalysisParameters.m
+++ b/CovarianceAnalysisParameters.m
@@ -1,7 +1,7 @@
 function [pars, units] = CovarianceAnalysisParameters(pars, units)
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% [pars, units] = New_MMX_CovarianceAnalysisParameters(pars, units)
+% [pars, units] = CovarianceAnalysisParameters(pars, units)
 %
 % This function adds some units and parameters useful to the covariance
 % analysis
@@ -16,6 +16,9 @@ function [pars, units] = CovarianceAnalysisParameters(pars, units)
 % pars.ObsNoise.range_rate  Standard deviation of the relative velocity measure
 % pars.ObsNoise.lidar       Standard deviation of the lidar measure
 % pars.ObsNoise.camera      Standard deviation of the camera measure
+% pars.ObsNoise.pixel       Standard deviation of the pixel error
+% pars.camera_intrinsic     Camera intrinsic matrix
+% pars.FOV                  Camera Filed Of View
 % pars.interval             Seconds between observations
 % pars.Clm                  Vector with all the Clm coefficients
 % pars.Slm                  Vector with all the Slm coefficients
@@ -99,7 +102,7 @@ units.CovDim    = (repmat(units.Dim, 1, length(units.Dim)).*...
 
 % A-priori covariance
 pars.P0         = diag(([.3*ones(3,1); .3e-3*ones(3,1);...    
-    1e-1; 1e-4; 1e-5; 1e-7; 3e-1; 1e-3; 3e-1; 1e-3; 1e-2*ones(pars.nCoeff,1);...
+    1e-1; 1e-4; 1e-5; 1e-7; 1; 1e-2; 1e-1; 1e-3; 1e-2*ones(pars.nCoeff,1);...
     1; 1e-3; 1]./units.Dim).^2);
 
 end
\ No newline at end of file
diff --git a/Measurement_read.m b/Measurement_read.m
new file mode 100644
index 0000000..89729c3
--- /dev/null
+++ b/Measurement_read.m
@@ -0,0 +1,68 @@
+function [Yobs, R, Stat_ID_Range, Stat_ID_Rate, check_Lidar, Features_ID] = Measurement_read(Measures,O,units)
+
+        Y_obs       = [];
+        R           = [];
+        Stat_ID_Range   = [];
+        Stat_ID_Rate    = [];
+        Features_ID     = [];
+
+        if ~isempty(Measures.Range)
+            which   = ~isnan(Measures.Range);
+            count   = sum(~isnan(Measures.Range));
+
+            if ~isnan(Measures.Range(1))
+                Stat_ID_Range = [Stat_ID_Range; 1];
+            end
+            
+            if ~isnan(Measures.Range(2))
+                Stat_ID_Range = [Stat_ID_Range; 2];
+            end
+            
+            if ~isnan(Measures.Range(3))
+                Stat_ID_Range = [Stat_ID_Range; 3];
+            end
+
+            Ranges  = Measures.Range(which);
+            Y_obs   = Ranges./units.lsf;
+            R       = ones(count,1)*O(1,1);
+
+        end
+
+        if ~isempty(Measures.Rate)
+            which   = ~isnan(Measures.Rate);
+            count   = sum(~isnan(Measures.Rate));
+
+            if ~isnan(Measures.Rate(1))
+                Stat_ID_Rate = [Stat_ID_Rate; 1];
+            end
+            
+            if ~isnan(Measures.Rate(2))
+                Stat_ID_Rate = [Stat_ID_Rate; 2];
+            end
+            
+            if ~isnan(Measures.Rate(3))
+                Stat_ID_Rate = [Stat_ID_Rate; 3];
+            end
+            
+            Rates   = Measures.Rate(which);
+            Y_obs   = [Y_obs; Rates./units.vsf];
+            R       = [R; ones(count,1)*O(2,2)];
+        end
+
+        if ~isempty(Measures.Lidar)
+            check_Lidar = 1;
+            Lidar   = Measures.Lidar;
+            Y_obs   = [Y_obs; Lidar./units.lsf];
+            R       = [R; O(3,3)];
+        end
+
+        Yobs.meas  = Y_obs;
+
+        if ~isempty(Measures.Features)
+            Features_ID = Measures.Features(end,:);
+            Yobs.cam   = Measures.Features;
+        else
+            Yobs.cam   = [];
+        end
+
+end
\ No newline at end of file
diff --git a/Observables_model_with_Features.m b/Observables_model_with_Features.m
new file mode 100644
index 0000000..0443873
--- /dev/null
+++ b/Observables_model_with_Features.m
@@ -0,0 +1,189 @@
+function [G, Rm] = Observables_model_with_Features(et, X, St_ID_Range, St_ID_Rate,...
+    Lidar_check, Feature_ID, pars, units, O, file_features)
+%==========================================================================
+% [G, R] = Observables_model_with_Features(et,Obs,X,St_ID_Range,St_ID_Rate, Feature_ID, par,units)
+%
+% Compute the Range, Range Rate, Lidar's and camera's measures 
+%
+% INPUT: Description Units
+%
+% et        - Time Epoch                                                s
+%
+% stationID - Available Observables at the epoch t
+%
+% X         - State Vector defined in the Phobos rotating frame 
+%               at the time being considered (42x1)
+%               .MMX Position Vector (3x1)                              km
+%               .MMX Velocity Vector (3x1)                              km/s
+%               .Phobos Position Vector (3x1)                           km
+%               .Phobos Velocity Vector (3x1)                           km/s
+%               .Clm harmonics coefficients
+%               .Slm Hamronics coefficients
+%               .State Transition Matrix 
+%
+% par       -  Parameters structure 
+% 
+%
+% OUTPUT:
+%
+% G         - G
+% 
+% DO NOT FORGET TO USE RESHAPE LATER IN THE PROJECT
+%
+% Coupling:
+% None
+%
+% Author: Edoardo Ciccarelli
+% Date: 06/2022
+%
+%==========================================================================
+    
+%   Dimensions of the problem
+    n       = pars.d/2;
+    d       = pars.d;
+   
+%   Output initialization
+    range_Camb      = [];
+    range_rate_Camb = [];
+    range_Gold      = [];
+    range_rate_Gold = [];
+    range_Mad       = [];
+    range_rate_Mad  = [];
+    lidar           = [];
+    
+    Rm               = [];
+
+%   Unpacking of the state vector
+    X_MMX       = X(1:d);
+    r_MMX       = X_MMX(1:3);
+    v_MMX       = X_MMX(4:6);
+    r_Phobos    = pars.perifocal2MARSIAU*X(d+1)*[cos(X(d+3)); sin(X(d+3)); 0];
+    
+    switch size(X,1)
+        case 17
+            bias        = pars.bias;
+        case 18
+            bias        = X(16:end);
+        case 20
+            bias        = X(18:end);
+    end
+
+%   Definition of Mars position WRT Earth J2000
+    [Mars, ~]   = cspice_spkezr('499',et,'MARSIAU','none','399');
+    Mars        = Mars./units.sfVec;
+
+    
+%   Which station is working
+%   Camberra's Position in the J2000 Earth-centered
+    [Camb, ~]  = cspice_spkezr('DSS-45', et, 'MARSIAU', 'none', 'EARTH');
+    Camb       = Camb./units.sfVec;    
+%   Goldstone's Position in the J2000 Earth-centered
+    [Gold, ~]  = cspice_spkezr('DSS-24', et, 'MARSIAU', 'none', 'EARTH');
+    Gold       = Gold./units.sfVec;
+%   Madrid's Position in the J2000 Earth-centered
+    [Mad, ~]   = cspice_spkezr('DSS-65', et, 'MARSIAU', 'none', 'EARTH');
+    Mad        = Mad./units.sfVec;
+
+    if sum((St_ID_Range == 1)==1)
+%       Camberra antennas available
+        r           = norm(Mars(1:n) + r_MMX - Camb(1:n));
+        range_Camb  = r + bias(1);
+        Rm   = [Rm; O(1,1)];            
+    end
+    
+    if sum((St_ID_Rate == 1)==1)
+%       Camberra antennas available
+        R       = norm(Mars(1:n) + r_MMX - Camb(1:n));
+        r_dot   = 1/R*sum((Mars(n+1:d) + v_MMX - Camb(n+1:d)).*(Mars(1:n) + r_MMX - Camb(1:n)));
+        range_rate_Camb = r_dot + bias(2);
+        Rm   = [Rm; O(2,2)];     
+    end
+
+    if sum((St_ID_Range == 2)==1)
+%       Goldstone antennas available
+        r           = norm(Mars(1:n) + r_MMX - Gold(1:n));
+        range_Gold  = r + bias(1);
+        Rm   = [Rm; O(1,1)];     
+    end
+    
+    if sum((St_ID_Rate == 2)==1)
+%       Goldstone antennas available
+        R   = norm(Mars(1:n) + r_MMX - Gold(1:n));
+        r_dot   = 1/R*sum((Mars(n+1:d) + v_MMX - Gold(n+1:d)).*(Mars(1:n) + r_MMX - Gold(1:n)));
+        range_rate_Gold = r_dot + bias(2);
+        Rm   = [Rm; O(2,2)];     
+    end
+
+    if sum((St_ID_Range == 3)==1)
+%       Madrid antennas available
+        r   = norm(Mars(1:n) + r_MMX - Mad(1:n));
+        range_Mad = r + bias(1);
+        Rm   = [Rm; O(1,1)];     
+    end
+    
+    if sum((St_ID_Rate == 3)==1)
+%       Camberra antennas available
+        R   = norm(Mars(1:n) + r_MMX - Mad(1:n));
+        r_dot   = 1/R*sum((Mars(n+1:d) + v_MMX - Mad(n+1:d)).*(Mars(1:n) + r_MMX - Mad(1:n)));
+        range_rate_Mad = r_dot + bias(2);
+        Rm   = [Rm; O(2,2)];     
+    end
+    
+    if Lidar_check
+
+%      Lidar rispetto alla superficie
+       I    = r_Phobos/X(7);
+       k    = pars.perifocal2MARSIAU*[0; 0; 1];
+       j    = cross(k,I);
+       NO   = [I,j,k];
+       ON   = NO';
+
+       Xsi  = X(13);
+       BO   = [cos(Xsi), sin(Xsi), 0; -sin(Xsi), cos(Xsi), 0; 0, 0, 1];
+        
+       rsb  = r_MMX-r_Phobos;
+
+%      Posizione di MMX nel Phobos Body-fixed reference frame
+       r_bf = BO*ON*rsb;
+       
+       lat  = asin(r_bf(3)/norm(r_bf));
+       lon  = atan2(r_bf(2), r_bf(1));
+
+%      Phobos radius as function of latitude and longitude
+       alpha = pars.Phobos.alpha;
+       beta  = pars.Phobos.beta;
+       gamma = pars.Phobos.gamma;
+       
+       R_latlon = (alpha*beta*gamma)/sqrt(beta^2*gamma^2*cos(lon)^2 +...
+           gamma^2*alpha^2*sin(lon)^2*cos(lat)^2 + alpha^2*beta^2*sin(lon)^2*sin(lat));
+
+       lidar = norm(rsb) - R_latlon/units.lsf + bias(3);
+       
+       Rm   = [Rm; O(3,3)];     
+
+    end
+    
+    if ~isempty(Feature_ID)
+
+%       There should be features
+       [Sun, ~] = cspice_spkezr('10',et,'MARSIAU','none','499');
+       
+       R2Rot = [cos(X(9)), sin(X(9)), 0; -sin(X(9)), cos(X(9)), 0; 0, 0, 1];
+       v_Phobos = pars.perifocal2MARSIAU*R2Rot'*([X(8); 0; 0] + ...
+           cross([0; 0; X(10)],[X(7)*cos(X(9)); X(7)*sin(X(9)); 0]));
+       Phobos   = [r_Phobos.*units.lsf; v_Phobos.*units.vsf];
+       
+       [~, Y_pix] = visible_features(X_MMX.*units.sfVec, Phobos, Sun, Xsi, file_features, pars, units);
+    else
+        Y_pix = [];
+    end
+   
+%   Ready to exit
+    G.meas  = [range_Camb; range_rate_Camb; range_Gold; range_rate_Gold; ...
+        range_Mad; range_rate_Mad; lidar];
+    G.cam   = Y_pix;
+
+    G.meas(isnan(G.meas)) = [];
+
+     
+end
\ No newline at end of file
diff --git a/Observations_Generation.m b/Observations_Generation.m
index 708b8df..eb51eb6 100644
--- a/Observations_Generation.m
+++ b/Observations_Generation.m
@@ -23,11 +23,12 @@ clc
     cspice_furnsh(which('MMX_QSO_049_2x2_826891269_828619269.bsp'));
     cspice_furnsh(which('Phobos_826891269_828619269.bsp'));
     
+%%  Initial conditions per la analisi
 
-    %   Time of the analysis
-    data        = '2026-03-21 00:00:00 (UTC)';
+%   Time of the analysis
+    data        = '2026-03-16 00:00:00 (UTC)';
     data        = cspice_str2et(data);
-    Ndays       = 1;
+    Ndays       = 4;
     t           = Ndays*86400;
     date_end    = data+t;
 
@@ -37,18 +38,15 @@ clc
 %   Covariance analysis parameters
     pars.et0      = data;
     [pars, units] = CovarianceAnalysisParameters(pars, units);
-    
+    file_features = 'Principal_Phobos_Ogni10.mat';
     
 %   Positin of my target bodies at that date
     Sun     = cspice_spkezr('10', data, 'J2000', 'none', 'MARS');
     MMX     = cspice_spkezr('-34', data, 'J2000', 'none', 'MARS');
     Phobos  = cspice_spkezr('-401', data, 'J2000', 'none', 'MARS');
-    Phi     = deg2rad(0);
-
-%     [Y_LOS, Y_pix] = visible_features(MMX, Phobos, Sun, Phi,...
-%         'Principal_Phobos_Ogni10.mat', par, units);
+    
+    
+%%  Creazione lista osservabili
 
-    file_features = 'Principal_Phobos_Ogni2.mat';
     YObs = Observations_with_features(data, date_end, file_features, pars, units);
-
-%     Plotfeatures_Pic(YObs(685).Features, pars)
+    save('YObs');
\ No newline at end of file
diff --git a/Observations_with_features.m b/Observations_with_features.m
index a72a4cb..9207438 100644
--- a/Observations_with_features.m
+++ b/Observations_with_features.m
@@ -1,20 +1,23 @@
-function YObs = Observations_with_features(date0, date_end, file_features, pars, units)
+function YObs = Observations_with_features(date_0, date_end, file_features, pars, units)
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% dx = Mars_Phobos_Circular_FullState(t,x,pars)
+% YObs = Observations_with_features(date0, date_end, file_features, pars, units)
 %
-% Calculate the acceleration vector in the N-Body Problem with Mars and
-% Phobos only and the derivative of the coefficients to be estimated
+% Creation of the structure containing the timestamp, of the observables
+% and the available observables to be processed
 %
 % Input:
 %     
-% orbit         String with the name of the type of orbit 
-% date0         Date of the beginning of the analysis
-% date_end      Date of the end of the analysis
+% date0             Date of the beginning of the analysis
+% date_end          Date of the end of the analysis
+% file_features     Name of the file containing the features positions in
+%                   the body-fixed reference frame
+% pars              Struct with useful parameters
+% units             Struct with useful units 
 %
 % Output:
 % 
-% YObs_Full     Vector of observations and time of observations
+% Obs               Struct of observations and time of observations
 %
 % Author: E.Ciccarelli
 %
@@ -36,21 +39,36 @@ function YObs = Observations_with_features(date0, date_end, file_features, pars,
     sigma_range_rate = pars.ObsNoise.range_rate*units.vsf;
     sigma_lidar      = pars.ObsNoise.lidar*units.lsf;
     
+%   Minimum interval between two different observables of the same kind
+    min_interval    = min([interval_Range; interval_Range_rate;...
+        interval_lidar; interval_camera]);
+
+
+%%  Needed to find the Phobos libration angle at different timestamps
+
+    [Ph, pars]  = Phobos_States_NewModel(date_0,pars);
+    Ph          = Ph./units.sfVec2;
+    St0     = [Ph; reshape(eye(pars.d2),[pars.d2^2,1])];
+    tspan   = (0:min_interval:date_end-date_0)*units.tsf;
+    RelTol  = 1e-13;
+    AbsTol  = 1e-16; 
+    opt     = odeset('RelTol',RelTol,'AbsTol',AbsTol);
+    [~,X]   = ode113(@(t,X) MP_CoupledLibration(t,X,pars),tspan,St0,opt);
     
+    t       = (0:min_interval:date_end-date_0);
+    Phi_t   = X(:,7);
+
 %%  Observations
 
-    et0             = date0;
-    et_end          = date_end;
-    
+    et0        = date_0;
+    et_end     = date_end;
+
+%   Inizzializzazione struttura
     YObs       = [];
     
-    min_interval    = min([interval_Range; interval_Range_rate; interval_lidar; interval_camera]);
-    
-    
     for i = et0:min_interval:et_end
         
-        got_it          = 0;
-       
+        got_it          = 0;  
 
 %--------------------------------------------------------------------------
 %       LIDAR OBSERVABLES WRT PHOBOS SURFACE
@@ -63,15 +81,15 @@ function YObs = Observations_with_features(date0, date_end, file_features, pars,
         if (norm(MMX(1:3)-Phobos(1:3)) < LIDARlimit) && (rem((i-et0),interval_lidar)==0)
             
            rPh = Phobos(1:3);
-           [Ph, pars] = Phobos_States_NewModel(i,pars);
            
-           I    = rPh/Ph(1);
+           I    = rPh/norm(rPh);
            k    = pars.perifocal2MARSIAU*[0; 0; 1];
            j    = cross(k,I);
            NO   = [I,j,k];
            ON   = NO';
 
-           BO   = [cos(Ph(end-1)), sin(Ph(end-1)), 0; -sin(Ph(end-1)), cos(Ph(end-1)), 0; 0, 0, 1];
+           Phi  = Phi_t(t == (i-et0));
+           BO   = [cos(Phi), sin(Phi), 0; -sin(Phi), cos(Phi), 0; 0, 0, 1];
             
            rsb  = MMX(1:3)-rPh;
 
@@ -189,8 +207,11 @@ function YObs = Observations_with_features(date0, date_end, file_features, pars,
             Sun     = cspice_spkezr('10', i, 'J2000', 'none', 'MARS');
             MMX     = cspice_spkezr('-34', i, 'J2000', 'none', 'MARS');
             Phobos  = cspice_spkezr('-401', i, 'J2000', 'none', 'MARS');
-            Phi     = deg2rad(0);
+            
+%           What's the Phobos libration angle at that t?
+            Phi     = Phi_t(t == (i-et0));
 
+%           Identification of the features
             [~, Y_pix] = visible_features(MMX, Phobos, Sun, Phi,...
                 file_features, pars, units);
             got_it = 1;
@@ -208,12 +229,19 @@ function YObs = Observations_with_features(date0, date_end, file_features, pars,
 
         if (got_it == 1)
             Obs.t       = i-et0; 
-            DSN         = [R_Cam; R_dot_Cam; R_Gold; R_dot_Gold; R_Mad; R_dot_Mad];
-            if sum(~isnan(DSN))>0
-                Obs.DSN = [R_Cam; R_dot_Cam; R_Gold; R_dot_Gold; R_Mad; R_dot_Mad];
+            Range   = [R_Cam; R_Gold; R_Mad];
+            if sum(~isnan(Range))>0
+                Obs.Range = [R_Cam; R_Gold; R_Mad];
             else
-                Obs.DSN = [];
+                Obs.Range = [];
             end
+            Rate    = [R_dot_Cam; R_dot_Gold; R_dot_Mad];
+            if sum(~isnan(Rate))>0
+                Obs.Rate = [R_dot_Cam; R_dot_Gold; R_dot_Mad];
+            else
+                Obs.Rate = [];
+            end 
+   
             Obs.Lidar   = Lidar;
             Obs.Features= Y_pix;
             YObs   = [YObs; Obs];
diff --git a/PlotGeometryAndLight.m b/PlotGeometryAndLight.m
index 2fd3a9b..47f5b32 100644
--- a/PlotGeometryAndLight.m
+++ b/PlotGeometryAndLight.m
@@ -15,11 +15,12 @@ function PlotGeometryAndLight(points, point_in_light, visible, r_sb_Ph, r_PhSun,
     R_CV        = R_bCam2CV*T;
 
 
-    figure()
+    figure(1)
+    hold off
+    plot3(points(1,:), points(2,:), points(3,:),'.','Color','b')
+    hold on
     grid on
     axis equal
-    hold on
-    plot3(points(1,:), points(2,:), points(3,:),'.','Color','b')
     plot3(point_in_light(1,:), point_in_light(2,:), point_in_light(3,:), 'x','Color','g')
     if ~isempty(visible)
         plot3(visible(1,:), visible(2,:), visible(3,:), 'o','Color','r')
@@ -39,5 +40,4 @@ function PlotGeometryAndLight(points, point_in_light, visible, r_sb_Ph, r_PhSun,
         -r_sb_Ph(1)/units.tsf,-r_sb_Ph(2)/units.tsf,-r_sb_Ph(3)/units.tsf,'LineWidth',1.5,'Color','r')
     plotCamera('location',r_sb_Ph,'orientation',R_CV,'Color','r')
 
-
 end
\ No newline at end of file
diff --git a/Results.m b/Results.m
new file mode 100644
index 0000000..7c2fb7e
--- /dev/null
+++ b/Results.m
@@ -0,0 +1,330 @@
+function Results(Est, YObs_Full, pars, units)
+%==========================================================================
+% NewCov_ResultsPlot(Est, YObs_Full, pars)
+%
+% This function plots the results of the covariance analysis
+%
+% INPUT: Description Units
+%
+% Est       - Estimation of:
+%               .X, States at final t
+%               .x, States' deviation vector at final t
+%               .P, Covariance matrix at final t
+%               .t, Time observation vector
+%               .err, Post-fit residuals
+%               .pre, Pre-fit residuals
+%               .y_t, Pre-fit residuals
+%               .X_t, States at different t
+%               .x_t, States deviation vector at different t
+%               .Phi_t, STM at different t
+%               .P_t, Covariance matrix at different t  
+%               .Pbar_t, Covariance matrix time update at different t
+% 
+% YObs_Full     Vector of observations and time of observations
+%
+% pars       - Structure containing problem's parameters
+%
+%
+% Coupling:
+% None
+%
+% Author: Edoardo Ciccarelli
+% Date: 09/2021
+%
+%==========================================================================
+
+    set(0,'DefaultTextInterpreter','latex');
+    set(0,'DefaultAxesFontSize', 16);
+
+    t_obs   = (0:100:YObs_Full(end).t);
+
+%   Plot of the post-fit residuals
+    
+%     figure(1)
+%     subplot(1,2,1)
+%     plot(t_obs/3600,Est.pre(1,:),'x','Color','b')
+%     grid on;
+%     hold on;
+%     plot(t_obs/3600,Est.pre(3,:),'x','Color','b')
+%     plot(t_obs/3600,Est.pre(5,:),'x','Color','b')
+%     plot(t_obs/3600,3*pars.ObsNoise.range*units.lsf*ones(size(Est.pre(1,:),2)),'.-','Color','b')
+%     plot(t_obs/3600,-3*pars.ObsNoise.range*units.lsf*ones(size(Est.pre(1,:),2)),'.-','Color','b')
+%     plot(t_obs/3600,3*pars.ObsNoise.range*units.lsf*ones(size(Est.pre(3,:),2)),'.-','Color','b')
+%     plot(t_obs/3600,-3*pars.ObsNoise.range*units.lsf*ones(size(Est.pre(3,:),2)),'.-','Color','b')
+%     plot(t_obs/3600,3*pars.ObsNoise.range*units.lsf*ones(size(Est.pre(5,:),2)),'.-','Color','b')
+%     plot(t_obs/3600,-3*pars.ObsNoise.range*units.lsf*ones(size(Est.pre(5,:),2)),'.-','Color','b')
+%     xlabel('$[hour]$')
+%     ylabel('$[km]$')
+%     title('Range Pre-fit residual')
+%     figure(2)
+%     subplot(1,2,1)
+%     plot(t_obs/3600,Est.pre(2,:),'x','Color','r')
+%     grid on;
+%     hold on;
+%     plot(t_obs/3600,Est.pre(4,:),'x','Color','r')
+%     plot(t_obs/3600,Est.pre(6,:),'x','Color','r')
+%     plot(t_obs/3600,3*pars.ObsNoise.range_rate*units.vsf*ones(size(Est.pre(2,:),2)),'.-','Color','r')
+%     plot(t_obs/3600,-3*pars.ObsNoise.range_rate*units.vsf*ones(size(Est.pre(2,:),2)),'.-','Color','r')
+%     plot(t_obs/3600,3*pars.ObsNoise.range_rate*units.vsf*ones(size(Est.pre(4,:),2)),'.-','Color','r')
+%     plot(t_obs/3600,-3*pars.ObsNoise.range_rate*units.vsf*ones(size(Est.pre(4,:),2)),'.-','Color','r')
+%     plot(t_obs/3600,3*pars.ObsNoise.range_rate*units.vsf*ones(size(Est.pre(6,:),2)),'.-','Color','r')
+%     plot(t_obs/3600,-3*pars.ObsNoise.range_rate*units.vsf*ones(size(Est.pre(6,:),2)),'.-','Color','r')
+%     xlabel('$[hour]$')
+%     ylabel('$[km/s]$')    
+%     title('RangeRate Pre-fit residual') 
+%     figure(3)
+%     subplot(1,2,1)
+%     plot(t_obs/3600,Est.pre(7,:),'x','Color','g')
+%     grid on;
+%     hold on;
+%     plot(t_obs/3600,3*pars.ObsNoise.lidar*units.lsf*ones(size(Est.pre(7,:),2)),'.-','Color','g')
+%     plot(t_obs/3600,-3*pars.ObsNoise.lidar*units.lsf*ones(size(Est.pre(7,:),2)),'.-','Color','g')
+%     xlabel('$[hour]$')
+%     ylabel('$[km]$')
+%     title('Lidar Pre-fit residual') 
+%     figure(4)
+%     subplot(1,2,1)
+%     plot(t_obs/3600,Est.pre(8,:),'x','Color','m')
+%     grid on;
+%     hold on;
+%     plot(t_obs/3600,3*pars.ObsNoise.camera*ones(size(Est.pre(8,:),2)),'.-','Color','m')
+%     plot(t_obs/3600,-3*pars.ObsNoise.camera*ones(size(Est.pre(8,:),2)),'.-','Color','m')
+%     xlabel('$[hour]$')
+%     ylabel('$[rad]$')
+%     title('Camera Pre-fit residual') 
+%     figure(5)
+%     subplot(1,2,1)
+%     plot(t_obs/3600,Est.pre(9,:),'x','Color','k')
+%     grid on;
+%     hold on;
+%     plot(t_obs/3600,3*pars.ObsNoise.camera*ones(size(Est.pre(9,:),2)),'.-','Color','k')
+%     plot(t_obs/3600,-3*pars.ObsNoise.camera*ones(size(Est.pre(9,:),2)),'.-','Color','k')
+%     xlabel('$[hour]$')
+%     ylabel('$[rad]$')
+%     title('Camera Pre-fit residual') 
+
+
+%     figure(1)
+%     subplot(1,2,2)
+%     histfit([Est.pre(1,:), Est.pre(3,:), Est.pre(5,:)])
+%     xlabel('$[km]$')
+%     title('Range Pre-fit residual') 
+%     figure(2)
+%     subplot(1,2,2)
+%     histfit([Est.pre(2,:),Est.pre(4,:), Est.pre(6,:)])
+%     xlabel('$[km/s]$')
+%     title('Range Rate Pre-fit residual') 
+%     figure(3)
+%     subplot(1,2,2)
+%     histfit(Est.pre(7,:))
+%     xlabel('$[km]$')
+%     title('Lidar Pre-fit residual')
+%     figure(4)
+%     subplot(1,2,2)
+%     histfit(Est.pre(8,:))
+%     xlabel('$[rad]$')
+%     title('Camera Pre-fit residual')
+%     figure(5)
+%     subplot(1,2,2)
+%     histfit(Est.pre(9,:))
+%     xlabel('$[rad]$')
+%     title('Camera Pre-fit residual')
+    
+%   Square-Root of the MMX covariance error
+
+    sqx = squeeze(Est.P_t(1,1,1:end-1));
+    sqy = squeeze(Est.P_t(2,2,1:end-1));
+    sqz = squeeze(Est.P_t(3,3,1:end-1));
+    SQRT_X = 3*sqrt(sqx + sqy + sqz);
+    sqvx = squeeze(Est.P_t(4,4,1:end-1));
+    sqvy = squeeze(Est.P_t(5,5,1:end-1));
+    sqvz = squeeze(Est.P_t(6,6,1:end-1));
+    SQRT_V = 3*sqrt(sqvx + sqvy + sqvz);
+
+    
+%   3sigma Envelopes
+    figure()
+    subplot(1,2,1)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(1,1,1:end-1)))),'Color','b','LineWidth',1)
+    hold on;
+    grid on;
+    semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(Est.P_t(2,2,1:end-1)))),'Color','r','LineWidth',1)
+    semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(Est.P_t(3,3,1:end-1)))),'Color','g','LineWidth',1)
+    semilogy(t_obs(1:end-1)/3600,SQRT_X,'Color','k','LineWidth',2)
+    xlabel('time $[hour]$')
+    ylabel('$[km]$')
+    title('MMX position vector $3\sigma$ envelopes','Interpreter','latex','FontSize',16)
+    legend('$3\sigma_{x}$','$3\sigma_{y}$','$3\sigma_{z}$','$3 RMS$','Interpreter','latex','FontSize',14)
+    subplot(1,2,2)
+    semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(Est.P_t(4,4,1:end-1)))),'Color','b','LineWidth',1)
+    hold on;
+    grid on;
+    semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(Est.P_t(5,5,1:end-1)))),'Color','r','LineWidth',1)
+    semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(Est.P_t(6,6,1:end-1)))),'Color','g','LineWidth',1)
+    semilogy(t_obs(1:end-1)/3600,SQRT_V,'Color','k','LineWidth',2)
+    xlabel('time $[hour]$')
+    ylabel('$[km/s]$')
+    title('MMX velocity vector $3\sigma$ envelopes','Interpreter','latex','FontSize',16)
+    legend('$3\sigma_{\dot{x}}$','$3\sigma_{\dot{y}}$','$3\sigma_{\dot{z}}$','$3 RMS$','Interpreter','latex','FontSize',14)
+
+
+%   Phobos's states uncertainties evolution
+
+% %   3sigma Envelopes
+
+    figure()
+    subplot(2,4,1)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(7,7,1:end-1)))),'Color','b','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$R_{Ph}$ [km]')
+    subplot(2,4,2)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(9,9,1:end-1)))),'Color','r','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$\theta_{Ph}$ [rad]')
+    subplot(2,4,3)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(11,11,1:end-1)))),'Color','g','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$\Phi_{M}$ [rad]')
+    subplot(2,4,4)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(13,13,1:end-1)))),'Color','m','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$\Phi_{Ph}$ [rad]')
+    
+    subplot(2,4,5)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(8,8,1:end-1)))),'Color','b','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$\dot{R}_{Ph}$ [km/s]')
+    subplot(2,4,6)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(10,10,1:end-1)))),'Color','r','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$\dot{\theta}_{Ph}$ [rad/s]')
+    subplot(2,4,7)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(12,12,1:end-1)))),'Color','g','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$\dot{\Phi}_{M}$ [rad/s]')
+    subplot(2,4,8)
+    semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(14,14,1:end-1)))),'Color','m','LineWidth',1)
+    grid on
+    xlabel('time [hour]')
+    ylabel('$\dot{\Phi}_{Ph}$ [rad/s]')
+
+%   Harmonics 3sigma Envelopes
+
+%     place0 = size(Est.X,1)-pars.nCoeff-pars.nBias;
+    corr_label = {'$x$','$y$','$z$','$\dot{x}$','$\dot{y}$','$\dot{z}$',...
+        '$R_{Ph}$','$\dot{R}_{Ph}$','$\theta_{Ph}$','$\dot{\theta}_{Ph}$',...
+        '$\Phi_{M}$','$\dot{\Phi}_{M}$','$\Phi_{Ph}$','$\dot{\Phi}_{Ph}$'};
+
+
+%   Moments of inertia
+%     figure()
+%     subplot(1,3,1)
+%     semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(15,15,1:end-1)))),'LineWidth',1);
+%     grid on;
+%     hold on;
+    corr_label{end+1} = ['$I_{PhX}$'];
+%     xlabel('time $[hour]$')
+%     legend('$I_{PhX}$','Interpreter','latex','FontSize',14)
+%     subplot(1,3,2)
+%     semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(16,16,1:end-1)))),'LineWidth',1);
+%     grid on;
+%     hold on;
+    corr_label{end+1} = ['$I_{PhY}$'];
+%     xlabel('time $[hour]$')
+%     legend('$I_{PhY}$','Interpreter','latex','FontSize',14)
+%     subplot(1,3,3)
+%     semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(16,16,1:end-1)))),'LineWidth',1);
+%     grid on;
+%     hold on;
+    corr_label{end+1} = ['$I_{PhZ}$'];
+%     xlabel('time $[hour]$')
+%     legend('$I_{PhZ}$','Interpreter','latex','FontSize',14)
+
+        
+%   Biases
+
+    place0 = size(Est.X,1)-pars.nBias;
+    corr_label(end+1) = {'$\rho$'};
+    corr_label(end+1) = {'$\dot{\rho}$'};
+    corr_label(end+1) = {'$LIDAR_b$'};
+
+%     figure()
+%     subplot(1,pars.nBias,1)
+%     semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(place0+1,place0+1,1:end-1)))),'LineWidth',1,...
+%                 'DisplayName',('$\rho$'),'Color','b');
+%     grid on;
+%     hold on;
+%     xlabel('time $[hour]$')
+%     ylabel('$[km]$')
+%     subplot(1,pars.nBias,2)
+%     semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(place0+2,place0+2,1:end-1)))),'LineWidth',1,...
+%                 'DisplayName',('$\dot{\rho}$'),'Color','r');
+%     grid on;
+%     hold on;
+%     xlabel('time $[hour]$')
+%     ylabel('$[km/s]$')
+%     subplot(1,pars.nBias,3)
+%     semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est.P_t(place0+3,place0+3,1:end-1)))),'LineWidth',1,...
+%                 'DisplayName',('$LIDAR_b$'),'Color','g');
+%     grid on;
+%     hold on;
+%     xlabel('time $[hour]$')
+%     ylabel('$[km]$')
+
+
+%     
+% %   Harmonics Coefficients
+% 
+    P_t_I2x  = squeeze(Est.P_t(15,15,1:end-1));
+    P_t_I2y  = squeeze(Est.P_t(16,16,1:end-1));
+    P_t_I2z  = squeeze(Est.P_t(17,17,1:end-1));
+    Cov_I2xI2y = squeeze(Est.P_t(15,16,1:end-1));
+    Cov_I2yI2z = squeeze(Est.P_t(16,17,1:end-1));
+    Cov_I2xI2z = squeeze(Est.P_t(15,17,1:end-1));
+
+    P_t_C_20 = .25*(P_t_I2y + P_t_I2x - 2*Cov_I2xI2y);
+    P_t_C_22 = .5*(4*P_t_I2z + P_t_I2y + P_t_I2x - 4*Cov_I2xI2z - 4*Cov_I2yI2z + 2*Cov_I2xI2y);
+
+    figure()
+    subplot(1,2,1)
+    semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_20)),'LineWidth',1,'Color','b');
+    grid on;
+    hold on;
+    xlabel('time $[hour]$')
+    legend('$C_{20}$','Interpreter','latex','FontSize',14)
+    subplot(1,2,2)
+    semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_22)),'LineWidth',1,'Color','r');
+    grid on;
+    hold on;
+    xlabel('time $[hour]$')
+    legend('$C_{22}$','Interpreter','latex','FontSize',14)
+
+
+
+%   Correlations coefficients
+
+    [~,corr] = readCovMatrix(real(Est.P));
+
+    figure();
+    imagesc(real(corr))
+    title('Correlation Coefficients','FontSize',16);
+    set(gca,'FontSize',16);
+    colormap(hot);
+    colorbar;
+    set(gca,'TickLabelInterpreter','latex');
+    set(gca,'XTick',(1:size(Est.X,1)));
+    set(gca,'XTickLabel',corr_label);
+    set(gca,'YTick',(1:size(Est.X,1)));
+    set(gca,'YTickLabel',corr_label);
+    axis square;
+    freezeColors;
+
+
+end
\ No newline at end of file
diff --git a/Test_Features.m b/Test_Features.m
new file mode 100644
index 0000000..b560680
--- /dev/null
+++ b/Test_Features.m
@@ -0,0 +1,53 @@
+clear 
+close all
+clc
+
+%%  Setup
+
+    warning('off', 'all'); format longG;
+    set(0,'DefaultTextInterpreter','latex');
+    set(0,'DefaultAxesFontSize', 16);
+
+%   Mac
+    restoredefaultpath
+    addpath('../useful_functions/');
+    addpath(genpath('../mice/'));
+    addpath(genpath('../computer-vision/'));
+    addpath(genpath('../paper/'));
+    addpath(genpath('../generic_kernels/'));
+    addpath(genpath('../paper/MMX_Fcn_CovarianceAnalyses/'));
+    addpath(genpath('../paper/MMX_Product/MMX_BSP_Files_GravLib/'));
+    MMX_InitializeSPICE
+    cspice_furnsh(which('mar097.bsp'));
+    cspice_furnsh(which('MARPHOFRZ.txt'));
+    cspice_furnsh(which('MMX_QSO_049_2x2_826891269_828619269.bsp'));
+    cspice_furnsh(which('Phobos_826891269_828619269.bsp'));
+    
+%%  Initial conditions per la analisi
+
+%   Time of the analysis
+    data        = '2026-03-21 00:00:00 (UTC)';
+    data        = cspice_str2et(data);
+    Ndays       = 1;
+    t           = Ndays*86400;
+    date_end    = data+t;
+
+%   Model parameters
+    [pars, units] = MMX_DefineNewModelParametersAndUnits;
+
+%   Covariance analysis parameters
+    pars.et0      = data;
+    [pars, units] = CovarianceAnalysisParameters(pars, units);
+    file_features = 'Principal_Phobos_Ogni10.mat';
+    
+    for i=data:100:date_end
+
+%   Positin of my target bodies at that date
+        Sun     = cspice_spkezr('10', i, 'J2000', 'none', 'MARS');
+        MMX     = cspice_spkezr('-34', i, 'J2000', 'none', 'MARS');
+        Phobos  = cspice_spkezr('-401', i, 'J2000', 'none', 'MARS');
+        Phi     = 0;
+
+        [Y_LOS, Y_pix] = visible_features(MMX, Phobos, Sun, Phi, file_features, pars, units);
+
+    end
\ No newline at end of file
diff --git a/UKF_Tool.m b/UKF_Tool.m
new file mode 100644
index 0000000..2decf54
--- /dev/null
+++ b/UKF_Tool.m
@@ -0,0 +1,301 @@
+function [Est] = UKF_Tool(Est0, f, fsigma, G, O, Measures, pars, units, file_features)
+%==========================================================================
+% 
+% [Est] = UKF_Tool(Est0,f,G_dG,R,Measures,par)
+%
+%
+% INPUT: Description Units
+%
+% Est0      - Apriori initial guess of
+%               .X,     States 
+%               .P0,    Covariance matrix
+%               .t0,    initial time  
+% 
+% @f        - Dynamical model
+% 
+% @G        - Observation's model and partial derivatives wrt the states
+% 
+% O         - Weight matrix
+% Nsigma    - Number of sigma points
+% Measures  - Observations matrix: the first column contains observation
+%               times, then every column has a different type of observaion
+%               type
+% par       - Structure containing parameters required by @f and @G_dG 
+% units     - Structure containing lenght and time units 
+%
+% OUTPUT:
+%
+% Est       - Estimation of:
+%               .X, States at final t
+%               .P, Covariance matrix at final t
+%               .t, Time observation vector
+%               .X_t, States at different t
+%               .P_t, Covariance matrix at different t  
+%               .Pbar_t, Covariance matrix time update at different t
+% 
+%
+% Coupling:
+% None
+%
+% Author: Edoardo Ciccarelli
+% Date: 04/2021
+%
+%==========================================================================
+
+
+%   Apriori initial guess, deviation and covariance matrix.
+    Xold    = Est0.X;
+    Pold    = Est0.P0;
+    
+%   Column of the measures time.
+    told    = Measures(1).t;
+
+%   The measures must be organized in colums depending on the type of
+%   measure; each row is reffered to a given measure's time.
+    obs         = Measures;
+   
+    
+%   n,l and m are respectively the number of states, number of different
+%   types of measures and number of measures per each type.
+    n       = size(Xold,1);
+    m       = size(obs,1);
+    q       = 3;
+
+%   err is the vector of residuals, the others are needed to build the 
+%   fitting residuals.
+    err     = NaN(size(O,1),m);
+    prefit  = NaN(size(O,1),m);
+    y_t     = NaN(size(O,1),m);
+    X_t     = zeros(n,size(Measures,1));
+    x_t     = zeros(n,size(Measures,1));
+    P_t     = zeros(n,n,m);
+    Pbar_t  = zeros(n,n,m);
+    
+%   Initialization of the filter
+    k       = 3 - n;
+    alpha   = pars.alpha;
+    lambda  = alpha^2*(n+k) - n;
+    gamma   = sqrt(n+lambda);
+
+%   Sigma points' weights
+    W0c     = zeros(2*n, 1);
+    W0c(:)  = 1./(2*(n+lambda));
+    
+%   Reference orbit propagation
+    interval_Range      = pars.interval_Range;
+    interval_Range_rate = pars.interval_Range_rate;
+    interval_lidar      = pars.interval_lidar;
+    interval_camera     = pars.interval_camera;
+    min_interval        = min([interval_Range; interval_Range_rate; interval_lidar; interval_camera]);
+
+    switch n
+        case 14
+            St0 = [Xold; pars.IPhx_bar; pars.IPhy_bar; pars.IPhz_bar];
+        case 17
+            St0 = Xold(1:17);
+        case 18
+            St0 = pars.X0_reference;
+        case 20
+            St0 = Xold(1:17);
+    end
+
+    tspan   = (0:min_interval:Measures(end).t)*units.tsf;
+    RelTol  = 1e-13;
+    AbsTol  = 1e-16; 
+    opt     = odeset('RelTol',RelTol,'AbsTol',AbsTol,'event',@(t,X) landing_Phobos(t,X,pars,units));
+    [t,X]   = ode113(@(t,X) f(t,X,pars,units),tspan,St0,opt);
+    fprintf('\nOrbit propagation complete...');
+
+
+%   For-loop on the observations
+    for i = 1:m
+        
+%       Look for the observation to process
+        if Measures(i).t == told
+                idx     = 1;
+            switch n
+                case 14
+                    Xmean_bar   = X(idx,1:size(Est0.X,1))';
+                case 17
+                    Xmean_bar   = X(idx,:)';
+                case 18
+                    Xmean_bar   = [X(idx,1:10)'; X(idx,13:end)'; 0; 0; 0];
+                    pars.PhiM    = X(idx,11);
+                case 20
+                    Xmean_bar   = [X(idx,:)'; 0; 0; 0];
+            end
+        elseif Measures(i).t > told
+            tobs = Measures(i).t;
+            idx     = find(round(t/units.tsf)==tobs);
+            switch n
+                case 14
+                    Xmean_bar   = X(idx,1:size(Est0.X,1))';
+                case 17
+                    Xmean_bar   = X(idx,:)';
+                case 18
+                    Xmean_bar   = [X(idx,1:10)'; X(idx,13:end)'; 0; 0; 0];
+                case 20
+                    Xmean_bar   = [X(idx,:)'; 0; 0; 0];
+            end
+        end
+
+%       Useful quantities's initialization
+        et  = Est0.t0/units.tsf + Measures(i).t;
+        
+%       TIME UPDATE
+%       Sigma points' definition
+        S0 = real(sqrtm(Pold)); 
+        X0 = [(repmat(Xold,1,n)-gamma.*S0),...
+            (repmat(Xold,1,n)+gamma.*S0)];
+
+%       Need to know how many observations are available
+        [Y_obs, R, Stat_ID_Range, Stat_ID_Rate, check_Lidar, Features_ID] = Measurement_read(Measures(i),O,units);
+        
+
+        if Measures(idx).t == told
+
+%           The sigma point dont need to be proppagated
+            Xbar    = X0;
+
+        elseif Measures(idx).t > told
+
+%           Propagation of the sigma points' trajectories
+            St0     = reshape(X0,[n*(2*n),1]);
+            tspan   = (told:Measures(idx).t)*units.tsf;
+            opt     = odeset('RelTol',1e-13,'AbsTol',1e-16,'event',@(t,X) landing_Phobos_UKF(t,X,pars,units));
+            [~,X_sigma] = ode113(@(t,X) fsigma(t,X,pars,units),tspan,St0,opt);
+            Xbar    = reshape(X_sigma(end,1:n*(2*n))',[n,(2*n)]);
+
+        end
+        
+        fprintf('\nProcesso osservazione n. : %d', i);
+
+%       Process noise if needed
+        deltaT  = (Measures(idx).t-told)*units.tsf;
+        Q       = pars.sigma^2*eye(3);
+        switch n
+            case 14
+                Gamma   = [eye(q)*deltaT^2/2; eye(q)*deltaT; zeros(n-6,q)];
+                Q = Gamma*Q*Gamma' + [zeros(6,n); zeros(n-6,6), pars.sigmaPh^2*...
+                    diag([deltaT^2/2, deltaT, deltaT^2/2, deltaT, deltaT^2/2, deltaT, deltaT^2/2, deltaT])];
+            case 17
+                Gamma   = [eye(q)*deltaT^2/2; eye(q)*deltaT; zeros(n-6,q)];
+                Q = Gamma*Q*Gamma' + [zeros(6,n); zeros(n-6,6), pars.sigmaPh^2*...
+                    diag([deltaT^2/2, deltaT, deltaT^2/2, deltaT, deltaT^2/2, deltaT, deltaT^2/2, deltaT, zeros(1,n-14)])];  
+            case 18
+                Gamma   = [eye(q)*deltaT^2/2; eye(q)*deltaT; zeros(n-6,q)];
+                Q = Gamma*Q*Gamma' + [zeros(6,n); zeros(n-6,6), pars.sigmaPh^2*...
+                    diag([deltaT^2/2, deltaT, deltaT^2/2, deltaT, deltaT^2/2, deltaT, zeros(1,n-12)])];  
+            case 20
+                Gamma   = [eye(q)*deltaT^2/2; eye(q)*deltaT; zeros(n-6,q)];
+                Q = Gamma*Q*Gamma' + [zeros(6,n); zeros(n-6,6), pars.sigmaPh^2*...
+                    diag([deltaT^2/2, deltaT, deltaT^2/2, deltaT, deltaT^2/2, deltaT, deltaT^2/2, deltaT, zeros(1,n-14)])];  
+        end
+
+%       Covariance matrix's time update 
+        P_bar   = Q;
+
+        for j = 1:2*n
+            P_bar   = P_bar + W0c(j)*((Xbar(:,j) - Xmean_bar) * (Xbar(:,j) - Xmean_bar)');
+        end
+        
+%       Sigma point redefinition
+        S_bar   = real(sqrtm(P_bar));
+        X0  = [(repmat(Xmean_bar,1,n)-gamma.*S_bar),...
+            (repmat(Xmean_bar,1,n)+gamma.*S_bar)];
+        
+        Y   = zeros(size(Y_obs.meas,1),2*n);
+        Y_feat = cell(2*n);
+
+        for j = 1:2*n
+%           G(j-th sigma point)
+            [Y_sigma, ~] = G(et, X0(:,j), Stat_ID_Range, Stat_ID_Rate,...
+                check_Lidar, Features_ID, pars, units, O, file_features);
+            Y(:,j)  = Y_sigma.meas;
+            Y_feat{j} = Y_sigma.cam;
+            
+            if ~isempty(Y_feat{j})
+                Features_ID = intersect(Features_ID, Y_feat{j}(3,:));
+            end
+
+        end
+
+        Y_sigma = [];
+
+        if ~isempty(Y_feat{1})
+            for j = 1:2*n
+                features = features_list(Y_feat{j}, Features_ID);
+                Y_sigma  = [Y_sigma, [Y(:,j); features]];
+            end
+        else
+            Y_sigma  = Y;
+        end
+
+%       Mean predicted measurement
+        [Y_mean,R]  = G(et, Xmean_bar, Stat_ID_Range, Stat_ID_Rate,...
+            check_Lidar, Features_ID, pars, units, O, file_features);
+        
+        features= features_list(Y_mean.cam, Features_ID);
+        Y_mean  = [Y_mean.meas; features];
+
+        features= features_list(Y_obs.cam, Features_ID);
+        Y_obs   = [Y_obs.meas; features];
+
+%       Innovation covariance and cross covariance
+
+        R       = [R; O(4,4)*ones(size(features,1),1)];
+        Py      = diag(R);
+        Pxy     = zeros(n,size(Y_obs,1));
+
+        for j = 1:2*n
+            Py  = Py + W0c(j)*(Y_sigma(:,j) - Y_mean)*(Y_sigma(:,j) - Y_mean)';
+            Pxy = Pxy + W0c(j)*(X0(:,j) - Xmean_bar)*(Y_sigma(:,j) - Y_mean)';
+        end
+        
+%       Kalman gain
+        K   = Pxy/Py;
+
+%       MEASUREMENT UPDATE
+        y      = (Y_obs - Y_mean);
+        Xstar  = Xmean_bar + K*y;
+        P      = (P_bar - K*Py*K');
+        
+%       Next iteration preparation
+        Xold   = Xmean_bar;
+        told   = Measures(idx).t;
+        Pold   = P;
+    
+
+%         err(IDX,i)    = (Y_obs - G(et, Xmean_bar, Stat_ID_Range, Stat_ID_Rate, check_Lidar, Features_ID, par,units)');
+%         prefit(IDX,i) = (Y_obs - G(et, Xmean_bar, Stat_ID_Range, Stat_ID_Rate, check_Lidar, Features_ID, par,units)');
+%         y_t(IDX,i)    = y;
+
+
+%       Storing the results
+        P_t(:,:,i)  = abs(real(P)).*units.CovDim;
+        Pbar_t(:,:,i)  = P_bar.*units.CovDim;
+        X_t(:,i)    = Xold.*units.Dim;
+        x_t(:,i)    = K*y.*units.Dim;
+        
+        
+    end
+    
+    fprintf('\nAnalysis complete!\n');
+
+
+
+%   Initial states' estimation, deviation and covariance matrix
+    Est.X       = Xold.*units.Dim;
+    Est.P       = P.*units.CovDim;
+    
+%   Residuals and fit-residuals at different observation times
+    Est.t       = tobs;
+    Est.err     = err;
+    Est.pre     = prefit;
+    Est.y_t     = y_t;
+    Est.X_t     = X_t;
+    Est.x_t     = x_t;
+    Est.P_t     = P_t;
+    Est.Pbar_t  = Pbar_t;
+    
+end
\ No newline at end of file
diff --git a/YObs.mat b/YObs.mat
new file mode 100644
index 0000000000000000000000000000000000000000..b26142e8117fa866eed8dc4cdec26702598bb5d7
GIT binary patch
literal 84280
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%0A3)*h(cH7VvBjEnhF^-T%r*`O33T&
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
Wtccq+_s8quKYckM(D<Wf+<yS}eH1bP

literal 0
HcmV?d00001

diff --git a/features_list.m b/features_list.m
new file mode 100644
index 0000000..58abdef
--- /dev/null
+++ b/features_list.m
@@ -0,0 +1,11 @@
+function features = features_list(Y_feat, Features_ID)
+
+    features = [];
+    for k=1:size(Features_ID,2)
+        common_feat = Y_feat(1:2, Y_feat(3,:)==Features_ID(k));
+        if ~isempty(common_feat)
+            features = [features; common_feat];
+        end
+    end
+
+end
\ No newline at end of file
diff --git a/visible_features.m b/visible_features.m
index 4c437f4..a63cd7e 100644
--- a/visible_features.m
+++ b/visible_features.m
@@ -13,7 +13,8 @@ function [Y_LOS, Y_pix] = visible_features(MMX, Phobos, Sun, Phi, file_features,
 % 
 % Output:
 % 
-% Y             Vector of features' pixel coordinates in the picture 
+% Y_LOS         Vector of features' Line Of Sight and features' ID
+% Y_pix         Vector of features' position in the Pic and features' ID
 %
 % Author: E.Ciccarelli
 %
@@ -34,7 +35,7 @@ function [Y_LOS, Y_pix] = visible_features(MMX, Phobos, Sun, Phi, file_features,
 
 %   Rotation from J200 to Phobos radial reference frame
 
-    i_feat       = Phobos(1:3)/norm(Phobos(1:3));
+    i_feat  = Phobos(1:3)/norm(Phobos(1:3));
     v       = Phobos(4:6)/norm(Phobos(4:6));
     k       = cross(i_feat, v)/norm(cross(i_feat, v));
     j       = cross(k, i_feat)/norm(cross(k, i_feat));
-- 
GitLab