Class MSACRobustRangingRadioSourceEstimator2D<S extends RadioSource>

java.lang.Object
com.irurueta.navigation.indoor.radiosource.RobustRadioSourceEstimator<com.irurueta.geometry.Point2D,RangingReadingLocated<S,com.irurueta.geometry.Point2D>,RobustRangingRadioSourceEstimatorListener<S,com.irurueta.geometry.Point2D>>
com.irurueta.navigation.indoor.radiosource.RobustRangingRadioSourceEstimator<S,com.irurueta.geometry.Point2D>
com.irurueta.navigation.indoor.radiosource.RobustRangingRadioSourceEstimator2D<S>
com.irurueta.navigation.indoor.radiosource.MSACRobustRangingRadioSourceEstimator2D<S>
Type Parameters:
S - a RadioSource type.

public class MSACRobustRangingRadioSourceEstimator2D<S extends RadioSource> extends RobustRangingRadioSourceEstimator2D<S>
Robustly estimated 2D position of a radio source (e.g. Wi-Fi access point or bluetooth beacon), by discarding outliers using MSAC algorithm.
  • Field Details

    • DEFAULT_THRESHOLD

      public static final double DEFAULT_THRESHOLD
      Constant defining default threshold to determine whether samples are inliers or not.
      See Also:
    • MIN_THRESHOLD

      public static final double MIN_THRESHOLD
      Minimum value that can be set as threshold. Threshold must be strictly greater than 0.0.
      See Also:
    • threshold

      private double threshold
      Threshold to determine whether samples are inliers or not when testing possible estimation solutions.
  • Constructor Details

    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D()
      Constructor.
    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D(List<? extends RangingReadingLocated<S,com.irurueta.geometry.Point2D>> readings)
      Constructor.

      Sets radio signal ranging readings belonging to the same radio source.

      Parameters:
      readings - radio signal ranging readings belonging to the same radio source.
      Throws:
      IllegalArgumentException - if readings are not valid.
    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D(RobustRangingRadioSourceEstimatorListener<S,com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      listener - listener in charge of attending events raised by this instance.
    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D(List<? extends RangingReadingLocated<S,com.irurueta.geometry.Point2D>> readings, RobustRangingRadioSourceEstimatorListener<S,com.irurueta.geometry.Point2D> listener)
      Constructor. Sets radio signal readings belonging to the same radio source.
      Parameters:
      readings - radio signal readings belonging to the same radio source.
      listener - listener in charge of attending events raised by this instance.
      Throws:
      IllegalArgumentException - if readings are not valid.
    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition)
      Constructor.
      Parameters:
      initialPosition - initial position to start the estimation or radio source position.
    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D(List<? extends RangingReadingLocated<S,com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition)
      Constructor. Sets radio signal readings belonging to the same radio source.
      Parameters:
      readings - radio signal readings belonging to the same radio source.
      initialPosition - initial position to start the estimation of radio source position.
      Throws:
      IllegalArgumentException - if readings are not valid.
    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition, RobustRangingRadioSourceEstimatorListener<S,com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      initialPosition - initial position to start the estimation of radio source position.
      listener - listener in charge of attending events raised by this instance.
    • MSACRobustRangingRadioSourceEstimator2D

      public MSACRobustRangingRadioSourceEstimator2D(List<? extends RangingReadingLocated<S,com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, RobustRangingRadioSourceEstimatorListener<S,com.irurueta.geometry.Point2D> listener)
      Constructor. Sets radio signal ranging readings belonging to the same radio source.
      Parameters:
      readings - radio signal ranging readings belonging to the same radio source.
      initialPosition - initial position to start the estimation of radio source position.
      listener - listener in charge of attending events raised by this instance.
      Throws:
      IllegalArgumentException - if readings are not valid.
  • Method Details

    • getThreshold

      public double getThreshold()
      Returns threshold to determine whether samples are inliers or not.
      Returns:
      threshold to determine whether samples are inliers or not.
    • setThreshold

      public void setThreshold(double threshold) throws com.irurueta.navigation.LockedException
      Sets threshold to determine whether samples are inliers or not.
      Parameters:
      threshold - threshold to be set.
      Throws:
      IllegalArgumentException - if provided value is equal or less than zero.
      com.irurueta.navigation.LockedException - if robust estimator is locked because an estimation is already in progress.
    • estimate

      public void estimate() throws com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, com.irurueta.numerical.robust.RobustEstimatorException
      Robustly estimates position for a radio source.
      Specified by:
      estimate in class RobustRadioSourceEstimator<com.irurueta.geometry.Point2D,RangingReadingLocated<S extends RadioSource,com.irurueta.geometry.Point2D>,RobustRangingRadioSourceEstimatorListener<S extends RadioSource,com.irurueta.geometry.Point2D>>
      Throws:
      com.irurueta.navigation.LockedException - if instance is busy during estimation.
      com.irurueta.navigation.NotReadyException - if estimator is not ready.
      com.irurueta.numerical.robust.RobustEstimatorException - if estimation fails for any reason (i.e. numerical instability, no solution available, etc).
    • getMethod

      public com.irurueta.numerical.robust.RobustEstimatorMethod getMethod()
      Returns method being used for robust estimation.
      Specified by:
      getMethod in class RobustRangingRadioSourceEstimator<S extends RadioSource,com.irurueta.geometry.Point2D>
      Returns:
      method being used for robust estimation.