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.AccelerationTriadContains acceleration triad to be reused for bias norm estimation.private doubleAccelerometer bias random walk PSD (Power Spectral Density) expressed in (m^2 * s^-5).private final com.irurueta.navigation.inertial.calibration.AngularSpeedTriadContains angular speed triad to be reused for bias norm estimation.private doubleAverage attitude drift expressed in radians (rad).private doubleAverage position drift expressed in meters (m).private doubleAverage velocity drift expressed in meters per second (m/s).private final com.irurueta.navigation.inertial.calibration.bias.BodyKinematicsBiasEstimatorEstimates bias for fixed body kinematics measurements to determine further bias variations while the IMU body remains static.static final intNumber of samples to be used by default on each drift period.private final DriftEstimatorEstimates amount of position, velocity and orientation drift.private intNumber of samples to be used on each drift period.private final com.irurueta.navigation.inertial.BodyKinematicsInstance containing the last fixed body kinematics to be reused.private final com.irurueta.navigation.inertial.calibration.BodyKinematicsFixerFixes body kinematics measurements using accelerometer and gyroscope calibration data to fix measurements.private booleanIndicates whether measured kinematics must be fixed or not.private doubleGyro bias random walk PSD (Power Spectral Density) expressed in (rad^2 * s^-3).private RandomWalkEstimatorListenerListener to handle events raised by this estimator.private intNumber of drift periods that have been processed.private booleanIndicates whether this estimator is running or not.private doubleAttitude variance expressed in squared radians (rad^2).private doublePosition variance expressed in square meters (m^2).private doubleVelocity 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 TypeMethodDescriptionvoidaddBodyKinematics(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.MatrixGets acceleration bias values expressed in meters per squared second (m/s^2).voidgetAccelerationBias(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).voidgetAccelerationBiasArray(double[] result) Gets acceleration bias values expressed in meters per squared second (m/s^2).com.irurueta.navigation.inertial.calibration.AccelerationTriadGets acceleration bias.voidgetAccelerationBiasAsTriad(com.irurueta.navigation.inertial.calibration.AccelerationTriad result) Gets acceleration bias.doubleGets acceleration x-coordinate of bias expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets acceleration x-coordinate of bias.voidgetAccelerationBiasXAsAcceleration(com.irurueta.units.Acceleration result) Gets acceleration x-coordinate of bias.doubleGets acceleration y-coordinate of bias expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets acceleration y-coordinate of bias.voidgetAccelerationBiasYAsAcceleration(com.irurueta.units.Acceleration result) Gets acceleration y-coordinate of bias.doubleGets acceleration z-coordinate of bias expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets acceleration z-coordinate of bias.voidgetAccelerationBiasZAsAcceleration(com.irurueta.units.Acceleration result) Gets acceleration z-coordinate of bias.com.irurueta.algebra.MatrixGets acceleration cross-coupling errors matrix.voidgetAccelerationCrossCouplingErrors(com.irurueta.algebra.Matrix result) Gets acceleration cross-coupling errors matrix.doubleGets acceleration x-y cross-coupling error.doubleGets acceleration x-z cross-coupling error.doubleGets acceleration y-x cross-coupling error.doubleGets acceleration y-z cross-coupling error.doubleGets acceleration z-x cross-coupling error.doubleGets acceleration z-y cross-coupling error.doubleGets acceleration x scaling factor.doubleGets acceleration y scaling factor.doubleGets acceleration z scaling factor.doubleGets estimated accelerometer bias random walk PSD (Power Spectral Density) expressed in (m^2 * s^-5).com.irurueta.algebra.MatrixGets angular speed bias values expressed in radians per second (rad/s).voidgetAngularSpeedBias(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).voidgetAngularSpeedBiasArray(double[] result) Gets angular speed bias values expressed in radians per second (rad/s).com.irurueta.navigation.inertial.calibration.AngularSpeedTriadGets angular speed bias.voidgetAngularSpeedBiasAsTriad(com.irurueta.navigation.inertial.calibration.AngularSpeedTriad result) Gets angular speed bias.doubleGets angular speed x-coordinate of bias expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets angular speed x-coordinate of bias.voidgetAngularSpeedBiasXAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets angular speed x-coordinate of bias.doubleGets angular speed y-coordinate of bias expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets angular speed y-coordinate of bias.voidgetAngularSpeedBiasYAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets angular speed y-coordinate of bias.doubleGets angular speed z-coordinate of bias expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets angular speed z-coordinate of bias.voidgetAngularSpeedBiasZAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets angular speed z-coordinate of bias.com.irurueta.algebra.MatrixGets angular speed cross-coupling errors matrix.voidgetAngularSpeedCrossCouplingErrors(com.irurueta.algebra.Matrix result) Gets angular speed cross-coupling errors matrix.com.irurueta.algebra.MatrixGets angular speed g-dependant cross biases matrix.voidgetAngularSpeedGDependantCrossBias(com.irurueta.algebra.Matrix result) Gets angular speed g-dependant cross biases matrix.doubleGets angular speed x-y cross-coupling error.doubleGets angular speed x-z cross-coupling error.doubleGets angular speed y-x cross-coupling error.doubleGets angular speed y-z cross-coupling error.doubleGets angular speed z-x cross-coupling error.doubleGets angular speed z-y cross-coupling error.doubleGets angular speed x scaling factor.doubleGets angular speed y scaling factor.doubleGets angular speed z scaling factor.doubleGets standard deviation of attitude noise expressed in radians (rad).com.irurueta.units.AngleGets standard deviation of attitude noise.voidgetAttitudeNoiseStandardDeviationAsAngle(com.irurueta.units.Angle result) Gets standard deviation of attitude noise.doubleGets estimated attitude noise variance expressed in squared radians (rad^2).doubleGets attitude uncertainty expressed in radians (rad).com.irurueta.units.AngleGets attitude uncertainty.voidgetAttitudeUncertaintyAsAngle(com.irurueta.units.Angle result) Gets attitude uncertainty.com.irurueta.units.TimeGets the duration of each drift period.voidgetDriftPeriod(com.irurueta.units.Time result) Gets the duration of each drift period.intGets the number of samples to be used on each drift period.doubleGets the duration of each drift period expressed in seconds (s).com.irurueta.navigation.frames.CoordinateTransformationgetEcefC()Gets current body orientation as a transformation from body to ECEF coordinates.voidgetEcefC(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to ECEF coordinates.com.irurueta.navigation.frames.ECEFFrameGets ECEF frame containing current body position and orientation expressed in ECEF coordinates.voidgetEcefFrame(com.irurueta.navigation.frames.ECEFFrame result) Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates.com.irurueta.navigation.frames.ECEFPositionGets current body position expressed in ECEF coordinates.voidgetEcefPosition(com.irurueta.navigation.frames.ECEFPosition result) Gets current body position expressed in ECEF coordinates.com.irurueta.units.TimeGets the amount of total elapsed time since the first processed measurement.voidgetElapsedTime(com.irurueta.units.Time result) Gets the amount of total elapsed time since the first processed measurement.doubleGets amount of total elapsed time since the first processed measurement expressed in seconds (s).com.irurueta.navigation.inertial.BodyKinematicsGets last added kinematics after being fixed using provided calibration data.voidgetFixedKinematics(com.irurueta.navigation.inertial.BodyKinematics result) Gets last added kinematics after being fixed using provided calibration data.doubleGets 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.CoordinateTransformationgetNedC()Gets current body orientation as a transformation from body to NED coordinates.voidgetNedC(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to NED coordinates.com.irurueta.navigation.frames.NEDFrameGets NED frame containing current body position and orientation expressed in NED coordinates.voidgetNedFrame(com.irurueta.navigation.frames.NEDFrame result) Gets NED frame containing current body position and orientation expressed in NED coordinates.com.irurueta.navigation.frames.NEDPositionGets current body position expressed in NED coordinates.voidgetNedPosition(com.irurueta.navigation.frames.NEDPosition result) Gets current body position expressed in NED coordinates.intGets the number of drift periods that have been processed.intGets the number of samples that have been processed so far.doubleGets standard deviation of position noise expressed in meters (m).com.irurueta.units.DistanceGets standard deviation of position noise.voidgetPositionNoiseStandardDeviationAsDistance(com.irurueta.units.Distance result) Gets standard deviation of position noise.doubleGets estimated position noise variance expressed in square meters (m^2).doubleGets position uncertainty expressed in meters (m).com.irurueta.units.DistanceGets position uncertainty.voidgetPositionUncertaintyAsDistance(com.irurueta.units.Distance result) Gets position uncertainty.doubleGets the time interval between body kinematics (IMU acceleration and gyroscope) samples expressed in seconds (s).com.irurueta.units.TimeGets time interval between body kinematics (IMU acceleration and gyroscope) samples.voidgetTimeIntervalAsTime(com.irurueta.units.Time result) Gets time interval between body kinematics (IMU acceleration and gyroscope) samples.doubleGets standard deviation of velocity noise expressed in meters per second (m/s).com.irurueta.units.SpeedGets standard deviation of velocity noise.voidgetVelocityNoiseStandardDeviationAsSpeed(com.irurueta.units.Speed result) Gets standard deviation of velocity noise.doubleGets estimated velocity noise variance expressed in (m^2/s^2).doubleGets velocity uncertainty expressed in meters per second (m/s).com.irurueta.units.SpeedGets velocity uncertainty.voidgetVelocityUncertaintyAsSpeed(com.irurueta.units.Speed result) Gets velocity uncertainty.booleanIndicates whether measured kinematics must be fixed or not.booleanisReady()Indicates if estimator is ready to start processing additional kinematics measurements.booleanIndicates whether this estimator is running or not.booleanreset()Resets current estimator.voidsetAccelerationBias(double[] bias) Sets acceleration bias values expressed in meters per squared second (m/s^2).voidsetAccelerationBias(double biasX, double biasY, double biasZ) Sets acceleration coordinates of bias expressed in meters per squared second (m/s^2).voidsetAccelerationBias(com.irurueta.algebra.Matrix bias) Sets acceleration bias values expressed in meters per squared second (m/s^2).voidsetAccelerationBias(com.irurueta.navigation.inertial.calibration.AccelerationTriad bias) Sets acceleration bias.voidsetAccelerationBias(com.irurueta.units.Acceleration biasX, com.irurueta.units.Acceleration biasY, com.irurueta.units.Acceleration biasZ) Sets acceleration coordinates of bias.voidsetAccelerationBiasX(double biasX) Sets acceleration x-coordinate of bias expressed in meters per squared second (m/s^2).voidsetAccelerationBiasX(com.irurueta.units.Acceleration biasX) Sets acceleration x-coordinate of bias.voidsetAccelerationBiasY(double biasY) Sets acceleration y-coordinate of bias expressed in meters per squared second (m/s^2).voidsetAccelerationBiasY(com.irurueta.units.Acceleration biasY) Sets acceleration y-coordinate of bias.voidsetAccelerationBiasZ(double biasZ) Sets acceleration z-coordinate of bias expressed in meters per squared second (m/s^2).voidsetAccelerationBiasZ(com.irurueta.units.Acceleration biasZ) Sets acceleration z-coordinate of bias.voidsetAccelerationCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy) Sets acceleration cross-coupling errors.voidsetAccelerationCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors) Sets acceleration cross-coupling errors matrix.voidsetAccelerationMxy(double mxy) Sets acceleration x-y cross-coupling error.voidsetAccelerationMxz(double mxz) Sets acceleration x-z cross-coupling error.voidsetAccelerationMyx(double myx) Sets acceleration y-x cross-coupling error.voidsetAccelerationMyz(double myz) Sets acceleration y-z cross-coupling error.voidsetAccelerationMzx(double mzx) Sets acceleration z-x cross-coupling error.voidsetAccelerationMzy(double mzy) Sets acceleration z-y cross-coupling error.voidsetAccelerationScalingFactors(double sx, double sy, double sz) Sets acceleration scaling factors.voidsetAccelerationScalingFactorsAndCrossCouplingErrors(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.voidsetAccelerationSx(double sx) Sets acceleration x scaling factor.voidsetAccelerationSy(double sy) Sets acceleration y scaling factor.voidsetAccelerationSz(double sz) Sets acceleration z scaling factor.voidsetAngularSpeedBias(double[] bias) Sets angular speed bias values expressed in radians per second (rad/s).voidsetAngularSpeedBias(double biasX, double biasY, double biasZ) Sets angular speed coordinates of bias expressed in radians per second (rad/s).voidsetAngularSpeedBias(com.irurueta.algebra.Matrix bias) Sets angular speed bias values expressed in radians per second (rad/s).voidsetAngularSpeedBias(com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bias) Sets angular speed bias.voidsetAngularSpeedBias(com.irurueta.units.AngularSpeed biasX, com.irurueta.units.AngularSpeed biasY, com.irurueta.units.AngularSpeed biasZ) Sets angular speed coordinates of bias.voidsetAngularSpeedBiasX(double biasX) Sets angular speed x-coordinate of bias expressed in radians per second (rad/s).voidsetAngularSpeedBiasX(com.irurueta.units.AngularSpeed biasX) Sets angular speed x-coordinate of bias.voidsetAngularSpeedBiasY(double biasY) Sets angular speed y-coordinate of bias expressed in radians per second (rad/s).voidsetAngularSpeedBiasY(com.irurueta.units.AngularSpeed biasY) Sets angular speed y-coordinate of bias.voidsetAngularSpeedBiasZ(double biasZ) Sets angular speed z-coordinate of bias expressed in radians per second (rad/s).voidsetAngularSpeedBiasZ(com.irurueta.units.AngularSpeed biasZ) Sets angular speed z-coordinate of bias.voidsetAngularSpeedCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy) Sets angular speed cross-coupling errors.voidsetAngularSpeedCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors) Sets angular speed cross-coupling errors matrix.voidsetAngularSpeedGDependantCrossBias(com.irurueta.algebra.Matrix gDependantCrossBias) Sets angular speed g-dependant cross biases matrix.voidsetAngularSpeedMxy(double mxy) Sets angular speed x-y cross-coupling error.voidsetAngularSpeedMxz(double mxz) Sets angular speed x-z cross-coupling error.voidsetAngularSpeedMyx(double myx) Sets angular speed y-x cross-coupling error.voidsetAngularSpeedMyz(double myz) Sets angular speed y-z cross-coupling error.voidsetAngularSpeedMzx(double mzx) Sets angular speed z-x cross-coupling error.voidsetAngularSpeedMzy(double mzy) Sets angular speed z-y cross-coupling error.voidsetAngularSpeedScalingFactors(double sx, double sy, double sz) Sets angular speed scaling factors.voidsetAngularSpeedScalingFactorsAndCrossCouplingErrors(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.voidsetAngularSpeedSx(double sx) Sets angular speed x scaling factor.voidsetAngularSpeedSy(double sy) Sets angular speed y-scaling factor.voidsetAngularSpeedSz(double sz) Sets angular speed z scaling factor.voidsetDriftPeriodSamples(int driftPeriodSamples) Sets the number of samples to be used on each drift period.voidsetEcefC(com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets current body orientation as a transformation from body to ECEF coordinates.voidsetEcefPosition(double x, double y, double z) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.geometry.Point3D position) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.navigation.frames.ECEFPosition position) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z) Sets current body position expressed in ECEF coordinates.voidsetEcefPositionAndEcefOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(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.voidsetEcefPositionAndNedOrientation(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.voidsetEcefPositionAndNedOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation with respect to NED axes.voidsetEcefPositionAndNedOrientation(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.voidsetEcefPositionAndNedOrientation(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.voidsetFixKinematicsEnabled(boolean fixKinematics) Specifies whether measured kinematics must be fixed or not.voidsetListener(RandomWalkEstimatorListener listener) Sets listener to handle events raised by this estimator.voidsetNedC(com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets current body orientation as a transformation from body to NED coordinates.voidsetNedPosition(double latitude, double longitude, double height) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.navigation.frames.NEDPosition position) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) Sets current body position expressed in NED coordinates.voidsetNedPositionAndEcefOrientation(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.voidsetNedPositionAndEcefOrientation(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.voidsetNedPositionAndEcefOrientation(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.voidsetNedPositionAndEcefOrientation(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.voidsetNedPositionAndNedOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(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.voidsetNedPositionAndNedOrientation(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.voidsetTimeInterval(double timeInterval) Sets a time interval between body kinematics (IMU acceleration and gyroscope) samples expressed in seconds (s).voidsetTimeInterval(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:
getAccelerometerBiasPSDin 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:
getGyroBiasPSDin 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:
getPositionNoiseStandardDeviationin 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:
getVelocityNoiseStandardDeviationin 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:
getPositionUncertaintyin 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:
getVelocityUncertaintyin 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:
getAttitudeUncertaintyin 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.
-