Class BodyMagneticFluxDensityBiasEstimator
The estimator must be used when the body where the magnetometer is attached to remains static on the same position with zero velocity and no rotation speed while capturing data.
To compute PSD's this estimator assumes that magnetometer samples are obtained at
a constant provided rate equal to getTimeInterval()
seconds.
If not available, magnetometer sampling rate average can be estimated using
TimeIntervalEstimator
.
Notice that in order to compute magnetometer biases (hard iron), instant, body position and orientation must be known to account for expected magnetic field to be sensed.
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, by using bias values as initial hard iron values. Such calibrators are: - com.irurueta.navigation.inertial.calibration.magnetometer.KnownFrameMagnetometerNonLinearLeastSquaresCalibrator - com.irurueta.navigation.inertial.calibration.magnetometer.KnownPositionAndInstantMagnetometerCalibrator - com.irurueta.navigation.inertial.calibration.magnetometer.RobustKnownFrameMagnetometerCalibrator and any of its subclasses. - com.irurueta.navigation.inertial.calibration.magnetometer.RobustKnownPositionAndInstantMagnetometerCalibrator 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 double
Contains estimated bias of x coordinate of body magnetic flux density expressed in Teslas (T).private double
Contains estimated bias of y coordinate of body magnetic flux density expressed in Teslas (T).private double
Contains estimated bias of z coordinate of body magnetic flux density expressed in Teslas (T).static final double
Default time interval between accelerometer samples expressed in seconds (s).private BodyMagneticFluxDensity
Theoretical expected body magnetic flux density for provided instant, body position and orientation, assuming that body remains at the same position (zero velocity).private final com.irurueta.navigation.frames.ECEFFrame
Contains body position, velocity (which will always be zero) and orientation resolved around ECEF axes.private BodyMagneticFluxDensity
Last provided body magnetic flux density values.Listener to handle events raised by this estimator.private WorldMagneticModel
Contains Earth's magnetic model.private int
Number of processed magnetometer samples.private int
Number of processed magnetometer samples plus one.private boolean
Indicates that estimator is running.private double
Time interval expressed in seconds (s) between body kinematics samples.private double
Contains estimated variance of x coordinate of body magnetic flux density expressed in squared Teslas (T^2).private double
Contains estimated variance of y coordinate of body magnetic flux density expressed in squared Teslas (T^2).private double
Contains estimated variance of z coordinate of body magnetic flux density expressed in squared Teslas (T^2).World Magnetic Model of Earth.private double
Contains year expressed in decimal format. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.BodyMagneticFluxDensityBiasEstimator
(double year) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, double year) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, double year, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, double year, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, double year, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, Date date) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, Date date, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, Date date, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(double latitude, double longitude, double height, Date date, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(double year, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(double year, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(double year, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, double year) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, double year, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation nedC, Date date, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double year) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double year, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double year, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double year, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, Date date) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, Date date, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, Date date, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, Date date, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double year) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double year, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double year, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double year, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, Date date) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, Date date, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, Date date, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, Date date, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.Constructor.BodyMagneticFluxDensityBiasEstimator
(Date date, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor.BodyMagneticFluxDensityBiasEstimator
(Date date, WorldMagneticModel magneticModel) Constructor.BodyMagneticFluxDensityBiasEstimator
(Date date, WorldMagneticModel magneticModel, BodyMagneticFluxDensityBiasEstimatorListener listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBodyMagneticFluxDensity
(BodyMagneticFluxDensity bodyMagneticFluxDensity) Adds a sample of body magnetic flux density.private static double
convertTime
(com.irurueta.units.Time time) Converts provided time instance to seconds.static double
convertTime
(Date date) Converts a time instant contained ina date object to a decimal year.static double
convertTime
(GregorianCalendar calendar) Converts a time instant contained in a gregorian calendar to a decimal year.double
Gets average of estimated standard deviation of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensity
Gets average of estimated standard deviation of body magnetic flux density.void
getAverageStandardDeviationAsMagneticFluxDensity
(com.irurueta.units.MagneticFluxDensity result) Gets average of estimated standard deviation of body magnetic flux density.double
Gets average magnetometer noise PSD (Power Spectral Density) among x,y,z components expressed as (T^2 * s).Gets estimated bias of body magnetic flux density.void
getBiasTriad
(MagneticFluxDensityTriad result) Gets estimated bias of body magnetic flux density.double
getBiasX()
Gets estimated bias of x coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensity
Gets estimated bias of x coordinate of body magnetic flux density.void
getBiasXAsMagneticFluxDensity
(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of x coordinate of body magnetic flux density.double
getBiasY()
Gets estimated bias of y coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensity
Gets estimated bias of y coordinate of body magnetic flux density.void
getBiasYAsMagneticFluxDensity
(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of y coordinate of body magnetic flux density.double
getBiasZ()
Gets estimated bias of z coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensity
Gets estimated bias of z coordinate of body magnetic flux density.void
getBiasZAsMagneticFluxDensity
(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of z coordinate of body magnetic flux density.com.irurueta.navigation.frames.CoordinateTransformation
getEcefC()
Gets current body orientation as a transformation from body to ECEF coordinates.void
getEcefC
(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to ECEF coordinates.com.irurueta.navigation.frames.ECEFFrame
Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates.void
getEcefFrame
(com.irurueta.navigation.frames.ECEFFrame result) Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates.com.irurueta.navigation.frames.ECEFPosition
Gets current body position expressed in ECEF coordinates.void
getEcefPosition
(com.irurueta.navigation.frames.ECEFPosition result) Gets current body position expressed in ECEF coordinates.Gets theoretically expected body magnetic flux density for provided instant, body position and orientation, assuming that body remains at the same position (zero velocity).void
Gets theoretically expected body magnetic flux density for provided instant, body position and orientation, assuming that body remains at the same position (zero velocity).Gets last provided body magnetic flux density values or null if not available.boolean
Gets last provided body magnetic flux density values.Gets listener to handle events raised by this estimator.Gets Earth's magnetic model.com.irurueta.navigation.frames.CoordinateTransformation
getNedC()
Gets current body orientation as a transformation from body to NED coordinates.void
getNedC
(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to NED coordinates.com.irurueta.navigation.frames.NEDFrame
Gets NED frame containing current body position and orientation expressed in NED coordinates.void
getNedFrame
(com.irurueta.navigation.frames.NEDFrame result) Gets NED frame containing current body position and orientation expressed in NED coordinates.com.irurueta.navigation.frames.NEDPosition
Gets current body position expressed in NED coordinates.void
getNedPosition
(com.irurueta.navigation.frames.NEDPosition result) Gets current body position expressed in NED coordinates.int
Gets number of samples that have been processed so far.double
getPsdX()
Gets magnetometer noise PSD (Power Spectral Density) on x axis expressed in (T^2 * s).double
getPsdY()
Gets magnetometer noise PSD (Power Spectral Density) on y axis expressed in (T^2 * s).double
getPsdZ()
Gets magnetometer noise PSD (Power Spectral Density) on z axis expressed in (T^2 * s).double
Gets magnetometer root noise root PSD (Power Spectral Density) which is the norm of root PSD components expressed as (T * s^0.5).double
Gets magnetometer noise root PSD (Power Spectral Density) on x axis expressed in (T * s^0.5).double
Gets magnetometer noise root PSD (Power Spectral Density) on y axis expressed in (T * s^0.5).double
Gets magnetometer noise root PSD (Power Spectral Density) on z axis expressed in (T * s^0.5).Gets estimated standard deviation of body magnetic flux density.void
Gets estimated standard deviation of body magnetic flux density.double
Gets estimated standard deviation of x coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensity
Gets estimated standard deviation of x coordinate of body magnetic flux density.void
getStandardDeviationXAsMagneticFluxDensity
(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of x coordinate of body magnetic flux density.double
Gets estimated standard deviation of y coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensity
Gets estimated standard deviation of y coordinate of body magnetic flux density.void
getStandardDeviationYAsMagneticFluxDensity
(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of y coordinate of body magnetic flux density.double
Gets estimated standard deviation of z coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensity
Gets estimated standard deviation of z coordinate of body magnetic flux density.void
getStandardDeviationZAsMagneticFluxDensity
(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of z coordinate of body magnetic flux density.double
Gets time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).com.irurueta.units.Time
Gets time interval between body kinematics (IMU acceleration + gyroscope) samples.void
getTimeIntervalAsTime
(com.irurueta.units.Time result) Gets time interval between body kinematics (IMU acceleration + gyroscope) samples.double
Gets estimated variance of x coordinate of body magnetic flux density expressed in squared Teslas (T^2).double
Gets estimated variance of y coordinate of body magnetic flux density expressed in squared Teslas (T^2).double
Gets estimated variance of z coordinate of body magnetic flux density expressed in squared Teslas (T^2).double
getYear()
Gets year expressed in decimal format.private void
Initializes world magnetic model and estimates expected body magnetic flux density.boolean
Indicates whether estimator is currently running or not.private void
Rebuilds expected body magnetic flux density based on current instant, location and body orientation.boolean
reset()
Resets current estimator.void
setEcefC
(com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets current body orientation as a transformation from body to ECEF coordinates.void
setEcefPosition
(double x, double y, double z) Sets current body position expressed in ECEF coordinates.void
setEcefPosition
(com.irurueta.geometry.Point3D position) Sets current body position expressed in ECEF coordinates.void
setEcefPosition
(com.irurueta.navigation.frames.ECEFPosition position) Sets current body position expressed in ECEF coordinates.void
setEcefPosition
(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z) Sets current body position expressed in ECEF coordinates.void
setEcefPositionAndEcefOrientation
(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.void
setEcefPositionAndEcefOrientation
(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.void
setEcefPositionAndEcefOrientation
(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.void
setEcefPositionAndEcefOrientation
(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.void
setEcefPositionAndNedOrientation
(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.void
setEcefPositionAndNedOrientation
(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.void
setEcefPositionAndNedOrientation
(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.void
setEcefPositionAndNedOrientation
(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.void
Sets listener to handle events raised by this estimator.void
setMagneticModel
(WorldMagneticModel magneticModel) Sets Earth's magnetic model.void
setNedC
(com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets current body orientation as a transformation from body to NED coordinates.void
setNedPosition
(double latitude, double longitude, double height) Sets current body position expressed in NED coordinates.void
setNedPosition
(com.irurueta.navigation.frames.NEDPosition position) Sets current body position expressed in NED coordinates.void
setNedPosition
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) Sets current body position expressed in NED coordinates.void
setNedPosition
(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) Sets current body position expressed in NED coordinates.void
setNedPositionAndEcefOrientation
(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.void
setNedPositionAndEcefOrientation
(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.void
setNedPositionAndEcefOrientation
(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.void
setNedPositionAndEcefOrientation
(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.void
setNedPositionAndNedOrientation
(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.void
setNedPositionAndNedOrientation
(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.void
setNedPositionAndNedOrientation
(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.void
setNedPositionAndNedOrientation
(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.void
Sets decimal year from provided date instance.void
setTime
(GregorianCalendar calendar) Sets decimal year from provided calendar instance.void
setTimeInterval
(double timeInterval) Sets time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).void
setTimeInterval
(com.irurueta.units.Time timeInterval) Sets time interval between body kinematics (IMU acceleration + gyroscope) samples.void
setYear
(double year) Sets year expressed in decimal format.
-
Field Details
-
DEFAULT_TIME_INTERVAL_SECONDS
public static final double DEFAULT_TIME_INTERVAL_SECONDSDefault time interval between accelerometer 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. -
year
private double yearContains year expressed in decimal format. -
listener
Listener to handle events raised by this estimator. -
magneticModel
Contains Earth's magnetic model. -
wmmEstimator
World Magnetic Model of Earth. -
lastBodyMagneticFluxDensity
Last provided body magnetic flux density values. -
biasX
private double biasXContains estimated bias of x coordinate of body magnetic flux density expressed in Teslas (T). Notice that bias is equivalent to hard iron component on a magnetometer calibrator. -
biasY
private double biasYContains estimated bias of y coordinate of body magnetic flux density expressed in Teslas (T). Notice that bias is equivalent to hard iron component on a magnetometer calibrator. -
biasZ
private double biasZContains estimated bias of z coordinate of body magnetic flux density expressed in Teslas (T). Notice that bias is equivalent to hard iron component on a magnetometer calibrator. -
varianceX
private double varianceXContains estimated variance of x coordinate of body magnetic flux density expressed in squared Teslas (T^2). -
varianceY
private double varianceYContains estimated variance of y coordinate of body magnetic flux density expressed in squared Teslas (T^2). -
varianceZ
private double varianceZContains estimated variance of z coordinate of body magnetic flux density expressed in squared Teslas (T^2). -
numberOfProcessedSamples
private int numberOfProcessedSamplesNumber of processed magnetometer samples. -
numberOfProcessedSamplesPlusOne
private int numberOfProcessedSamplesPlusOneNumber of processed magnetometer samples plus one. -
running
private boolean runningIndicates that estimator is running. -
expectedBodyMagneticFluxDensity
Theoretical expected body magnetic flux density for provided instant, body position and orientation, assuming that body remains at the same position (zero velocity). When body remains static, sensed magnetic flux density will remain constant for a few minutes respect to provided time instant.
-
-
Constructor Details
-
BodyMagneticFluxDensityBiasEstimator
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. This constructor assumes that time is current time instant.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(double latitude, double longitude, double height) throws IOException 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. This constructor assumes that time is current time instant.- Parameters:
latitude
- latitude expressed in radians (rad).longitude
- longitude expressed in radians (rad).height
- height expressed in meters (m).- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) throws IOException 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. This constructor assumes that time is current time instant.- Parameters:
latitude
- latitude.longitude
- longitude.height
- height expressed in meters (m).- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) throws IOException 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. This constructor assumes that time is current time instant.- Parameters:
latitude
- latitude.longitude
- longitude.height
- height.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
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:
year
- time expressed as decimal year.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(double latitude, double longitude, double height, double year) throws IOException 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).year
- time expressed as decimal year.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double year) throws IOException 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).year
- time expressed as decimal year.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double year) throws IOException 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.year
- time expressed as decimal year.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
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:
date
- a time instance to be converted.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(double latitude, double longitude, double height, Date date) throws IOException 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).date
- a time instance to be converted.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, Date date) throws IOException 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).date
- a time instance to be converted.- Throws:
IOException
- if initialization of world magnetic model fails.
-
BodyMagneticFluxDensityBiasEstimator
public BodyMagneticFluxDensityBiasEstimator(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, Date date) throws IOException 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.date
- a time instance to be converted.- Throws:
IOException
- if initialization of world magnetic model fails.
-
-
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.
-
getYear
public double getYear()Gets year expressed in decimal format.- Returns:
- year expressed in decimal format.
-
setYear
public void setYear(double year) throws com.irurueta.navigation.LockedException Sets year expressed in decimal format.- Parameters:
year
- year expressed in decimal format.- Throws:
com.irurueta.navigation.LockedException
- if estimator is running.
-
setTime
Sets decimal year from provided date instance.- Parameters:
date
- a date instance containing a timestamp.- Throws:
com.irurueta.navigation.LockedException
- if estimator is running.
-
setTime
Sets decimal year from provided calendar instance.- Parameters:
calendar
- a calendar instance containing a timestamp.- Throws:
com.irurueta.navigation.LockedException
- if estimator is running.
-
getMagneticModel
Gets Earth's magnetic model.- Returns:
- Earth's magnetic model or null if not provided.
-
getListener
Gets listener to handle events raised by this estimator.- Returns:
- listener to handle events raised by this estimator.
-
getLastBodyMagneticFluxDensity
Gets last provided body magnetic flux density values or null if not available.- Returns:
- last provided body magnetic flux density values or null.
-
getBiasX
public double getBiasX()Gets estimated bias of x coordinate of body magnetic flux density expressed in Teslas (T). Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Returns:
- bias of x coordinate of body magnetic flux density.
-
getBiasXAsMagneticFluxDensity
public com.irurueta.units.MagneticFluxDensity getBiasXAsMagneticFluxDensity()Gets estimated bias of x coordinate of body magnetic flux density. Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Returns:
- bias of x coordinate of body magnetic flux density.
-
getBiasXAsMagneticFluxDensity
public void getBiasXAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of x coordinate of body magnetic flux density. Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Parameters:
result
- instance where bias of x coordinate of body magnetic flux density will be stored.
-
getBiasY
public double getBiasY()Gets estimated bias of y coordinate of body magnetic flux density expressed in Teslas (T). Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Returns:
- bias of y coordinate of body magnetic flux density.
-
getBiasYAsMagneticFluxDensity
public com.irurueta.units.MagneticFluxDensity getBiasYAsMagneticFluxDensity()Gets estimated bias of y coordinate of body magnetic flux density. Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Returns:
- bias of y coordinate of body magnetic flux density.
-
getBiasYAsMagneticFluxDensity
public void getBiasYAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of y coordinate of body magnetic flux density. Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Parameters:
result
- instance where bias of y coordinate of body magnetic flux density will be stored.
-
getBiasZ
public double getBiasZ()Gets estimated bias of z coordinate of body magnetic flux density expressed in Teslas (T). Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Returns:
- bias of z coordinate of body magnetic flux density.
-
getBiasZAsMagneticFluxDensity
public com.irurueta.units.MagneticFluxDensity getBiasZAsMagneticFluxDensity()Gets estimated bias of z coordinate of body magnetic flux density. Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Returns:
- bias of z coordinate of body magnetic flux density.
-
getBiasZAsMagneticFluxDensity
public void getBiasZAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of z coordinate of body magnetic flux density. Notice that bias is equivalent to hard iron component on a magnetometer calibrator.- Parameters:
result
- instance where bias of z coordinate of body magnetic flux density will be stored.
-
getBiasTriad
Gets estimated bias of body magnetic flux density.- Returns:
- estimated bias of magnetic flux density.
-
getVarianceX
public double getVarianceX()Gets estimated variance of x coordinate of body magnetic flux density expressed in squared Teslas (T^2).- Returns:
- estimated variance of x coordinate of body magnetic flux density.
-
getVarianceY
public double getVarianceY()Gets estimated variance of y coordinate of body magnetic flux density expressed in squared Teslas (T^2).- Returns:
- estimated variance of y coordinate of body magnetic flux density.
-
getVarianceZ
public double getVarianceZ()Gets estimated variance of z coordinate of body magnetic flux density expressed in squared Teslas (T^2).- Returns:
- estimated variance of z coordinate of body magnetic flux density.
-
getStandardDeviationX
public double getStandardDeviationX()Gets estimated standard deviation of x coordinate of body magnetic flux density expressed in Teslas (T).- Returns:
- estimated standard deviation of x coordinate of body magnetic flux density.
-
getStandardDeviationXAsMagneticFluxDensity
public com.irurueta.units.MagneticFluxDensity getStandardDeviationXAsMagneticFluxDensity()Gets estimated standard deviation of x coordinate of body magnetic flux density.- Returns:
- estimated standard deviation of x coordinate of body magnetic flux density.
-
getStandardDeviationXAsMagneticFluxDensity
public void getStandardDeviationXAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of x coordinate of body magnetic flux density.- Parameters:
result
- instance where estimated standard deviation of x coordinate of body magnetic flux density will be stored.
-
getStandardDeviationY
public double getStandardDeviationY()Gets estimated standard deviation of y coordinate of body magnetic flux density expressed in Teslas (T).- Returns:
- estimated standard deviation of y coordinate of body magnetic flux density.
-
getStandardDeviationYAsMagneticFluxDensity
public com.irurueta.units.MagneticFluxDensity getStandardDeviationYAsMagneticFluxDensity()Gets estimated standard deviation of y coordinate of body magnetic flux density.- Returns:
- estimated standard deviation of y coordinate of body magnetic flux density.
-
getStandardDeviationYAsMagneticFluxDensity
public void getStandardDeviationYAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of y coordinate of body magnetic flux density.- Parameters:
result
- instance where estimated standard deviation of y coordinate of body magnetic flux density will be stored.
-
getStandardDeviationZ
public double getStandardDeviationZ()Gets estimated standard deviation of z coordinate of body magnetic flux density expressed in Teslas (T).- Returns:
- estimated standard deviation of z coordinate of body magnetic flux density.
-
getStandardDeviationZAsMagneticFluxDensity
public com.irurueta.units.MagneticFluxDensity getStandardDeviationZAsMagneticFluxDensity()Gets estimated standard deviation of z coordinate of body magnetic flux density.- Returns:
- estimated standard deviation of z coordinate of body magnetic flux density.
-
getStandardDeviationZAsMagneticFluxDensity
public void getStandardDeviationZAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of z coordinate of body magnetic flux density.- Parameters:
result
- instance where estimated standard deviation of z coordinate of body magnetic flux density will be stored.
-
getStandardDeviationTriad
Gets estimated standard deviation of body magnetic flux density.- Returns:
- estimated standard deviation of body magnetic flux density.
-
getAverageStandardDeviation
public double getAverageStandardDeviation()Gets average of estimated standard deviation of body magnetic flux density expressed in Teslas (T).- Returns:
- average of estimated standard deviation of body magnetic flux density.
-
getAverageStandardDeviationAsMagneticFluxDensity
public com.irurueta.units.MagneticFluxDensity getAverageStandardDeviationAsMagneticFluxDensity()Gets average of estimated standard deviation of body magnetic flux density.- Returns:
- average of estimated standard deviation of body magnetic flux density.
-
getAverageStandardDeviationAsMagneticFluxDensity
public void getAverageStandardDeviationAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets average of estimated standard deviation of body magnetic flux density.- Parameters:
result
- instance where average of estimated standard deviation of body magnetic flux density will be stored.
-
getPsdX
public double getPsdX()Gets magnetometer noise PSD (Power Spectral Density) on x axis expressed in (T^2 * s).- Returns:
- magnetometer noise PSD on x axis.
-
getPsdY
public double getPsdY()Gets magnetometer noise PSD (Power Spectral Density) on y axis expressed in (T^2 * s).- Returns:
- magnetometer noise PSD on y axis.
-
getPsdZ
public double getPsdZ()Gets magnetometer noise PSD (Power Spectral Density) on z axis expressed in (T^2 * s).- Returns:
- magnetometer noise PSD on z axis.
-
getRootPsdX
public double getRootPsdX()Gets magnetometer noise root PSD (Power Spectral Density) on x axis expressed in (T * s^0.5).- Returns:
- magnetometer noise root PSD on x axis.
-
getRootPsdY
public double getRootPsdY()Gets magnetometer noise root PSD (Power Spectral Density) on y axis expressed in (T * s^0.5).- Returns:
- magnetometer noise root PSD on y axis.
-
getRootPsdZ
public double getRootPsdZ()Gets magnetometer noise root PSD (Power Spectral Density) on z axis expressed in (T * s^0.5).- Returns:
- magnetometer noise root PSD on z axis.
-
getAvgPsd
public double getAvgPsd()Gets average magnetometer noise PSD (Power Spectral Density) among x,y,z components expressed as (T^2 * s).- Returns:
- average magnetometer noise PSD.
-
getRootPsd
public double getRootPsd()Gets magnetometer root noise root PSD (Power Spectral Density) which is the norm of root PSD components expressed as (T * s^0.5).- Returns:
- average magnetometer 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.
-
isRunning
public boolean isRunning()Indicates whether estimator is currently running or not.- Returns:
- true if estimator is running, false otherwise.
-
getExpectedBodyMagneticFluxDensity
Gets theoretically expected body magnetic flux density for provided instant, body position and orientation, assuming that body remains at the same position (zero velocity). When body remains static, sensed magnetic flux density will remain constant for a few minutes respect to provided time instant.- Returns:
- expected body magnetic flux density.
-
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
Converts a time instant contained ina date object to a decimal year.- Parameters:
date
- a time instance to be converted.- Returns:
- converted value expressed in decimal years.
-
convertTime
Converts a time instant contained in a gregorian calendar to a decimal year.- Parameters:
calendar
- calendar containing a specific instant to be converted.- Returns:
- converted value expressed in decimal years.
-
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.
-
initialize
Initializes world magnetic model and estimates expected body magnetic flux density.- Throws:
IOException
- if world magnetic model loading fails.
-
rebuildExpectedBodyMagneticFluxDensity
private void rebuildExpectedBodyMagneticFluxDensity()Rebuilds expected body magnetic flux density based on current instant, location and body orientation.
-