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.
-
Field Summary
Fields inherited from class com.irurueta.navigation.indoor.position.RobustPositionEstimator
DEFAULT_EVENLY_DISTRIBUTE_READINGS, DEFAULT_ROBUST_METHOD, DEFAULT_USE_RADIO_SOURCE_POSITION_COVARIANCE, FALLBACK_DISTANCE_STANDARD_DEVIATION, fingerprint, laterationSolver, listener, preliminarySubsetSize, sources, trilaterationSolverListener -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstructor.protectedRobustMixedPositionEstimator2D(RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncreate()Creates a robust 2D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores) Creates a robust 2D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint) Creates a robust 2D position estimator.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.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.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.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener) Creates a robust 2D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 2D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 2D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources) Creates a robust 2D position estimator.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.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.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.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.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.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.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.create(Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint) Creates a robust 2D position estimator.create(Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener) Creates a robust 2D position estimator.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.create(Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 2D position estimator.create(RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener) Creates a robust 2D position estimator.create(RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 2D position estimator.create(com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 2D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources) Creates a robust 2D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint) Creates a robust 2D position estimator.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.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.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.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, RobustMixedPositionEstimatorListener<com.irurueta.geometry.Point2D> listener) Creates a robust 2D position estimator.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.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point2D>> sources, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 2D position estimator.intGets minimum required number of located radio sources to perform lateration.protected voidsetPositionsDistancesDistanceStandardDeviationsAndQualityScores(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.Methods inherited from class com.irurueta.navigation.indoor.position.RobustPositionEstimator
buildPositionsDistancesDistanceStandardDeviationsAndQualityScores, estimate, getConfidence, getCovariance, getDistances, getDistanceStandardDeviations, getEstimatedPosition, getEvenlyDistributeReadings, getFallbackDistanceStandardDeviation, getFingerprint, getFingerprintReadingsQualityScores, getInitialPosition, getInliersData, getListener, getMaxIterations, getMethod, getNumberOfDimensions, getPositions, getPreliminarySubsetSize, getProgressDelta, getSourceQualityScores, getSources, internalSetFingerprint, internalSetSources, isCovarianceKept, isHomogeneousLinearSolverUsed, isLinearSolverUsed, isLocked, isPreliminarySolutionRefined, isRadioSourcePositionCovarianceUsed, isReady, isResultRefined, setConfidence, setCovarianceKept, setEvenlyDistributeReadings, setFallbackDistanceStandardDeviation, setFingerprint, setFingerprintReadingsQualityScores, setHomogeneousLinearSolverUsed, setInitialPosition, setLinearSolverUsed, setListener, setMaxIterations, setPreliminarySolutionRefined, setPreliminarySubsetSize, setProgressDelta, setRadioSourcePositionCovarianceUsed, setResultRefined, setSourceQualityScores, setSources
-
Constructor Details
-
RobustMixedPositionEstimator2D
protected RobustMixedPositionEstimator2D()Constructor.
-
-
Method Details
-
getMinRequiredSources
public int getMinRequiredSources()Gets minimum required number of located radio sources to perform lateration.- Specified by:
getMinRequiredSourcesin classRobustPositionEstimator<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(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
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(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.
-
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:
setPositionsDistancesDistanceStandardDeviationsAndQualityScoresin classRobustPositionEstimator<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.
-