Class NonLinearFingerprintPositionAndRadioSourceEstimator3D

java.lang.Object
com.irurueta.navigation.indoor.fingerprint.BaseFingerprintPositionAndRadioSourceEstimator<com.irurueta.geometry.Point3D,FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D>>
com.irurueta.navigation.indoor.fingerprint.FingerprintPositionAndRadioSourceEstimator<com.irurueta.geometry.Point3D>
com.irurueta.navigation.indoor.fingerprint.NonLinearFingerprintPositionAndRadioSourceEstimator<com.irurueta.geometry.Point3D>
com.irurueta.navigation.indoor.fingerprint.NonLinearFingerprintPositionAndRadioSourceEstimator3D

public class NonLinearFingerprintPositionAndRadioSourceEstimator3D extends NonLinearFingerprintPositionAndRadioSourceEstimator<com.irurueta.geometry.Point3D>
Position and radio source estimator in 3D based only on located fingerprints containing RSSI readings. This class estimates 3D position of a new fingerprint and the 3D position of all radio sources associated to fingerprints whose location is known.
  • Constructor Details

    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D()
      Constructor.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D> listener)
      Constructor.
      Parameters:
      listener - listener in charge of handling events.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D> listener)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      listener - listener in charge of handling events.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, com.irurueta.geometry.Point3D initialPosition)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      initialPosition - initial position to be assumed on non located fingerprint or null if unknown.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, com.irurueta.geometry.Point3D initialPosition, FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D> listener)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      initialPosition - initial position to be assumed on non located fingerprint or null if unknown.
      listener - listener in charge of handling events.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> initialLocatedSources)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      initialLocatedSources - sources containing initial location to be refined or null if unknown.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> initialLocatedSources, FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D> listener)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      initialLocatedSources - sources containing initial location to be refined or null if unknown.
      listener - listener in charge of handling events.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, com.irurueta.geometry.Point3D initialPosition, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> initialLocatedSources)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      initialPosition - initial position to be assumed on non located fingerprint or null if unknown.
      initialLocatedSources - sources containing initial location to be refined or null if unknown.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
    • NonLinearFingerprintPositionAndRadioSourceEstimator3D

      public NonLinearFingerprintPositionAndRadioSourceEstimator3D(List<? extends RssiFingerprintLocated<? extends RadioSource,? extends RssiReading<? extends RadioSource>,com.irurueta.geometry.Point3D>> locatedFingerprints, RssiFingerprint<? extends RadioSource,? extends RssiReading<? extends RadioSource>> fingerprint, com.irurueta.geometry.Point3D initialPosition, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> initialLocatedSources, FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D> listener)
      Constructor.
      Parameters:
      locatedFingerprints - located fingerprints containing RSSI readings.
      fingerprint - fingerprint containing readings at an unknown location for provided located fingerprints.
      initialPosition - initial position to be assumed on non located fingerprint or null if unknown.
      initialLocatedSources - sources containing initial location to be refined or null if unknown.
      listener - listener in charge of handling events.
      Throws:
      IllegalArgumentException - if either non located fingerprint or located fingerprints are null.
  • Method Details

    • propagateVariances

      protected Double propagateVariances(double pathlossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double pathlossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance)
      Propagates provided variances into RSSI differences.
      Specified by:
      propagateVariances in class NonLinearFingerprintPositionAndRadioSourceEstimator<com.irurueta.geometry.Point3D>
      Parameters:
      pathlossExponent - path-loss exponent.
      fingerprintPosition - position of closest located fingerprint.
      radioSourcePosition - radio source position associated to fingerprint reading.
      estimatedPosition - position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.
      pathlossExponentVariance - variance of path-loss exponent or null if unknown.
      fingerprintPositionCovariance - covariance of fingerprint position or null if unknown.
      radioSourcePositionCovariance - covariance of radio source position or null if unknown.
      Returns:
      variance of RSSI difference measured at non located fingerprint reading.
    • getNumberOfDimensions

      public int getNumberOfDimensions()
      Gets number of dimensions of points.
      Specified by:
      getNumberOfDimensions in class BaseFingerprintPositionAndRadioSourceEstimator<com.irurueta.geometry.Point3D,FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D>>
      Returns:
      number of dimensions of points.
    • createPoint

      protected com.irurueta.geometry.Point3D createPoint()
      Create a point.
      Specified by:
      createPoint in class BaseFingerprintPositionAndRadioSourceEstimator<com.irurueta.geometry.Point3D,FingerprintPositionAndRadioSourceEstimatorListener<com.irurueta.geometry.Point3D>>
      Returns:
      point to be created.