Class RangingAndRssiRadioSourceEstimator<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>

java.lang.Object
com.irurueta.navigation.indoor.radiosource.RadioSourceEstimator<P,RangingAndRssiReadingLocated<S,P>,RangingAndRssiRadioSourceEstimatorListener<S,P>>
com.irurueta.navigation.indoor.radiosource.RangingAndRssiRadioSourceEstimator<S,P>
Type Parameters:
S - a RadioSource type.
P - a Point type.
Direct Known Subclasses:
RangingAndRssiRadioSourceEstimator2D, RangingAndRssiRadioSourceEstimator3D

public abstract class RangingAndRssiRadioSourceEstimator<S extends RadioSource,P extends com.irurueta.geometry.Point<P>> extends RadioSourceEstimator<P,RangingAndRssiReadingLocated<S,P>,RangingAndRssiRadioSourceEstimatorListener<S,P>>
Estimates 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.

Notice that implementations of this class assume that when retrieving the covariance of all parameters the cross correlation among position terms and path-loss or transmitted power is zero.

  • Field Details

    • SPEED_OF_LIGHT

      public static final double SPEED_OF_LIGHT
      Speed of light expressed in meters per second (m/s).
      See Also:
    • DEFAULT_PATH_LOSS_EXPONENT

      public static final double DEFAULT_PATH_LOSS_EXPONENT
      Default exponent typically used on free space for path loss propagation in terms of distance. This value is used for free space environments.
      See Also:
    • DEFAULT_TRANSMITTED_POWER_ESTIMATION_ENABLED

      public static final boolean DEFAULT_TRANSMITTED_POWER_ESTIMATION_ENABLED
      Indicates whether radio source transmitted power estimation is enabled or not by default. Typically, this data is required for Wi-Fi Access points, but it is already provided for Beacons (and hence its estimation is not needed).
      See Also:
    • DEFAULT_PATHLOSS_ESTIMATION_ENABLED

      public static final boolean DEFAULT_PATHLOSS_ESTIMATION_ENABLED
      Indicates whether path loss estimation is enabled or not by default.
      See Also:
    • DEFAULT_USE_READING_POSITION_COVARIANCES

      public static final boolean DEFAULT_USE_READING_POSITION_COVARIANCES
      Indicates 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:
    • rssiInnerEstimator

      protected RssiRadioSourceEstimator<S extends RadioSource,P extends com.irurueta.geometry.Point<P>> rssiInnerEstimator
      RSSI radio source estimator.
    • rangingInnerEstimator

      protected RangingRadioSourceEstimator<S extends RadioSource,P extends com.irurueta.geometry.Point<P>> rangingInnerEstimator
      Ranging radio source estimator.
    • transmittedPowerEstimationEnabled

      protected boolean transmittedPowerEstimationEnabled
      Indicates whether transmitted power estimation is enabled or not.
    • pathLossEstimationEnabled

      protected boolean pathLossEstimationEnabled
      Indicates whether path loss estimation is enabled or not.
    • estimatedTransmittedPowerdBm

      private double estimatedTransmittedPowerdBm
      Estimated transmitted power expressed in dBm's.
    • estimatedPathLossExponent

      private double estimatedPathLossExponent
      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 to DEFAULT_PATH_LOSS_EXPONENT
    • estimatedTransmittedPowerVariance

      private Double estimatedTransmittedPowerVariance
      Variance of estimated transmitted power. This value will only be available when transmitted power estimation is enabled.
    • estimatedPathLossExponentVariance

      private Double estimatedPathLossExponentVariance
      Variance of estimated path loss exponent. This value will only be available when path-loss exponent estimation is enabled.
    • initialTransmittedPowerdBm

      private Double initialTransmittedPowerdBm
      Initial transmitted power to start the estimation of radio source transmitted power. If not defined, average value of received power readings will be used.
    • initialPosition

      private P extends com.irurueta.geometry.Point<P> initialPosition
      Initial position to start the estimation of radio source position. If not defined, centroid of provided readings will be used.
    • initialPathLossExponent

      private double initialPathLossExponent
      Initial 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 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.

    • useReadingPositionCovariances

      private boolean useReadingPositionCovariances
      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.
    • useHomogeneousRangingLinearSolver

      private boolean useHomogeneousRangingLinearSolver
      Indicates whether an homogeneous linear solver is used to estimate an initial position for the internal ranging radio source estimator.
  • Constructor Details

    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator()
      Constructor.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> 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.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      Constructor.
      Parameters:
      listener - listener in charge of attending events raised by this instance.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      Constructor. Sets radio signal readings belonging to the same radio source.
      Parameters:
      readings - radio signal readings belonging to the same radio source.
      listener - listener in charge of attending events raised by this instance.
      Throws:
      IllegalArgumentException - if readings are not valid.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(P initialPosition)
      Constructor.
      Parameters:
      initialPosition - initial position to start the estimation of radio source position.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, P 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.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(P initialPosition, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      Constructor.
      Parameters:
      initialPosition - initial position to start the estimation of radio source position.
      listener - listener in charge of attending events raised by this instance.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, P initialPosition, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      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.
      listener - listener in charge of attending events raised by this instance.
      Throws:
      IllegalArgumentException - if readings are not valid.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(Double initialTransmittedPowerDbm)
      Constructor.
      Parameters:
      initialTransmittedPowerDbm - initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> 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.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      Constructor.
      Parameters:
      initialTransmittedPowerdBm - initial transmitted power to start the estimation of radio source transmitted power (expressed in dBm's).
      listener - listener in charge of attending events raised by this instance.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      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).
      listener - listener in charge of attending events raised by this instance.
      Throws:
      IllegalArgumentException - if readings are not valid.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, P 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.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(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).
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      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).
      listener - listener in charge of attending events raised by this instance.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, P initialPosition, Double initialTransmittedPowerdBm, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      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).
      listener - listener in charge of attending events raised by this instance.
      Throws:
      IllegalArgumentException - if readings are not valid.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, P 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.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(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.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      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.
      listener - listener in charge of attending events raised by this instance.
    • RangingAndRssiRadioSourceEstimator

      protected RangingAndRssiRadioSourceEstimator(List<? extends RangingAndRssiReadingLocated<S,P>> readings, P initialPosition, Double initialTransmittedPowerdBm, double initialPathLossExponent, RangingAndRssiRadioSourceEstimatorListener<S,P> listener)
      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.
      listener - listener in charge of attending events raised by this instance.
      Throws:
      IllegalArgumentException - if readings are not valid.
  • Method Details

    • getInitialTransmittedPowerdBm

      public Double 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.

      If transmitted power estimation is enabled, estimation will start at this value and will be converted to the most appropriate value. If transmitted power estimation is disabled, this value will be assumed to be exact and the estimated transmitted power will be equal to this value (converted to dBm's).

      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.

      If transmitted power estimation is enabled, estimation will start at this value and will be converted to the most appropriate value. If transmitted power estimation is disabled, this value will be assumed to be exact and the estimated transmitted power will be equal to this value (converted to dBm's).

      Parameters:
      initialTransmittedPowerdBm - initial transmitted power to start the estimation of radio source transmitted power.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is locked.
    • getInitialTransmittedPower

      public Double 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.

      If transmitted power estimation is enabled, estimation will start at this value and will be converted to the most appropriate value. If transmitted power estimation is disabled, this value will be assumed to be exact and the estimated transmitted power will be equal to this value (converted to dBm's).

      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.

      If transmitted power estimation is enabled, estimation will start at this value and will be converted to the most appropriate value. If transmitted power estimation is disabled, this value will be assumed to be exact and the estimated transmitted power will be equal to this value (converted to dBm's).

      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.
    • 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.
    • getInitialPosition

      public P getInitialPosition()
      Gets initial position to start the estimation of radio source position. If not defined, centroid of provided readings will be used.

      If position estimation is enabled, estimation will start at this value and will converge to the most appropriate value. If position estimation is disabled, this value will be assumed to be exact and the estimated position will be equal to this value.

      Returns:
      initial position to start the estimation of radio source position.
    • setInitialPosition

      public void setInitialPosition(P initialPosition) throws com.irurueta.navigation.LockedException
      Sets initial position to start the estimation of radio source position. If not defined, centroid of provided fingerprints will be used.

      If position estimation is enabled, estimation will start at this value and will converge to the most appropriate value. If position estimation is disabled, this value will be assumed to be exact and the estimated position will be equal to this value.

      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.8

      If 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.8

      If 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.
    • 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 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 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.
    • getMinReadings

      public int getMinReadings()
      Gets minimum required number of readings to estimate power, position and path-loss exponent. This value depends on the number of parameters to be estimated, but for position only, this is 3 readings.
      Specified by:
      getMinReadings in class RadioSourceEstimator<P extends com.irurueta.geometry.Point<P>,RangingAndRssiReadingLocated<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>,RangingAndRssiRadioSourceEstimatorListener<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>>
      Returns:
      minimum required number of readings.
      Throws:
      IllegalStateException - if inner RSSI estimator is busy.
    • getEstimatedPosition

      public P getEstimatedPosition()
      Gets estimated radio source position.
      Specified by:
      getEstimatedPosition in class RadioSourceEstimator<P extends com.irurueta.geometry.Point<P>,RangingAndRssiReadingLocated<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>,RangingAndRssiRadioSourceEstimatorListener<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>>
      Returns:
      estimated radio source position.
    • isReady

      public boolean isReady()
      Indicates whether this instance is ready to start the estimation.
      Specified by:
      isReady in class RadioSourceEstimator<P extends com.irurueta.geometry.Point<P>,RangingAndRssiReadingLocated<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>,RangingAndRssiRadioSourceEstimatorListener<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>>
      Returns:
      true if this instance is ready, false otherwise.
    • estimate

      public void estimate() throws RadioSourceEstimationException, com.irurueta.navigation.NotReadyException, com.irurueta.navigation.LockedException
      Estimate position, transmitted power and path loss exponent.
      Specified by:
      estimate in class RadioSourceEstimator<P extends com.irurueta.geometry.Point<P>,RangingAndRssiReadingLocated<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>,RangingAndRssiRadioSourceEstimatorListener<S extends RadioSource,P extends com.irurueta.geometry.Point<P>>>
      Throws:
      RadioSourceEstimationException - if estimation fails.
      com.irurueta.navigation.NotReadyException - if estimator is not ready.
      com.irurueta.navigation.LockedException - if estimator is locked.
    • 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 to DEFAULT_PATH_LOSS_EXPONENT
      Returns:
      estimated path loss exponent.
    • getEstimatedTransmittedPowerVariance

      public Double getEstimatedTransmittedPowerVariance()
      Gets estimated transmitted power variance. This value will only be available when transmitted power estimation is enabled.
      Returns:
      estimated transmitted power variance or null.
    • getEstimatedPathLossExponentVariance

      public Double getEstimatedPathLossExponentVariance()
      Gets estimated path loss exponent variance. This value will only be available when path-loss exponent estimation is enabled.
      Returns:
      estimated path loss exponent variance or null.
    • createInnerEstimatorsIfNeeded

      protected abstract void createInnerEstimatorsIfNeeded()
      Creates inner estimators if needed.
    • createRangingReading

      private RangingReadingLocated<S,P> createRangingReading(RangingAndRssiReadingLocated<S,P> reading)
      Creates a ranging reading from a ranging and RSSI reading.
      Parameters:
      reading - input reading to convert from.
      Returns:
      a ranging reading containing only the ranging data of input reading.
    • createRssiReading

      private RssiReadingLocated<S,P> createRssiReading(RangingAndRssiReadingLocated<S,P> reading)
      Creates an RSSI reading from a ranging and RSSI reading.
      Parameters:
      reading - input reading to convert from.
      Returns:
      an RSSI reading containing only the RSSI data of input reading.