Class MixedRadioSourceEstimator2D<S extends RadioSource>
java.lang.Object
com.irurueta.navigation.indoor.radiosource.RadioSourceEstimator<com.irurueta.geometry.Point2D,ReadingLocated<com.irurueta.geometry.Point2D>,MixedRadioSourceEstimatorListener<S,com.irurueta.geometry.Point2D>>
com.irurueta.navigation.indoor.radiosource.MixedRadioSourceEstimator<S,com.irurueta.geometry.Point2D>
com.irurueta.navigation.indoor.radiosource.MixedRadioSourceEstimator2D<S>
- Type Parameters:
S- aRadioSourcetype.
public class MixedRadioSourceEstimator2D<S extends RadioSource>
extends MixedRadioSourceEstimator<S,com.irurueta.geometry.Point2D>
Estimates 2D position, transmitted power and path loss exponent of a
radio source (e.g. Wi-Fi access point or bluetooth beacon) assuming
that the ranging data is available to obtain position with greater
accuracy and that the radio source emits isotropically following the
expression below:
Pr = Pt*Gt*Gr*lambda^2 / (4*pi*d)^2,
where Pr is the received power (expressed in mW),
Gt is the Gain of the transmission antenna
Gr is the Gain of the receiver antenna
d is the distance between emitter and receiver
and lambda is the wavelength and is equal to: lambda = c / f,
where c is the speed of light
and f is the carrier frequency of the radio signal.
Because usually information about the antenna of the radio source cannot be
retrieved (because many measurements are made on unknown devices where
physical access is not possible), this implementation will estimate the
equivalent transmitted power as: Pte = Pt * Gt * Gr.
If Readings contain RSSI standard deviations, those values will be used,
otherwise it will be assumed an RSSI standard deviation of 1 dB.
This implementation is like RangingAndRssiRadioSourceEstimator2D but allows mixing different kinds of located radio source readings (ranging, RSSI and ranging+RSSI).
-
Field Summary
Fields inherited from class com.irurueta.navigation.indoor.radiosource.MixedRadioSourceEstimator
DEFAULT_PATH_LOSS_EXPONENT, DEFAULT_PATHLOSS_ESTIMATION_ENABLED, DEFAULT_TRANSMITTED_POWER_ESTIMATION_ENABLED, DEFAULT_USE_READING_POSITION_COVARIANCES, pathLossEstimationEnabled, rangingInnerEstimator, rssiInnerEstimator, SPEED_OF_LIGHT, transmittedPowerEstimationEnabledFields inherited from class com.irurueta.navigation.indoor.radiosource.RadioSourceEstimator
estimatedCovariance, estimatedPositionCoordinates, estimatedPositionCovariance, listener, locked, readings -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition) Constructor.MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm) Constructor.MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor.MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(Double initialTransmittedPowerDbm) Constructor.MixedRadioSourceEstimator2D(Double initialTransmittedPowerdBm, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, Double initialTransmittedPowerdBm) Constructor.MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, Double initialTransmittedPowerdBm, MixedRadioSourceEstimatorListener<S, com.irurueta.geometry.Point2D> listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidCreates inner estimators if needed.RadioSourceLocated<com.irurueta.geometry.Point2D> Gets estimated located radio source.intGets number of dimensions of position points.Methods inherited from class com.irurueta.navigation.indoor.radiosource.MixedRadioSourceEstimator
areValidReadings, estimate, getEstimatedPathLossExponent, getEstimatedPathLossExponentVariance, getEstimatedPosition, getEstimatedTransmittedPower, getEstimatedTransmittedPowerdBm, getEstimatedTransmittedPowerVariance, getInitialPathLossExponent, getInitialPosition, getInitialTransmittedPower, getInitialTransmittedPowerdBm, getMinRangingReadings, getMinReadings, getMinRssiReadings, getUseReadingPositionCovariance, isHomogeneousRangingLinearSolverUsed, isPathLossEstimationEnabled, isReady, isTransmittedPowerEstimationEnabled, setHomogeneousRangingLinearSolverUsed, setInitialPathLossExponent, setInitialPosition, setInitialTransmittedPower, setInitialTransmittedPowerdBm, setPathLossEstimationEnabled, setTransmittedPowerEstimationEnabled, setUseReadingPositionCovariancesMethods inherited from class com.irurueta.navigation.indoor.radiosource.RadioSourceEstimator
getEstimatedCovariance, getEstimatedPosition, getEstimatedPositionCoordinates, getEstimatedPositionCovariance, getListener, getReadings, internalSetReadings, isLocked, setListener, setReadings
-
Constructor Details
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D()Constructor. -
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings) Constructor. Sets radio signal readings belonging to the same radio source.- Parameters:
readings- radio signal readings belonging to the same radio sources.- Throws:
IllegalArgumentException- if readings are not valid.
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D initialPosition) Constructor.- Parameters:
initialPosition- initial position to start the estimation of radio source position.
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition) Constructor. Sets radio signal readings belonging to the same radio source.- Parameters:
readings- radio 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.
-
MixedRadioSourceEstimator2D
Constructor.- Parameters:
initialTransmittedPowerDbm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, Double initialTransmittedPowerdBm) Constructor. Sets radio signal readings belonging to the same radio source.- Parameters:
readings- radio 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.
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm) Constructor. Sets radio signal readings belonging to the same radio source.- Parameters:
readings- radio 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.
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D 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).
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(List<? extends ReadingLocated<com.irurueta.geometry.Point2D>> readings, com.irurueta.geometry.Point2D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor. Sets radio signal readings belonging to the same radio source.- Parameters:
readings- radio 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.
-
MixedRadioSourceEstimator2D
public MixedRadioSourceEstimator2D(com.irurueta.geometry.Point2D 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
-
getNumberOfDimensions
public int getNumberOfDimensions()Gets number of dimensions of position points.- Specified by:
getNumberOfDimensionsin classRadioSourceEstimator<com.irurueta.geometry.Point2D,ReadingLocated<com.irurueta.geometry.Point2D>, MixedRadioSourceEstimatorListener<S extends RadioSource, com.irurueta.geometry.Point2D>> - Returns:
- number of dimensions of position points.
-
getEstimatedRadioSource
Gets estimated located radio source.- Specified by:
getEstimatedRadioSourcein classRadioSourceEstimator<com.irurueta.geometry.Point2D,ReadingLocated<com.irurueta.geometry.Point2D>, MixedRadioSourceEstimatorListener<S extends RadioSource, com.irurueta.geometry.Point2D>> - Returns:
- estimated located radio source or null.
-
createInnerEstimatorsIfNeeded
protected void createInnerEstimatorsIfNeeded()Creates inner estimators if needed.- Specified by:
createInnerEstimatorsIfNeededin classMixedRadioSourceEstimator<S extends RadioSource,com.irurueta.geometry.Point2D>
-