Class RangingAndRssiRadioSourceEstimator3D<S extends RadioSource>
java.lang.Object
com.irurueta.navigation.indoor.radiosource.RadioSourceEstimator<com.irurueta.geometry.Point3D,RangingAndRssiReadingLocated<S,com.irurueta.geometry.Point3D>,RangingAndRssiRadioSourceEstimatorListener<S,com.irurueta.geometry.Point3D>>
com.irurueta.navigation.indoor.radiosource.RangingAndRssiRadioSourceEstimator<S,com.irurueta.geometry.Point3D>
com.irurueta.navigation.indoor.radiosource.RangingAndRssiRadioSourceEstimator3D<S>
- Type Parameters:
S- aRadioSourcetype.
public class RangingAndRssiRadioSourceEstimator3D<S extends RadioSource>
extends RangingAndRssiRadioSourceEstimator<S,com.irurueta.geometry.Point3D>
Estimates 3D 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.
Although RssiRadioSourceEstimator 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.
-
Field Summary
Fields inherited from class com.irurueta.navigation.indoor.radiosource.RangingAndRssiRadioSourceEstimator
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.RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D initialPosition) Constructor.RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D initialPosition, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm) Constructor.RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor.RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(Double initialTransmittedPowerDbm) Constructor.RangingAndRssiRadioSourceEstimator3D(Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D initialPosition) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D initialPosition, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D initialPosition, Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, Double initialTransmittedPowerdBm) Constructor.RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S, com.irurueta.geometry.Point3D> listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidCreates inner estimators if needed.RadioSourceLocated<com.irurueta.geometry.Point3D> Gets estimated located radio source.intGets number of dimensions of position points.Methods inherited from class com.irurueta.navigation.indoor.radiosource.RangingAndRssiRadioSourceEstimator
estimate, getEstimatedPathLossExponent, getEstimatedPathLossExponentVariance, getEstimatedPosition, getEstimatedTransmittedPower, getEstimatedTransmittedPowerdBm, getEstimatedTransmittedPowerVariance, getInitialPathLossExponent, getInitialPosition, getInitialTransmittedPower, getInitialTransmittedPowerdBm, getMinReadings, getUseReadingPositionCovariance, isHomogeneousRangingLinearSolverUsed, isPathLossEstimationEnabled, isReady, isTransmittedPowerEstimationEnabled, setHomogeneousRangingLinearSolverUsed, setInitialPathLossExponent, setInitialPosition, setInitialTransmittedPower, setInitialTransmittedPowerdBm, setPathLossEstimationEnabled, setTransmittedPowerEstimationEnabled, setUseReadingPositionCovariancesMethods inherited from class com.irurueta.navigation.indoor.radiosource.RadioSourceEstimator
areValidReadings, getEstimatedCovariance, getEstimatedPosition, getEstimatedPositionCoordinates, getEstimatedPositionCovariance, getListener, getReadings, internalSetReadings, isLocked, setListener, setReadings
-
Constructor Details
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D()Constructor. -
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> 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.
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D initialPosition) Constructor.- Parameters:
initialPosition- initial position to start the estimation of radio source position.
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D 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.
-
RangingAndRssiRadioSourceEstimator3D
Constructor.- Parameters:
initialTransmittedPowerDbm- initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> 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.
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D 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.
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D 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).
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(List<? extends RangingAndRssiReadingLocated<S, com.irurueta.geometry.Point3D>> readings, com.irurueta.geometry.Point3D 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.
-
RangingAndRssiRadioSourceEstimator3D
public RangingAndRssiRadioSourceEstimator3D(com.irurueta.geometry.Point3D 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. This is always 3.- Specified by:
getNumberOfDimensionsin classRadioSourceEstimator<com.irurueta.geometry.Point3D,RangingAndRssiReadingLocated<S extends RadioSource, com.irurueta.geometry.Point3D>, RangingAndRssiRadioSourceEstimatorListener<S extends RadioSource, com.irurueta.geometry.Point3D>> - Returns:
- number of dimensions of position points.
-
getEstimatedRadioSource
Gets estimated located radio source.- Specified by:
getEstimatedRadioSourcein classRadioSourceEstimator<com.irurueta.geometry.Point3D,RangingAndRssiReadingLocated<S extends RadioSource, com.irurueta.geometry.Point3D>, RangingAndRssiRadioSourceEstimatorListener<S extends RadioSource, com.irurueta.geometry.Point3D>> - Returns:
- estimated located radio source or null.
-
createInnerEstimatorsIfNeeded
protected void createInnerEstimatorsIfNeeded()Creates inner estimators if needed.- Specified by:
createInnerEstimatorsIfNeededin classRangingAndRssiRadioSourceEstimator<S extends RadioSource,com.irurueta.geometry.Point3D>
-