Class RobustRangingAndRssiPositionEstimator3D
java.lang.Object
com.irurueta.navigation.indoor.position.RobustPositionEstimator<com.irurueta.geometry.Point3D,RangingAndRssiReading<? extends RadioSource>,RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D>>
com.irurueta.navigation.indoor.position.RobustRangingAndRssiPositionEstimator<com.irurueta.geometry.Point3D>
com.irurueta.navigation.indoor.position.RobustRangingAndRssiPositionEstimator3D
- Direct Known Subclasses:
LMedSRobustRangingAndRssiPositionEstimator3D,MSACRobustRangingAndRssiPositionEstimator3D,PROMedSRobustRangingAndRssiPositionEstimator3D,PROSACRobustRangingAndRssiPositionEstimator3D,RANSACRobustRangingAndRssiPositionEstimator3D
public abstract class RobustRangingAndRssiPositionEstimator3D
extends RobustRangingAndRssiPositionEstimator<com.irurueta.geometry.Point3D>
Base class for robust ranging+RSSI 3D position estimators using located radio sources
and their ranging+RSSI readings at unknown locations.
These kind of estimators can be used to robustly determine the 3D position of a given
device by getting ranging+RSSI 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.protectedRobustRangingAndRssiPositionEstimator3D(RobustRangingAndRssiPositionEstimatorListener<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, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? 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, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RobustRangingAndRssiPositionEstimatorListener<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, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<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, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? 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(RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener, com.irurueta.numerical.robust.RobustEstimatorMethod method) Creates a robust 3D position estimator.create(RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? 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, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RobustRangingAndRssiPositionEstimatorListener<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, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Creates a robust 3D position estimator.create(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? extends RadioSource>> fingerprint, RobustRangingAndRssiPositionEstimatorListener<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, RangingAndRssiFingerprint<? extends RadioSource, ? extends RangingAndRssiReading<? 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
-
RobustRangingAndRssiPositionEstimator3D
protected RobustRangingAndRssiPositionEstimator3D()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,RangingAndRssiReading<? extends RadioSource>, RobustRangingAndRssiPositionEstimatorListener<com.irurueta.geometry.Point3D>> - Returns:
- minimum required number of located radio sources to perform lateration.
-
create
public static RobustRangingAndRssiPositionEstimator3D 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 RobustRangingAndRssiPositionEstimator3D 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 RobustRangingAndRssiPositionEstimator3D 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 RobustRangingAndRssiPositionEstimator3D 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 RobustRangingAndRssiPositionEstimator3D 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 RobustRangingAndRssiPositionEstimator3D 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 RobustRangingAndRssiPositionEstimator3D 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,RangingAndRssiReading<? extends RadioSource>, RobustRangingAndRssiPositionEstimatorListener<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.
-