Class RandomWalkEstimator
java.lang.Object
com.irurueta.navigation.inertial.calibration.RandomWalkEstimator
- All Implemented Interfaces:
AccelerometerBiasRandomWalkSource
,AttitudeUncertaintySource
,GyroscopeBiasRandomWalkSource
,PositionNoiseStandardDeviationSource
,PositionUncertaintySource
,VelocityNoiseStandardDeviationSource
,VelocityUncertaintySource
public class RandomWalkEstimator
extends Object
implements AccelerometerBiasRandomWalkSource, GyroscopeBiasRandomWalkSource, PositionUncertaintySource, VelocityUncertaintySource, AttitudeUncertaintySource, PositionNoiseStandardDeviationSource, VelocityNoiseStandardDeviationSource
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
FieldsModifier and TypeFieldDescriptionprivate 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).private RandomWalkEstimatorListener
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
ConstructorsConstructorDescriptionConstructor.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 TypeMethodDescriptionvoid
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
getEcefC()
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
getNedC()
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
isReady()
Indicates if estimator is ready to start processing additional kinematics measurements.boolean
Indicates whether this estimator is running or not.boolean
reset()
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
setListener
(RandomWalkEstimatorListener listener) 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.
-
Field Details
-
DEFAULT_DRIFT_PERIOD_SAMPLES
public static final int DEFAULT_DRIFT_PERIOD_SAMPLESNumber of samples to be used by default on each drift period.- See Also:
-
listener
Listener to handle events raised by this estimator. -
fixer
private final com.irurueta.navigation.inertial.calibration.BodyKinematicsFixer fixerFixes body kinematics measurements using accelerometer and gyroscope calibration data to fix measurements. -
biasEstimator
private final com.irurueta.navigation.inertial.calibration.bias.BodyKinematicsBiasEstimator biasEstimatorEstimates bias for fixed body kinematics measurements to determine further bias variations while the IMU body remains static. -
driftEstimator
Estimates amount of position, velocity and orientation drift. -
fixedKinematics
private final com.irurueta.navigation.inertial.BodyKinematics fixedKinematicsInstance containing the last fixed body kinematics to be reused. -
fixKinematics
private boolean fixKinematicsIndicates 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 driftPeriodSamplesNumber of samples to be used on each drift period. -
running
private boolean runningIndicates whether this estimator is running or not. -
numberOfProcessedDriftPeriods
private int numberOfProcessedDriftPeriodsNumber of drift periods that have been processed. -
accelerometerBiasPSD
private double accelerometerBiasPSDAccelerometer bias random walk PSD (Power Spectral Density) expressed in (m^2 * s^-5). -
gyroBiasPSD
private double gyroBiasPSDGyro bias random walk PSD (Power Spectral Density) expressed in (rad^2 * s^-3). -
avgPositionDrift
private double avgPositionDriftAverage position drift expressed in meters (m). This gives a sign of position accuracy. -
avgVelocityDrift
private double avgVelocityDriftAverage velocity drift expressed in meters per second (m/s). -
avgAttitudeDrift
private double avgAttitudeDriftAverage attitude drift expressed in radians (rad). -
varPositionDrift
private double varPositionDriftPosition variance expressed in square meters (m^2). -
varVelocityDrift
private double varVelocityDriftVelocity variance expressed in (m^2/s^2). -
varAttitudeDrift
private double varAttitudeDriftAttitude variance expressed in squared radians (rad^2). -
accelerationTriad
private final com.irurueta.navigation.inertial.calibration.AccelerationTriad accelerationTriadContains acceleration triad to be reused for bias norm estimation. This is reused for efficiency. -
angularSpeedTriad
private final com.irurueta.navigation.inertial.calibration.AngularSpeedTriad angularSpeedTriadContains angular speed triad to be reused for bias norm estimation. This is reused for efficiency.
-
-
Constructor Details
-
RandomWalkEstimator
public RandomWalkEstimator()Constructor. -
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, 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.
-
-
Method Details
-
getListener
Gets listener to handle events raised by this estimator.- Returns:
- listener to handle events raised by this estimator.
-
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.
-
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.
-
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.
-
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.
-
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.
-
getNedPosition
public com.irurueta.navigation.frames.NEDPosition getNedPosition()Gets current body position expressed in NED coordinates.- Returns:
- current body position expressed in NED coordinates.
-
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 usegetNedC()
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.
-
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.
-
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.
-
reset
public boolean reset() throws com.irurueta.navigation.LockedExceptionResets 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 byINSLooselyCoupledKalmanConfig
.- Specified by:
getAccelerometerBiasPSD
in interfaceAccelerometerBiasRandomWalkSource
- 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 byINSLooselyCoupledKalmanConfig
.- Specified by:
getGyroBiasPSD
in interfaceGyroscopeBiasRandomWalkSource
- 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 byINSLooselyCoupledKalmanConfig
.- Returns:
- position variance.
-
getVelocityNoiseVariance
public double getVelocityNoiseVariance()Gets estimated velocity noise variance expressed in (m^2/s^2). This can be used byINSLooselyCoupledKalmanConfig
.- 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 byINSLooselyCoupledKalmanConfig
.- Specified by:
getPositionNoiseStandardDeviation
in interfacePositionNoiseStandardDeviationSource
- Returns:
- standard deviation of position noise.
-
getPositionNoiseStandardDeviationAsDistance
public com.irurueta.units.Distance getPositionNoiseStandardDeviationAsDistance()Gets standard deviation of position noise. This can be used byINSLooselyCoupledKalmanConfig
.- 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 byINSLooselyCoupledKalmanConfig
.- 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 byINSLooselyCoupledKalmanConfig
.- Specified by:
getVelocityNoiseStandardDeviation
in interfaceVelocityNoiseStandardDeviationSource
- Returns:
- standard deviation of velocity noise.
-
getVelocityNoiseStandardDeviationAsSpeed
public com.irurueta.units.Speed getVelocityNoiseStandardDeviationAsSpeed()Gets standard deviation of velocity noise. This can be used byINSLooselyCoupledKalmanConfig
.- 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 byINSLooselyCoupledKalmanConfig
.- 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 interfacePositionUncertaintySource
- 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 interfaceVelocityUncertaintySource
- 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 interfaceAttitudeUncertaintySource
- 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.
-