Class GNSSKalmanEpochEstimator

java.lang.Object
com.irurueta.navigation.gnss.GNSSKalmanEpochEstimator

public class GNSSKalmanEpochEstimator extends Object
Implements one cycle of the GNSS extended Kalman filter. This implementation is based on the equations defined in "Principles of GNSS, Inertial, and Multi-sensor Integrated Navigation Systems, Second Edition" and on the companion software available at: https://github.com/ymjdz/MATLAB-Codes/blob/master/GNSS_KF_Epoch.m
  • Field Details

    • SPEED_OF_LIGHT

      public static final double SPEED_OF_LIGHT
      Speed of light in the vacuum expressed in meters per second (m/s).
      See Also:
    • EARTH_ROTATION_RATE

      public static final double EARTH_ROTATION_RATE
      Earth rotation rate expressed in radians per second (rad/s).
      See Also:
    • MATRIX_SIZE

      private static final int MATRIX_SIZE
      Number of rows and columns of transition and system noise covariance matrices.
      See Also:
  • Constructor Details

    • GNSSKalmanEpochEstimator

      private GNSSKalmanEpochEstimator()
      Constructor. Prevents instantiation of utility class.
  • Method Details

    • estimate

      public static GNSSKalmanState estimate(Collection<GNSSMeasurement> measurements, com.irurueta.units.Time propagationInterval, GNSSKalmanState previousState, GNSSKalmanConfig config) throws com.irurueta.algebra.AlgebraException
      Estimates the update of Kalman filter state and covariance matrix for a single epoch.
      Parameters:
      measurements - satellite measurements data.
      propagationInterval - propagation interval.
      previousState - previous GNSS estimates and Kalman filter error covariance matrix.
      config - system configuration (usually obtained through calibration).
      Returns:
      new Kalman filter state.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • estimate

      public static void estimate(Collection<GNSSMeasurement> measurements, com.irurueta.units.Time propagationInterval, GNSSKalmanState previousState, GNSSKalmanConfig config, GNSSKalmanState result) throws com.irurueta.algebra.AlgebraException
      Estimates the update of Kalman filter state and covariance matrix fo a single epoch.
      Parameters:
      measurements - satellite measurements data.
      propagationInterval - propagation interval.
      previousState - previousGNSS estimates and Kalman filter error covariance matrix.
      config - system configuration (usually obtained through calibration).
      result - instance where updated Kalman filter state will be stored.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • estimate

      public static void estimate(Collection<GNSSMeasurement> measurements, com.irurueta.units.Time propagationInterval, GNSSEstimation previousEstimation, com.irurueta.algebra.Matrix previousCovariance, GNSSKalmanConfig config, GNSSEstimation updatedEstimation, com.irurueta.algebra.Matrix updatedCovariance) throws com.irurueta.algebra.AlgebraException
      Estimates the update of Kalman filter state and covariance matrix for a single epoch.
      Parameters:
      measurements - satellite measurements data.
      propagationInterval - propagation interval.
      previousEstimation - previousGNSS estimates.
      previousCovariance - previousKalman filter error covariance matrix.
      config - system configuration (usually obtained through calibration).
      updatedEstimation - instance where updated GNSS estimate will be stored after executing this method.
      updatedCovariance - instance where updated Kalman filter error covariance matrix will be stored.
      Throws:
      IllegalArgumentException - if provided previous covariance matrix is not 8x8.
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • estimate

      public static GNSSKalmanState estimate(Collection<GNSSMeasurement> measurements, double propagationInterval, GNSSKalmanState previousState, GNSSKalmanConfig config) throws com.irurueta.algebra.AlgebraException
      Estimates the update of Kalman filter state and covariance matrix for a single epoch.
      Parameters:
      measurements - satellite measurements data.
      propagationInterval - propagation interval expressed in seconds (s).
      previousState - previous GNSS estimates and Kalman filter error covariance matrix.
      config - system configuration (usually obtained through calibration).
      Returns:
      new Kalman filter state.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • estimate

      public static void estimate(Collection<GNSSMeasurement> measurements, double propagationInterval, GNSSKalmanState previousState, GNSSKalmanConfig config, GNSSKalmanState result) throws com.irurueta.algebra.AlgebraException
      Estimates the update of Kalman filter state and covariance matrix for a single epoch.
      Parameters:
      measurements - satellite measurements data.
      propagationInterval - propagation interval expressed in seconds (s).
      previousState - previous GNSS estimates and Kalman filter error covariance matrix.
      config - system configuration (usually obtained through calibration).
      result - instance where updated Kalman filter state will be stored.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • estimate

      public static void estimate(Collection<GNSSMeasurement> measurements, double propagationInterval, GNSSEstimation previousEstimation, com.irurueta.algebra.Matrix previousCovariance, GNSSKalmanConfig config, GNSSEstimation updatedEstimation, com.irurueta.algebra.Matrix updatedCovariance) throws com.irurueta.algebra.AlgebraException
      Estimates the update of Kalman filter state and covariance matrix for a single epoch.
      Parameters:
      measurements - satellite measurements data.
      propagationInterval - propagation interval expressed in seconds (s).
      previousEstimation - previous GNSS estimates.
      previousCovariance - previous Kalman filter error covariance matrix.
      config - system configuration (usually obtained through calibration).
      updatedEstimation - instance where updated GNSS estimate will be stored after executing this method.
      updatedCovariance - instance where updated Kalman filter error covariance matrix will be stored.
      Throws:
      IllegalArgumentException - if provided previous covariance matrix is not 8x8.
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • convertTime

      private static double convertTime(com.irurueta.units.Time time)
      Converts time instance into a value expressed in seconds.
      Parameters:
      time - time instance to be converted.
      Returns:
      time value expressed in seconds.