Class RandomWalkEstimator

java.lang.Object
com.irurueta.navigation.inertial.calibration.RandomWalkEstimator
All Implemented Interfaces:
AccelerometerBiasRandomWalkSource, AttitudeUncertaintySource, GyroscopeBiasRandomWalkSource, PositionNoiseStandardDeviationSource, PositionUncertaintySource, VelocityNoiseStandardDeviationSource, VelocityUncertaintySource

Estimates random walk data by running this estimator while the body of IMU remains static at a given position and orientation when IMU has already been calibrated. Internally, this estimator accumulates samples for a given "drift period" to estimate accumulated drift values of position, velocity and attitude, and then repeats the process several times to estimate the mean and variance of such values. The duration of the drift period is application-dependent. It should be set to a value more or less similar to the amount of time the device won't be able to set a position by some other system (e.g., GPS, Wi-Fi, cameras, etc...)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final com.irurueta.navigation.inertial.calibration.AccelerationTriad
    Contains acceleration triad to be reused for bias norm estimation.
    private double
    Accelerometer bias random walk PSD (Power Spectral Density) expressed in (m^2 * s^-5).
    private final com.irurueta.navigation.inertial.calibration.AngularSpeedTriad
    Contains angular speed triad to be reused for bias norm estimation.
    private double
    Average attitude drift expressed in radians (rad).
    private double
    Average position drift expressed in meters (m).
    private double
    Average velocity drift expressed in meters per second (m/s).
    private final com.irurueta.navigation.inertial.calibration.bias.BodyKinematicsBiasEstimator
    Estimates bias for fixed body kinematics measurements to determine further bias variations while the IMU body remains static.
    static final int
    Number of samples to be used by default on each drift period.
    private final DriftEstimator
    Estimates amount of position, velocity and orientation drift.
    private int
    Number of samples to be used on each drift period.
    private final com.irurueta.navigation.inertial.BodyKinematics
    Instance containing the last fixed body kinematics to be reused.
    private final com.irurueta.navigation.inertial.calibration.BodyKinematicsFixer
    Fixes body kinematics measurements using accelerometer and gyroscope calibration data to fix measurements.
    private boolean
    Indicates whether measured kinematics must be fixed or not.
    private double
    Gyro bias random walk PSD (Power Spectral Density) expressed in (rad^2 * s^-3).
    Listener to handle events raised by this estimator.
    private int
    Number of drift periods that have been processed.
    private boolean
    Indicates whether this estimator is running or not.
    private double
    Attitude variance expressed in squared radians (rad^2).
    private double
    Position variance expressed in square meters (m^2).
    private double
    Velocity variance expressed in (m^2/s^2).
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
    RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg)
    Constructor.
    RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg)
    Constructor.
    RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener)
    Constructor.
    RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener)
    Constructor.
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addBodyKinematics(com.irurueta.navigation.inertial.BodyKinematics kinematics)
    Adds a sample of measured body kinematics (accelerometer and gyroscope readings) obtained from an IMU, fixes their values and uses fixed values to estimate any additional existing bias or position and velocity variation while the IMU body remains static.
    com.irurueta.algebra.Matrix
    Gets acceleration bias values expressed in meters per squared second (m/s^2).
    void
    getAccelerationBias(com.irurueta.algebra.Matrix result)
    Gets acceleration bias values expressed in meters per squared second (m/s^2).
    double[]
    Gets acceleration bias values expressed in meters per squared second (m/s^2).
    void
    getAccelerationBiasArray(double[] result)
    Gets acceleration bias values expressed in meters per squared second (m/s^2).
    com.irurueta.navigation.inertial.calibration.AccelerationTriad
    Gets acceleration bias.
    void
    getAccelerationBiasAsTriad(com.irurueta.navigation.inertial.calibration.AccelerationTriad result)
    Gets acceleration bias.
    double
    Gets acceleration x-coordinate of bias expressed in meters per squared second (m/s^2).
    com.irurueta.units.Acceleration
    Gets acceleration x-coordinate of bias.
    void
    getAccelerationBiasXAsAcceleration(com.irurueta.units.Acceleration result)
    Gets acceleration x-coordinate of bias.
    double
    Gets acceleration y-coordinate of bias expressed in meters per squared second (m/s^2).
    com.irurueta.units.Acceleration
    Gets acceleration y-coordinate of bias.
    void
    getAccelerationBiasYAsAcceleration(com.irurueta.units.Acceleration result)
    Gets acceleration y-coordinate of bias.
    double
    Gets acceleration z-coordinate of bias expressed in meters per squared second (m/s^2).
    com.irurueta.units.Acceleration
    Gets acceleration z-coordinate of bias.
    void
    getAccelerationBiasZAsAcceleration(com.irurueta.units.Acceleration result)
    Gets acceleration z-coordinate of bias.
    com.irurueta.algebra.Matrix
    Gets acceleration cross-coupling errors matrix.
    void
    getAccelerationCrossCouplingErrors(com.irurueta.algebra.Matrix result)
    Gets acceleration cross-coupling errors matrix.
    double
    Gets acceleration x-y cross-coupling error.
    double
    Gets acceleration x-z cross-coupling error.
    double
    Gets acceleration y-x cross-coupling error.
    double
    Gets acceleration y-z cross-coupling error.
    double
    Gets acceleration z-x cross-coupling error.
    double
    Gets acceleration z-y cross-coupling error.
    double
    Gets acceleration x scaling factor.
    double
    Gets acceleration y scaling factor.
    double
    Gets acceleration z scaling factor.
    double
    Gets estimated accelerometer bias random walk PSD (Power Spectral Density) expressed in (m^2 * s^-5).
    com.irurueta.algebra.Matrix
    Gets angular speed bias values expressed in radians per second (rad/s).
    void
    getAngularSpeedBias(com.irurueta.algebra.Matrix result)
    Gets angular speed bias values expressed in radians per second (rad/s).
    double[]
    Gets angular speed bias values expressed in radians per second (rad/s).
    void
    getAngularSpeedBiasArray(double[] result)
    Gets angular speed bias values expressed in radians per second (rad/s).
    com.irurueta.navigation.inertial.calibration.AngularSpeedTriad
    Gets angular speed bias.
    void
    getAngularSpeedBiasAsTriad(com.irurueta.navigation.inertial.calibration.AngularSpeedTriad result)
    Gets angular speed bias.
    double
    Gets angular speed x-coordinate of bias expressed in radians per second (rad/s).
    com.irurueta.units.AngularSpeed
    Gets angular speed x-coordinate of bias.
    void
    getAngularSpeedBiasXAsAngularSpeed(com.irurueta.units.AngularSpeed result)
    Gets angular speed x-coordinate of bias.
    double
    Gets angular speed y-coordinate of bias expressed in radians per second (rad/s).
    com.irurueta.units.AngularSpeed
    Gets angular speed y-coordinate of bias.
    void
    getAngularSpeedBiasYAsAngularSpeed(com.irurueta.units.AngularSpeed result)
    Gets angular speed y-coordinate of bias.
    double
    Gets angular speed z-coordinate of bias expressed in radians per second (rad/s).
    com.irurueta.units.AngularSpeed
    Gets angular speed z-coordinate of bias.
    void
    getAngularSpeedBiasZAsAngularSpeed(com.irurueta.units.AngularSpeed result)
    Gets angular speed z-coordinate of bias.
    com.irurueta.algebra.Matrix
    Gets angular speed cross-coupling errors matrix.
    void
    getAngularSpeedCrossCouplingErrors(com.irurueta.algebra.Matrix result)
    Gets angular speed cross-coupling errors matrix.
    com.irurueta.algebra.Matrix
    Gets angular speed g-dependant cross biases matrix.
    void
    getAngularSpeedGDependantCrossBias(com.irurueta.algebra.Matrix result)
    Gets angular speed g-dependant cross biases matrix.
    double
    Gets angular speed x-y cross-coupling error.
    double
    Gets angular speed x-z cross-coupling error.
    double
    Gets angular speed y-x cross-coupling error.
    double
    Gets angular speed y-z cross-coupling error.
    double
    Gets angular speed z-x cross-coupling error.
    double
    Gets angular speed z-y cross-coupling error.
    double
    Gets angular speed x scaling factor.
    double
    Gets angular speed y scaling factor.
    double
    Gets angular speed z scaling factor.
    double
    Gets standard deviation of attitude noise expressed in radians (rad).
    com.irurueta.units.Angle
    Gets standard deviation of attitude noise.
    void
    getAttitudeNoiseStandardDeviationAsAngle(com.irurueta.units.Angle result)
    Gets standard deviation of attitude noise.
    double
    Gets estimated attitude noise variance expressed in squared radians (rad^2).
    double
    Gets attitude uncertainty expressed in radians (rad).
    com.irurueta.units.Angle
    Gets attitude uncertainty.
    void
    getAttitudeUncertaintyAsAngle(com.irurueta.units.Angle result)
    Gets attitude uncertainty.
    com.irurueta.units.Time
    Gets the duration of each drift period.
    void
    getDriftPeriod(com.irurueta.units.Time result)
    Gets the duration of each drift period.
    int
    Gets the number of samples to be used on each drift period.
    double
    Gets the duration of each drift period expressed in seconds (s).
    com.irurueta.navigation.frames.CoordinateTransformation
    Gets current body orientation as a transformation from body to ECEF coordinates.
    void
    getEcefC(com.irurueta.navigation.frames.CoordinateTransformation result)
    Gets current body orientation as a transformation from body to ECEF coordinates.
    com.irurueta.navigation.frames.ECEFFrame
    Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates.
    void
    getEcefFrame(com.irurueta.navigation.frames.ECEFFrame result)
    Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates.
    com.irurueta.navigation.frames.ECEFPosition
    Gets current body position expressed in ECEF coordinates.
    void
    getEcefPosition(com.irurueta.navigation.frames.ECEFPosition result)
    Gets current body position expressed in ECEF coordinates.
    com.irurueta.units.Time
    Gets the amount of total elapsed time since the first processed measurement.
    void
    getElapsedTime(com.irurueta.units.Time result)
    Gets the amount of total elapsed time since the first processed measurement.
    double
    Gets amount of total elapsed time since the first processed measurement expressed in seconds (s).
    com.irurueta.navigation.inertial.BodyKinematics
    Gets last added kinematics after being fixed using provided calibration data.
    void
    getFixedKinematics(com.irurueta.navigation.inertial.BodyKinematics result)
    Gets last added kinematics after being fixed using provided calibration data.
    double
    Gets estimated gyro bias random walk PSD (Power Spectral Density) expressed in (rad^2 * s^-3).
    Gets listener to handle events raised by this estimator.
    com.irurueta.navigation.frames.CoordinateTransformation
    Gets current body orientation as a transformation from body to NED coordinates.
    void
    getNedC(com.irurueta.navigation.frames.CoordinateTransformation result)
    Gets current body orientation as a transformation from body to NED coordinates.
    com.irurueta.navigation.frames.NEDFrame
    Gets NED frame containing current body position and orientation expressed in NED coordinates.
    void
    getNedFrame(com.irurueta.navigation.frames.NEDFrame result)
    Gets NED frame containing current body position and orientation expressed in NED coordinates.
    com.irurueta.navigation.frames.NEDPosition
    Gets current body position expressed in NED coordinates.
    void
    getNedPosition(com.irurueta.navigation.frames.NEDPosition result)
    Gets current body position expressed in NED coordinates.
    int
    Gets the number of drift periods that have been processed.
    int
    Gets the number of samples that have been processed so far.
    double
    Gets standard deviation of position noise expressed in meters (m).
    com.irurueta.units.Distance
    Gets standard deviation of position noise.
    void
    getPositionNoiseStandardDeviationAsDistance(com.irurueta.units.Distance result)
    Gets standard deviation of position noise.
    double
    Gets estimated position noise variance expressed in square meters (m^2).
    double
    Gets position uncertainty expressed in meters (m).
    com.irurueta.units.Distance
    Gets position uncertainty.
    void
    getPositionUncertaintyAsDistance(com.irurueta.units.Distance result)
    Gets position uncertainty.
    double
    Gets the time interval between body kinematics (IMU acceleration and gyroscope) samples expressed in seconds (s).
    com.irurueta.units.Time
    Gets time interval between body kinematics (IMU acceleration and gyroscope) samples.
    void
    getTimeIntervalAsTime(com.irurueta.units.Time result)
    Gets time interval between body kinematics (IMU acceleration and gyroscope) samples.
    double
    Gets standard deviation of velocity noise expressed in meters per second (m/s).
    com.irurueta.units.Speed
    Gets standard deviation of velocity noise.
    void
    getVelocityNoiseStandardDeviationAsSpeed(com.irurueta.units.Speed result)
    Gets standard deviation of velocity noise.
    double
    Gets estimated velocity noise variance expressed in (m^2/s^2).
    double
    Gets velocity uncertainty expressed in meters per second (m/s).
    com.irurueta.units.Speed
    Gets velocity uncertainty.
    void
    getVelocityUncertaintyAsSpeed(com.irurueta.units.Speed result)
    Gets velocity uncertainty.
    boolean
    Indicates whether measured kinematics must be fixed or not.
    boolean
    Indicates if estimator is ready to start processing additional kinematics measurements.
    boolean
    Indicates whether this estimator is running or not.
    boolean
    Resets current estimator.
    void
    setAccelerationBias(double[] bias)
    Sets acceleration bias values expressed in meters per squared second (m/s^2).
    void
    setAccelerationBias(double biasX, double biasY, double biasZ)
    Sets acceleration coordinates of bias expressed in meters per squared second (m/s^2).
    void
    setAccelerationBias(com.irurueta.algebra.Matrix bias)
    Sets acceleration bias values expressed in meters per squared second (m/s^2).
    void
    setAccelerationBias(com.irurueta.navigation.inertial.calibration.AccelerationTriad bias)
    Sets acceleration bias.
    void
    setAccelerationBias(com.irurueta.units.Acceleration biasX, com.irurueta.units.Acceleration biasY, com.irurueta.units.Acceleration biasZ)
    Sets acceleration coordinates of bias.
    void
    setAccelerationBiasX(double biasX)
    Sets acceleration x-coordinate of bias expressed in meters per squared second (m/s^2).
    void
    setAccelerationBiasX(com.irurueta.units.Acceleration biasX)
    Sets acceleration x-coordinate of bias.
    void
    setAccelerationBiasY(double biasY)
    Sets acceleration y-coordinate of bias expressed in meters per squared second (m/s^2).
    void
    setAccelerationBiasY(com.irurueta.units.Acceleration biasY)
    Sets acceleration y-coordinate of bias.
    void
    setAccelerationBiasZ(double biasZ)
    Sets acceleration z-coordinate of bias expressed in meters per squared second (m/s^2).
    void
    setAccelerationBiasZ(com.irurueta.units.Acceleration biasZ)
    Sets acceleration z-coordinate of bias.
    void
    setAccelerationCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy)
    Sets acceleration cross-coupling errors.
    void
    setAccelerationCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors)
    Sets acceleration cross-coupling errors matrix.
    void
    setAccelerationMxy(double mxy)
    Sets acceleration x-y cross-coupling error.
    void
    setAccelerationMxz(double mxz)
    Sets acceleration x-z cross-coupling error.
    void
    setAccelerationMyx(double myx)
    Sets acceleration y-x cross-coupling error.
    void
    setAccelerationMyz(double myz)
    Sets acceleration y-z cross-coupling error.
    void
    setAccelerationMzx(double mzx)
    Sets acceleration z-x cross-coupling error.
    void
    setAccelerationMzy(double mzy)
    Sets acceleration z-y cross-coupling error.
    void
    setAccelerationScalingFactors(double sx, double sy, double sz)
    Sets acceleration scaling factors.
    void
    setAccelerationScalingFactorsAndCrossCouplingErrors(double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy)
    Sets acceleration scaling factors and cross-coupling errors.
    void
    setAccelerationSx(double sx)
    Sets acceleration x scaling factor.
    void
    setAccelerationSy(double sy)
    Sets acceleration y scaling factor.
    void
    setAccelerationSz(double sz)
    Sets acceleration z scaling factor.
    void
    setAngularSpeedBias(double[] bias)
    Sets angular speed bias values expressed in radians per second (rad/s).
    void
    setAngularSpeedBias(double biasX, double biasY, double biasZ)
    Sets angular speed coordinates of bias expressed in radians per second (rad/s).
    void
    setAngularSpeedBias(com.irurueta.algebra.Matrix bias)
    Sets angular speed bias values expressed in radians per second (rad/s).
    void
    setAngularSpeedBias(com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bias)
    Sets angular speed bias.
    void
    setAngularSpeedBias(com.irurueta.units.AngularSpeed biasX, com.irurueta.units.AngularSpeed biasY, com.irurueta.units.AngularSpeed biasZ)
    Sets angular speed coordinates of bias.
    void
    setAngularSpeedBiasX(double biasX)
    Sets angular speed x-coordinate of bias expressed in radians per second (rad/s).
    void
    setAngularSpeedBiasX(com.irurueta.units.AngularSpeed biasX)
    Sets angular speed x-coordinate of bias.
    void
    setAngularSpeedBiasY(double biasY)
    Sets angular speed y-coordinate of bias expressed in radians per second (rad/s).
    void
    setAngularSpeedBiasY(com.irurueta.units.AngularSpeed biasY)
    Sets angular speed y-coordinate of bias.
    void
    setAngularSpeedBiasZ(double biasZ)
    Sets angular speed z-coordinate of bias expressed in radians per second (rad/s).
    void
    setAngularSpeedBiasZ(com.irurueta.units.AngularSpeed biasZ)
    Sets angular speed z-coordinate of bias.
    void
    setAngularSpeedCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy)
    Sets angular speed cross-coupling errors.
    void
    setAngularSpeedCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors)
    Sets angular speed cross-coupling errors matrix.
    void
    setAngularSpeedGDependantCrossBias(com.irurueta.algebra.Matrix gDependantCrossBias)
    Sets angular speed g-dependant cross biases matrix.
    void
    setAngularSpeedMxy(double mxy)
    Sets angular speed x-y cross-coupling error.
    void
    setAngularSpeedMxz(double mxz)
    Sets angular speed x-z cross-coupling error.
    void
    setAngularSpeedMyx(double myx)
    Sets angular speed y-x cross-coupling error.
    void
    setAngularSpeedMyz(double myz)
    Sets angular speed y-z cross-coupling error.
    void
    setAngularSpeedMzx(double mzx)
    Sets angular speed z-x cross-coupling error.
    void
    setAngularSpeedMzy(double mzy)
    Sets angular speed z-y cross-coupling error.
    void
    setAngularSpeedScalingFactors(double sx, double sy, double sz)
    Sets angular speed scaling factors.
    void
    setAngularSpeedScalingFactorsAndCrossCouplingErrors(double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy)
    Sets angular speed scaling factors and cross-coupling errors.
    void
    setAngularSpeedSx(double sx)
    Sets angular speed x scaling factor.
    void
    setAngularSpeedSy(double sy)
    Sets angular speed y-scaling factor.
    void
    setAngularSpeedSz(double sz)
    Sets angular speed z scaling factor.
    void
    setDriftPeriodSamples(int driftPeriodSamples)
    Sets the number of samples to be used on each drift period.
    void
    setEcefC(com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets current body orientation as a transformation from body to ECEF coordinates.
    void
    setEcefPosition(double x, double y, double z)
    Sets current body position expressed in ECEF coordinates.
    void
    setEcefPosition(com.irurueta.geometry.Point3D position)
    Sets current body position expressed in ECEF coordinates.
    void
    setEcefPosition(com.irurueta.navigation.frames.ECEFPosition position)
    Sets current body position expressed in ECEF coordinates.
    void
    setEcefPosition(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z)
    Sets current body position expressed in ECEF coordinates.
    void
    setEcefPositionAndEcefOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position and orientation both expressed on ECEF coordinates.
    void
    setEcefPositionAndEcefOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position and orientation both expressed on ECEF coordinates.
    void
    setEcefPositionAndEcefOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position and orientation both expressed on ECEF coordinates.
    void
    setEcefPositionAndEcefOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position and orientation both expressed on ECEF coordinates.
    void
    setEcefPositionAndNedOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position expressed on ECEF coordinates and orientation with respect to NED axes.
    void
    setEcefPositionAndNedOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position expressed on ECEF coordinates and orientation with respect to NED axes.
    void
    setEcefPositionAndNedOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position expressed on ECEF coordinates and orientation with respect to NED axes.
    void
    setEcefPositionAndNedOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position expressed on ECEF coordinates and orientation with respect to NED axes.
    void
    setFixKinematicsEnabled(boolean fixKinematics)
    Specifies whether measured kinematics must be fixed or not.
    void
    Sets listener to handle events raised by this estimator.
    void
    setNedC(com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets current body orientation as a transformation from body to NED coordinates.
    void
    setNedPosition(double latitude, double longitude, double height)
    Sets current body position expressed in NED coordinates.
    void
    setNedPosition(com.irurueta.navigation.frames.NEDPosition position)
    Sets current body position expressed in NED coordinates.
    void
    setNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height)
    Sets current body position expressed in NED coordinates.
    void
    setNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height)
    Sets current body position expressed in NED coordinates.
    void
    setNedPositionAndEcefOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
    void
    setNedPositionAndEcefOrientation(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
    void
    setNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
    void
    setNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation ecefC)
    Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
    void
    setNedPositionAndNedOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position and orientation both expressed on NED coordinates.
    void
    setNedPositionAndNedOrientation(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position and orientation both expressed on NED coordinates.
    void
    setNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position and orientation both expressed on NED coordinates.
    void
    setNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation nedC)
    Sets position and orientation both expressed on NED coordinates.
    void
    setTimeInterval(double timeInterval)
    Sets a time interval between body kinematics (IMU acceleration and gyroscope) samples expressed in seconds (s).
    void
    setTimeInterval(com.irurueta.units.Time timeInterval)
    Sets time interval between body kinematics (IMU acceleration and gyroscope) samples.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DEFAULT_DRIFT_PERIOD_SAMPLES

      public static final int DEFAULT_DRIFT_PERIOD_SAMPLES
      Number of samples to be used by default on each drift period.
      See Also:
    • listener

      private RandomWalkEstimatorListener listener
      Listener to handle events raised by this estimator.
    • fixer

      private final com.irurueta.navigation.inertial.calibration.BodyKinematicsFixer fixer
      Fixes body kinematics measurements using accelerometer and gyroscope calibration data to fix measurements.
    • biasEstimator

      private final com.irurueta.navigation.inertial.calibration.bias.BodyKinematicsBiasEstimator biasEstimator
      Estimates bias for fixed body kinematics measurements to determine further bias variations while the IMU body remains static.
    • driftEstimator

      private final DriftEstimator driftEstimator
      Estimates amount of position, velocity and orientation drift.
    • fixedKinematics

      private final com.irurueta.navigation.inertial.BodyKinematics fixedKinematics
      Instance containing the last fixed body kinematics to be reused.
    • fixKinematics

      private boolean fixKinematics
      Indicates whether measured kinematics must be fixed or not. When enabled, provided calibration data is used; otherwise it is ignored. By default, this is enabled.
    • driftPeriodSamples

      private int driftPeriodSamples
      Number of samples to be used on each drift period.
    • running

      private boolean running
      Indicates whether this estimator is running or not.
    • numberOfProcessedDriftPeriods

      private int numberOfProcessedDriftPeriods
      Number of drift periods that have been processed.
    • accelerometerBiasPSD

      private double accelerometerBiasPSD
      Accelerometer bias random walk PSD (Power Spectral Density) expressed in (m^2 * s^-5).
    • gyroBiasPSD

      private double gyroBiasPSD
      Gyro bias random walk PSD (Power Spectral Density) expressed in (rad^2 * s^-3).
    • avgPositionDrift

      private double avgPositionDrift
      Average position drift expressed in meters (m). This gives a sign of position accuracy.
    • avgVelocityDrift

      private double avgVelocityDrift
      Average velocity drift expressed in meters per second (m/s).
    • avgAttitudeDrift

      private double avgAttitudeDrift
      Average attitude drift expressed in radians (rad).
    • varPositionDrift

      private double varPositionDrift
      Position variance expressed in square meters (m^2).
    • varVelocityDrift

      private double varVelocityDrift
      Velocity variance expressed in (m^2/s^2).
    • varAttitudeDrift

      private double varAttitudeDrift
      Attitude variance expressed in squared radians (rad^2).
    • accelerationTriad

      private final com.irurueta.navigation.inertial.calibration.AccelerationTriad accelerationTriad
      Contains acceleration triad to be reused for bias norm estimation. This is reused for efficiency.
    • angularSpeedTriad

      private final com.irurueta.navigation.inertial.calibration.AngularSpeedTriad angularSpeedTriad
      Contains angular speed triad to be reused for bias norm estimation. This is reused for efficiency.
  • Constructor Details

    • RandomWalkEstimator

      public RandomWalkEstimator()
      Constructor.
    • RandomWalkEstimator

      public RandomWalkEstimator(RandomWalkEstimatorListener listener)
      Constructor.
      Parameters:
      listener - listener to handle events.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices do not have a proper size.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices do not have a proper size.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices do not have a proper size.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener) throws com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices do not have a proper size.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if provided, matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if provided, matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set expressed in meters per squared second (m/s`2). Must be 3x1.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set expressed in radians per second (rad/s). Must be 3x1.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
    • RandomWalkEstimator

      public RandomWalkEstimator(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, com.irurueta.algebra.Matrix gg, double timeInterval, RandomWalkEstimatorListener listener) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.algebra.AlgebraException
      Constructor.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      ba - acceleration bias to be set.
      ma - acceleration cross-coupling errors matrix. Must be 3x3.
      bg - angular speed bias to be set.
      mg - angular speed cross-coupling errors matrix. Must be 3x3.
      gg - angular speed g-dependent cross-biases matrix. Must be 3x3.
      timeInterval - time interval between body kinematics samples expressed in seconds (s).
      listener - listener to handle events.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.algebra.AlgebraException - if provided cross-coupling matrices cannot be inverted.
      IllegalArgumentException - if any of the provided matrices are not 3x3.
  • Method Details

    • getListener

      public RandomWalkEstimatorListener getListener()
      Gets listener to handle events raised by this estimator.
      Returns:
      listener to handle events raised by this estimator.
    • setListener

      public void setListener(RandomWalkEstimatorListener listener) throws com.irurueta.navigation.LockedException
      Sets listener to handle events raised by this estimator.
      Parameters:
      listener - listener to handle events raised by this estimator.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBias

      public com.irurueta.algebra.Matrix getAccelerationBias()
      Gets acceleration bias values expressed in meters per squared second (m/s^2).
      Returns:
      bias values expressed in meters per squared second.
    • getAccelerationBias

      public void getAccelerationBias(com.irurueta.algebra.Matrix result)
      Gets acceleration bias values expressed in meters per squared second (m/s^2).
      Parameters:
      result - instance where the result will be stored.
    • setAccelerationBias

      public void setAccelerationBias(com.irurueta.algebra.Matrix bias) throws com.irurueta.navigation.LockedException
      Sets acceleration bias values expressed in meters per squared second (m/s^2).
      Parameters:
      bias - bias values expressed in meters per squared second. Must be 3x1.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      IllegalArgumentException - if matrix is not 3x1.
    • getAccelerationBiasArray

      public double[] getAccelerationBiasArray()
      Gets acceleration bias values expressed in meters per squared second (m/s^2).
      Returns:
      bias values expressed in meters per squared second.
    • getAccelerationBiasArray

      public void getAccelerationBiasArray(double[] result)
      Gets acceleration bias values expressed in meters per squared second (m/s^2).
      Parameters:
      result - instance where result data will be stored.
      Throws:
      IllegalArgumentException - if provided array does not have length 3.
    • setAccelerationBias

      public void setAccelerationBias(double[] bias) throws com.irurueta.navigation.LockedException
      Sets acceleration bias values expressed in meters per squared second (m/s^2).
      Parameters:
      bias - bias values expressed in meters per squared second (m/s^2). Must have length 3.
      Throws:
      IllegalArgumentException - if provided array does not have length 3.
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBiasAsTriad

      public com.irurueta.navigation.inertial.calibration.AccelerationTriad getAccelerationBiasAsTriad()
      Gets acceleration bias.
      Returns:
      acceleration bias.
    • getAccelerationBiasAsTriad

      public void getAccelerationBiasAsTriad(com.irurueta.navigation.inertial.calibration.AccelerationTriad result)
      Gets acceleration bias.
      Parameters:
      result - instance where the result will be stored.
    • setAccelerationBias

      public void setAccelerationBias(com.irurueta.navigation.inertial.calibration.AccelerationTriad bias) throws com.irurueta.navigation.LockedException
      Sets acceleration bias.
      Parameters:
      bias - acceleration bias to be set.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBiasX

      public double getAccelerationBiasX()
      Gets acceleration x-coordinate of bias expressed in meters per squared second (m/s^2).
      Returns:
      x-coordinate of bias expressed in meters per squared second (m/s^2).
    • setAccelerationBiasX

      public void setAccelerationBiasX(double biasX) throws com.irurueta.navigation.LockedException
      Sets acceleration x-coordinate of bias expressed in meters per squared second (m/s^2).
      Parameters:
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBiasY

      public double getAccelerationBiasY()
      Gets acceleration y-coordinate of bias expressed in meters per squared second (m/s^2).
      Returns:
      y-coordinate of bias expressed in meters per squared second (m/s^2).
    • setAccelerationBiasY

      public void setAccelerationBiasY(double biasY) throws com.irurueta.navigation.LockedException
      Sets acceleration y-coordinate of bias expressed in meters per squared second (m/s^2).
      Parameters:
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBiasZ

      public double getAccelerationBiasZ()
      Gets acceleration z-coordinate of bias expressed in meters per squared second (m/s^2).
      Returns:
      z-coordinate of bias expressed in meters per squared second (m/s^2).
    • setAccelerationBiasZ

      public void setAccelerationBiasZ(double biasZ) throws com.irurueta.navigation.LockedException
      Sets acceleration z-coordinate of bias expressed in meters per squared second (m/s^2).
      Parameters:
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • setAccelerationBias

      public void setAccelerationBias(double biasX, double biasY, double biasZ) throws com.irurueta.navigation.LockedException
      Sets acceleration coordinates of bias expressed in meters per squared second (m/s^2).
      Parameters:
      biasX - x-coordinate of bias.
      biasY - y-coordinate of bias.
      biasZ - z-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBiasXAsAcceleration

      public com.irurueta.units.Acceleration getAccelerationBiasXAsAcceleration()
      Gets acceleration x-coordinate of bias.
      Returns:
      acceleration x-coordinate of bias.
    • getAccelerationBiasXAsAcceleration

      public void getAccelerationBiasXAsAcceleration(com.irurueta.units.Acceleration result)
      Gets acceleration x-coordinate of bias.
      Parameters:
      result - instance where the result will be stored.
    • setAccelerationBiasX

      public void setAccelerationBiasX(com.irurueta.units.Acceleration biasX) throws com.irurueta.navigation.LockedException
      Sets acceleration x-coordinate of bias.
      Parameters:
      biasX - acceleration x-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBiasYAsAcceleration

      public com.irurueta.units.Acceleration getAccelerationBiasYAsAcceleration()
      Gets acceleration y-coordinate of bias.
      Returns:
      acceleration y-coordinate of bias.
    • getAccelerationBiasYAsAcceleration

      public void getAccelerationBiasYAsAcceleration(com.irurueta.units.Acceleration result)
      Gets acceleration y-coordinate of bias.
      Parameters:
      result - instance where the result will be stored.
    • setAccelerationBiasY

      public void setAccelerationBiasY(com.irurueta.units.Acceleration biasY) throws com.irurueta.navigation.LockedException
      Sets acceleration y-coordinate of bias.
      Parameters:
      biasY - acceleration y-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationBiasZAsAcceleration

      public com.irurueta.units.Acceleration getAccelerationBiasZAsAcceleration()
      Gets acceleration z-coordinate of bias.
      Returns:
      acceleration z-coordinate of bias.
    • getAccelerationBiasZAsAcceleration

      public void getAccelerationBiasZAsAcceleration(com.irurueta.units.Acceleration result)
      Gets acceleration z-coordinate of bias.
      Parameters:
      result - instance where the result will be stored.
    • setAccelerationBiasZ

      public void setAccelerationBiasZ(com.irurueta.units.Acceleration biasZ) throws com.irurueta.navigation.LockedException
      Sets acceleration z-coordinate of bias.
      Parameters:
      biasZ - z-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • setAccelerationBias

      public void setAccelerationBias(com.irurueta.units.Acceleration biasX, com.irurueta.units.Acceleration biasY, com.irurueta.units.Acceleration biasZ) throws com.irurueta.navigation.LockedException
      Sets acceleration coordinates of bias.
      Parameters:
      biasX - x-coordinate of bias.
      biasY - y-coordinate of bias.
      biasZ - z-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAccelerationCrossCouplingErrors

      public com.irurueta.algebra.Matrix getAccelerationCrossCouplingErrors()
      Gets acceleration cross-coupling errors matrix.
      Returns:
      acceleration cross-coupling errors matrix.
    • getAccelerationCrossCouplingErrors

      public void getAccelerationCrossCouplingErrors(com.irurueta.algebra.Matrix result)
      Gets acceleration cross-coupling errors matrix.
      Parameters:
      result - instance where the result will be stored.
    • setAccelerationCrossCouplingErrors

      public void setAccelerationCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException, com.irurueta.navigation.LockedException
      Sets acceleration cross-coupling errors matrix.
      Parameters:
      crossCouplingErrors - acceleration cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if matrix cannot be inverted.
      IllegalArgumentException - if matrix is not 3x3.
    • getAccelerationSx

      public double getAccelerationSx()
      Gets acceleration x scaling factor.
      Returns:
      x scaling factor.
    • setAccelerationSx

      public void setAccelerationSx(double sx) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration x scaling factor.
      Parameters:
      sx - x scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationSy

      public double getAccelerationSy()
      Gets acceleration y scaling factor.
      Returns:
      y scaling factor.
    • setAccelerationSy

      public void setAccelerationSy(double sy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration y scaling factor.
      Parameters:
      sy - y scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationSz

      public double getAccelerationSz()
      Gets acceleration z scaling factor.
      Returns:
      z scaling factor.
    • setAccelerationSz

      public void setAccelerationSz(double sz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration z scaling factor.
      Parameters:
      sz - z scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationMxy

      public double getAccelerationMxy()
      Gets acceleration x-y cross-coupling error.
      Returns:
      acceleration x-y cross-coupling error.
    • setAccelerationMxy

      public void setAccelerationMxy(double mxy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration x-y cross-coupling error.
      Parameters:
      mxy - acceleration x-y cross-coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationMxz

      public double getAccelerationMxz()
      Gets acceleration x-z cross-coupling error.
      Returns:
      acceleration x-z cross-coupling error.
    • setAccelerationMxz

      public void setAccelerationMxz(double mxz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration x-z cross-coupling error.
      Parameters:
      mxz - acceleration x-z cross-coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationMyx

      public double getAccelerationMyx()
      Gets acceleration y-x cross-coupling error.
      Returns:
      acceleration y-x cross-coupling error.
    • setAccelerationMyx

      public void setAccelerationMyx(double myx) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration y-x cross-coupling error.
      Parameters:
      myx - acceleration y-x cross-coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationMyz

      public double getAccelerationMyz()
      Gets acceleration y-z cross-coupling error.
      Returns:
      y-z cross coupling error.
    • setAccelerationMyz

      public void setAccelerationMyz(double myz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration y-z cross-coupling error.
      Parameters:
      myz - y-z cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationMzx

      public double getAccelerationMzx()
      Gets acceleration z-x cross-coupling error.
      Returns:
      acceleration z-x cross-coupling error.
    • setAccelerationMzx

      public void setAccelerationMzx(double mzx) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration z-x cross-coupling error.
      Parameters:
      mzx - acceleration z-x cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • getAccelerationMzy

      public double getAccelerationMzy()
      Gets acceleration z-y cross-coupling error.
      Returns:
      acceleration z-y cross-coupling error.
    • setAccelerationMzy

      public void setAccelerationMzy(double mzy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration z-y cross-coupling error.
      Parameters:
      mzy - acceleration z-y cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes acceleration cross-coupling matrix non-invertible.
    • setAccelerationScalingFactors

      public void setAccelerationScalingFactors(double sx, double sy, double sz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration scaling factors.
      Parameters:
      sx - x scaling factor.
      sy - y scaling factor.
      sz - z scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided values make acceleration cross-coupling matrix non-invertible.
    • setAccelerationCrossCouplingErrors

      public void setAccelerationCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration cross-coupling errors.
      Parameters:
      mxy - x-y cross coupling error.
      mxz - x-z cross coupling error.
      myx - y-x cross coupling error.
      myz - y-z cross coupling error.
      mzx - z-x cross coupling error.
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided values make acceleration cross-coupling matrix non-invertible.
    • setAccelerationScalingFactorsAndCrossCouplingErrors

      public void setAccelerationScalingFactorsAndCrossCouplingErrors(double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets acceleration scaling factors and cross-coupling errors.
      Parameters:
      sx - x scaling factor.
      sy - y scaling factor.
      sz - z scaling factor.
      mxy - x-y cross coupling error.
      mxz - x-z cross coupling error.
      myx - y-x cross coupling error.
      myz - y-z cross coupling error.
      mzx - z-x cross coupling error.
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided values make acceleration cross-coupling matrix non-invertible.
    • getAngularSpeedBias

      public com.irurueta.algebra.Matrix getAngularSpeedBias()
      Gets angular speed bias values expressed in radians per second (rad/s).
      Returns:
      angular speed bias values expressed in radians per second.
    • getAngularSpeedBias

      public void getAngularSpeedBias(com.irurueta.algebra.Matrix result)
      Gets angular speed bias values expressed in radians per second (rad/s).
      Parameters:
      result - instance where the result will be stored.
    • setAngularSpeedBias

      public void setAngularSpeedBias(com.irurueta.algebra.Matrix bias) throws com.irurueta.navigation.LockedException
      Sets angular speed bias values expressed in radians per second (rad/s).
      Parameters:
      bias - bias values expressed in radians per second. Must be 3x1.
      Throws:
      IllegalArgumentException - if matrix is not 3x1.
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasArray

      public double[] getAngularSpeedBiasArray()
      Gets angular speed bias values expressed in radians per second (rad/s).
      Returns:
      bias values expressed in radians per second.
    • getAngularSpeedBiasArray

      public void getAngularSpeedBiasArray(double[] result)
      Gets angular speed bias values expressed in radians per second (rad/s).
      Parameters:
      result - instance where result data will be stored.
      Throws:
      IllegalArgumentException - if provided array does not have length 3.
    • setAngularSpeedBias

      public void setAngularSpeedBias(double[] bias) throws com.irurueta.navigation.LockedException
      Sets angular speed bias values expressed in radians per second (rad/s).
      Parameters:
      bias - bias values expressed in radians per second (rad/s). Must have length 3.
      Throws:
      IllegalArgumentException - if provided array does not have length 3.
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasAsTriad

      public com.irurueta.navigation.inertial.calibration.AngularSpeedTriad getAngularSpeedBiasAsTriad()
      Gets angular speed bias.
      Returns:
      angular speed bias.
    • getAngularSpeedBiasAsTriad

      public void getAngularSpeedBiasAsTriad(com.irurueta.navigation.inertial.calibration.AngularSpeedTriad result)
      Gets angular speed bias.
      Parameters:
      result - instance where the result will be stored.
    • setAngularSpeedBias

      public void setAngularSpeedBias(com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bias) throws com.irurueta.navigation.LockedException
      Sets angular speed bias.
      Parameters:
      bias - angular speed bias to be set.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasX

      public double getAngularSpeedBiasX()
      Gets angular speed x-coordinate of bias expressed in radians per second (rad/s).
      Returns:
      x-coordinate of bias expressed in radians per second (rad/s).
    • setAngularSpeedBiasX

      public void setAngularSpeedBiasX(double biasX) throws com.irurueta.navigation.LockedException
      Sets angular speed x-coordinate of bias expressed in radians per second (rad/s).
      Parameters:
      biasX - x-coordinate of bias expressed in radians per second (rad/s).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasY

      public double getAngularSpeedBiasY()
      Gets angular speed y-coordinate of bias expressed in radians per second (rad/s).
      Returns:
      y-coordinate of bias expressed in radians per second (rad/s).
    • setAngularSpeedBiasY

      public void setAngularSpeedBiasY(double biasY) throws com.irurueta.navigation.LockedException
      Sets angular speed y-coordinate of bias expressed in radians per second (rad/s).
      Parameters:
      biasY - y-coordinate of bias expressed in radians per second (rad/s).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasZ

      public double getAngularSpeedBiasZ()
      Gets angular speed z-coordinate of bias expressed in radians per second (rad/s).
      Returns:
      z-coordinate of bias expressed in radians per second (rad/s).
    • setAngularSpeedBiasZ

      public void setAngularSpeedBiasZ(double biasZ) throws com.irurueta.navigation.LockedException
      Sets angular speed z-coordinate of bias expressed in radians per second (rad/s).
      Parameters:
      biasZ - z-coordinate of bias expressed in radians per second (rad/s).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • setAngularSpeedBias

      public void setAngularSpeedBias(double biasX, double biasY, double biasZ) throws com.irurueta.navigation.LockedException
      Sets angular speed coordinates of bias expressed in radians per second (rad/s).
      Parameters:
      biasX - x-coordinate of bias.
      biasY - y-coordinate of bias.
      biasZ - z-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasXAsAngularSpeed

      public com.irurueta.units.AngularSpeed getAngularSpeedBiasXAsAngularSpeed()
      Gets angular speed x-coordinate of bias.
      Returns:
      x-coordinate of bias.
    • getAngularSpeedBiasXAsAngularSpeed

      public void getAngularSpeedBiasXAsAngularSpeed(com.irurueta.units.AngularSpeed result)
      Gets angular speed x-coordinate of bias.
      Parameters:
      result - instance where the result will be stored.
    • setAngularSpeedBiasX

      public void setAngularSpeedBiasX(com.irurueta.units.AngularSpeed biasX) throws com.irurueta.navigation.LockedException
      Sets angular speed x-coordinate of bias.
      Parameters:
      biasX - x-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasYAsAngularSpeed

      public com.irurueta.units.AngularSpeed getAngularSpeedBiasYAsAngularSpeed()
      Gets angular speed y-coordinate of bias.
      Returns:
      y-coordinate of bias.
    • getAngularSpeedBiasYAsAngularSpeed

      public void getAngularSpeedBiasYAsAngularSpeed(com.irurueta.units.AngularSpeed result)
      Gets angular speed y-coordinate of bias.
      Parameters:
      result - instance where the result will be stored.
    • setAngularSpeedBiasY

      public void setAngularSpeedBiasY(com.irurueta.units.AngularSpeed biasY) throws com.irurueta.navigation.LockedException
      Sets angular speed y-coordinate of bias.
      Parameters:
      biasY - y-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedBiasZAsAngularSpeed

      public com.irurueta.units.AngularSpeed getAngularSpeedBiasZAsAngularSpeed()
      Gets angular speed z-coordinate of bias.
      Returns:
      z-coordinate of bias.
    • getAngularSpeedBiasZAsAngularSpeed

      public void getAngularSpeedBiasZAsAngularSpeed(com.irurueta.units.AngularSpeed result)
      Gets angular speed z-coordinate of bias.
      Parameters:
      result - instance where the result will be stored.
    • setAngularSpeedBiasZ

      public void setAngularSpeedBiasZ(com.irurueta.units.AngularSpeed biasZ) throws com.irurueta.navigation.LockedException
      Sets angular speed z-coordinate of bias.
      Parameters:
      biasZ - z-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • setAngularSpeedBias

      public void setAngularSpeedBias(com.irurueta.units.AngularSpeed biasX, com.irurueta.units.AngularSpeed biasY, com.irurueta.units.AngularSpeed biasZ) throws com.irurueta.navigation.LockedException
      Sets angular speed coordinates of bias.
      Parameters:
      biasX - x-coordinate of bias.
      biasY - y-coordinate of bias.
      biasZ - z-coordinate of bias.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedCrossCouplingErrors

      public com.irurueta.algebra.Matrix getAngularSpeedCrossCouplingErrors()
      Gets angular speed cross-coupling errors matrix.
      Returns:
      cross coupling errors matrix.
    • getAngularSpeedCrossCouplingErrors

      public void getAngularSpeedCrossCouplingErrors(com.irurueta.algebra.Matrix result)
      Gets angular speed cross-coupling errors matrix.
      Parameters:
      result - instance where the result will be stored.
    • setAngularSpeedCrossCouplingErrors

      public void setAngularSpeedCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException, com.irurueta.navigation.LockedException
      Sets angular speed cross-coupling errors matrix.
      Parameters:
      crossCouplingErrors - cross-coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.algebra.AlgebraException - if matrix cannot be inverted.
      IllegalArgumentException - if matrix is not 3x3.
      com.irurueta.navigation.LockedException - if estimator is running.
    • getAngularSpeedSx

      public double getAngularSpeedSx()
      Gets angular speed x scaling factor.
      Returns:
      x scaling factor.
    • setAngularSpeedSx

      public void setAngularSpeedSx(double sx) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed x scaling factor.
      Parameters:
      sx - x scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed-cross coupling matrix non-invertible.
    • getAngularSpeedSy

      public double getAngularSpeedSy()
      Gets angular speed y scaling factor.
      Returns:
      y scaling factor.
    • setAngularSpeedSy

      public void setAngularSpeedSy(double sy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed y-scaling factor.
      Parameters:
      sy - y scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedSz

      public double getAngularSpeedSz()
      Gets angular speed z scaling factor.
      Returns:
      z scaling factor.
    • setAngularSpeedSz

      public void setAngularSpeedSz(double sz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed z scaling factor.
      Parameters:
      sz - z scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedMxy

      public double getAngularSpeedMxy()
      Gets angular speed x-y cross-coupling error.
      Returns:
      x-y cross coupling error.
    • setAngularSpeedMxy

      public void setAngularSpeedMxy(double mxy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed x-y cross-coupling error.
      Parameters:
      mxy - x-y cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedMxz

      public double getAngularSpeedMxz()
      Gets angular speed x-z cross-coupling error.
      Returns:
      x-z cross coupling error.
    • setAngularSpeedMxz

      public void setAngularSpeedMxz(double mxz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed x-z cross-coupling error.
      Parameters:
      mxz - x-z cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedMyx

      public double getAngularSpeedMyx()
      Gets angular speed y-x cross-coupling error.
      Returns:
      y-x cross coupling error.
    • setAngularSpeedMyx

      public void setAngularSpeedMyx(double myx) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed y-x cross-coupling error.
      Parameters:
      myx - y-x cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedMyz

      public double getAngularSpeedMyz()
      Gets angular speed y-z cross-coupling error.
      Returns:
      y-z cross coupling error.
    • setAngularSpeedMyz

      public void setAngularSpeedMyz(double myz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed y-z cross-coupling error.
      Parameters:
      myz - y-z cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedMzx

      public double getAngularSpeedMzx()
      Gets angular speed z-x cross-coupling error.
      Returns:
      z-x cross coupling error.
    • setAngularSpeedMzx

      public void setAngularSpeedMzx(double mzx) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed z-x cross-coupling error.
      Parameters:
      mzx - z-x cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedMzy

      public double getAngularSpeedMzy()
      Gets angular speed z-y cross-coupling error.
      Returns:
      z-y cross coupling error.
    • setAngularSpeedMzy

      public void setAngularSpeedMzy(double mzy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed z-y cross-coupling error.
      Parameters:
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided value makes angular speed cross-coupling matrix non-invertible.
    • setAngularSpeedScalingFactors

      public void setAngularSpeedScalingFactors(double sx, double sy, double sz) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed scaling factors.
      Parameters:
      sx - x scaling factor.
      sy - y scaling factor.
      sz - z scaling factor.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided values make angular speed cross-coupling matrix non-invertible.
    • setAngularSpeedCrossCouplingErrors

      public void setAngularSpeedCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed cross-coupling errors.
      Parameters:
      mxy - x-y cross coupling error.
      mxz - x-z cross coupling error.
      myx - y-x cross coupling error.
      myz - y-z cross coupling error.
      mzx - z-x cross coupling error.
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided values make angular speed cross-coupling matrix non-invertible.
    • setAngularSpeedScalingFactorsAndCrossCouplingErrors

      public void setAngularSpeedScalingFactorsAndCrossCouplingErrors(double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.navigation.LockedException, com.irurueta.algebra.AlgebraException
      Sets angular speed scaling factors and cross-coupling errors.
      Parameters:
      sx - x scaling factor.
      sy - y scaling factor.
      sz - z scaling factor.
      mxy - x-y cross coupling error.
      mxz - x-z cross coupling error.
      myx - y-x cross coupling error.
      myz - y-z cross coupling error.
      mzx - z-x cross coupling error.
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is running.
      com.irurueta.algebra.AlgebraException - if provided values make angular speed cross-coupling matrix non-invertible.
    • getAngularSpeedGDependantCrossBias

      public com.irurueta.algebra.Matrix getAngularSpeedGDependantCrossBias()
      Gets angular speed g-dependant cross biases matrix.
      Returns:
      g-dependant cross biases matrix.
    • getAngularSpeedGDependantCrossBias

      public void getAngularSpeedGDependantCrossBias(com.irurueta.algebra.Matrix result)
      Gets angular speed g-dependant cross biases matrix.
      Parameters:
      result - instance where the result will be stored.
    • setAngularSpeedGDependantCrossBias

      public void setAngularSpeedGDependantCrossBias(com.irurueta.algebra.Matrix gDependantCrossBias) throws com.irurueta.navigation.LockedException
      Sets angular speed g-dependant cross biases matrix.
      Parameters:
      gDependantCrossBias - g-dependant cross biases matrix.
      Throws:
      IllegalArgumentException - if provided, matrix is not 3x3.
      com.irurueta.navigation.LockedException - if estimator is running.
    • getTimeInterval

      public double getTimeInterval()
      Gets the time interval between body kinematics (IMU acceleration and gyroscope) samples expressed in seconds (s).
      Returns:
      time interval between body kinematics samples.
    • setTimeInterval

      public void setTimeInterval(double timeInterval) throws com.irurueta.navigation.LockedException
      Sets a time interval between body kinematics (IMU acceleration and gyroscope) samples expressed in seconds (s).
      Parameters:
      timeInterval - time interval between body kinematics samples.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getTimeIntervalAsTime

      public com.irurueta.units.Time getTimeIntervalAsTime()
      Gets time interval between body kinematics (IMU acceleration and gyroscope) samples.
      Returns:
      time interval between body kinematics samples.
    • getTimeIntervalAsTime

      public void getTimeIntervalAsTime(com.irurueta.units.Time result)
      Gets time interval between body kinematics (IMU acceleration and gyroscope) samples.
      Parameters:
      result - instance where the time interval will be stored.
    • setTimeInterval

      public void setTimeInterval(com.irurueta.units.Time timeInterval) throws com.irurueta.navigation.LockedException
      Sets time interval between body kinematics (IMU acceleration and gyroscope) samples.
      Parameters:
      timeInterval - time interval between body kinematics samples.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getEcefPosition

      public com.irurueta.navigation.frames.ECEFPosition getEcefPosition()
      Gets current body position expressed in ECEF coordinates.
      Returns:
      current body position expressed in ECEF coordinates.
    • getEcefPosition

      public void getEcefPosition(com.irurueta.navigation.frames.ECEFPosition result)
      Gets current body position expressed in ECEF coordinates.
      Parameters:
      result - instance where current body position will be stored.
    • setEcefPosition

      public void setEcefPosition(com.irurueta.navigation.frames.ECEFPosition position) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in ECEF coordinates.
      Parameters:
      position - current body position to be set.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • setEcefPosition

      public void setEcefPosition(double x, double y, double z) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in ECEF coordinates.
      Parameters:
      x - x position resolved around ECEF axes and expressed in meters (m).
      y - y position resolved around ECEF axes and expressed in meters (m).
      z - z position resolved around ECEF axes and expressed in meters (m).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • setEcefPosition

      public void setEcefPosition(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in ECEF coordinates.
      Parameters:
      x - x position resolved around ECEF axes.
      y - y position resolved around ECEF axes.
      z - z position resolved around ECEF axes.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • setEcefPosition

      public void setEcefPosition(com.irurueta.geometry.Point3D position) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in ECEF coordinates.
      Parameters:
      position - position resolved around ECEF axes and expressed in meters (m).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getEcefFrame

      public com.irurueta.navigation.frames.ECEFFrame getEcefFrame()
      Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates. Frame also contains body velocity, but it is always assumed to be zero during calibration.
      Returns:
      ECEF frame containing current body position and orientation resolved around ECEF axes.
    • getEcefFrame

      public void getEcefFrame(com.irurueta.navigation.frames.ECEFFrame result)
      Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates. Frame also contains body velocity, but it is always assumed to be zero during calibration.
      Parameters:
      result - instance where ECEF frame containing current body position and orientation resolved around ECEF axes will be stored.
    • getNedFrame

      public com.irurueta.navigation.frames.NEDFrame getNedFrame()
      Gets NED frame containing current body position and orientation expressed in NED coordinates. Frame also contains body velocity, but it is always assumed to be zero during calibration.
      Returns:
      NED frame containing current body position and orientation resolved around NED axes.
    • getNedFrame

      public void getNedFrame(com.irurueta.navigation.frames.NEDFrame result)
      Gets NED frame containing current body position and orientation expressed in NED coordinates. Frame also contains body velocity, but it is always assumed to be zero during calibration.
      Parameters:
      result - instance where NED frame containing current body position and orientation resolved around NED axes will be stored.
    • getNedPosition

      public com.irurueta.navigation.frames.NEDPosition getNedPosition()
      Gets current body position expressed in NED coordinates.
      Returns:
      current body position expressed in NED coordinates.
    • getNedPosition

      public void getNedPosition(com.irurueta.navigation.frames.NEDPosition result)
      Gets current body position expressed in NED coordinates.
      Parameters:
      result - instance where current body position will be stored.
    • setNedPosition

      public void setNedPosition(com.irurueta.navigation.frames.NEDPosition position) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in NED coordinates.
      Parameters:
      position - current body position to be set.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • setNedPosition

      public void setNedPosition(double latitude, double longitude, double height) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in NED coordinates.
      Parameters:
      latitude - latitude NED coordinate expressed in radians (rad).
      longitude - longitude NED coordinate expressed in radians (rad).
      height - height NED coordinate expressed in meters (m).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • setNedPosition

      public void setNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in NED coordinates.
      Parameters:
      latitude - latitude NED coordinate.
      longitude - longitude NED coordinate.
      height - height NED coordinate expressed in meters (m).
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • setNedPosition

      public void setNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) throws com.irurueta.navigation.LockedException
      Sets current body position expressed in NED coordinates.
      Parameters:
      latitude - latitude NED coordinate.
      longitude - longitude NED coordinate.
      height - height NED coordinate.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getEcefC

      public com.irurueta.navigation.frames.CoordinateTransformation getEcefC()
      Gets current body orientation as a transformation from body to ECEF coordinates. Notice that returned orientation refers to ECEF Earth axes, which means that orientation is not relative to the ground or horizon at current body position. Typically, it is more convenient to use getNedC() to get orientation relative to the ground or horizon at current body position. For instance, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.
      Returns:
      current body orientation resolved on ECEF axes.
    • getEcefC

      public void getEcefC(com.irurueta.navigation.frames.CoordinateTransformation result)
      Gets current body orientation as a transformation from body to ECEF coordinates. Notice that returned orientation refers to ECEF Earth axes, which means that orientation is not relative to the ground or horizon at current body position. Typically, it is more convenient to use getNedC() to get orientation relative to the ground or horizon at current body position. For instance, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.
      Parameters:
      result - instance where current body orientation resolved on ECEF axes will be stored.
    • setEcefC

      public void setEcefC(com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets current body orientation as a transformation from body to ECEF coordinates. Notice that ECEF orientation refers to ECEF Earth axes, which means that orientation is not relative to the ground or horizon at current body position. Typically, it is more convenient to use setNedC(CoordinateTransformation) to specify orientation relative to the ground or horizon at current body position. For instance, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.
      Parameters:
      ecefC - body orientation resolved on ECEF axes to be set.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getNedC

      public com.irurueta.navigation.frames.CoordinateTransformation getNedC()
      Gets current body orientation as a transformation from body to NED coordinates. Notice that returned orientation refers to the current local position. This means that two equal NED orientations will transform into different ECEF orientations if the body is located at different positions. As a reference, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.
      Returns:
      current body orientation resolved on NED axes.
    • getNedC

      public void getNedC(com.irurueta.navigation.frames.CoordinateTransformation result)
      Gets current body orientation as a transformation from body to NED coordinates. Notice that returned orientation refers to the current local position. This means that two equal NED orientations will transform into different ECEF orientations if the body is located at different positions. As a reference, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.
      Parameters:
      result - instance where current body orientation resolved on NED axes will be stored.
    • setNedC

      public void setNedC(com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets current body orientation as a transformation from body to NED coordinates. Notice that the provided orientation refers to the current local position. This means that two equal NED orientations will transform into different ECEF orientations if the body is located at different positions. As a reference, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.
      Parameters:
      nedC - orientation resolved on NED axes to be set.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • setNedPositionAndNedOrientation

      public void setNedPositionAndNedOrientation(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on NED coordinates.
      Parameters:
      nedPosition - position expressed on NED coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setNedPositionAndNedOrientation

      public void setNedPositionAndNedOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on NED coordinates.
      Parameters:
      latitude - latitude expressed in radians (rad).
      longitude - longitude expressed in radians (rad).
      height - height expressed in meters (m).
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setNedPositionAndNedOrientation

      public void setNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on NED coordinates.
      Parameters:
      latitude - latitude.
      longitude - longitude.
      height - height expressed in meters (m).
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setNedPositionAndNedOrientation

      public void setNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on NED coordinates.
      Parameters:
      latitude - latitude.
      longitude - longitude.
      height - height.
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndEcefOrientation

      public void setEcefPositionAndEcefOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on ECEF coordinates.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndEcefOrientation

      public void setEcefPositionAndEcefOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on ECEF coordinates.
      Parameters:
      x - x coordinate of ECEF position expressed in meters (m).
      y - y coordinate of ECEF position expressed in meters (m).
      z - z coordinate of ECEF position expressed in meters (m).
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndEcefOrientation

      public void setEcefPositionAndEcefOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on ECEF coordinates.
      Parameters:
      x - x coordinate of ECEF position.
      y - y coordinate of ECEF position.
      z - z coordinate of ECEF position.
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndEcefOrientation

      public void setEcefPositionAndEcefOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position and orientation both expressed on ECEF coordinates.
      Parameters:
      position - position resolved around ECEF axes and expressed in meters (m).
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setNedPositionAndEcefOrientation

      public void setNedPositionAndEcefOrientation(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
      Parameters:
      position - position expressed on NED coordinates.
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setNedPositionAndEcefOrientation

      public void setNedPositionAndEcefOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
      Parameters:
      latitude - latitude expressed in radians (rad).
      longitude - longitude expressed in radians (rad).
      height - height expressed in meters (m).
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setNedPositionAndEcefOrientation

      public void setNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
      Parameters:
      latitude - latitude.
      longitude - longitude.
      height - height expressed in meters (m).
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setNedPositionAndEcefOrientation

      public void setNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on NED coordinates and orientation with respect to ECEF axes.
      Parameters:
      latitude - latitude.
      longitude - longitude.
      height - height.
      ecefC - body to ECEF coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if coordinate transformation is not from body to ECEF coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndNedOrientation

      public void setEcefPositionAndNedOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on ECEF coordinates and orientation with respect to NED axes. To preserve the provided orientation, the first position is set and then orientation is applied.
      Parameters:
      ecefPosition - position expressed on ECEF coordinates.
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndNedOrientation

      public void setEcefPositionAndNedOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on ECEF coordinates and orientation with respect to NED axes. To preserve the provided orientation, the first position is set and then orientation is applied.
      Parameters:
      x - x coordinate of ECEF position expressed in meters (m).
      y - y coordinate of ECEF position expressed in meters (m).
      z - z coordinate of ECEF position expressed in meters (m).
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndNedOrientation

      public void setEcefPositionAndNedOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on ECEF coordinates and orientation with respect to NED axes. To preserve the provided orientation, the first position is set and then orientation is applied.
      Parameters:
      x - x coordinate of ECEF position.
      y - y coordinate of ECEF position.
      z - z coordinate of ECEF position.
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • setEcefPositionAndNedOrientation

      public void setEcefPositionAndNedOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation nedC) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Sets position expressed on ECEF coordinates and orientation with respect to NED axes. To preserve the provided orientation, the first position is set and then orientation is applied.
      Parameters:
      position - position resolved around ECEF axes and expressed in meters (m).
      nedC - body to NED coordinate transformation indicating body orientation.
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException - if provided coordinate transformation is not from body to NED coordinates.
      com.irurueta.navigation.LockedException - if estimator is currently running.
      See Also:
    • getNumberOfProcessedSamples

      public int getNumberOfProcessedSamples()
      Gets the number of samples that have been processed so far.
      Returns:
      number of samples that have been processed so far.
    • getNumberOfProcessedDriftPeriods

      public int getNumberOfProcessedDriftPeriods()
      Gets the number of drift periods that have been processed.
      Returns:
      number of drift periods that have been processed.
    • getElapsedTimeSeconds

      public double getElapsedTimeSeconds()
      Gets amount of total elapsed time since the first processed measurement expressed in seconds (s).
      Returns:
      amount of total elapsed time.
    • getElapsedTime

      public com.irurueta.units.Time getElapsedTime()
      Gets the amount of total elapsed time since the first processed measurement.
      Returns:
      amount of total elapsed time.
    • getElapsedTime

      public void getElapsedTime(com.irurueta.units.Time result)
      Gets the amount of total elapsed time since the first processed measurement.
      Parameters:
      result - instance where the result will be stored.
    • isFixKinematicsEnabled

      public boolean isFixKinematicsEnabled()
      Indicates whether measured kinematics must be fixed or not. When enabled, provided calibration data is used; otherwise it is ignored. By default, this is enabled.
      Returns:
      indicates whether measured kinematics must be fixed or not.
    • setFixKinematicsEnabled

      public void setFixKinematicsEnabled(boolean fixKinematics) throws com.irurueta.navigation.LockedException
      Specifies whether measured kinematics must be fixed or not. When enabled, provided calibration data is used; otherwise it is ignored.
      Parameters:
      fixKinematics - true if measured kinematics must be fixed or not.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getDriftPeriodSamples

      public int getDriftPeriodSamples()
      Gets the number of samples to be used on each drift period.
      Returns:
      number of samples to be used on each drift period.
    • setDriftPeriodSamples

      public void setDriftPeriodSamples(int driftPeriodSamples) throws com.irurueta.navigation.LockedException
      Sets the number of samples to be used on each drift period.
      Parameters:
      driftPeriodSamples - number of samples to be used on each drift period.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
      IllegalArgumentException - if provided value is negative or zero.
    • getDriftPeriodSeconds

      public double getDriftPeriodSeconds()
      Gets the duration of each drift period expressed in seconds (s).
      Returns:
      duration of each drift period.
    • getDriftPeriod

      public com.irurueta.units.Time getDriftPeriod()
      Gets the duration of each drift period.
      Returns:
      duration of each drift period.
    • getDriftPeriod

      public void getDriftPeriod(com.irurueta.units.Time result)
      Gets the duration of each drift period.
      Parameters:
      result - instance where the result will be stored.
    • isRunning

      public boolean isRunning()
      Indicates whether this estimator is running or not.
      Returns:
      true if estimator is running, false otherwise.
    • isReady

      public boolean isReady()
      Indicates if estimator is ready to start processing additional kinematics measurements.
      Returns:
      true if ready, false otherwise.
    • addBodyKinematics

      public void addBodyKinematics(com.irurueta.navigation.inertial.BodyKinematics kinematics) throws com.irurueta.navigation.LockedException, RandomWalkEstimationException, com.irurueta.navigation.NotReadyException
      Adds a sample of measured body kinematics (accelerometer and gyroscope readings) obtained from an IMU, fixes their values and uses fixed values to estimate any additional existing bias or position and velocity variation while the IMU body remains static.
      Parameters:
      kinematics - measured body kinematics.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
      RandomWalkEstimationException - if estimation fails for some reason.
      com.irurueta.navigation.NotReadyException - if estimator is not ready.
    • reset

      public boolean reset() throws com.irurueta.navigation.LockedException
      Resets current estimator.
      Returns:
      true if estimator was successfully reset, false if no reset was needed.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getAccelerometerBiasPSD

      public double getAccelerometerBiasPSD()
      Gets estimated accelerometer bias random walk PSD (Power Spectral Density) expressed in (m^2 * s^-5). This can be used by INSLooselyCoupledKalmanConfig.
      Specified by:
      getAccelerometerBiasPSD in interface AccelerometerBiasRandomWalkSource
      Returns:
      accelerometer bias random walk PSD.
    • getGyroBiasPSD

      public double getGyroBiasPSD()
      Gets estimated gyro bias random walk PSD (Power Spectral Density) expressed in (rad^2 * s^-3). This can be used by INSLooselyCoupledKalmanConfig.
      Specified by:
      getGyroBiasPSD in interface GyroscopeBiasRandomWalkSource
      Returns:
      gyroscope bias random walk PSD.
    • getPositionNoiseVariance

      public double getPositionNoiseVariance()
      Gets estimated position noise variance expressed in square meters (m^2). This can be used by INSLooselyCoupledKalmanConfig.
      Returns:
      position variance.
    • getVelocityNoiseVariance

      public double getVelocityNoiseVariance()
      Gets estimated velocity noise variance expressed in (m^2/s^2). This can be used by INSLooselyCoupledKalmanConfig.
      Returns:
      velocity variance.
    • getAttitudeNoiseVariance

      public double getAttitudeNoiseVariance()
      Gets estimated attitude noise variance expressed in squared radians (rad^2).
      Returns:
      attitude variance.
    • getPositionNoiseStandardDeviation

      public double getPositionNoiseStandardDeviation()
      Gets standard deviation of position noise expressed in meters (m). This can be used by INSLooselyCoupledKalmanConfig.
      Specified by:
      getPositionNoiseStandardDeviation in interface PositionNoiseStandardDeviationSource
      Returns:
      standard deviation of position noise.
    • getPositionNoiseStandardDeviationAsDistance

      public com.irurueta.units.Distance getPositionNoiseStandardDeviationAsDistance()
      Gets standard deviation of position noise. This can be used by INSLooselyCoupledKalmanConfig.
      Returns:
      standard deviation of position noise.
    • getPositionNoiseStandardDeviationAsDistance

      public void getPositionNoiseStandardDeviationAsDistance(com.irurueta.units.Distance result)
      Gets standard deviation of position noise. This can be used by INSLooselyCoupledKalmanConfig.
      Parameters:
      result - instance where the result will be stored.
    • getVelocityNoiseStandardDeviation

      public double getVelocityNoiseStandardDeviation()
      Gets standard deviation of velocity noise expressed in meters per second (m/s). This can be used by INSLooselyCoupledKalmanConfig.
      Specified by:
      getVelocityNoiseStandardDeviation in interface VelocityNoiseStandardDeviationSource
      Returns:
      standard deviation of velocity noise.
    • getVelocityNoiseStandardDeviationAsSpeed

      public com.irurueta.units.Speed getVelocityNoiseStandardDeviationAsSpeed()
      Gets standard deviation of velocity noise. This can be used by INSLooselyCoupledKalmanConfig.
      Returns:
      standard deviation of velocity noise.
    • getVelocityNoiseStandardDeviationAsSpeed

      public void getVelocityNoiseStandardDeviationAsSpeed(com.irurueta.units.Speed result)
      Gets standard deviation of velocity noise. This can be used by INSLooselyCoupledKalmanConfig.
      Parameters:
      result - instance where the result will be stored.
    • getAttitudeNoiseStandardDeviation

      public double getAttitudeNoiseStandardDeviation()
      Gets standard deviation of attitude noise expressed in radians (rad).
      Returns:
      standard deviation of attitude noise.
    • getAttitudeNoiseStandardDeviationAsAngle

      public com.irurueta.units.Angle getAttitudeNoiseStandardDeviationAsAngle()
      Gets standard deviation of attitude noise.
      Returns:
      standard deviation of attitude noise.
    • getAttitudeNoiseStandardDeviationAsAngle

      public void getAttitudeNoiseStandardDeviationAsAngle(com.irurueta.units.Angle result)
      Gets standard deviation of attitude noise.
      Parameters:
      result - instance where the result will be stored.
    • getPositionUncertainty

      public double getPositionUncertainty()
      Gets position uncertainty expressed in meters (m).
      Specified by:
      getPositionUncertainty in interface PositionUncertaintySource
      Returns:
      position uncertainty.
    • getPositionUncertaintyAsDistance

      public com.irurueta.units.Distance getPositionUncertaintyAsDistance()
      Gets position uncertainty.
      Returns:
      position uncertainty.
    • getPositionUncertaintyAsDistance

      public void getPositionUncertaintyAsDistance(com.irurueta.units.Distance result)
      Gets position uncertainty.
      Parameters:
      result - instance where the result will be stored.
    • getVelocityUncertainty

      public double getVelocityUncertainty()
      Gets velocity uncertainty expressed in meters per second (m/s).
      Specified by:
      getVelocityUncertainty in interface VelocityUncertaintySource
      Returns:
      velocity uncertainty.
    • getVelocityUncertaintyAsSpeed

      public com.irurueta.units.Speed getVelocityUncertaintyAsSpeed()
      Gets velocity uncertainty.
      Returns:
      velocity uncertainty.
    • getVelocityUncertaintyAsSpeed

      public void getVelocityUncertaintyAsSpeed(com.irurueta.units.Speed result)
      Gets velocity uncertainty.
      Parameters:
      result - instance where the result will be stored.
    • getAttitudeUncertainty

      public double getAttitudeUncertainty()
      Gets attitude uncertainty expressed in radians (rad).
      Specified by:
      getAttitudeUncertainty in interface AttitudeUncertaintySource
      Returns:
      attitude uncertainty.
    • getAttitudeUncertaintyAsAngle

      public com.irurueta.units.Angle getAttitudeUncertaintyAsAngle()
      Gets attitude uncertainty.
      Returns:
      attitude uncertainty.
    • getAttitudeUncertaintyAsAngle

      public void getAttitudeUncertaintyAsAngle(com.irurueta.units.Angle result)
      Gets attitude uncertainty.
      Parameters:
      result - instance where the result will be stored.
    • getFixedKinematics

      public com.irurueta.navigation.inertial.BodyKinematics getFixedKinematics()
      Gets last added kinematics after being fixed using provided calibration data. If kinematics fix is disabled, this will be equal to the last provided measured kinematics.
      Returns:
      last fixed body kinematics.
    • getFixedKinematics

      public void getFixedKinematics(com.irurueta.navigation.inertial.BodyKinematics result)
      Gets last added kinematics after being fixed using provided calibration data. If kinematics fix is disabled, this will be equal to the last provided measured kinematics.
      Parameters:
      result - last fixed body kinematics.