Class RobustRangingPositionEstimator3D
java.lang.Object
com.irurueta.navigation.indoor.position.RobustPositionEstimator<com.irurueta.geometry.Point3D,RangingReading<? extends RadioSource>,RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D>>
com.irurueta.navigation.indoor.position.RobustRangingPositionEstimator<com.irurueta.geometry.Point3D>
com.irurueta.navigation.indoor.position.RobustRangingPositionEstimator3D
- Direct Known Subclasses:
LMedSRobustRangingPositionEstimator3D,MSACRobustRangingPositionEstimator3D,PROMedSRobustRangingPositionEstimator3D,PROSACRobustRangingPositionEstimator3D,RANSACRobustRangingPositionEstimator3D
public abstract class RobustRangingPositionEstimator3D
extends RobustRangingPositionEstimator<com.irurueta.geometry.Point3D>
Base class for robust ranging 3D position estimators using located radio sources and
their ranging readings at unknown locations.
These kind of estimators can be used to robustly determine the 3D position of a given
device by getting ranging 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.protectedRobustRangingPositionEstimator3D(RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncreate()Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingFingerprint<? extends RadioSource, ? extends RangingReading<? extends RadioSource>> fingerprint, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.intGets minimum required number of located radio sources to perform lateration.protected voidsetPositionsDistancesDistanceStandardDeviationsAndQualityScores(List<com.irurueta.geometry.Point3D> 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
-
RobustRangingPositionEstimator3D
protected RobustRangingPositionEstimator3D()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.Point3D,RangingReading<? extends RadioSource>, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D>> - Returns:
- minimum required number of located radio sources to perform lateration.
-
create
public static RobustRangingPositionEstimator3D create(com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.- Parameters:
method- robust estimator method.- Returns:
- a robust 3D position estimator.
-
create
public static RobustRangingPositionEstimator3D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.- Parameters:
sources- located radio sources used for lateration.method- robust estimator method.- Returns:
- a robust 3D position estimator.
- Throws:
IllegalArgumentException- if provided sources is null or the number of provided sources is less than the required minimum.
-
create
public static RobustRangingPositionEstimator3D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D 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 3D position estimator.
-
create
public static RobustRangingPositionEstimator3D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D 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 3D 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 3D position estimator.- Returns:
- a robust 3D position estimator.
-
create
public static RobustRangingPositionEstimator3D create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Creates a robust 3D position estimator.- Parameters:
sources- located radio sources used for lateration.- Returns:
- a robust 3D position estimator.
- Throws:
IllegalArgumentException- if provided sources is null or the number of provided sources is less than the required minimum.
-
create
public static RobustRangingPositionEstimator3D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores) Creates a robust 3D 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 3D position estimator.
-
create
public static RobustRangingPositionEstimator3D create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Creates a robust 3D 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 3D 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.Point3D> 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.Point3D,RangingReading<? extends RadioSource>, RobustRangingPositionEstimatorListener<com.irurueta.geometry.Point3D>> - 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.
-