Class DriftEstimator
java.lang.Object
com.irurueta.navigation.inertial.calibration.DriftEstimator
- Direct Known Subclasses:
KalmanDriftEstimator
Estimates accumulated drift in body orientation, position and velocity per
unit of time.
This estimator must be executed while the body where the IMU is placed remains
static.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.irurueta.algebra.Matrix
Contains current orientation expressed as a 3D rotation matrix.protected double
Current orientation drift expressed in radians (rad).protected final com.irurueta.navigation.frames.ECEFPosition
Contains current position drift.protected double
Current position drift expressed in meters (m).protected final com.irurueta.navigation.frames.ECEFVelocity
Contains current velocity drift.protected double
Current velocity drift expressed in meters per second (m/s).static final double
Default time interval between kinematics samples expressed in seconds (s).protected final com.irurueta.navigation.inertial.BodyKinematics
Instance containing the last fixed body kinematics to be reused.protected final com.irurueta.navigation.inertial.calibration.BodyKinematicsFixer
Fixes body kinematics measurements using accelerometer and gyroscope calibration data to fix measurements.protected boolean
Indicates whether measured kinematics must be fixed or not.protected final com.irurueta.navigation.frames.ECEFFrame
Contains the current frame after one navigation step.protected final com.irurueta.geometry.Quaternion
Contains orientation inverse of the reference frame.protected DriftEstimatorListener
Listener to handle events raised by this estimator.protected int
Number of processed body kinematics samples.protected final com.irurueta.geometry.Quaternion
Contains current frame orientation drift.protected com.irurueta.navigation.frames.ECEFFrame
Initial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation.protected final com.irurueta.geometry.Quaternion
Contains orientation of a reference frame.protected boolean
Indicates whether this estimator is running.protected double
Time interval expressed in seconds (s) between body kinematics samples. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.DriftEstimator
(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg) Constructor.DriftEstimator
(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.DriftEstimator
(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, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame) Constructor.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg) Constructor.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, 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.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, 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, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, 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.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, 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.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, 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, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.ECEFFrame referenceFrame, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame) Constructor.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg) Constructor.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, 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.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, 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, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, com.irurueta.algebra.Matrix ba, com.irurueta.algebra.Matrix ma, com.irurueta.algebra.Matrix bg, com.irurueta.algebra.Matrix mg, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, 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.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, 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.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, 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, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.frames.NEDFrame referenceFrame, DriftEstimatorListener listener) Constructor.DriftEstimator
(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.DriftEstimator
(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.DriftEstimator
(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, DriftEstimatorListener listener) Constructor.DriftEstimator
(com.irurueta.navigation.inertial.calibration.AccelerationTriad ba, com.irurueta.algebra.Matrix ma, com.irurueta.navigation.inertial.calibration.AngularSpeedTriad bg, com.irurueta.algebra.Matrix mg, DriftEstimatorListener listener) Constructor.DriftEstimator
(DriftEstimatorListener listener) 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 current drift and their average values.protected void
Computes current orientation drift.protected void
Computes current position drift.protected void
Computes current velocity drift.private static double
convertTime
(com.irurueta.units.Time time) Converts the provided time instance to seconds.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.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.com.irurueta.geometry.Rotation3D
Gets current orientation drift as a 3D rotation for the last processed body kinematics measurement respect ECEF coordinates.boolean
getCurrentOrientationDrift
(com.irurueta.geometry.Rotation3D result) Gets current orientation drift as a 3D rotation for the last processed body kinematics measurement respect ECEF coordinates.com.irurueta.units.Angle
Gets current amount of orientation drift for last processed body kinematics measurement.boolean
getCurrentOrientationDriftAngle
(com.irurueta.units.Angle result) Gets current amount of orientation drift for last processed body kinematics measurement.Gets the current amount of orientation drift per time unit expressed in radians per second (rad/s).com.irurueta.units.AngularSpeed
Gets the current amount of orientation drift per time unit.boolean
getCurrentOrientationDriftPerTimeUnitAsAngularSpeed
(com.irurueta.units.AngularSpeed result) Gets the current amount of orientation drift per time unit.Gets current amount of orientation drift for last processed body kinematics measurement expressed in radians (rad).com.irurueta.navigation.frames.ECEFPosition
Gets current position drift for last processed body kinematics measurement expressed in meters (m) respect ECEF coordinates.boolean
getCurrentPositionDrift
(com.irurueta.navigation.frames.ECEFPosition result) Gets current position drift for last processed body kinematics measurement expressed in meters (m) respect ECEF coordinates.com.irurueta.units.Distance
Gets current amount of position drift for last processed body kinematics measurement.boolean
getCurrentPositionDriftNorm
(com.irurueta.units.Distance result) Gets current amount of position drift for last processed body kinematics measurement.Gets current amount of position drift for last processed body kinematics measurement expressed in meters (m).Gets the current amount of position drift per time unit expressed in meters per second (m/s).com.irurueta.units.Speed
Gets the current amount of position drift per time unit.boolean
getCurrentPositionDriftPerTimeUnitAsSpeed
(com.irurueta.units.Speed result) Gets the current amount of position drift per time unit.com.irurueta.navigation.frames.ECEFVelocity
Gets current velocity drift for the last processed body kinematics measurement expressed in meters per second (m/s) respect ECEF coordinates.boolean
getCurrentVelocityDrift
(com.irurueta.navigation.frames.ECEFVelocity result) Gets current velocity drift for the last processed body kinematics measurement expressed in meters per second (m/s) respect ECEF coordinates.com.irurueta.units.Speed
Gets current amount of velocity drift for last processed body kinematics measurement.boolean
getCurrentVelocityDriftNorm
(com.irurueta.units.Speed result) Gets current amount of velocity drift for last processed body kinematics measurement.Gets current amount of velocity drift for the last processed body kinematics measurement expressed in meters per second (m/s).Gets the current amount of velocity drift per time unit expressed in meters per squared second (m/s^2).com.irurueta.units.Acceleration
Gets the current amount of velocity drift per time unit.boolean
getCurrentVelocityDriftPerTimeUnitAsAcceleration
(com.irurueta.units.Acceleration result) Gets the current amount of velocity drift per time unit.com.irurueta.units.Time
Gets elapsed time since the first processed measurement.boolean
getElapsedTime
(com.irurueta.units.Time result) Gets elapsed time since the first processed measurement.double
Gets elapsed time since the first processed measurement expressed in seconds.Gets listener to handle events raised by this estimator.int
Gets the number of samples that have been processed so far.com.irurueta.navigation.frames.CoordinateTransformation
Gets initial body coordinate transformation, containing body orientation expressed in ECEF coordinates, before starting estimation.boolean
getReferenceEcefCoordinateTransformation
(com.irurueta.navigation.frames.CoordinateTransformation result) Gets initial body coordinate transformation, containing body orientation expressed in ECEF coordinates, before starting estimation.com.irurueta.navigation.frames.ECEFPosition
Gets initial body position, expressed in ECEF coordinates, before starting drift estimation.boolean
getReferenceEcefPosition
(com.irurueta.navigation.frames.ECEFPosition result) Gets initial body position, expressed in ECEF coordinates, before starting drift estimation.com.irurueta.navigation.frames.ECEFVelocity
Gets initial body velocity, expressed in ECEF coordinates, before starting drift estimation.boolean
getReferenceEcefVelocity
(com.irurueta.navigation.frames.ECEFVelocity result) Gets initial body velocity, expressed in ECEF coordinates, before starting drift estimation.com.irurueta.navigation.frames.ECEFFrame
Gets initial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation.com.irurueta.navigation.frames.CoordinateTransformation
Gets initial body coordinate transformation, containing body orientation expressed in NED coordinates, before starting estimation.boolean
getReferenceNedCoordinateTransformation
(com.irurueta.navigation.frames.CoordinateTransformation result) Gets initial body coordinate transformation, containing body orientation expressed in NED coordinates, before starting estimation.com.irurueta.navigation.frames.NEDFrame
Gets initial frame containing body position, velocity and orientation expressed in NED coordinates before starting drift estimation.boolean
getReferenceNedFrame
(com.irurueta.navigation.frames.NEDFrame result) Gets initial frame containing body position, velocity and orientation expressed in NED coordinates before starting drift estimation.com.irurueta.navigation.frames.NEDPosition
Gets initial body position, expressed in NED coordinates, before starting drift estimation.boolean
getReferenceNedPosition
(com.irurueta.navigation.frames.NEDPosition result) Gets initial body position, expressed in NED coordinates, before starting drift estimation.com.irurueta.navigation.frames.NEDVelocity
Gets initial body velocity, expressed in NED coordinates, before starting drift estimation.boolean
getReferenceNedVelocity
(com.irurueta.navigation.frames.NEDVelocity result) Gets initial body velocity, expressed in NED coordinates, before starting drift estimation.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.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.void
reset()
Resets this estimator to its initial state.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
setFixKinematicsEnabled
(boolean fixKinematics) Specifies whether measured kinematics must be fixed or not.void
setListener
(DriftEstimatorListener listener) Sets listener to handle events raised by this estimator.void
setReferenceEcefCoordinateTransformation
(com.irurueta.navigation.frames.CoordinateTransformation referenceEcefCoordinateTransformation) Sets initial body coordinate transformation, containing body orientation expressed in ECEF coordinates, before starting estimation.void
setReferenceEcefPosition
(com.irurueta.navigation.frames.ECEFPosition referenceEcefPosition) Sets initial body position, expressed in ECEF coordinates, before starting drift estimation.void
setReferenceEcefVelocity
(com.irurueta.navigation.frames.ECEFVelocity referenceEcefVelocity) Sets initial body velocity, expressed in ECEF coordinates, before starting drift estimation.void
setReferenceFrame
(com.irurueta.navigation.frames.ECEFFrame referenceFrame) Sets initial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation.void
setReferenceNedCoordinateTransformation
(com.irurueta.navigation.frames.CoordinateTransformation referenceNedCoordinateTransformation) Sets initial body coordinate transformation, containing body orientation expressed in NED coordinates, before starting estimation.void
setReferenceNedFrame
(com.irurueta.navigation.frames.NEDFrame referenceNedFrame) Sets an initial frame containing body position, velocity and orientation expressed in NED coordinates before starting drift estimation.void
setReferenceNedPosition
(com.irurueta.navigation.frames.NEDPosition referenceNedPosition) Sets initial body position, expressed in NED coordinates, before starting drift estimation.void
setReferenceNedVelocity
(com.irurueta.navigation.frames.NEDVelocity referenceNedVelocity) Sets initial body velocity, expressed in NED coordinates, before starting drift estimation.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_TIME_INTERVAL_SECONDS
public static final double DEFAULT_TIME_INTERVAL_SECONDSDefault time interval between kinematics samples expressed in seconds (s).- See Also:
-
running
protected boolean runningIndicates whether this estimator is running. -
numberOfProcessedSamples
protected int numberOfProcessedSamplesNumber of processed body kinematics samples. -
timeInterval
protected double timeIntervalTime interval expressed in seconds (s) between body kinematics samples. -
fixer
protected final com.irurueta.navigation.inertial.calibration.BodyKinematicsFixer fixerFixes body kinematics measurements using accelerometer and gyroscope calibration data to fix measurements. -
fixedKinematics
protected final com.irurueta.navigation.inertial.BodyKinematics fixedKinematicsInstance containing the last fixed body kinematics to be reused. -
fixKinematics
protected 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. -
listener
Listener to handle events raised by this estimator. -
referenceFrame
protected com.irurueta.navigation.frames.ECEFFrame referenceFrameInitial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation. -
frame
protected final com.irurueta.navigation.frames.ECEFFrame frameContains the current frame after one navigation step. This is reused for efficiency. -
refQ
protected final com.irurueta.geometry.Quaternion refQContains orientation of a reference frame. This is reused for efficiency. -
invRefQ
protected final com.irurueta.geometry.Quaternion invRefQContains orientation inverse of the reference frame. This is reused for efficiency. -
q
protected final com.irurueta.geometry.Quaternion qContains current frame orientation drift. This is reused for efficiency. -
currentPositionDrift
protected final com.irurueta.navigation.frames.ECEFPosition currentPositionDriftContains current position drift. -
currentVelocityDrift
protected final com.irurueta.navigation.frames.ECEFVelocity currentVelocityDriftContains current velocity drift. -
currentC
protected com.irurueta.algebra.Matrix currentCContains current orientation expressed as a 3D rotation matrix. -
currentPositionDriftMeters
protected double currentPositionDriftMetersCurrent position drift expressed in meters (m). -
currentVelocityDriftMetersPerSecond
protected double currentVelocityDriftMetersPerSecondCurrent velocity drift expressed in meters per second (m/s). -
currentOrientationDriftRadians
protected double currentOrientationDriftRadiansCurrent orientation drift expressed in radians (rad).
-
-
Constructor Details
-
DriftEstimator
public DriftEstimator()Constructor. -
DriftEstimator
public DriftEstimator(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 provided matrices are not 3x3.
-
DriftEstimator
public DriftEstimator(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 provided matrices are not 3x3.
-
-
Method Details
-
getListener
Gets listener to handle events raised by this estimator.- Returns:
- listener to handle events raised by this estimator.
-
getReferenceFrame
public com.irurueta.navigation.frames.ECEFFrame getReferenceFrame()Gets initial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation.- Returns:
- initial body frame or null.
-
getReferenceNedFrame
public com.irurueta.navigation.frames.NEDFrame getReferenceNedFrame()Gets initial frame containing body position, velocity and orientation expressed in NED coordinates before starting drift estimation.- Returns:
- initial body frame or null.
-
getReferenceEcefPosition
public com.irurueta.navigation.frames.ECEFPosition getReferenceEcefPosition()Gets initial body position, expressed in ECEF coordinates, before starting drift estimation.- Returns:
- initial body position or null.
-
getReferenceEcefVelocity
public com.irurueta.navigation.frames.ECEFVelocity getReferenceEcefVelocity()Gets initial body velocity, expressed in ECEF coordinates, before starting drift estimation.- Returns:
- initial body velocity or null.
-
getReferenceEcefCoordinateTransformation
public com.irurueta.navigation.frames.CoordinateTransformation getReferenceEcefCoordinateTransformation()Gets initial body coordinate transformation, containing body orientation expressed in ECEF coordinates, before starting estimation.- Returns:
- initial body orientation or null.
-
getReferenceNedPosition
public com.irurueta.navigation.frames.NEDPosition getReferenceNedPosition()Gets initial body position, expressed in NED coordinates, before starting drift estimation.- Returns:
- initial body position or null.
-
getReferenceNedVelocity
public com.irurueta.navigation.frames.NEDVelocity getReferenceNedVelocity()Gets initial body velocity, expressed in NED coordinates, before starting drift estimation.- Returns:
- initial body velocity or null.
-
getReferenceNedCoordinateTransformation
public com.irurueta.navigation.frames.CoordinateTransformation getReferenceNedCoordinateTransformation()Gets initial body coordinate transformation, containing body orientation expressed in NED coordinates, before starting estimation.- Returns:
- initial body orientation or null.
-
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 any provided 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 matrix is not 3x3.com.irurueta.navigation.LockedException
- if estimator is running.
-
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.
-
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.
-
isReady
public boolean isReady()Indicates if estimator is ready to start processing additional kinematics measurements.- Returns:
- true if ready, false otherwise.
-
isRunning
public boolean isRunning()Indicates whether this estimator is running.- Returns:
- true if this estimator is running, false otherwise.
-
reset
public void reset() throws com.irurueta.navigation.LockedExceptionResets this estimator to its initial state.- Throws:
com.irurueta.navigation.LockedException
- if estimator is currently running.
-
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.
-
getElapsedTimeSeconds
public double getElapsedTimeSeconds()Gets elapsed time since the first processed measurement expressed in seconds.- Returns:
- elapsed time.
-
getElapsedTime
public com.irurueta.units.Time getElapsedTime()Gets elapsed time since the first processed measurement.- Returns:
- elapsed time.
-
getElapsedTime
public boolean getElapsedTime(com.irurueta.units.Time result) Gets elapsed time since the first processed measurement.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if elapsed time is available and the result is updated, false otherwise.
-
getCurrentPositionDrift
public com.irurueta.navigation.frames.ECEFPosition getCurrentPositionDrift()Gets current position drift for last processed body kinematics measurement expressed in meters (m) respect ECEF coordinates.- Returns:
- current position drift or null.
-
getCurrentVelocityDrift
public com.irurueta.navigation.frames.ECEFVelocity getCurrentVelocityDrift()Gets current velocity drift for the last processed body kinematics measurement expressed in meters per second (m/s) respect ECEF coordinates.- Returns:
- current velocity drift or null.
-
getCurrentOrientationDrift
public com.irurueta.geometry.Rotation3D getCurrentOrientationDrift()Gets current orientation drift as a 3D rotation for the last processed body kinematics measurement respect ECEF coordinates.- Returns:
- current orientation drift or null.
-
getCurrentOrientationDrift
public boolean getCurrentOrientationDrift(com.irurueta.geometry.Rotation3D result) Gets current orientation drift as a 3D rotation for the last processed body kinematics measurement respect ECEF coordinates.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if the current orientation drift is available and the result is updated, false otherwise.
-
getCurrentPositionDriftNormMeters
Gets current amount of position drift for last processed body kinematics measurement expressed in meters (m).- Returns:
- the current amount of position drift or null.
-
getCurrentPositionDriftNorm
public com.irurueta.units.Distance getCurrentPositionDriftNorm()Gets current amount of position drift for last processed body kinematics measurement.- Returns:
- the current amount of position drift or null.
-
getCurrentPositionDriftNorm
public boolean getCurrentPositionDriftNorm(com.irurueta.units.Distance result) Gets current amount of position drift for last processed body kinematics measurement.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if the current position drift is available and the result is updated, false otherwise.
-
getCurrentVelocityDriftNormMetersPerSecond
Gets current amount of velocity drift for the last processed body kinematics measurement expressed in meters per second (m/s).- Returns:
- current amount of velocity drift or null.
-
getCurrentVelocityDriftNorm
public com.irurueta.units.Speed getCurrentVelocityDriftNorm()Gets current amount of velocity drift for last processed body kinematics measurement.- Returns:
- current amount of velocity drift or null.
-
getCurrentVelocityDriftNorm
public boolean getCurrentVelocityDriftNorm(com.irurueta.units.Speed result) Gets current amount of velocity drift for last processed body kinematics measurement.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if the current velocity drift is available and the result is updated, false otherwise.
-
getCurrentOrientationDriftRadians
Gets current amount of orientation drift for last processed body kinematics measurement expressed in radians (rad).- Returns:
- current amount of orientation drift or null.
-
getCurrentOrientationDriftAngle
public com.irurueta.units.Angle getCurrentOrientationDriftAngle()Gets current amount of orientation drift for last processed body kinematics measurement.- Returns:
- current amount of orientation drift or null.
-
getCurrentOrientationDriftAngle
public boolean getCurrentOrientationDriftAngle(com.irurueta.units.Angle result) Gets current amount of orientation drift for last processed body kinematics measurement.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if the current orientation drift is available and the result is updated, false otherwise.
-
getCurrentPositionDriftPerTimeUnit
Gets the current amount of position drift per time unit expressed in meters per second (m/s).- Returns:
- current amount of position drift per time unit or null.
-
getCurrentPositionDriftPerTimeUnitAsSpeed
public com.irurueta.units.Speed getCurrentPositionDriftPerTimeUnitAsSpeed()Gets the current amount of position drift per time unit.- Returns:
- current amount of position drift per time unit or null.
-
getCurrentPositionDriftPerTimeUnitAsSpeed
public boolean getCurrentPositionDriftPerTimeUnitAsSpeed(com.irurueta.units.Speed result) Gets the current amount of position drift per time unit.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if the current amount of position drift per time unit is available and the result is updated, false otherwise.
-
getCurrentVelocityDriftPerTimeUnit
Gets the current amount of velocity drift per time unit expressed in meters per squared second (m/s^2).- Returns:
- the current amount of velocity drift per time unit or null.
-
getCurrentVelocityDriftPerTimeUnitAsAcceleration
public com.irurueta.units.Acceleration getCurrentVelocityDriftPerTimeUnitAsAcceleration()Gets the current amount of velocity drift per time unit.- Returns:
- the current amount of velocity drift per time unit or null.
-
getCurrentVelocityDriftPerTimeUnitAsAcceleration
public boolean getCurrentVelocityDriftPerTimeUnitAsAcceleration(com.irurueta.units.Acceleration result) Gets the current amount of velocity drift per time unit.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if the current amount of velocity drift per time unit is available and the result is updated, false otherwise.
-
getCurrentOrientationDriftPerTimeUnit
Gets the current amount of orientation drift per time unit expressed in radians per second (rad/s).- Returns:
- amount of orientation drift per time unit or null.
-
getCurrentOrientationDriftPerTimeUnitAsAngularSpeed
public com.irurueta.units.AngularSpeed getCurrentOrientationDriftPerTimeUnitAsAngularSpeed()Gets the current amount of orientation drift per time unit.- Returns:
- amount of orientation drift per time unit or null.
-
getCurrentOrientationDriftPerTimeUnitAsAngularSpeed
public boolean getCurrentOrientationDriftPerTimeUnitAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets the current amount of orientation drift per time unit.- Parameters:
result
- instance where the result will be stored.- Returns:
- true if the current amount of orientation drift is available and the result is updated, false otherwise.
-
computeCurrentPositionDrift
protected void computeCurrentPositionDrift()Computes current position drift. -
computeCurrentVelocityDrift
protected void computeCurrentVelocityDrift()Computes current velocity drift. -
computeCurrentOrientationDrift
protected void computeCurrentOrientationDrift() throws com.irurueta.algebra.AlgebraException, com.irurueta.geometry.InvalidRotationMatrixExceptionComputes current orientation drift.- Throws:
com.irurueta.algebra.AlgebraException
- if there are numerical instabilities.com.irurueta.geometry.InvalidRotationMatrixException
- if rotation cannot be accurately estimated.
-
convertTime
private static double convertTime(com.irurueta.units.Time time) Converts the provided time instance to seconds.- Parameters:
time
- instance to be converted.- Returns:
- conversion in seconds.
-