Class RobustRangingAndRssiRadioSourceEstimator<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>
- Type Parameters:
S- aRadioSourcetype.P- aPointtype.
- Direct Known Subclasses:
RobustRangingAndRssiRadioSourceEstimator2D,RobustRangingAndRssiRadioSourceEstimator3D
Although RobustRssiRadioSourceEstimator can estimate the same parameters of a radio source, when ranging measures are available along with RSSI measurements, implementations of this class should be preferred instead as they can provide greater accuracy.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classRobustRangingAndRssiRadioSourceEstimator.Solution<P extends com.irurueta.geometry.Point<?>>Contains a solution obtained during robust estimation for a subset of samples. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final booleanIndicates that by default position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.protected doubleEstimated exponent typically used on free space for path loss propagation in terms of distance.protected DoubleVariance of estimated path loss exponent.protected doubleEstimated transmitted power expressed in dBm's.protected DoubleVariance of estimated transmitted power.protected doubleInitial exponent typically used on free space for path loss propagation in terms of distance.protected PInitial position to start the estimation of radio source position.protected DoubleInitially transmitted power to start the estimation of radio source transmitted power.protected booleanIndicates whether path loss estimation is enabled or not.protected booleanIndicates whether transmitted power estimation is enabled or not.protected booleanIndicates whether position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.Fields inherited from class com.irurueta.navigation.indoor.radiosource.RobustRadioSourceEstimator
confidence, covariance, DEFAULT_CONFIDENCE, DEFAULT_KEEP_COVARIANCE, DEFAULT_MAX_ITERATIONS, DEFAULT_PROGRESS_DELTA, DEFAULT_REFINE_RESULT, DEFAULT_ROBUST_METHOD, estimatedPosition, estimatedPositionCovariance, inliersData, keepCovariance, listener, locked, MAX_CONFIDENCE, MAX_PROGRESS_DELTA, maxIterations, MIN_CONFIDENCE, MIN_ITERATIONS, MIN_PROGRESS_DELTA, preliminarySubsetSize, progressDelta, readings, refineResult -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstructor.protectedRobustRangingAndRssiRadioSourceEstimator(RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(Double initialTransmittedPowerdBm) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(Double initialTransmittedPowerdBm, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, Double initialTransmittedPowerdBm) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, Double initialTransmittedPowerdBm, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition, Double initialTransmittedPowerdBm) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition, Double initialTransmittedPowerdBm, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(P initialPosition) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(P initialPosition, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor.protectedRobustRangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm, RobustRangingAndRssiRadioSourceEstimatorListener<S, P> listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiondoubleGets estimated exponent typically used on free space for path loss propagation in terms of distance.Gets estimated path loss exponent variance.doubleGets estimated transmitted power expressed in milli watts (mW).doubleGets estimated transmitted power expressed in dBm's.Gets estimated transmitted power variance.doubleGets initial exponent typically used on free space for path loss propagation in terms of distance.Gets initial position to start the estimation of radio source position.Gets initial transmitted power to start the estimation of radio source transmitted power (expressed in mW).Gets initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).abstract com.irurueta.numerical.robust.RobustEstimatorMethodReturns method being used for robust estimation.booleanIndicates whether position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.abstract booleanIndicates whether an homogeneous linear solver is used to estimate an initial position for the internal ranging radio source estimator.booleanIndicates whether path loss estimation is enabled or not.booleanisReady()Indicates whether this instance is ready to start the estimation.booleanIndicates whether transmitted power estimation is enabled or not.protected doubleresidual(RobustRangingAndRssiRadioSourceEstimator.Solution<P> currentEstimation, int i) Estimates residual for a solution obtained for a subset of samples.abstract voidsetHomogeneousRangingLinearSolverUsed(boolean useHomogeneousLinearSolver) Specifies whether an homogeneous linear solver is used to estimate an initial position for the internal ranging radio source estimator.voidsetInitialPathLossExponent(double initialPathLossExponent) Sets initial exponent typically used on free space for path loss propagation in terms of distance.voidsetInitialPosition(P initialPosition) Sets initial position to start the estimation of radio source position.voidsetInitialTransmittedPower(Double initialTransmittedPower) Sets initial transmitted power to start the estimation of radio source transmitted power (expressed in mW).voidsetInitialTransmittedPowerdBm(Double initialTransmittedPowerdBm) Sets initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).voidsetPathLossEstimationEnabled(boolean pathLossEstimationEnabled) Specifies whether path loss estimation is enabled or not.voidsetTransmittedPowerEstimationEnabled(boolean transmittedPowerEstimationEnabled) Specifies whether transmitted power estimation is enabled or not.voidsetUseReadingPositionCovariances(boolean useReadingPositionCovariances) Specifies whether position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.protected abstract voidsolvePreliminarySolutions(int[] samplesIndices, List<RobustRangingAndRssiRadioSourceEstimator.Solution<P>> solutions) Solves preliminary solution for a subset of samples.Methods inherited from class com.irurueta.navigation.indoor.radiosource.RobustRadioSourceEstimator
areValidReadings, estimate, getConfidence, getCovariance, getEstimatedPosition, getEstimatedPositionCovariance, getEstimatedRadioSource, getInliersData, getListener, getMaxIterations, getMinReadings, getNumberOfDimensions, getPreliminarySubsetSize, getProgressDelta, getQualityScores, getReadings, internalSetReadings, isCovarianceKept, isLocked, isResultRefined, setConfidence, setCovarianceKept, setListener, setMaxIterations, setPreliminarySubsetSize, setProgressDelta, setQualityScores, setReadings, setResultRefined
-
Field Details
-
DEFAULT_USE_READING_POSITION_COVARIANCES
public static final boolean DEFAULT_USE_READING_POSITION_COVARIANCESIndicates that by default position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.- See Also:
-
initialTransmittedPowerdBm
Initially transmitted power to start the estimation of radio source transmitted power. If not defined, average value of received power readings will be used. -
initialPosition
Initial position to start the estimation of radio source position. If not defined, centroid of provided located readings will be used. -
initialPathLossExponent
protected double initialPathLossExponentInitial exponent typically used on free space for path loss propagation in terms of distance. On different environments path loss exponent might have different values: - Free space: 2.0 - Urban Area: 2.7 to 3.5 - Suburban Area: 3 to 5 - Indoor (line-of-sight): 1.6 to 1.8If path loss exponent estimation is enabled, estimation will start at this value and will converge to the most appropriate value. If path loss exponent estimation is disabled, this value will be assumed to be exact and the estimated path loss exponent will be equal to this value.
-
transmittedPowerEstimationEnabled
protected boolean transmittedPowerEstimationEnabledIndicates whether transmitted power estimation is enabled or not. -
pathLossEstimationEnabled
protected boolean pathLossEstimationEnabledIndicates whether path loss estimation is enabled or not. -
estimatedTransmittedPowerdBm
protected double estimatedTransmittedPowerdBmEstimated transmitted power expressed in dBm's. -
estimatedPathLossExponent
protected double estimatedPathLossExponentEstimated exponent typically used on free space for path loss propagation in terms of distance. On different environments path loss exponent might have different values: - Free space: 2.0 - Urban Area: 2.7 to 3.5 - Suburban Area: 3 to 5 - Indoor (line-of-sight): 1.6 to 1.8 If path loss exponent estimation is not enabled, this value will always be equal toRssiRadioSourceEstimator.DEFAULT_PATH_LOSS_EXPONENT -
estimatedTransmittedPowerVariance
Variance of estimated transmitted power. This value will only be available when transmitted power estimation is enabled. -
estimatedPathLossExponentVariance
Variance of estimated path loss exponent. This value will only be available when path-loss exponent estimation is enabled. -
useReadingPositionCovariances
protected boolean useReadingPositionCovariancesIndicates whether position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.
-
-
Constructor Details
-
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator()Constructor. -
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings) Constructor. Sets signal readings belonging to the same radio source.- Parameters:
readings- signal readings belonging to the same radio source.- Throws:
IllegalArgumentException- if readings are not valid.
-
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition) Constructor. Sets signal readings belonging to the same radio source.- Parameters:
readings- 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.
-
RobustRangingAndRssiRadioSourceEstimator
Constructor.- Parameters:
initialPosition- initial position to start the estimation of radio source position.
-
RobustRangingAndRssiRadioSourceEstimator
Constructor.- Parameters:
initialTransmittedPowerdBm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's)
-
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, Double initialTransmittedPowerdBm) Constructor. Sets signal readings belonging to the same radio source.- Parameters:
readings- signal readings belonging to the same radio source.initialTransmittedPowerdBm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's)- Throws:
IllegalArgumentException- if readings are not valid.
-
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition, Double initialTransmittedPowerdBm) Constructor. Sets signal readings belonging to the same radio source.- Parameters:
readings- signal readings belonging to the same radio source.initialPosition- initial position to start the estimation of radio source position.initialTransmittedPowerdBm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).- Throws:
IllegalArgumentException- if readings are not valid.
-
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm) Constructor.- Parameters:
initialPosition- initial position to start the estimation of radio source position.initialTransmittedPowerdBm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).
-
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S, P>> readings, P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor. Sets signal readings belonging to the same radio source.- Parameters:
readings- signal readings belonging to the same radio source.initialPosition- initial position to start the estimation of radio source position.initialTransmittedPowerdBm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).initialPathLossExponent- initial path loss exponent. A typical value is 2.0.- Throws:
IllegalArgumentException- if readings are not valid.
-
RobustRangingAndRssiRadioSourceEstimator
protected RobustRangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor.- Parameters:
initialPosition- initial position to start the estimation of radio source position.initialTransmittedPowerdBm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).initialPathLossExponent- initial path loss exponent. A typical value is 2.0.
-
-
Method Details
-
getInitialTransmittedPowerdBm
Gets initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's). If not defined, average value of received power readings will be used.- Returns:
- initial transmitted power to start the estimation of radio source transmitted power.
-
setInitialTransmittedPowerdBm
public void setInitialTransmittedPowerdBm(Double initialTransmittedPowerdBm) throws com.irurueta.navigation.LockedException Sets initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's). If not defined, average value of received power readings will be used.- Parameters:
initialTransmittedPowerdBm- initial transmitted power to start the estimation of radio source transmitted power.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
getInitialTransmittedPower
Gets initial transmitted power to start the estimation of radio source transmitted power (expressed in mW). If not defined, average value of received power readings will be used.- Returns:
- initial transmitted power to start the estimation of radio source transmitted power.
-
setInitialTransmittedPower
public void setInitialTransmittedPower(Double initialTransmittedPower) throws com.irurueta.navigation.LockedException Sets initial transmitted power to start the estimation of radio source transmitted power (expressed in mW). If not defined, average value of received power readings will be used.- Parameters:
initialTransmittedPower- initial transmitted power to start the estimation of radio source transmitted power.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.IllegalArgumentException- if provided value is negative.
-
getInitialPosition
Gets initial position to start the estimation of radio source position. If not defined, centroid of provided fingerprints will be used.- Returns:
- initial position to start the estimation of radio source position.
-
setInitialPosition
Sets initial position to start the estimation of radio source position. If not defined, centroid of provided fingerprints will be used.- Parameters:
initialPosition- initial position to start the estimation of radio source position.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
getInitialPathLossExponent
public double getInitialPathLossExponent()Gets initial exponent typically used on free space for path loss propagation in terms of distance. On different environments path loss exponent might have different value: - Free space: 2.0 - Urban Area: 2.7 to 3.5 - Suburban Area: 3 to 5 - Indoor (line-of-sight): 1.6 to 1.8If path loss exponent estimation is enabled, estimation will start at this value and will converge to the most appropriate value. If path loss exponent estimation is disabled, this value will be assumed to be exact and the estimated path loss exponent will be equal to this value.
- Returns:
- initial path loss exponent.
-
setInitialPathLossExponent
public void setInitialPathLossExponent(double initialPathLossExponent) throws com.irurueta.navigation.LockedException Sets initial exponent typically used on free space for path loss propagation in terms of distance. On different environments path loss exponent might have different value: - Free space: 2.0 - Urban Area: 2.7 to 3.5 - Suburban Area: 3 to 5 - Indoor (line-of-sight): 1.6 to 1.8If path loss exponent estimation is enabled, estimation will start at this value and will converge to the most appropriate value. If path loss exponent estimation is disabled, this value will be assumed to be exact and the estimated path loss exponent will be equal to this value.
- Parameters:
initialPathLossExponent- initial path loss exponent.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
isTransmittedPowerEstimationEnabled
public boolean isTransmittedPowerEstimationEnabled()Indicates whether transmitted power estimation is enabled or not.- Returns:
- true if transmitted power estimation is enabled, false otherwise.
-
setTransmittedPowerEstimationEnabled
public void setTransmittedPowerEstimationEnabled(boolean transmittedPowerEstimationEnabled) throws com.irurueta.navigation.LockedException Specifies whether transmitted power estimation is enabled or not.- Parameters:
transmittedPowerEstimationEnabled- true if transmitted power estimation is enabled, false otherwise.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
isPathLossEstimationEnabled
public boolean isPathLossEstimationEnabled()Indicates whether path loss estimation is enabled or not.- Returns:
- true if path loss estimation is enabled, false otherwise.
-
setPathLossEstimationEnabled
public void setPathLossEstimationEnabled(boolean pathLossEstimationEnabled) throws com.irurueta.navigation.LockedException Specifies whether path loss estimation is enabled or not.- Parameters:
pathLossEstimationEnabled- true if path loss estimation is enabled, false otherwise.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
getUseReadingPositionCovariance
public boolean getUseReadingPositionCovariance()Indicates whether position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.- Returns:
- true to take into account reading position covariances, false otherwise.
-
setUseReadingPositionCovariances
public void setUseReadingPositionCovariances(boolean useReadingPositionCovariances) throws com.irurueta.navigation.LockedException Specifies whether position covariances of readings must be taken into account to increase the amount of standard deviation of each ranging measure by the amount of position standard deviation assuming that both measures are statistically independent.- Parameters:
useReadingPositionCovariances- true to take into account reading position covariances, false otherwise.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
isHomogeneousRangingLinearSolverUsed
public abstract boolean isHomogeneousRangingLinearSolverUsed()Indicates whether an homogeneous linear solver is used to estimate an initial position for the internal ranging radio source estimator.- Returns:
- true if homogeneous linear solver is used, false if an inhomogeneous linear one is used instead.
-
setHomogeneousRangingLinearSolverUsed
public abstract void setHomogeneousRangingLinearSolverUsed(boolean useHomogeneousLinearSolver) throws com.irurueta.navigation.LockedException Specifies whether an homogeneous linear solver is used to estimate an initial position for the internal ranging radio source estimator.- Parameters:
useHomogeneousLinearSolver- true if homogeneous linear solver is used, false if an inhomogeneous linear one is used instead.- Throws:
com.irurueta.navigation.LockedException- if estimator is locked.
-
isReady
public boolean isReady()Indicates whether this instance is ready to start the estimation.- Specified by:
isReadyin classRobustRadioSourceEstimator<P extends com.irurueta.geometry.Point<P>,RangingAndRssiReadingLocated<S extends RadioSource, P extends com.irurueta.geometry.Point<P>>, RobustRangingAndRssiRadioSourceEstimatorListener<S extends RadioSource, P extends com.irurueta.geometry.Point<P>>> - Returns:
- true if this instance is ready, false otherwise.
-
getEstimatedTransmittedPowerVariance
Gets estimated transmitted power variance. This is only available when result has been refined and covariance is kept.- Returns:
- estimated transmitted power variance.
-
getEstimatedPathLossExponentVariance
Gets estimated path loss exponent variance. This is only available when result has been refined and covariance is kept.- Returns:
- estimated path loss exponent variance.
-
getEstimatedTransmittedPower
public double getEstimatedTransmittedPower()Gets estimated transmitted power expressed in milli watts (mW).- Returns:
- estimated transmitted power expressed in milli watts.
-
getEstimatedTransmittedPowerdBm
public double getEstimatedTransmittedPowerdBm()Gets estimated transmitted power expressed in dBm's.- Returns:
- estimated transmitted power expressed in dBm's.
-
getEstimatedPathLossExponent
public double getEstimatedPathLossExponent()Gets estimated exponent typically used on free space for path loss propagation in terms of distance. On different environments path loss exponent might have different values: - Free space: 2.0 - Urban Area: 2.7 to 3.5 - Suburban Area: 3 to 5 - Indoor (line-of-sight): 1.6 to 1.8 If path loss exponent estimation is not enabled, this value will always be equal toRssiRadioSourceEstimator.DEFAULT_PATH_LOSS_EXPONENT- Returns:
- estimated path loss exponent.
-
getMethod
public abstract com.irurueta.numerical.robust.RobustEstimatorMethod getMethod()Returns method being used for robust estimation.- Returns:
- method being used for robust estimation.
-
solvePreliminarySolutions
protected abstract void solvePreliminarySolutions(int[] samplesIndices, List<RobustRangingAndRssiRadioSourceEstimator.Solution<P>> solutions) Solves preliminary solution for a subset of samples.- Parameters:
samplesIndices- indices of subset samples.solutions- instance where solution will be stored.
-