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.MatrixContains current orientation expressed as a 3D rotation matrix.protected doubleCurrent orientation drift expressed in radians (rad).protected final com.irurueta.navigation.frames.ECEFPositionContains current position drift.protected doubleCurrent position drift expressed in meters (m).protected final com.irurueta.navigation.frames.ECEFVelocityContains current velocity drift.protected doubleCurrent velocity drift expressed in meters per second (m/s).static final doubleDefault time interval between kinematics samples expressed in seconds (s).protected final com.irurueta.navigation.inertial.BodyKinematicsInstance containing the last fixed body kinematics to be reused.protected final com.irurueta.navigation.inertial.calibration.BodyKinematicsFixerFixes body kinematics measurements using accelerometer and gyroscope calibration data to fix measurements.protected booleanIndicates whether measured kinematics must be fixed or not.protected final com.irurueta.navigation.frames.ECEFFrameContains the current frame after one navigation step.protected final com.irurueta.geometry.QuaternionContains orientation inverse of the reference frame.protected DriftEstimatorListenerListener to handle events raised by this estimator.protected intNumber of processed body kinematics samples.protected final com.irurueta.geometry.QuaternionContains current frame orientation drift.protected com.irurueta.navigation.frames.ECEFFrameInitial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation.protected final com.irurueta.geometry.QuaternionContains orientation of a reference frame.protected booleanIndicates whether this estimator is running.protected doubleTime 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 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 current drift and their average values.protected voidComputes current orientation drift.protected voidComputes current position drift.protected voidComputes current velocity drift.private static doubleconvertTime(com.irurueta.units.Time time) Converts the provided time instance to seconds.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.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.com.irurueta.geometry.Rotation3DGets current orientation drift as a 3D rotation for the last processed body kinematics measurement respect ECEF coordinates.booleangetCurrentOrientationDrift(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.AngleGets current amount of orientation drift for last processed body kinematics measurement.booleangetCurrentOrientationDriftAngle(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.AngularSpeedGets the current amount of orientation drift per time unit.booleangetCurrentOrientationDriftPerTimeUnitAsAngularSpeed(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.ECEFPositionGets current position drift for last processed body kinematics measurement expressed in meters (m) respect ECEF coordinates.booleangetCurrentPositionDrift(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.DistanceGets current amount of position drift for last processed body kinematics measurement.booleangetCurrentPositionDriftNorm(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.SpeedGets the current amount of position drift per time unit.booleangetCurrentPositionDriftPerTimeUnitAsSpeed(com.irurueta.units.Speed result) Gets the current amount of position drift per time unit.com.irurueta.navigation.frames.ECEFVelocityGets current velocity drift for the last processed body kinematics measurement expressed in meters per second (m/s) respect ECEF coordinates.booleangetCurrentVelocityDrift(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.SpeedGets current amount of velocity drift for last processed body kinematics measurement.booleangetCurrentVelocityDriftNorm(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.AccelerationGets the current amount of velocity drift per time unit.booleangetCurrentVelocityDriftPerTimeUnitAsAcceleration(com.irurueta.units.Acceleration result) Gets the current amount of velocity drift per time unit.com.irurueta.units.TimeGets elapsed time since the first processed measurement.booleangetElapsedTime(com.irurueta.units.Time result) Gets elapsed time since the first processed measurement.doubleGets elapsed time since the first processed measurement expressed in seconds.Gets listener to handle events raised by this estimator.intGets the number of samples that have been processed so far.com.irurueta.navigation.frames.CoordinateTransformationGets initial body coordinate transformation, containing body orientation expressed in ECEF coordinates, before starting estimation.booleangetReferenceEcefCoordinateTransformation(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.ECEFPositionGets initial body position, expressed in ECEF coordinates, before starting drift estimation.booleangetReferenceEcefPosition(com.irurueta.navigation.frames.ECEFPosition result) Gets initial body position, expressed in ECEF coordinates, before starting drift estimation.com.irurueta.navigation.frames.ECEFVelocityGets initial body velocity, expressed in ECEF coordinates, before starting drift estimation.booleangetReferenceEcefVelocity(com.irurueta.navigation.frames.ECEFVelocity result) Gets initial body velocity, expressed in ECEF coordinates, before starting drift estimation.com.irurueta.navigation.frames.ECEFFrameGets initial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation.com.irurueta.navigation.frames.CoordinateTransformationGets initial body coordinate transformation, containing body orientation expressed in NED coordinates, before starting estimation.booleangetReferenceNedCoordinateTransformation(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.NEDFrameGets initial frame containing body position, velocity and orientation expressed in NED coordinates before starting drift estimation.booleangetReferenceNedFrame(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.NEDPositionGets initial body position, expressed in NED coordinates, before starting drift estimation.booleangetReferenceNedPosition(com.irurueta.navigation.frames.NEDPosition result) Gets initial body position, expressed in NED coordinates, before starting drift estimation.com.irurueta.navigation.frames.NEDVelocityGets initial body velocity, expressed in NED coordinates, before starting drift estimation.booleangetReferenceNedVelocity(com.irurueta.navigation.frames.NEDVelocity result) Gets initial body velocity, expressed in NED coordinates, before starting drift estimation.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.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.voidreset()Resets this estimator to its initial state.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.voidsetFixKinematicsEnabled(boolean fixKinematics) Specifies whether measured kinematics must be fixed or not.voidsetListener(DriftEstimatorListener listener) Sets listener to handle events raised by this estimator.voidsetReferenceEcefCoordinateTransformation(com.irurueta.navigation.frames.CoordinateTransformation referenceEcefCoordinateTransformation) Sets initial body coordinate transformation, containing body orientation expressed in ECEF coordinates, before starting estimation.voidsetReferenceEcefPosition(com.irurueta.navigation.frames.ECEFPosition referenceEcefPosition) Sets initial body position, expressed in ECEF coordinates, before starting drift estimation.voidsetReferenceEcefVelocity(com.irurueta.navigation.frames.ECEFVelocity referenceEcefVelocity) Sets initial body velocity, expressed in ECEF coordinates, before starting drift estimation.voidsetReferenceFrame(com.irurueta.navigation.frames.ECEFFrame referenceFrame) Sets initial frame containing body position, velocity and orientation expressed in ECEF coordinates before starting drift estimation.voidsetReferenceNedCoordinateTransformation(com.irurueta.navigation.frames.CoordinateTransformation referenceNedCoordinateTransformation) Sets initial body coordinate transformation, containing body orientation expressed in NED coordinates, before starting estimation.voidsetReferenceNedFrame(com.irurueta.navigation.frames.NEDFrame referenceNedFrame) Sets an initial frame containing body position, velocity and orientation expressed in NED coordinates before starting drift estimation.voidsetReferenceNedPosition(com.irurueta.navigation.frames.NEDPosition referenceNedPosition) Sets initial body position, expressed in NED coordinates, before starting drift estimation.voidsetReferenceNedVelocity(com.irurueta.navigation.frames.NEDVelocity referenceNedVelocity) Sets initial body velocity, expressed in NED coordinates, before starting drift estimation.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_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.
-