Class RobustMixedPositionEstimator2D

java.lang.Object
com.irurueta.navigation.indoor.position.RobustPositionEstimator<com.irurueta.geometry.Point2D,Reading<? extends RadioSource>,RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D>>
com.irurueta.navigation.indoor.position.RobustMixedPositionEstimator<com.irurueta.geometry.Point2D>
com.irurueta.navigation.indoor.position.RobustMixedPositionEstimator2D
Direct Known Subclasses:
LMedSRobustMixedPositionEstimator2D, MSACRobustMixedPositionEstimator2D, PROMedSRobustMixedPositionEstimator2D, PROSACRobustMixedPositionEstimator2D, RANSACRobustMixedPositionEstimator2D

public abstract class RobustMixedPositionEstimator2D extends RobustMixedPositionEstimator<com.irurueta.geometry.Point2D>
Base class for robust 2D position estimators using located radio sources and their readings at unknown locations. These kind of estimators can be used to robustly determine the 2D position of a given device by getting readings at an unknown location of different radio sources whose locations are known. Implementations of this class should be able to detect and discard outliers in order to find the best solution.
  • Constructor Details

    • RobustMixedPositionEstimator2D

      protected RobustMixedPositionEstimator2D()
      Constructor.
    • RobustMixedPositionEstimator2D

      protected RobustMixedPositionEstimator2D(RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      listener - listener in charge of handling events.
  • Method Details

    • getMinRequiredSources

      public int getMinRequiredSources()
      Gets minimum required number of located radio sources to perform lateration.
      Specified by:
      getMinRequiredSources in class RobustPositionEstimator<com.irurueta.geometry.Point2D,Reading<? extends RadioSource>,RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D>>
      Returns:
      minimum required number of located radio sources to perform lateration.
    • create

      public static RobustMixedPositionEstimator2D create(com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      method - robust estimator method.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create()
      Creates a robust 2D position estimator.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint)
      Creates a robust 2D position estimator.
      Parameters:
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing ranging+RSSI readings at an unknown location for provided located radio sources.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided sources is null or the number of provided sources is less than the required minimum.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if provided fingerprint is null.
    • create

      public static RobustMixedPositionEstimator2D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource,? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener)
      Creates a robust 2D position estimator.
      Parameters:
      sourceQualityScores - quality scores corresponding to each provided located radio source. The larger the score value the better the quality of the radio source.
      fingerprintReadingQualityScores - quality scores corresponding to readings within provided fingerprint. The larger the score the better the quality of the reading.
      sources - located radio sources used for lateration.
      fingerprint - fingerprint containing readings at an unknown location for provided located radio sources.
      listener - listener in charge of handling events.
      Returns:
      a robust 2D position estimator.
      Throws:
      IllegalArgumentException - if either provided sources or fingerprint is null or the number of provided sources is less than the required minimum.
    • setPositionsDistancesDistanceStandardDeviationsAndQualityScores

      protected void setPositionsDistancesDistanceStandardDeviationsAndQualityScores(List<com.irurueta.geometry.Point2D> positions, List<Double> distances, List<Double> distanceStandardDeviations, List<Double> distanceQualityScores)
      Sets positions, distances and standard deviations of distances on internal lateration solver.
      Specified by:
      setPositionsDistancesDistanceStandardDeviationsAndQualityScores in class RobustPositionEstimator<com.irurueta.geometry.Point2D,Reading<? extends RadioSource>,RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D>>
      Parameters:
      positions - positions to be set.
      distances - distances to be set.
      distanceStandardDeviations - standard deviations of distances to be set.
      distanceQualityScores - distance quality scores or null if not required.