Class WindowedBodyKinematicsNoiseEstimator
java.lang.Object
com.irurueta.navigation.inertial.calibration.noise.WindowedBodyKinematicsNoiseEstimator
- All Implemented Interfaces:
AccelerometerNoiseRootPsdSource,GyroscopeNoiseRootPsdSource
public class WindowedBodyKinematicsNoiseEstimator
extends Object
implements AccelerometerNoiseRootPsdSource, GyroscopeNoiseRootPsdSource
Estimates accelerometer and angular speed noise variances and PSD's
(Power Spectral Densities) along with their average values for a windowed
amount of samples.
This estimator must be used when the body where the accelerometer and
gyroscope are attached remains static on the same position with zero
velocity and constant (or zero) angular speed while capturing data.
To compute PSD's, this estimator assumes that measurement samples are obtained
at a constant provided rate equal to
getTimeInterval() seconds.
If not available, sampling rate average can be estimated using
TimeIntervalEstimator.
This estimator does NOT require the knowledge of current location and body
orientation.
Because body location and orientation is not known, estimated average values
cannot be used to determine biases. Only norm of noise estimations
(variance or standard deviation) can be safely used.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleEstimated average of x coordinate of angular rate expressed in radians per second (rad/s).private doubleEstimated average of y coordinate of angular rate expressed in radians per second (rad/s).private doubleEstimated average of z coordinate of angular rate expressed in radians per second (rad/s).private doubleEstimated average of x coordinate of specific force expressed in meters per squared second (m/s^2).private doubleEstimated average of y coordinate of specific force expressed in meters per squared second (m/s^2).private doubleEstimated average of z coordinate of specific force expressed in meters per squared second (m/s^2).static final doubleDefault time interval between accelerometer samples expressed in seconds (s).static final intNumber of samples to keep within the window by default.Listener to handle events raised by this estimator.static final intMinimum allowed window size.private intNumber of processed acceleration triad samples.private booleanIndicates whether estimator is running or not.private doubleTime interval expressed in seconds (s) between consecutive accelerometer samples.private doubleEstimated variance of x coordinate of angular rate expressed in (rad^2/s^2).private doubleEstimated variance of y coordinate of angular rate expressed in (rad^2/s^2).private doubleEstimated variance of z coordinate of angular rate expressed in (rad^2/s^2).private doubleEstimated variance of x coordinate of specific force expressed in (m^2/s^4).private doubleEstimated variance of y coordinate of specific force expressed in (m^2/s^4).private doubleEstimated variance of z coordinate of specific force expressed in (m^2/s^4).private final LinkedList<BodyKinematics> Keeps the list of body kinematics samples that remain within the window.private intLength of number of samples to keep within the window being processed. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBodyKinematics(double specificForceX, double specificForceY, double specificForceZ, double angularRateX, double angularRateY, double angularRateZ) Adds a body kinematics measurement.voidaddBodyKinematics(BodyKinematics kinematics) Adds a body kinematics measurement.voidaddBodyKinematics(AccelerationTriad specificForce, AngularSpeedTriad angularSpeed) Adds a body kinematics measurement.voidaddBodyKinematics(com.irurueta.units.Acceleration specificForceX, com.irurueta.units.Acceleration specificForceY, com.irurueta.units.Acceleration specificForceZ, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ) Adds a body kinematics measurement.booleanaddBodyKinematicsAndProcess(double specificForceX, double specificForceY, double specificForceZ, double angularRateX, double angularRateY, double angularRateZ) Adds a body kinematics measurement and processes current window.booleanaddBodyKinematicsAndProcess(BodyKinematics kinematics) Adds a body kinematics measurement and processes current window.booleanaddBodyKinematicsAndProcess(AccelerationTriad specificForce, AngularSpeedTriad angularSpeed) Adds a body kinematics measurement and processes current window.booleanaddBodyKinematicsAndProcess(com.irurueta.units.Acceleration specificForceX, com.irurueta.units.Acceleration specificForceY, com.irurueta.units.Acceleration specificForceZ, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ) Adds a body kinematics measurement and processes current window.doubleGets accelerometer base noise level root PSD (Power Spectral Density) expressed in (m * s^-1.5).doubleGets norm of noise root PSD (Power Spectral Density) among x,y,z components expressed as (rad * s^-0.5).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).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 average of estimated standard deviation coordinates of gyroscope measurements expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets average of estimated standard deviation coordinates of gyroscope measurements.voidgetAverageStandardDeviationAngularSpeedAsMeasurement(com.irurueta.units.AngularSpeed result) Gets average of estimated standard deviation coordinates of gyroscope measurements.doubleGets average of estimated standard deviation coordinates of accelerometer measurements expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets average of estimated standard deviation coordinates of accelerometer measurements.voidgetAverageStandardDeviationSpecificForceAsMeasurement(com.irurueta.units.Acceleration result) Gets average of estimated standard deviation coordinates of accelerometer measurements.doubleGets average gyroscope noise PSD (Power Spectral Density) among x,y,z components expressed in (rad^2/s).doubleGets norm of estimated average angular speed expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets norm of estimated average angular speed.voidgetAvgAngularRateNormAsMeasurement(com.irurueta.units.AngularSpeed result) Gets norm of estimated average angular speed.Gets estimated average of gyroscope sensed angular speed as a measurement triad.voidGets estimated average of gyroscope sensed angular speed as a measurement triad.doubleGets estimated average of x coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated average of x coordinate of gyroscope sensed angular rate.voidgetAvgAngularRateXAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated average of x coordinate of gyroscope sensed angular rate.doubleGets estimated average of y coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated average of y coordinate of gyroscope sensed angular rate.voidgetAvgAngularRateYAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated average of y coordinate of gyroscope sensed angular rate.doubleGets estimated average of z coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated average of z coordinate of gyroscope sensed angular rate.voidgetAvgAngularRateZAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated average of z coordinate of gyroscope sensed angular rate.Gets estimated average of body kinematics.voidgetAvgBodyKinematics(BodyKinematics result) Gets estimated average of body kinematics.Gets estimated average of accelerometer sensed specific force as a measurement triad.voidGets estimated average of accelerometer sensed specific force as a measurement triad.doubleGets average accelerometer noise PSD (Power Spectral Density) among x,y,z components expressed as (m^2/s^-3).doubleGets norm of estimated average acceleration expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets norm of estimated average acceleration within current window.voidgetAvgSpecificForceNormAsMeasurement(com.irurueta.units.Acceleration result) Gets norm of estimated average acceleration.doubleGets estimated average of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated average of x coordinate of accelerometer sensed specific force.voidgetAvgSpecificForceXAsMeasurement(com.irurueta.units.Acceleration result) Gets estimated average of x coordinate of accelerometer sensed specific force.doubleGets estimated average of y coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated average of y coordinate of accelerometer sensed specific force.voidgetAvgSpecificForceYAsMeasurement(com.irurueta.units.Acceleration result) Gets estimated average of y coordinate of accelerometer sensed specific force.doubleGets estimated average of z coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated average of z coordinate of accelerometer sensed specific force.voidgetAvgSpecificForceZAsMeasurement(com.irurueta.units.Acceleration result) Gets estimated average of z coordinate of accelerometer sensed specific force.Gets first provided body kinematics within the window.booleanGets first provided body kinematics within the window.doubleGets gyroscope base noise level root PSD (Power Spectral Density) expressed in (rad * s^-0.5)Gets last provided body kinematics within the window.booleanGets last provided body kinematics within the window.Gets listener to handle events raised by this estimator.intGets number of samples that have been processed so far.intGets number of currently windowed samples.doubleGets norm of noise root PSD (Power Spectral Density) among x,y,z components expressed as (m * s^-1.5).doubleGets accelerometer noise PSD (Power Spectral Density) on x axis expressed in (m^2 * s^-3).doubleGets accelerometer noise PSD (Power Spectral Density) on y axis expressed in (m^2 * s^-3).doubleGets accelerometer noise PSD (Power Spectral Density) on z axis expressed in (m^2 * s^-3).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).doubleGets estimated standard deviation of x coordinate of gyroscope expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated standard deviation of x coordinate of gyroscope.voidgetStandardDeviationAngularRateXAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of x coordinate of gyroscope.doubleGets estimated standard deviation of y coordinate of gyroscope expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated standard deviation of y coordinate of gyroscope.voidgetStandardDeviationAngularRateYAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of y coordinate of gyroscope.doubleGets estimated standard deviation of z coordinate of gyroscope expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets estimated standard deviation of z coordinate of gyroscope.voidgetStandardDeviationAngularRateZAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of z coordinate of gyroscope.doubleGets norm of estimated standard deviation of gyroscope measurements expressed in radians per second (rad/s).com.irurueta.units.AngularSpeedGets norm of estimated standard deviation of gyroscope measurements.voidgetStandardDeviationAngularSpeedNormAsMeasurement(com.irurueta.units.AngularSpeed result) Gets norm of estimated standard deviation of gyroscope measurements.Gets estimated standard deviation triad of angular speed measurements.voidGets estimated standard deviation triad of angular speed measurements.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 norm of estimated standard deviation of accelerometer measurements expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets norm of estimated standard deviation of accelerometer measurements.voidgetStandardDeviationSpecificForceNormAsMeasurement(com.irurueta.units.Acceleration result) Gets norm of estimated standard deviation of accelerometer measurements.Gets estimated standard deviation triad of accelerometer measurements.voidGets estimated standard deviation triad of accelerometer measurements.doubleGets estimated standard deviation of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated standard deviation of x coordinate of accelerometer sensed specific force.voidgetStandardDeviationSpecificForceXAsMeasurement(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 meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated standard deviation of y coordinate of accelerometer sensed specific force.voidgetStandardDeviationSpecificForceYAsMeasurement(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 meters per squared second (m/s^2).com.irurueta.units.AccelerationGets estimated standard deviation of z coordinate of accelerometer sensed specific force.voidgetStandardDeviationSpecificForceZAsMeasurement(com.irurueta.units.Acceleration result) Gets estimated standard deviation of z coordinate of accelerometer sensed specific force.doubleGets time interval between body kinematics samples expressed in seconds (s).com.irurueta.units.TimeGets time interval between body kinematics samples.voidgetTimeIntervalAsTime(com.irurueta.units.Time result) Gets time interval between body kinematics 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).intGets length of number of samples to keep within the window being processed.private booleaninternalAdd(BodyKinematics kinematics, boolean process) Internally adds a body kinematics measurement and processes current window if indicated.booleanIndicates whether estimator is currently running or not.booleanIndicates whether window of samples is filled or not.private booleanProcesses current windowed samples.booleanreset()Resets current estimator.voidSets listener to handle events raised by this estimator.voidsetTimeInterval(double timeInterval) Sets time interval between body kinematics samples expressed in seconds (s).voidsetTimeInterval(com.irurueta.units.Time timeInterval) Sets time interval between body kinematics samples.voidsetWindowSize(int windowSize) Sets length of number of samples to keep within the window being processed.
-
Field Details
-
DEFAULT_WINDOW_SIZE
public static final int DEFAULT_WINDOW_SIZENumber of samples to keep within the window by default. For an accelerometer generating 100 samples/second, this is equivalent to 1 second. For an accelerometer generating 50 samples/second, this is equivalent to 2 seconds.- See Also:
-
MIN_WINDOW_SIZE
public static final int MIN_WINDOW_SIZEMinimum allowed window size.- See Also:
-
DEFAULT_TIME_INTERVAL_SECONDS
public static final double DEFAULT_TIME_INTERVAL_SECONDSDefault time interval between accelerometer samples expressed in seconds (s).- See Also:
-
windowSize
private int windowSizeLength of number of samples to keep within the window being processed. Window size must always be larger than allowed minimum value. -
timeInterval
private double timeIntervalTime interval expressed in seconds (s) between consecutive accelerometer samples. -
windowedSamples
Keeps the list of body kinematics samples that remain within the window. -
listener
Listener to handle events raised by this estimator. -
avgSpecificForceX
private double avgSpecificForceXEstimated average of x coordinate of specific force expressed in meters per squared second (m/s^2). -
avgSpecificForceY
private double avgSpecificForceYEstimated average of y coordinate of specific force expressed in meters per squared second (m/s^2). -
avgSpecificForceZ
private double avgSpecificForceZEstimated average of z coordinate of specific force expressed in meters per squared second (m/s^2). -
avgAngularRateX
private double avgAngularRateXEstimated average of x coordinate of angular rate expressed in radians per second (rad/s). -
avgAngularRateY
private double avgAngularRateYEstimated average of y coordinate of angular rate expressed in radians per second (rad/s). -
avgAngularRateZ
private double avgAngularRateZEstimated average of z coordinate of angular rate expressed in radians per second (rad/s). -
varianceSpecificForceX
private double varianceSpecificForceXEstimated variance of x coordinate of specific force expressed in (m^2/s^4). -
varianceSpecificForceY
private double varianceSpecificForceYEstimated variance of y coordinate of specific force expressed in (m^2/s^4). -
varianceSpecificForceZ
private double varianceSpecificForceZEstimated variance of z coordinate of specific force expressed in (m^2/s^4). -
varianceAngularRateX
private double varianceAngularRateXEstimated variance of x coordinate of angular rate expressed in (rad^2/s^2). -
varianceAngularRateY
private double varianceAngularRateYEstimated variance of y coordinate of angular rate expressed in (rad^2/s^2). -
varianceAngularRateZ
private double varianceAngularRateZEstimated variance of z coordinate of angular rate expressed in (rad^2/s^2). -
numberOfProcessedSamples
private int numberOfProcessedSamplesNumber of processed acceleration triad samples. -
running
private boolean runningIndicates whether estimator is running or not.
-
-
Constructor Details
-
WindowedBodyKinematicsNoiseEstimator
public WindowedBodyKinematicsNoiseEstimator()Constructor.
-
-
Method Details
-
getWindowSize
public int getWindowSize()Gets length of number of samples to keep within the window being processed. Window size must always be larger than allowed minimum value.- Returns:
- length of number of samples to keep within the window.
-
setWindowSize
public void setWindowSize(int windowSize) throws com.irurueta.navigation.LockedException Sets length of number of samples to keep within the window being processed. Window size must always be larger than allowed minimum value. When window size is modified, instance state is reset.- Parameters:
windowSize- length of number of samples to keep within the window.- Throws:
IllegalArgumentException- if provided value is not valid.com.irurueta.navigation.LockedException- if estimator is currently running.
-
getTimeInterval
public double getTimeInterval()Gets time interval between body kinematics samples expressed in seconds (s).- Returns:
- time interval between accelerometer triad samples.
-
setTimeInterval
public void setTimeInterval(double timeInterval) throws com.irurueta.navigation.LockedException Sets time interval between body kinematics samples expressed in seconds (s).- Parameters:
timeInterval- time interval between accelerometer triad samples.- Throws:
IllegalArgumentException- if provided value is negative.com.irurueta.navigation.LockedException- if estimator is currently running.
-
getTimeIntervalAsTime
public com.irurueta.units.Time getTimeIntervalAsTime()Gets time interval between body kinematics samples.- Returns:
- time interval between accelerometer triad samples.
-
getTimeIntervalAsTime
public void getTimeIntervalAsTime(com.irurueta.units.Time result) Gets time interval between body kinematics 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 samples.- Parameters:
timeInterval- time interval between accelerometer triad samples.- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
getListener
Gets listener to handle events raised by this estimator.- Returns:
- listener to handle events raised by this estimator.
-
getFirstWindowedBodyKinematics
Gets first provided body kinematics within the window.- Returns:
- first provided body kinematics within the window or null if not available.
-
getLastWindowedBodyKinematics
Gets last provided body kinematics within the window.- Returns:
- last provided body kinematics within the window or null if not available.
-
getAvgSpecificForceX
public double getAvgSpecificForceX()Gets estimated average of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2). This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of x coordinate of sensed specific force.
-
getAvgSpecificForceXAsMeasurement
public com.irurueta.units.Acceleration getAvgSpecificForceXAsMeasurement()Gets estimated average of x coordinate of accelerometer sensed specific force. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of x coordinate of sensed specific force.
-
getAvgSpecificForceXAsMeasurement
public void getAvgSpecificForceXAsMeasurement(com.irurueta.units.Acceleration result) Gets estimated average of x coordinate of accelerometer sensed specific force. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Parameters:
result- instance where average of x coordinate of sensed specific force will be stored.
-
getAvgSpecificForceY
public double getAvgSpecificForceY()Gets estimated average of y coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2). This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of y coordinate of sensed specific force.
-
getAvgSpecificForceYAsMeasurement
public com.irurueta.units.Acceleration getAvgSpecificForceYAsMeasurement()Gets estimated average of y coordinate of accelerometer sensed specific force. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of y coordinate of sensed specific force.
-
getAvgSpecificForceYAsMeasurement
public void getAvgSpecificForceYAsMeasurement(com.irurueta.units.Acceleration result) Gets estimated average of y coordinate of accelerometer sensed specific force. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Parameters:
result- instance where average of y coordinate of sensed specific force will be stored.
-
getAvgSpecificForceZ
public double getAvgSpecificForceZ()Gets estimated average of z coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2). This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of z coordinate of sensed specific force.
-
getAvgSpecificForceZAsMeasurement
public com.irurueta.units.Acceleration getAvgSpecificForceZAsMeasurement()Gets estimated average of z coordinate of accelerometer sensed specific force. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of z coordinate of sensed specific force.
-
getAvgSpecificForceZAsMeasurement
public void getAvgSpecificForceZAsMeasurement(com.irurueta.units.Acceleration result) Gets estimated average of z coordinate of accelerometer sensed specific force. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Parameters:
result- instance where average of z coordinate of sensed specific force will be stored.
-
getAvgSpecificForceAsTriad
Gets estimated average of accelerometer sensed specific force as a measurement triad.- Returns:
- average accelerometer triad.
-
getAvgSpecificForceNorm
public double getAvgSpecificForceNorm()Gets norm of estimated average acceleration expressed in meters per squared second (m/s^2). This value is independent of body orientation.- Returns:
- norm of estimated average acceleration.
-
getAvgSpecificForceNormAsMeasurement
public com.irurueta.units.Acceleration getAvgSpecificForceNormAsMeasurement()Gets norm of estimated average acceleration within current window.- Returns:
- norm of estimated average acceleration.
-
getAvgSpecificForceNormAsMeasurement
public void getAvgSpecificForceNormAsMeasurement(com.irurueta.units.Acceleration result) Gets norm of estimated average acceleration.- Parameters:
result- instance where norm of estimated average acceleration will be stored.
-
getAvgAngularRateX
public double getAvgAngularRateX()Gets estimated average of x coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s). This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of x coordinate of sensed angular rate.
-
getAvgAngularRateXAsMeasurement
public com.irurueta.units.AngularSpeed getAvgAngularRateXAsMeasurement()Gets estimated average of x coordinate of gyroscope sensed angular rate. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of x coordinate of sensed angular rate.
-
getAvgAngularRateXAsMeasurement
public void getAvgAngularRateXAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated average of x coordinate of gyroscope sensed angular rate. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Parameters:
result- instance where average of x coordinate of sensed angular rate will be stored.
-
getAvgAngularRateY
public double getAvgAngularRateY()Gets estimated average of y coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s). This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of y coordinate of sensed angular rate.
-
getAvgAngularRateYAsMeasurement
public com.irurueta.units.AngularSpeed getAvgAngularRateYAsMeasurement()Gets estimated average of y coordinate of gyroscope sensed angular rate. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of y coordinate of sensed angular rate.
-
getAvgAngularRateYAsMeasurement
public void getAvgAngularRateYAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated average of y coordinate of gyroscope sensed angular rate. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Parameters:
result- instance where average of y coordinate of sensed angular rate will be stored.
-
getAvgAngularRateZ
public double getAvgAngularRateZ()Gets estimated average of z coordinate of gyroscope sensed angular rate expressed in radians per second (rad/s). This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of z coordinate of sensed angular rate.
-
getAvgAngularRateZAsMeasurement
public com.irurueta.units.AngularSpeed getAvgAngularRateZAsMeasurement()Gets estimated average of z coordinate of gyroscope sensed angular rate. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Returns:
- average of z coordinate of sensed angular rate.
-
getAvgAngularRateZAsMeasurement
public void getAvgAngularRateZAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated average of z coordinate of gyroscope sensed angular rate. This value will depend of body location and orientation, hence it should never be used as a calibration bias.- Parameters:
result- instance where average of z coordinate of sensed angular rate will be stored.
-
getAvgAngularRateTriad
Gets estimated average of gyroscope sensed angular speed as a measurement triad.- Returns:
- average angular speed triad.
-
getAvgAngularRateNorm
public double getAvgAngularRateNorm()Gets norm of estimated average angular speed expressed in radians per second (rad/s). This value is independent of body orientation.- Returns:
- norm of estimated average angular speed.
-
getAvgAngularRateNormAsMeasurement
public com.irurueta.units.AngularSpeed getAvgAngularRateNormAsMeasurement()Gets norm of estimated average angular speed. This value is independent of body orientation.- Returns:
- norm of estimated average angular speed.
-
getAvgAngularRateNormAsMeasurement
public void getAvgAngularRateNormAsMeasurement(com.irurueta.units.AngularSpeed result) Gets norm of estimated average angular speed. This value is independent of body orientation.- Parameters:
result- instance where norm of estimated average angular speed will be stored.
-
getAvgBodyKinematics
Gets estimated average of body kinematics.- Returns:
- estimated average of body kinematics.
-
getVarianceSpecificForceX
public double getVarianceSpecificForceX()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.
-
getVarianceSpecificForceY
public double getVarianceSpecificForceY()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.
-
getVarianceSpecificForceZ
public double getVarianceSpecificForceZ()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.
-
getStandardDeviationSpecificForceX
public double getStandardDeviationSpecificForceX()Gets estimated standard deviation of x coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).- Returns:
- estimated standard deviation of x coordinate of sensed specific force.
-
getStandardDeviationSpecificForceXAsMeasurement
public com.irurueta.units.Acceleration getStandardDeviationSpecificForceXAsMeasurement()Gets estimated standard deviation of x coordinate of accelerometer sensed specific force.- Returns:
- estimated standard deviation of x coordinate of sensed specific force.
-
getStandardDeviationSpecificForceXAsMeasurement
public void getStandardDeviationSpecificForceXAsMeasurement(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.
-
getStandardDeviationSpecificForceY
public double getStandardDeviationSpecificForceY()Gets estimated standard deviation of y coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).- Returns:
- estimated standard deviation of y coordinate of sensed specific force.
-
getStandardDeviationSpecificForceYAsMeasurement
public com.irurueta.units.Acceleration getStandardDeviationSpecificForceYAsMeasurement()Gets estimated standard deviation of y coordinate of accelerometer sensed specific force.- Returns:
- estimated standard deviation of y coordinate of sensed specific force.
-
getStandardDeviationSpecificForceYAsMeasurement
public void getStandardDeviationSpecificForceYAsMeasurement(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.
-
getStandardDeviationSpecificForceZ
public double getStandardDeviationSpecificForceZ()Gets estimated standard deviation of z coordinate of accelerometer sensed specific force expressed in meters per squared second (m/s^2).- Returns:
- estimated standard deviation of z coordinate of sensed specific force.
-
getStandardDeviationSpecificForceZAsMeasurement
public com.irurueta.units.Acceleration getStandardDeviationSpecificForceZAsMeasurement()Gets estimated standard deviation of z coordinate of accelerometer sensed specific force.- Returns:
- estimated standard deviation of z coordinate of sensed specific force.
-
getStandardDeviationSpecificForceZAsMeasurement
public void getStandardDeviationSpecificForceZAsMeasurement(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.
-
getStandardDeviationSpecificForceTriad
Gets estimated standard deviation triad of accelerometer measurements.- Returns:
- estimated standard deviation triad of accelerometer measurements.
-
getStandardDeviationSpecificForceNorm
public double getStandardDeviationSpecificForceNorm()Gets norm of estimated standard deviation of accelerometer measurements expressed in meters per squared second (m/s^2).- Returns:
- norm of estimated standard deviation of accelerometer measurements.
-
getStandardDeviationSpecificForceNormAsMeasurement
public com.irurueta.units.Acceleration getStandardDeviationSpecificForceNormAsMeasurement()Gets norm of estimated standard deviation of accelerometer measurements.- Returns:
- norm of estimated standard deviation of measurements.
-
getStandardDeviationSpecificForceNormAsMeasurement
public void getStandardDeviationSpecificForceNormAsMeasurement(com.irurueta.units.Acceleration result) Gets norm of estimated standard deviation of accelerometer measurements.- Parameters:
result- instance where norm of estimated standard deviation will be stored.
-
getAverageStandardDeviationSpecificForce
public double getAverageStandardDeviationSpecificForce()Gets average of estimated standard deviation coordinates of accelerometer measurements expressed in meters per squared second (m/s^2).- Returns:
- average of estimated standard deviation coordinates.
-
getAverageStandardDeviationSpecificForceAsMeasurement
public com.irurueta.units.Acceleration getAverageStandardDeviationSpecificForceAsMeasurement()Gets average of estimated standard deviation coordinates of accelerometer measurements.- Returns:
- average of estimated standard deviation coordinates.
-
getAverageStandardDeviationSpecificForceAsMeasurement
public void getAverageStandardDeviationSpecificForceAsMeasurement(com.irurueta.units.Acceleration result) Gets average of estimated standard deviation coordinates of accelerometer measurements.- Parameters:
result- instance where average of estimated standard deviation coordinates will be stored.
-
getStandardDeviationAngularRateX
public double getStandardDeviationAngularRateX()Gets estimated standard deviation of x coordinate of gyroscope expressed in radians per second (rad/s).- Returns:
- estimated standard deviation of x coordinate of gyroscope.
-
getStandardDeviationAngularRateXAsMeasurement
public com.irurueta.units.AngularSpeed getStandardDeviationAngularRateXAsMeasurement()Gets estimated standard deviation of x coordinate of gyroscope.- Returns:
- estimated standard deviation of x coordinate of gyroscope.
-
getStandardDeviationAngularRateXAsMeasurement
public void getStandardDeviationAngularRateXAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of x coordinate of gyroscope.- Parameters:
result- estimated standard deviation of x coordinate of gyroscope.
-
getStandardDeviationAngularRateY
public double getStandardDeviationAngularRateY()Gets estimated standard deviation of y coordinate of gyroscope expressed in radians per second (rad/s).- Returns:
- estimated standard deviation of y coordinate of gyroscope.
-
getStandardDeviationAngularRateYAsMeasurement
public com.irurueta.units.AngularSpeed getStandardDeviationAngularRateYAsMeasurement()Gets estimated standard deviation of y coordinate of gyroscope.- Returns:
- estimated standard deviation of y coordinate of gyroscope.
-
getStandardDeviationAngularRateYAsMeasurement
public void getStandardDeviationAngularRateYAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of y coordinate of gyroscope.- Parameters:
result- estimated standard deviation of y coordinate of gyroscope.
-
getStandardDeviationAngularRateZ
public double getStandardDeviationAngularRateZ()Gets estimated standard deviation of z coordinate of gyroscope expressed in radians per second (rad/s).- Returns:
- estimated standard deviation of z coordinate of gyroscope.
-
getStandardDeviationAngularRateZAsMeasurement
public com.irurueta.units.AngularSpeed getStandardDeviationAngularRateZAsMeasurement()Gets estimated standard deviation of z coordinate of gyroscope.- Returns:
- estimated standard deviation of z coordinate of gyroscope.
-
getStandardDeviationAngularRateZAsMeasurement
public void getStandardDeviationAngularRateZAsMeasurement(com.irurueta.units.AngularSpeed result) Gets estimated standard deviation of z coordinate of gyroscope.- Parameters:
result- estimated standard deviation of z coordinate of gyroscope.
-
getStandardDeviationAngularSpeedTriad
Gets estimated standard deviation triad of angular speed measurements.- Returns:
- estimated standard deviation triad of angular speed measurements.
-
getStandardDeviationAngularSpeedNorm
public double getStandardDeviationAngularSpeedNorm()Gets norm of estimated standard deviation of gyroscope measurements expressed in radians per second (rad/s).- Returns:
- norm of estimated standard deviation of gyroscope measurements.
-
getStandardDeviationAngularSpeedNormAsMeasurement
public com.irurueta.units.AngularSpeed getStandardDeviationAngularSpeedNormAsMeasurement()Gets norm of estimated standard deviation of gyroscope measurements.- Returns:
- norm of estimated standard deviation of measurements.
-
getStandardDeviationAngularSpeedNormAsMeasurement
public void getStandardDeviationAngularSpeedNormAsMeasurement(com.irurueta.units.AngularSpeed result) Gets norm of estimated standard deviation of gyroscope measurements.- Parameters:
result- instance where norm of estimated standard deviation will be stored.
-
getAverageStandardDeviationAngularSpeed
public double getAverageStandardDeviationAngularSpeed()Gets average of estimated standard deviation coordinates of gyroscope measurements expressed in radians per second (rad/s).- Returns:
- average of estimated standard deviation coordinates.
-
getAverageStandardDeviationAngularSpeedAsMeasurement
public com.irurueta.units.AngularSpeed getAverageStandardDeviationAngularSpeedAsMeasurement()Gets average of estimated standard deviation coordinates of gyroscope measurements.- Returns:
- average of estimated standard deviation coordinates.
-
getAverageStandardDeviationAngularSpeedAsMeasurement
public void getAverageStandardDeviationAngularSpeedAsMeasurement(com.irurueta.units.AngularSpeed result) Gets average of estimated standard deviation coordinates of gyroscope measurements.- Parameters:
result- instance where average of estimated standard deviation coordinates will be stored.
-
getStandardDeviationAsBodyKinematics
Gets estimated standard deviations of accelerometer and gyroscope components as a body kinematics instance.- Returns:
- a body kinematics instance containing standard deviation values.
-
getSpecificForcePsdX
public double getSpecificForcePsdX()Gets accelerometer noise PSD (Power Spectral Density) on x axis expressed in (m^2 * s^-3).- Returns:
- accelerometer noise PSD on x axis.
-
getSpecificForcePsdY
public double getSpecificForcePsdY()Gets accelerometer noise PSD (Power Spectral Density) on y axis expressed in (m^2 * s^-3).- Returns:
- accelerometer noise PSD on y axis.
-
getSpecificForcePsdZ
public double getSpecificForcePsdZ()Gets accelerometer noise PSD (Power Spectral Density) on z axis expressed in (m^2 * s^-3).- Returns:
- accelerometer noise PSD on z axis.
-
getAngularRatePsdX
public double getAngularRatePsdX()Gets gyroscope noise PSD (Power Spectral Density) on x axis expressed in (rad^2/s).- Returns:
- gyroscope noise PSD on x axis.
-
getAngularRatePsdY
public double getAngularRatePsdY()Gets gyroscope noise PSD (Power Spectral Density) on y axis expressed in (rad^2/s).- Returns:
- gyroscope noise PSD on y axis.
-
getAngularRatePsdZ
public double getAngularRatePsdZ()Gets gyroscope noise PSD (Power Spectral Density) on z axis expressed in (rad^2/s).- Returns:
- gyroscope noise PSD on z axis.
-
getSpecificForceRootPsdX
public double getSpecificForceRootPsdX()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.
-
getSpecificForceRootPsdY
public double getSpecificForceRootPsdY()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.
-
getSpecificForceRootPsdZ
public double getSpecificForceRootPsdZ()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.
-
getAngularRateRootPsdX
public double getAngularRateRootPsdX()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.
-
getAngularRateRootPsdY
public double getAngularRateRootPsdY()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.
-
getAngularRateRootPsdZ
public double getAngularRateRootPsdZ()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.
-
getAvgSpecificForceNoisePsd
public double getAvgSpecificForceNoisePsd()Gets average accelerometer noise PSD (Power Spectral Density) among x,y,z components expressed as (m^2/s^-3).- Returns:
- average accelerometer noise PSD.
-
getSpecificForceNoiseRootPsdNorm
public double getSpecificForceNoiseRootPsdNorm()Gets norm of noise root PSD (Power Spectral Density) among x,y,z components expressed as (m * s^-1.5).- Returns:
- norm of noise root PSD.
-
getAvgAngularRateNoisePsd
public double getAvgAngularRateNoisePsd()Gets average gyroscope noise PSD (Power Spectral Density) among x,y,z components expressed in (rad^2/s).- Returns:
- average gyroscope noise PSD.
-
getAngularRateNoiseRootPsdNorm
public double getAngularRateNoiseRootPsdNorm()Gets norm of noise root PSD (Power Spectral Density) among x,y,z components expressed as (rad * s^-0.5).- Returns:
- norm of noise root PSD.
-
getNumberOfProcessedSamples
public int getNumberOfProcessedSamples()Gets number of samples that have been processed so far.- Returns:
- number of samples that have been processed so far.
-
getNumberOfSamplesInWindow
public int getNumberOfSamplesInWindow()Gets number of currently windowed samples.- Returns:
- number of samples within the window.
-
isRunning
public boolean isRunning()Indicates whether estimator is currently running or not.- Returns:
- true if estimator is running, false otherwise.
-
isWindowFilled
public boolean isWindowFilled()Indicates whether window of samples is filled or not.- Returns:
- true if window is filled, false otherwise.
-
addBodyKinematicsAndProcess
public boolean addBodyKinematicsAndProcess(double specificForceX, double specificForceY, double specificForceZ, double angularRateX, double angularRateY, double angularRateZ) throws com.irurueta.navigation.LockedException Adds a body kinematics measurement and processes current window.- Parameters:
specificForceX- x coordinate of specific force expressed in meters per squared second (m/s^2).specificForceY- y coordinate of specific force expressed in meters per squared second (m/s^2).specificForceZ- z coordinate of specific force expressed in meters per squared second (m/s^2).angularRateX- x coordinate of angular rate expressed in radians per second (rad/s).angularRateY- y coordinate of angular rate expressed in radians per second (rad/s).angularRateZ- z coordinate of angular rate expressed in radians per second (rad/s).- Returns:
- true if provided kinematics instance has been processed, false if it has been ignored.
- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
addBodyKinematicsAndProcess
public boolean addBodyKinematicsAndProcess(com.irurueta.units.Acceleration specificForceX, com.irurueta.units.Acceleration specificForceY, com.irurueta.units.Acceleration specificForceZ, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ) throws com.irurueta.navigation.LockedException Adds a body kinematics measurement and processes current window.- Parameters:
specificForceX- x coordinate of specific force.specificForceY- y coordinate of specific force.specificForceZ- z coordinate of specific force.angularRateX- x coordinate of angular rate.angularRateY- y coordinate of angular rate.angularRateZ- z coordinate of angular rate.- Returns:
- true if provided kinematics instance has been processed, false if it has been ignored.
- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
addBodyKinematics
public void addBodyKinematics(double specificForceX, double specificForceY, double specificForceZ, double angularRateX, double angularRateY, double angularRateZ) throws com.irurueta.navigation.LockedException Adds a body kinematics measurement.- Parameters:
specificForceX- x coordinate of specific force expressed in meters per squared second (m/s^2).specificForceY- y coordinate of specific force expressed in meters per squared second (m/s^2).specificForceZ- z coordinate of specific force expressed in meters per squared second (m/s^2).angularRateX- x coordinate of angular rate expressed in radians per second (rad/s).angularRateY- y coordinate of angular rate expressed in radians per second (rad/s).angularRateZ- z coordinate of angular rate expressed in radians per second (rad/s).- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
addBodyKinematics
public void addBodyKinematics(com.irurueta.units.Acceleration specificForceX, com.irurueta.units.Acceleration specificForceY, com.irurueta.units.Acceleration specificForceZ, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ) throws com.irurueta.navigation.LockedException Adds a body kinematics measurement.- Parameters:
specificForceX- x coordinate of specific force.specificForceY- y coordinate of specific force.specificForceZ- z coordinate of specific force.angularRateX- x coordinate of angular rate.angularRateY- y coordinate of angular rate.angularRateZ- z coordinate of angular rate.- Throws:
com.irurueta.navigation.LockedException- if estimator is currently running.
-
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.
-
processWindow
private boolean processWindow()Processes current windowed samples.- Returns:
- true if sample was processed, false it there are not enough samples to process current window.
-
getAccelerometerBaseNoiseLevelRootPsd
public double getAccelerometerBaseNoiseLevelRootPsd()Gets accelerometer base noise level root PSD (Power Spectral Density) expressed in (m * s^-1.5).- Specified by:
getAccelerometerBaseNoiseLevelRootPsdin interfaceAccelerometerNoiseRootPsdSource- Returns:
- accelerometer base noise level root PSD.
-
getGyroscopeBaseNoiseLevelRootPsd
public double getGyroscopeBaseNoiseLevelRootPsd()Gets gyroscope base noise level root PSD (Power Spectral Density) expressed in (rad * s^-0.5)- Specified by:
getGyroscopeBaseNoiseLevelRootPsdin interfaceGyroscopeNoiseRootPsdSource- Returns:
- gyroscope base noise level root PSD.
-