Class NonLinearFingerprintPositionEstimator2D

java.lang.Object
com.irurueta.navigation.indoor.fingerprint.BaseFingerprintPositionEstimator<com.irurueta.geometry.Point2D,FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D>>
com.irurueta.navigation.indoor.fingerprint.FingerprintPositionEstimator<com.irurueta.geometry.Point2D>
com.irurueta.navigation.indoor.fingerprint.NonLinearFingerprintPositionEstimator<com.irurueta.geometry.Point2D>
com.irurueta.navigation.indoor.fingerprint.NonLinearFingerprintPositionEstimator2D
Direct Known Subclasses:
FirstOrderNonLinearFingerprintPositionEstimator2D, SecondOrderNonLinearFingerprintPositionEstimator2D, ThirdOrderNonLinearFingerprintPositionEstimator2D

public abstract class NonLinearFingerprintPositionEstimator2D extends NonLinearFingerprintPositionEstimator<com.irurueta.geometry.Point2D>
2D position estimator based on located fingerprints containing only RSSI readings and having as well prior knowledge of the location of radio sources associated to those readings. This is a base implementation for all implementations using different orders of Taylor approximation to estimate position.
  • Constructor Details

    • NonLinearFingerprintPositionEstimator2D

      protected NonLinearFingerprintPositionEstimator2D()
      Constructor.
    • NonLinearFingerprintPositionEstimator2D

      protected NonLinearFingerprintPositionEstimator2D(FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      listener - listener in charge of handling events.
    • NonLinearFingerprintPositionEstimator2D

      protected NonLinearFingerprintPositionEstimator2D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • NonLinearFingerprintPositionEstimator2D

      protected NonLinearFingerprintPositionEstimator2D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      listener - listener in charge of handling events.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • NonLinearFingerprintPositionEstimator2D

      protected NonLinearFingerprintPositionEstimator2D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.geometry.Point2D initialPosition)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      initialPosition - initial position to start the solving algorithm or null.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • NonLinearFingerprintPositionEstimator2D

      protected NonLinearFingerprintPositionEstimator2D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.geometry.Point2D initialPosition, FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      initialPosition - initial position to start the solving algorithm or null.
      listener - listener in charge of handling events.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
  • Method Details

    • getNumberOfDimensions

      public int getNumberOfDimensions()
      Gets number of dimensions of points.
      Specified by:
      getNumberOfDimensions in class BaseFingerprintPositionEstimator<com.irurueta.geometry.Point2D,FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D>>
      Returns:
      number of dimensions of points.
    • getEstimatedPosition

      public com.irurueta.geometry.Point2D getEstimatedPosition()
      Gets estimated position or null if not available yet.
      Specified by:
      getEstimatedPosition in class BaseFingerprintPositionEstimator<com.irurueta.geometry.Point2D,FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D>>
      Returns:
      estimated position or null.
    • create

      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      type - type to be used.
      Returns:
      a non-linear 2D position estimator.
    • create

      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      listener - listener in charge of handling events.
      type - a non-linear 2D position estimator.
      Returns:
      a non-linear 2D position estimator.
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, NonLinearFingerprintPositionEstimatorType type)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      type - a non-linear 2D position estimator.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, NonLinearFingerprintPositionEstimatorType type)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      listener - listener in charge of handling events.
      type - a non-linear 2D position estimator.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.geometry.Point2D initialPosition, NonLinearFingerprintPositionEstimatorType type)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      initialPosition - initial position to start the solving algorithm or null.
      type - a non-linear 2D position estimator.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.geometry.Point2D initialPosition, FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, NonLinearFingerprintPositionEstimatorType type)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      initialPosition - initial position to start the solving algorithm or null.
      listener - listener in charge of handling events.
      type - a non-linear 2D position estimator.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • create

      Creates an instance of a non-linear 2D position estimator using default type.
      Returns:
      a non-linear 2D position estimator.
    • create

      public static NonLinearFingerprintPositionEstimator2D create(FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates an instance of a non-linear 2D position estimator using default type.
      Parameters:
      listener - listener in charge of handling events.
      Returns:
      a non-linear 2D position estimator.
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      listener - listener in charge of handling events.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.geometry.Point2D initialPosition)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      initialPosition - initial position to start the solving algorithm or null.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).
    • create

      public static NonLinearFingerprintPositionEstimator2D create(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point2D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.geometry.Point2D initialPosition, FingerprintPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates an instance of a non-linear 2D position estimator using provided type.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      sources - located radio sources.
      initialPosition - initial position to start the solving algorithm or null.
      listener - listener in charge of handling events.
      Returns:
      a non-linear 2D position estimator.
      Throws:
      IllegalArgumentException - if provided non located fingerprint is null, located fingerprints value is null or there are not enough fingerprints or readings within provided fingerprints (for 2D position estimation at least 2 located total readings are required among all fingerprints, for example 2 readings are required in a single fingerprint, or at least 2 fingerprints at different locations containing a single reading are required).