Class BodyKinematicsBiasEstimator
This estimator must be used when the body where the accelerometer and gyroscope is attached remains static on the same position with zero velocity and no rotation speed while capturing data.
To compute PSD's this estimator assumes that accelerometer samples are obtained
at a constant provided rate equal to getTimeInterval() seconds.
If not available, accelerometer and gyroscope sampling rate average can be
estimated using TimeIntervalEstimator.
Notice that in order to compute accelerometer and gyroscope biases, body position and orientation must be known to account for gravity and Earth rotation effects.
Even though this estimator obtains approximate bias values, the obtained result can be used to initialize some non-linear calibrators to obtain more accurate results. Such calibrators are: - com.irurueta.navigation.inertial.calibration.accelerometer.KnownFrameAccelerometerNonLinearLeastSquaresCalibrator - com.irurueta.navigation.inertial.calibration.accelerometer.KnownGravityNormAccelerometerCalibrator - com.irurueta.navigation.inertial.calibration.accelerometer.KnownPositionAccelerometerCalibrator} - com.irurueta.navigation.inertial.calibration.accelerometer.RobustKnownFrameAccelerometerCalibrator and any of its subclasses. - com.irurueta.navigation.inertial.calibration.accelerometer.RobustKnownGravityNormAccelerometerCalibrator and any of its subclasses. - com.irurueta.navigation.inertial.calibration.accelerometer.RobustKnownPositionAccelerometerCalibrator and any of its subclasses. - com.irurueta.navigation.inertial.calibration.gyroscope.KnownBiasAndFrameGyroscopeLinearLeastSquaresCalibrator - com.irurueta.navigation.inertial.calibration.gyroscope.KnownBiasAndFrameGyroscopeNonLinearLeastSquaresCalibrator - com.irurueta.navigation.inertial.calibration.gyroscope.KnownBiasEasyGyroscopeCalibrator - com.irurueta.navigation.inertial.calibration.gyroscope.KnownBiasTurntableGyroscopeCalibrator - com.irurueta.navigation.inertial.calibration.gyroscope.RobustKnownBiasAndFrameGyroscopeCalibrator and any of its subclasses. - com.irurueta.navigation.inertial.calibration.gyroscope.RobustKnownBiasEasyGyroscopeCalibrator and any of its subclasses. - com.irurueta.navigation.inertial.calibration.gyroscope.RobustKnownBiasTurntableGyroscopeCalibrator and any of its subclasses.
Even though this estimator can compute noise PSD's, if only noise PSD's levels
are required, estimators in com.irurueta.navigation.inertial.calibration.noise package should
be used instead.
This estimator does NOT compute average bias values over a period of time, it only computes accumulated averages.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleContains estimated bias of x coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).private doubleContains estimated bias of y coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).private doubleContains estimated bias of z coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).private doubleContains estimated bias of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).private doubleContains estimated bias of y coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).private doubleContains estimated bias of z coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).static final doubleDefault time interval between kinematics samples expressed in seconds (s).private BodyKinematicsTheoretical expected body kinematics for provided body position and orientation, and provided time interval, assuming that body remains at the same position (zero velocity).private final com.irurueta.navigation.frames.ECEFFrameContains body position, velocity (which will always be zero) and orientation resolved around ECEF axes.private BodyKinematicsLast provided body kinematics values.Listener to handle events raised by this estimator.private intNumber of processed body kinematics samples.private intNumber of processed body kinematics samples plus one.private booleanIndicates that estimator is running.private doubleTime interval expressed in seconds (s) between body kinematics samples.private doubleContains estimated variance of x coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).private doubleContains estimated variance of y coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).private doubleContains estimated variance of z coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).private doubleContains estimated variance of x coordinate of accelerometer sensed specific force expressed in (m^2/s^4).private doubleContains estimated variance of y coordinate of accelerometer sensed specific force expressed in (m^2/s^4).private doubleContains estimated variance of z coordinate of accelerometer sensed specific force expressed in (m^2/s4). -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.BodyKinematicsBiasEstimator(double timeInterval) Constructor.BodyKinematicsBiasEstimator(double latitude, double longitude, double height) Constructor.BodyKinematicsBiasEstimator(double latitude, double longitude, double height, double timeInterval) Constructor.BodyKinematicsBiasEstimator(double latitude, double longitude, double height, double timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(double latitude, double longitude, double height, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(double latitude, double longitude, double height, com.irurueta.units.Time timeInterval) Constructor.BodyKinematicsBiasEstimator(double latitude, double longitude, double height, com.irurueta.units.Time timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(double timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.CoordinateTransformation nedC) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.CoordinateTransformation nedC, double timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.CoordinateTransformation nedC, double timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.CoordinateTransformation nedC, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.units.Time timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.units.Time timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.units.Time timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.units.Time timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.units.Time timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, com.irurueta.units.Time timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.units.Time timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.units.Time timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.units.Time timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.units.Time timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Time timeInterval) Constructor.BodyKinematicsBiasEstimator(com.irurueta.units.Time timeInterval, BodyKinematicsBiasEstimatorListener listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBodyKinematics(BodyKinematics kinematics) Adds a sample of body kinematics (accelerometer + gyroscope readings) obtained from an IMU.private static doubleconvertTime(com.irurueta.units.Time time) Converts provided time instance to seconds.com.irurueta.algebra.MatrixGets estimated bias of accelerometer sensed specific force expressed in meters per squared second (m/s^2) as a 3x1 matrix column vector.voidgetAccelerometerBias(com.irurueta.algebra.Matrix result) Gets estimated bias of accelerometer sensed specific force expressed in meters per squared second (m/s^2) as a 3x1 matrix column vector.doubleGets average accelerometer noise PSD (Power Spectral Density) among x,y,z components expressed as (m^2/s^3).doubleGets accelerometer noise root PSD (Power Spectral Density) which is the norm of root PSD components expressed as (m * s^-1.5).doubleGets average of estimated standard deviation of accelerometer sensed specific force for all coordinates expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets average of estimated standard deviation of accelerometer sensed specific force for all coordinates.voidgetAverageAccelerometerStandardDeviationAsAcceleration(com.irurueta.units.Acceleration result) Gets average of estimated standard deviation of accelerometer sensed specific force for all coordinates.doubleGets average of estimated standard deviation of gyroscope sensed angular rate for all coordinates expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets average of estimated standard deviation of gyroscope sensed angular rate for all coordinates.voidgetAverageGyroscopeStandardDeviationAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets average of estimated standard deviation of gyroscope sensed angular rate for all coordinates.Gets estimated bias of gyroscope sensed angular rate.voidgetBiasAngularRate(AngularSpeedTriad result) Gets estimated bias of gyroscope sensed angular rate.doubleGets estimated bias of x coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated bias of x coordinate of gyroscope sensed angular rate.voidgetBiasAngularRateXAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated bias of x coordinate of gyroscope sensed angular rate.doubleGets estimated bias of y coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated bias of y coordinate of gyroscope sensed angular rate.voidgetBiasAngularRateYAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated bias of y coordinate of gyroscope sensed angular rate.doubleGets estimated bias of z coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated bias of z coordinate of gyroscope sensed angular rate.voidgetBiasAngularRateZAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated bias of z coordinate of gyroscope sensed angular rate.Gets body kinematics containing estimated bias values for accelerometer and gyroscope.voidGets body kinematics containing estimated bias values for accelerometer and gyroscope.getBiasF()Gets estimated bias of accelerometer sensed specific force.voidgetBiasF(AccelerationTriad result) Gets estimated bias of accelerometer sensed specific force.doubleGets estimated bias of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated bias of x coordinate of accelerometer sensed specific force.voidgetBiasFxAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated bias of x coordinate of accelerometer sensed specific force.doubleGets estimated bias of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated bias of y coordinate of accelerometer sensed specific force.voidgetBiasFyAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated bias of y coordinate of accelerometer sensed specific force.doubleGets estimated bias of z coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated bias of z coordinate of accelerometer sensed specific force.voidgetBiasFzAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated bias of z coordinate of accelerometer sensed specific force.com.irurueta.navigation.frames.CoordinateTransformationgetEcefC()Gets current body orientation as a transformation from body to ECEF coordinates.voidgetEcefC(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to ECEF coordinates.com.irurueta.navigation.frames.ECEFFrameGets ECEF frame containing current body position and orientation expressed in ECEF coordinates.voidgetEcefFrame(com.irurueta.navigation.frames.ECEFFrame result) Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates.com.irurueta.navigation.frames.ECEFPositionGets current body position expressed in ECEF coordinates.voidgetEcefPosition(com.irurueta.navigation.frames.ECEFPosition result) Gets current body position expressed in ECEF coordinates.com.irurueta.units.TimeGets amount of total elapsed time since first processed measurement.voidgetElapsedTime(com.irurueta.units.Time result) Gets amount of total elapsed time since first processed measurement.doubleGets amount of total elapsed time since first processed measurement expressed in seconds (s).Gets theoretically expected body kinematics for provided body position and orientation, and provided time interval, assuming that body remains at the same position (zero velocity).voidgetExpectedKinematics(BodyKinematics result) Gets theoretically expected body kinematics for provided body position and orientation, and provided time interval, assuming that body remains at the same position (zero velocity).com.irurueta.algebra.MatrixGets estimated bias of gyroscope sensed angular rates expressed in radians per second (rad/s) as a 3x1 matrix column vector.voidgetGyroBias(com.irurueta.algebra.Matrix result) Gets estimated bias of gyroscope sensed angular rates expressed in radians per second (rad/s) as a 3x1 matrix column vector.doubleGets average gyroscope noise PSD (Power Spectral Density) among x,y,z components expressed in (rad^2/s).doubleGets gyroscope noise root PSD (Power Spectral Density) which is the norm of root PSD components expressed in (rad * s^-0.5).Gets last provided body kinematics values or null if not available.booleangetLastBodyKinematics(BodyKinematics result) Gets last provided body kinematics values.Gets listener to handle events raised by this estimator.com.irurueta.navigation.frames.CoordinateTransformationgetNedC()Gets current body orientation as a transformation from body to NED coordinates.voidgetNedC(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to NED coordinates.com.irurueta.navigation.frames.NEDFrameGets NED frame containing current body position and orientation expressed in NED coordinates.voidgetNedFrame(com.irurueta.navigation.frames.NEDFrame result) Gets NED frame containing current body position and orientation expressed in NED coordinates.com.irurueta.navigation.frames.NEDPositionGets current body position expressed in NED coordinates.voidgetNedPosition(com.irurueta.navigation.frames.NEDPosition result) Gets current body position expressed in NED coordinates.intGets number of samples that have been processed so far.doubleGets gyroscope noise PSD (Power Spectral Density) on x axis expressed in (rad^2/s).doubleGets gyroscope noise PSD (Power Spectral Density) on y axis expressed in (rad^2/s).doubleGets gyroscope noise PSD (Power Spectral Density) on z axis expressed in (rad^2/s).doublegetPSDFx()Gets accelerometer noise PSD (Power Spectral Density) on x axis expressed in (m^2 * s^-3).doublegetPSDFy()Gets accelerometer noise PSD (Power Spectral Density) on y axis expressed in (m^2 * s^-3).doublegetPSDFz()Gets accelerometer noise PSD (Power Spectral Density) on z axis expressed in (m^2 * s^-3).doubleGets gyroscope noise root PSD (Power Spectral Density) on x axis expressed in (rad * s^-0.5).doubleGets gyroscope noise root PSD (Power Spectral Density) on y axis expressed in (rad * s^-0.5).doubleGets gyroscope noise root PSD (Power Spectral Density) on z axis expressed in (rad * s^-0.5).doubleGets accelerometer noise root PSD (Power Spectral Density) on x axis expressed in (m * s^-1.5).doubleGets accelerometer noise root PSD (Power Spectral Density) on y axis expressed in (m * s^-1.5).doubleGets accelerometer noise root PSD (Power Spectral Density) on z axis expressed in (m * s^-1.5).Gets estimated standard deviation of sensed angular rate.voidGets estimated standard deviation of sensed angular rate.doubleGets estimated standard deviation of x coordinate of gyroscope sensed angular rate expressed in (rad/s).com.irurueta.units.AngularSpeedGets estimated standard deviation of x coordinate of gyroscope sensed angular rate.voidgetStandardDeviationAngularRateXAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of x coordinate of gyroscope sensed angular rate.doubleGets estimated standard deviation of y coordinate of gyroscope sensed angular rate expressed in (rad/s).com.irurueta.units.AngularSpeedGets estimated standard deviation of y coordinate of gyroscope sensed angular rate.voidgetStandardDeviationAngularRateYAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of y coordinate of gyroscope sensed angular rate.doubleGets estimated standard deviation of z coordinate of gyroscope sensed angular rate expressed in (rad/s).com.irurueta.units.AngularSpeedGets estimated standard deviation of z coordinate of gyroscope sensed angular rate.voidgetStandardDeviationAngularRateZAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of z coordinate of gyroscope sensed angular rate.Gets estimated standard deviation of accelerometer sensed specific force.voidGets estimated standard deviation of accelerometer sensed specific force.doubleGets estimated standard deviation of x coordinate of accelerometer sensed specific force expressed in (m/s^2).com.irurueta.units.AccelerationGets estimated standard deviation of x coordinate of accelerometer sensed specific force.voidgetStandardDeviationFxAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated standard deviation of x coordinate of accelerometer sensed specific force.doubleGets estimated standard deviation of y coordinate of accelerometer sensed specific force expressed in (m/s^2).com.irurueta.units.AccelerationGets estimated standard deviation of y coordinate of accelerometer sensed specific force.voidgetStandardDeviationFyAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated standard deviation of y coordinate of accelerometer sensed specific force.doubleGets estimated standard deviation of z coordinate of accelerometer sensed specific force expressed in (m/s^2).com.irurueta.units.AccelerationGets estimated standard deviation of z coordinate of accelerometer sensed specific force.voidgetStandardDeviationFzAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated standard deviation of z coordinate of accelerometer sensed specific force.Gets estimated standard deviations of accelerometer and gyroscope components as a body kinematics instance.voidGets estimated standard deviations of accelerometer and gyroscope components as a body kinematics instance.doubleGets time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).com.irurueta.units.TimeGets time interval between body kinematics (IMU acceleration + gyroscope) samples.voidgetTimeIntervalAsTime(com.irurueta.units.Time result) Gets time interval between body kinematics (IMU acceleration + gyroscope) samples.doubleGets estimated variance of x coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).doubleGets estimated variance of y coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).doubleGets estimated variance of z coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).doubleGets estimated variance of x coordinate of accelerometer sensed specific force expressed in (m^2/s^4).doubleGets estimated variance of y coordinate of accelerometer sensed specific force expressed in (m^2/s^4).doubleGets estimated variance of z coordinate of accelerometer sensed specific force expressed in (m^2/s^4).booleanIndicates whether estimator is currently running or not.private voidRebuilds expected theoretical kinematics for provided body position and orientation and provided time interval, assuming that body remains at the same position (zero velocity).booleanreset()Resets current estimator.voidsetEcefC(com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets current body orientation as a transformation from body to ECEF coordinates.voidsetEcefPosition(double x, double y, double z) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.geometry.Point3D position) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.navigation.frames.ECEFPosition position) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z) Sets current body position expressed in ECEF coordinates.voidsetEcefPositionAndEcefOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndNedOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidsetEcefPositionAndNedOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidsetEcefPositionAndNedOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidsetEcefPositionAndNedOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidSets listener to handle events raised by this estimator.voidsetNedC(com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets current body orientation as a transformation from body to NED coordinates.voidsetNedPosition(double latitude, double longitude, double height) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.navigation.frames.NEDPosition position) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) Sets current body position expressed in NED coordinates.voidsetNedPositionAndEcefOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndEcefOrientation(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndNedOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetTimeInterval(double timeInterval) Sets time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).voidsetTimeInterval(com.irurueta.units.Time timeInterval) Sets time interval between body kinematics (IMU acceleration + 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:
-
timeInterval
private double timeIntervalTime interval expressed in seconds (s) between body kinematics samples. -
frame
private final com.irurueta.navigation.frames.ECEFFrame frameContains body position, velocity (which will always be zero) and orientation resolved around ECEF axes. By default it is assumed that body is located at zero NED coordinates (latitude, longitude and height) and with zero Euler angles representing rotation (roll = 0, pith = 0, yaw = 0), which for Android devices it means that the device is flat on a horizontal surface with the screen facing down. -
listener
Listener to handle events raised by this estimator. -
lastBodyKinematics
Last provided body kinematics values. -
biasFx
private double biasFxContains estimated bias of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2). -
biasFy
private double biasFyContains estimated bias of y coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2). -
biasFz
private double biasFzContains estimated bias of z coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2). -
biasAngularRateX
private double biasAngularRateXContains estimated bias of x coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s). -
biasAngularRateY
private double biasAngularRateYContains estimated bias of y coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s). -
biasAngularRateZ
private double biasAngularRateZContains estimated bias of z coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s). -
varianceFx
private double varianceFxContains estimated variance of x coordinate of accelerometer sensed specific force expressed in (m^2/s^4). -
varianceFy
private double varianceFyContains estimated variance of y coordinate of accelerometer sensed specific force expressed in (m^2/s^4). -
varianceFz
private double varianceFzContains estimated variance of z coordinate of accelerometer sensed specific force expressed in (m^2/s4). -
varianceAngularRateX
private double varianceAngularRateXContains estimated variance of x coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2). -
varianceAngularRateY
private double varianceAngularRateYContains estimated variance of y coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2). -
varianceAngularRateZ
private double varianceAngularRateZContains estimated variance of z coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2). -
numberOfProcessedSamples
private int numberOfProcessedSamplesNumber of processed body kinematics samples. -
numberOfProcessedSamplesPlusOne
private int numberOfProcessedSamplesPlusOneNumber of processed body kinematics samples plus one. -
running
private boolean runningIndicates that estimator is running. -
expectedKinematics
Theoretical expected body kinematics for provided body position and orientation, and provided time interval, assuming that body remains at the same position (zero velocity). When body remains static, sensed specific force and angular rates will remain constant due to gravity and Earth rotation.
-
-
Constructor Details
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator()Constructor. It is assumed that body is located at zero NED coordinates (latitude = 0, longitude = 0 and height = 0) and with zero Euler angles representing rotation (roll = 0, pith = 0, yaw = 0), which for Android devices it means that the device is flat on a horizontal surface with the screen facing down. -
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(double latitude, double longitude, double height) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude expressed in radians (rad).longitude- longitude expressed in radians (rad).height- height expressed in meters (m).
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude.longitude- longitude.height- height expressed in meters (m).
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude.longitude- longitude.height- height.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(double timeInterval) Constructor. It is assumed that body is located at zero NED coordinates (latitude = 0, longitude = 0 and height = 0) and with zero Euler angles representing rotation (roll = 0, pith = 0, yaw = 0), which for Android devices it means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).- Throws:
IllegalArgumentException- if provided time interval is negative.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(double latitude, double longitude, double height, double timeInterval) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude expressed in radians (rad).longitude- longitude expressed in radians (rad).height- height expressed in meters (m).timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).- Throws:
IllegalArgumentException- if provided time interval is negative.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double timeInterval) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude.longitude- longitude.height- height expressed in meters (m).timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).- Throws:
IllegalArgumentException- if provided time interval is negative.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double timeInterval) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude.longitude- longitude.height- height.timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).- Throws:
IllegalArgumentException- if provided time interval is negative.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(com.irurueta.units.Time timeInterval) Constructor. It is assumed that body is located at zero NED coordinates (latitude = 0, longitude = 0 and height = 0) and with zero Euler angles representing rotation (roll = 0, pith = 0, yaw = 0), which for Android devices it means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples.- Throws:
IllegalArgumentException- if provided time interval is negative.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(double latitude, double longitude, double height, com.irurueta.units.Time timeInterval) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude expressed in radians (rad).longitude- longitude expressed in radians (rad).height- height expressed in meters (m).timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples.- Throws:
IllegalArgumentException- if provided time interval is negative.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.units.Time timeInterval) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude.longitude- longitude.height- height expressed in meters (m).timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples.- Throws:
IllegalArgumentException- if provided time interval is negative.
-
BodyKinematicsBiasEstimator
public BodyKinematicsBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.units.Time timeInterval) Constructor. It is assumed that body has zero Euler angles representing rotation (roll = 0, pitch = 0, yaw = 0) respect the horizon at provided body location. For Android devices this means that the device is flat on a horizontal surface with the screen facing down.- Parameters:
latitude- latitude.longitude- longitude.height- height.timeInterval- time interval between body kinematics (IMU acceleration + gyroscope) samples.- Throws:
IllegalArgumentException- if provided time interval is negative.
-
-
Method Details
-
getTimeInterval
public double getTimeInterval()Gets time interval between body kinematics (IMU acceleration + 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 time interval between body kinematics (IMU acceleration + 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 + 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 + gyroscope) samples.- Parameters:
result- instance where 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 + gyroscope) samples.- Parameters:
timeInterval- time interval between body kinematics samples.- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
getEcefPosition
public com.irurueta.navigation.frames.ECEFPosition getEcefPosition()Gets current body position expressed in ECEF coordinates.- Returns:
- current body position expressed in ECEF coordinates.
-
setEcefPosition
public void setEcefPosition(double x, double y, double z) throws com.irurueta.navigation.LockedException Sets current body position expressed in ECEF coordinates.- Parameters:
x- x position resolved around ECEF axes and expressed in meters (m).y- y position resolved around ECEF axes and expressed in meters (m).z- z position resolved around ECEF axes and expressed in meters (m).- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
setEcefPosition
public void setEcefPosition(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z) throws com.irurueta.navigation.LockedException Sets current body position expressed in ECEF coordinates.- Parameters:
x- x position resolved around ECEF axes.y- y position resolved around ECEF axes.z- z position resolved around ECEF axes.- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
setEcefPosition
public void setEcefPosition(com.irurueta.geometry.Point3D position) throws com.irurueta.navigation.LockedException Sets current body position expressed in ECEF coordinates.- Parameters:
position- position resolved around ECEF axes and expressed in meters (m).- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
getEcefFrame
public com.irurueta.navigation.frames.ECEFFrame getEcefFrame()Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates. Frame also contains body velocity, but it is always assumed to be zero during calibration.- Returns:
- ECEF frame containing current body position and orientation resolved around ECEF axes.
-
getNedFrame
public com.irurueta.navigation.frames.NEDFrame getNedFrame()Gets NED frame containing current body position and orientation expressed in NED coordinates. Frame also contains body velocity, but it is always assumed to be zero during calibration.- Returns:
- NED frame containing current body position and orientation resolved around NED axes.
-
getNedPosition
public com.irurueta.navigation.frames.NEDPosition getNedPosition()Gets current body position expressed in NED coordinates.- Returns:
- current body position expressed in NED coordinates.
-
setNedPosition
public void setNedPosition(double latitude, double longitude, double height) throws com.irurueta.navigation.LockedException Sets current body position expressed in NED coordinates.- Parameters:
latitude- latitude NED coordinate expressed in radians (rad).longitude- longitude NED coordinate expressed in radians (rad).height- height NED coordinate expressed in meters (m).- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
setNedPosition
public void setNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) throws com.irurueta.navigation.LockedException Sets current body position expressed in NED coordinates.- Parameters:
latitude- latitude NED coordinate.longitude- longitude NED coordinate.height- height NED coordinate expressed in meters (m).- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
setNedPosition
public void setNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) throws com.irurueta.navigation.LockedException Sets current body position expressed in NED coordinates.- Parameters:
latitude- latitude NED coordinate.longitude- longitude NED coordinate.height- height NED coordinate.- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
getEcefC
public com.irurueta.navigation.frames.CoordinateTransformation getEcefC()Gets current body orientation as a transformation from body to ECEF coordinates. Notice that returned orientation refers to ECEF Earth axes, which means that orientation is not relative to the ground or horizon at current body position. Typically it is more convenient to usegetNedC()to obtain orientation relative to the ground or horizon at current body position. For instance, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.- Returns:
- current body orientation resolved on ECEF axes.
-
getNedC
public com.irurueta.navigation.frames.CoordinateTransformation getNedC()Gets current body orientation as a transformation from body to NED coordinates. Notice that returned orientation refers to current local position. This means that two equal NED orientations will transform into different ECEF orientations if the body is located at different positions. As a reference, on Android devices a NED orientation with Euler angles (roll = 0, pitch = 0, yaw = 0) means that the device is laying flat on a horizontal surface with the screen facing down towards the ground.- Returns:
- current body orientation resolved on NED axes.
-
getListener
Gets listener to handle events raised by this estimator.- Returns:
- listener to handle events raised by this estimator.
-
getLastBodyKinematics
Gets last provided body kinematics values or null if not available.- Returns:
- last provided body kinematics values or null.
-
getBiasFx
public double getBiasFx()Gets estimated bias of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).- Returns:
- bias of x coordinate of sensed specific force.
-
getBiasFxAsAcceleration
public com.irurueta.units.Acceleration getBiasFxAsAcceleration()Gets estimated bias of x coordinate of accelerometer sensed specific force.- Returns:
- bias of x coordinate of sensed specific force.
-
getBiasFxAsAcceleration
public void getBiasFxAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated bias of x coordinate of accelerometer sensed specific force.- Parameters:
result- instance where bias of x coordinate of sensed specific force will be stored.
-
getBiasFy
public double getBiasFy()Gets estimated bias of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).- Returns:
- bias of y coordinate of sensed specific force.
-
getBiasFyAsAcceleration
public com.irurueta.units.Acceleration getBiasFyAsAcceleration()Gets estimated bias of y coordinate of accelerometer sensed specific force.- Returns:
- bias of y coordinate of sensed specific force.
-
getBiasFyAsAcceleration
public void getBiasFyAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated bias of y coordinate of accelerometer sensed specific force.- Parameters:
result- instance where bias of y coordinate of sensed specific force will be stored.
-
getBiasFz
public double getBiasFz()Gets estimated bias of z coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).- Returns:
- bias of z coordinate of sensed specific force.
-
getBiasFzAsAcceleration
public com.irurueta.units.Acceleration getBiasFzAsAcceleration()Gets estimated bias of z coordinate of accelerometer sensed specific force.- Returns:
- bias of z coordinate of sensed specific force.
-
getBiasFzAsAcceleration
public void getBiasFzAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated bias of z coordinate of accelerometer sensed specific force.- Parameters:
result- instance where bias of z coordinate of sensed specific force will be stored.
-
getBiasAngularRateX
public double getBiasAngularRateX()Gets estimated bias of x coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).- Returns:
- bias of x coordinate of sensed angular rate.
-
getBiasAngularRateXAsAngularSpeed
public com.irurueta.units.AngularSpeed getBiasAngularRateXAsAngularSpeed()Gets estimated bias of x coordinate of gyroscope sensed angular rate.- Returns:
- bias of x coordinate of sensed angular rate.
-
getBiasAngularRateXAsAngularSpeed
public void getBiasAngularRateXAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated bias of x coordinate of gyroscope sensed angular rate.- Parameters:
result- instance where bias of x coordinate of sensed angular rate will be stored.
-
getBiasAngularRateY
public double getBiasAngularRateY()Gets estimated bias of y coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).- Returns:
- bias of y coordinate of sensed angular rate.
-
getBiasAngularRateYAsAngularSpeed
public com.irurueta.units.AngularSpeed getBiasAngularRateYAsAngularSpeed()Gets estimated bias of y coordinate of gyroscope sensed angular rate.- Returns:
- bias of y coordinate of sensed angular rate.
-
getBiasAngularRateYAsAngularSpeed
public void getBiasAngularRateYAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated bias of y coordinate of gyroscope sensed angular rate.- Parameters:
result- instance where bias of y coordinate of sensed angular rate will be stored.
-
getBiasAngularRateZ
public double getBiasAngularRateZ()Gets estimated bias of z coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).- Returns:
- bias of z coordinate of sensed angular rate.
-
getBiasAngularRateZAsAngularSpeed
public com.irurueta.units.AngularSpeed getBiasAngularRateZAsAngularSpeed()Gets estimated bias of z coordinate of gyroscope sensed angular rate.- Returns:
- bias of z coordinate of sensed angular rate.
-
getBiasAngularRateZAsAngularSpeed
public void getBiasAngularRateZAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated bias of z coordinate of gyroscope sensed angular rate.- Parameters:
result- instance where bias of z coordinate of sensed angular rate will be stored.
-
getBiasF
Gets estimated bias of accelerometer sensed specific force.- Returns:
- estimated bias of accelerometer sensed specific force.
-
getBiasAngularRate
Gets estimated bias of gyroscope sensed angular rate.- Returns:
- estimated bias of gyroscope sensed angular rate.
-
getBiasesAsBodyKinematics
Gets body kinematics containing estimated bias values for accelerometer and gyroscope.- Returns:
- body kinematics containing estimated bias values.
-
getVarianceFx
public double getVarianceFx()Gets estimated variance of x coordinate of accelerometer sensed specific force expressed in (m^2/s^4).- Returns:
- estimated variance of x coordinate of sensed specific force.
-
getVarianceFy
public double getVarianceFy()Gets estimated variance of y coordinate of accelerometer sensed specific force expressed in (m^2/s^4).- Returns:
- estimated variance of y coordinate of sensed specific force.
-
getVarianceFz
public double getVarianceFz()Gets estimated variance of z coordinate of accelerometer sensed specific force expressed in (m^2/s^4).- Returns:
- estimated variance of z coordinate of sensed specific force.
-
getVarianceAngularRateX
public double getVarianceAngularRateX()Gets estimated variance of x coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).- Returns:
- estimated variance of x coordinate of sensed angular rate.
-
getVarianceAngularRateY
public double getVarianceAngularRateY()Gets estimated variance of y coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).- Returns:
- estimated variance of y coordinate of sensed angular rate.
-
getVarianceAngularRateZ
public double getVarianceAngularRateZ()Gets estimated variance of z coordinate of gyroscope sensed angular rate expressed in (rad^2/s^2).- Returns:
- estimated variance of z coordinate of sensed angular rate.
-
getStandardDeviationFx
public double getStandardDeviationFx()Gets estimated standard deviation of x coordinate of accelerometer sensed specific force expressed in (m/s^2).- Returns:
- estimated standard deviation of x coordinate of sensed specific force.
-
getStandardDeviationFxAsAcceleration
public com.irurueta.units.Acceleration getStandardDeviationFxAsAcceleration()Gets estimated standard deviation of x coordinate of accelerometer sensed specific force.- Returns:
- estimated standard deviation of x coordinate of sensed specific force.
-
getStandardDeviationFxAsAcceleration
public void getStandardDeviationFxAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated standard deviation of x coordinate of accelerometer sensed specific force.- Parameters:
result- instance where estimated standard deviation of x coordinate of sensed specific force will be stored.
-
getStandardDeviationFy
public double getStandardDeviationFy()Gets estimated standard deviation of y coordinate of accelerometer sensed specific force expressed in (m/s^2).- Returns:
- estimated standard deviation of y coordinate of sensed specific force.
-
getStandardDeviationFyAsAcceleration
public com.irurueta.units.Acceleration getStandardDeviationFyAsAcceleration()Gets estimated standard deviation of y coordinate of accelerometer sensed specific force.- Returns:
- estimated standard deviation of y coordinate of sensed specific force.
-
getStandardDeviationFyAsAcceleration
public void getStandardDeviationFyAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated standard deviation of y coordinate of accelerometer sensed specific force.- Parameters:
result- instance where estimated standard deviation of y coordinate of sensed specific force will be stored.
-
getStandardDeviationFz
public double getStandardDeviationFz()Gets estimated standard deviation of z coordinate of accelerometer sensed specific force expressed in (m/s^2).- Returns:
- estimated standard deviation of z coordinate of sensed specific force.
-
getStandardDeviationFzAsAcceleration
public com.irurueta.units.Acceleration getStandardDeviationFzAsAcceleration()Gets estimated standard deviation of z coordinate of accelerometer sensed specific force.- Returns:
- estimated standard deviation of z coordinate of sensed specific force.
-
getStandardDeviationFzAsAcceleration
public void getStandardDeviationFzAsAcceleration(com.irurueta.units.Acceleration result) Gets estimated standard deviation of z coordinate of accelerometer sensed specific force.- Parameters:
result- instance where estimated standard deviation of z coordinate of sensed specific force will be stored.
-
getStandardDeviationF
Gets estimated standard deviation of accelerometer sensed specific force.- Returns:
- estimated standard deviation of accelerometer
-
getAverageAccelerometerStandardDeviation
public double getAverageAccelerometerStandardDeviation()Gets average of estimated standard deviation of accelerometer sensed specific force for all coordinates expressed in meters per squared second (m/s^2).- Returns:
- average of estimated standard deviation of accelerometer.
-
getAverageAccelerometerStandardDeviationAsAcceleration
public com.irurueta.units.Acceleration getAverageAccelerometerStandardDeviationAsAcceleration()Gets average of estimated standard deviation of accelerometer sensed specific force for all coordinates.- Returns:
- average of estimated standard deviation of accelerometer.
-
getAverageAccelerometerStandardDeviationAsAcceleration
public void getAverageAccelerometerStandardDeviationAsAcceleration(com.irurueta.units.Acceleration result) Gets average of estimated standard deviation of accelerometer sensed specific force for all coordinates.- Parameters:
result- instance where result data will be copied to.
-
getStandardDeviationAngularRateX
public double getStandardDeviationAngularRateX()Gets estimated standard deviation of x coordinate of gyroscope sensed angular rate expressed in (rad/s).- Returns:
- estimated standard deviation of x coordinate of sensed angular rate.
-
getStandardDeviationAngularRateXAsAngularSpeed
public com.irurueta.units.AngularSpeed getStandardDeviationAngularRateXAsAngularSpeed()Gets estimated standard deviation of x coordinate of gyroscope sensed angular rate.- Returns:
- estimated standard deviation of x coordinate of sensed angular rate.
-
getStandardDeviationAngularRateXAsAngularSpeed
public void getStandardDeviationAngularRateXAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of x coordinate of gyroscope sensed angular rate.- Parameters:
result- instance where estimated standard deviation of x coordinate of sensed angular rate will be stored.
-
getStandardDeviationAngularRateY
public double getStandardDeviationAngularRateY()Gets estimated standard deviation of y coordinate of gyroscope sensed angular rate expressed in (rad/s).- Returns:
- estimated standard deviation of y coordinate of sensed angular rate.
-
getStandardDeviationAngularRateYAsAngularSpeed
public com.irurueta.units.AngularSpeed getStandardDeviationAngularRateYAsAngularSpeed()Gets estimated standard deviation of y coordinate of gyroscope sensed angular rate.- Returns:
- estimated standard deviation of y coordinate of sensed angular rate.
-
getStandardDeviationAngularRateYAsAngularSpeed
public void getStandardDeviationAngularRateYAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of y coordinate of gyroscope sensed angular rate.- Parameters:
result- instance where estimated standard deviation of y coordinate of sensed angular rate will be stored.
-
getStandardDeviationAngularRateZ
public double getStandardDeviationAngularRateZ()Gets estimated standard deviation of z coordinate of gyroscope sensed angular rate expressed in (rad/s).- Returns:
- estimated standard deviation of z coordinate of sensed angular rate.
-
getStandardDeviationAngularRateZAsAngularSpeed
public com.irurueta.units.AngularSpeed getStandardDeviationAngularRateZAsAngularSpeed()Gets estimated standard deviation of z coordinate of gyroscope sensed angular rate.- Returns:
- estimated standard deviation of z coordinate of sensed angular rate.
-
getStandardDeviationAngularRateZAsAngularSpeed
public void getStandardDeviationAngularRateZAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of z coordinate of gyroscope sensed angular rate.- Parameters:
result- instance where estimated standard deviation of z coordinate of sensed angular rate will be stored.
-
getStandardDeviationAngularRate
Gets estimated standard deviation of sensed angular rate.- Returns:
- estimated standard deviation of sensed angular rate.
-
getAverageGyroscopeStandardDeviation
public double getAverageGyroscopeStandardDeviation()Gets average of estimated standard deviation of gyroscope sensed angular rate for all coordinates expressed in radians per second (rad/s).- Returns:
- average of estimated standard deviation of gyroscope.
-
getAverageGyroscopeStandardDeviationAsAngularSpeed
public com.irurueta.units.AngularSpeed getAverageGyroscopeStandardDeviationAsAngularSpeed()Gets average of estimated standard deviation of gyroscope sensed angular rate for all coordinates.- Returns:
- average of estimated standard deviation of gyroscope.
-
getAverageGyroscopeStandardDeviationAsAngularSpeed
public void getAverageGyroscopeStandardDeviationAsAngularSpeed(com.irurueta.units.AngularSpeed result) Gets average of estimated standard deviation of gyroscope sensed angular rate for all coordinates.- Parameters:
result- instance where result data will be copied to.
-
getStandardDeviationsAsBodyKinematics
Gets estimated standard deviations of accelerometer and gyroscope components as a body kinematics instance.- Returns:
- a body kinematics instance containing standard deviation values.
-
getPSDFx
public double getPSDFx()Gets accelerometer noise PSD (Power Spectral Density) on x axis expressed in (m^2 * s^-3).- Returns:
- accelerometer noise PSD on x axis.
-
getPSDFy
public double getPSDFy()Gets accelerometer noise PSD (Power Spectral Density) on y axis expressed in (m^2 * s^-3).- Returns:
- accelerometer noise PSD on y axis.
-
getPSDFz
public double getPSDFz()Gets accelerometer noise PSD (Power Spectral Density) on z axis expressed in (m^2 * s^-3).- Returns:
- accelerometer noise PSD on z axis.
-
getPSDAngularRateX
public double getPSDAngularRateX()Gets gyroscope noise PSD (Power Spectral Density) on x axis expressed in (rad^2/s).- Returns:
- gyroscope noise PSD on x axis.
-
getPSDAngularRateY
public double getPSDAngularRateY()Gets gyroscope noise PSD (Power Spectral Density) on y axis expressed in (rad^2/s).- Returns:
- gyroscope noise PSD on y axis.
-
getPSDAngularRateZ
public double getPSDAngularRateZ()Gets gyroscope noise PSD (Power Spectral Density) on z axis expressed in (rad^2/s).- Returns:
- gyroscope noise PSD on z axis.
-
getRootPSDFx
public double getRootPSDFx()Gets accelerometer noise root PSD (Power Spectral Density) on x axis expressed in (m * s^-1.5).- Returns:
- accelerometer noise root PSD on x axis.
-
getRootPSDFy
public double getRootPSDFy()Gets accelerometer noise root PSD (Power Spectral Density) on y axis expressed in (m * s^-1.5).- Returns:
- accelerometer noise root PSD on y axis.
-
getRootPSDFz
public double getRootPSDFz()Gets accelerometer noise root PSD (Power Spectral Density) on z axis expressed in (m * s^-1.5).- Returns:
- accelerometer noise root PSD on z axis.
-
getRootPSDAngularRateX
public double getRootPSDAngularRateX()Gets gyroscope noise root PSD (Power Spectral Density) on x axis expressed in (rad * s^-0.5).- Returns:
- gyroscope noise root PSD on x axis.
-
getRootPSDAngularRateY
public double getRootPSDAngularRateY()Gets gyroscope noise root PSD (Power Spectral Density) on y axis expressed in (rad * s^-0.5).- Returns:
- gyroscope noise root PSD on y axis.
-
getRootPSDAngularRateZ
public double getRootPSDAngularRateZ()Gets gyroscope noise root PSD (Power Spectral Density) on z axis expressed in (rad * s^-0.5).- Returns:
- gyroscope noise root PSD on z axis.
-
getAccelerometerNoisePSD
public double getAccelerometerNoisePSD()Gets average accelerometer noise PSD (Power Spectral Density) among x,y,z components expressed as (m^2/s^3).- Returns:
- average accelerometer noise PSD.
-
getAccelerometerNoiseRootPSD
public double getAccelerometerNoiseRootPSD()Gets accelerometer noise root PSD (Power Spectral Density) which is the norm of root PSD components expressed as (m * s^-1.5).- Returns:
- average accelerometer noise root PSD.
-
getGyroNoisePSD
public double getGyroNoisePSD()Gets average gyroscope noise PSD (Power Spectral Density) among x,y,z components expressed in (rad^2/s).- Returns:
- average gyroscope noise PSD.
-
getGyroNoiseRootPSD
public double getGyroNoiseRootPSD()Gets gyroscope noise root PSD (Power Spectral Density) which is the norm of root PSD components expressed in (rad * s^-0.5).- Returns:
- average gyroscope noise root PSD.
-
getAccelerometerBias
public com.irurueta.algebra.Matrix getAccelerometerBias()Gets estimated bias of accelerometer sensed specific force expressed in meters per squared second (m/s^2) as a 3x1 matrix column vector.- Returns:
- estimated bias of accelerometer sensed specific force.
-
getAccelerometerBias
public void getAccelerometerBias(com.irurueta.algebra.Matrix result) Gets estimated bias of accelerometer sensed specific force expressed in meters per squared second (m/s^2) as a 3x1 matrix column vector.- Parameters:
result- instance where data will be copied to. Must be 3x1.- Throws:
IllegalArgumentException- if provided result matrix is not 3x1.
-
getGyroBias
public com.irurueta.algebra.Matrix getGyroBias()Gets estimated bias of gyroscope sensed angular rates expressed in radians per second (rad/s) as a 3x1 matrix column vector.- Returns:
- estimated bias of gyroscope sensed angular rates.
-
getGyroBias
public void getGyroBias(com.irurueta.algebra.Matrix result) Gets estimated bias of gyroscope sensed angular rates expressed in radians per second (rad/s) as a 3x1 matrix column vector.- Parameters:
result- instance where data will be copied to. Must be 3x1.- Throws:
IllegalArgumentException- if provided result matrix is not 3x1.
-
getNumberOfProcessedSamples
public int getNumberOfProcessedSamples()Gets number of samples that have been processed so far.- Returns:
- number of samples that have been processed so far.
-
getElapsedTimeSeconds
public double getElapsedTimeSeconds()Gets amount of total elapsed time since first processed measurement expressed in seconds (s).- Returns:
- amount of total elapsed time.
-
getElapsedTime
public com.irurueta.units.Time getElapsedTime()Gets amount of total elapsed time since first processed measurement.- Returns:
- amount of total elapsed time.
-
getElapsedTime
public void getElapsedTime(com.irurueta.units.Time result) Gets amount of total elapsed time since first processed measurement.- Parameters:
result- instance where result will be stored.
-
isRunning
public boolean isRunning()Indicates whether estimator is currently running or not.- Returns:
- true if estimator is running, false otherwise.
-
getExpectedKinematics
Gets theoretically expected body kinematics for provided body position and orientation, and provided time interval, assuming that body remains at the same position (zero velocity). When body remains static, sensed specific force and angular rates will remain constant due to gravity and Earth rotation.- Returns:
- expected body kinematics.
-
reset
public boolean reset() throws com.irurueta.navigation.LockedExceptionResets current estimator.- Returns:
- true if estimator was successfully reset, false if no reset was needed.
- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
convertTime
private static double convertTime(com.irurueta.units.Time time) Converts provided time instance to seconds.- Parameters:
time- instance to be converted.- Returns:
- obtained conversion in seconds.
-
rebuildExpectedKinematics
private void rebuildExpectedKinematics()Rebuilds expected theoretical kinematics for provided body position and orientation and provided time interval, assuming that body remains at the same position (zero velocity). When body remains static, sensed specific force and angular rates will remain constant due to gravity and Earth rotation.
-