Class SequentialRobustMixedPositionEstimator3D
java.lang.Object
com.irurueta.navigation.indoor.position.SequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>
com.irurueta.navigation.indoor.position.SequentialRobustMixedPositionEstimator3D
public class SequentialRobustMixedPositionEstimator3D
extends SequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>
Robustly estimates 3D position, using RSSI readings first to obtain an initial coarse
position estimation, and then ranging readings to refine such estimation.
This implementation is like SequentialRobustRangingAndRssiPositionEstimator but allows mixing different kinds of readings (ranging, RSSI or ranging+RSSI).
-
Field Summary
Fields inherited from class com.irurueta.navigation.indoor.position.SequentialRobustMixedPositionEstimator
DEFAULT_CONFIDENCE, DEFAULT_EVENLY_DISTRIBUTE_RANGING_READINGS, DEFAULT_EVENLY_DISTRIBUTE_RSSI_READINGS, DEFAULT_KEEP_COVARIANCE, DEFAULT_MAX_ITERATIONS, DEFAULT_PROGRESS_DELTA, DEFAULT_RANGING_ROBUST_METHOD, DEFAULT_REFINE_RANGING_PRELIMINARY_SOLUTIONS, DEFAULT_REFINE_RESULT, DEFAULT_REFINE_RSSI_PRELIMINARY_SOLUTIONS, DEFAULT_RSSI_ROBUST_METHOD, DEFAULT_USE_RANGING_HOMOGENEOUS_LINEAR_SOLVER, DEFAULT_USE_RANGING_LINEAR_SOLVER, DEFAULT_USE_RANGING_RADIO_SOURCE_POSITION_COVARIANCE, DEFAULT_USE_RSSI_HOMOGENEOUS_LINEAR_SOLVER, DEFAULT_USE_RSSI_LINEAR_SOLVER, DEFAULT_USE_RSSI_RADIO_SOURCE_POSITION_COVARIANCE, FALLBACK_DISTANCE_STANDARD_DEVIATION, MAX_CONFIDENCE, MAX_PROGRESS_DELTA, MIN_CONFIDENCE, MIN_ITERATIONS, MIN_PROGRESS_DELTA, rangingEstimator, rangingPreliminarySubsetSize, rangingRobustMethod, rangingThreshold, rssiEstimator, rssiPreliminarySubsetSize, rssiRobustMethod, rssiThreshold -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores) Constructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint) Constructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint, SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Constructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint) Constructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint, SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor.SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor.SequentialRobustMixedPositionEstimator3D(Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint) Constructor.SequentialRobustMixedPositionEstimator3D(Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint, SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor.SequentialRobustMixedPositionEstimator3D(SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor.SequentialRobustMixedPositionEstimator3D(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Constructor.SequentialRobustMixedPositionEstimator3D(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint) Constructor.SequentialRobustMixedPositionEstimator3D(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, Fingerprint<? extends RadioSource, ? extends Reading<? extends RadioSource>> fingerprint, SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor.SequentialRobustMixedPositionEstimator3D(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources, SequentialRobustMixedPositionEstimatorListener<com.irurueta.geometry.Point3D> listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidBuilds ranging internal estimator.protected voidBuilds RSSI internal estimator.intGets minimum required number of located radio sources to perform lateration.intGets number of dimensions of provided and estimated points.protected voidSetup ranging internal estimator.protected voidSetup RSSI internal estimator.Methods inherited from class com.irurueta.navigation.indoor.position.SequentialRobustMixedPositionEstimator
estimate, getCovariance, getDistances, getDistanceStandardDeviations, getEstimatedPosition, getFingerprint, getFingerprintReadingsQualityScores, getInitialPosition, getInliersData, getListener, getPositions, getProgressDelta, getRangingConfidence, getRangingFallbackDistanceStandardDeviation, getRangingMaxIterations, getRangingPreliminarySubsetSize, getRangingRobustMethod, getRangingThreshold, getRssiConfidence, getRssiFallbackDistanceStandardDeviation, getRssiMaxIterations, getRssiPreliminarySubsetSize, getRssiRobustMethod, getRssiThreshold, getSourceQualityScores, getSources, isCovarianceKept, isLocked, isRangingHomogeneousLinearSolverUsed, isRangingLinearSolverUsed, isRangingPreliminarySolutionRefined, isRangingRadioSourcePositionCovarianceUsed, isRangingReadingsEvenlyDistributed, isReady, isResultRefined, isRssiHomogeneousLinearSolverUsed, isRssiLinearSolverUsed, isRssiPreliminarySolutionRefined, isRssiRadioSourcePositionCovarianceUsed, isRssiReadingsEvenlyDistributed, setCovarianceKept, setFingerprint, setFingerprintReadingsQualityScores, setInitialPosition, setListener, setProgressDelta, setRangingConfidence, setRangingFallbackDistanceStandardDeviation, setRangingHomogeneousLinearSolverUsed, setRangingLinearSolverUsed, setRangingMaxIterations, setRangingPreliminarySolutionRefined, setRangingPreliminarySubsetSize, setRangingRadioSourcePositionCovarianceUsed, setRangingReadingsEvenlyDistributed, setRangingRobustMethod, setRangingThreshold, setResultRefined, setRssiConfidence, setRssiFallbackDistanceStandardDeviation, setRssiHomogeneousLinearSolverUsed, setRssiLinearSolverUsed, setRssiMaxIterations, setRssiPreliminarySolutionRefined, setRssiPreliminarySubsetSize, setRssiRadioSourcePositionCovarianceUsed, setRssiReadingsEvenlyDistributed, setRssiRobustMethod, setRssiThreshold, setSourceQualityScores, setSources
-
Constructor Details
-
SequentialRobustMixedPositionEstimator3D
public SequentialRobustMixedPositionEstimator3D()Constructor. -
SequentialRobustMixedPositionEstimator3D
public SequentialRobustMixedPositionEstimator3D(List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Constructor.- Parameters:
sources- located radio sources used for lateration.- Throws:
IllegalArgumentException- if provided sources is null or the number of provided sources is less than the required minimum.
-
SequentialRobustMixedPositionEstimator3D
public SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores) Constructor.- 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.
-
SequentialRobustMixedPositionEstimator3D
public SequentialRobustMixedPositionEstimator3D(double[] sourceQualityScores, double[] fingerprintReadingQualityScores, List<? extends RadioSourceLocated<com.irurueta.geometry.Point3D>> sources) Constructor.- 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.- Throws:
IllegalArgumentException- if provided sources is null or the number of provided sources is less than the required minimum.
-
-
Method Details
-
getNumberOfDimensions
public int getNumberOfDimensions()Gets number of dimensions of provided and estimated points.- Specified by:
getNumberOfDimensionsin classSequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>- Returns:
- number of dimensions of provided and estimated points.
-
getMinRequiredSources
public int getMinRequiredSources()Gets minimum required number of located radio sources to perform lateration.- Specified by:
getMinRequiredSourcesin classSequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>- Returns:
- minimum required number of located radio sources to perform lateration.
-
buildRangingEstimator
protected void buildRangingEstimator()Builds ranging internal estimator.- Specified by:
buildRangingEstimatorin classSequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>
-
buildRssiEstimator
protected void buildRssiEstimator()Builds RSSI internal estimator.- Specified by:
buildRssiEstimatorin classSequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>
-
setupRangingEstimator
protected void setupRangingEstimator() throws com.irurueta.navigation.LockedExceptionSetup ranging internal estimator.- Overrides:
setupRangingEstimatorin classSequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
setupRssiEstimator
protected void setupRssiEstimator() throws com.irurueta.navigation.LockedExceptionSetup RSSI internal estimator.- Overrides:
setupRssiEstimatorin classSequentialRobustMixedPositionEstimator<com.irurueta.geometry.Point3D>- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-