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 doubleContains estimated bias of x coordinate of body magnetic flux density expressed in Teslas (T).private doubleContains estimated bias of y coordinate of body magnetic flux density expressed in Teslas (T).private doubleContains estimated bias of z coordinate of body magnetic flux density expressed in Teslas (T).static final doubleDefault time interval between accelerometer samples expressed in seconds (s).private BodyMagneticFluxDensityTheoretical 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.ECEFFrameContains body position, velocity (which will always be zero) and orientation resolved around ECEF axes.private BodyMagneticFluxDensityLast provided body magnetic flux density values.Listener to handle events raised by this estimator.private WorldMagneticModelContains Earth's magnetic model.private intNumber of processed magnetometer samples.private intNumber of processed magnetometer samples plus one.private booleanIndicates that estimator is running.private doubleTime interval expressed in seconds (s) between body kinematics samples.private doubleContains estimated variance of x coordinate of body magnetic flux density expressed in squared Teslas (T^2).private doubleContains estimated variance of y coordinate of body magnetic flux density expressed in squared Teslas (T^2).private doubleContains estimated variance of z coordinate of body magnetic flux density expressed in squared Teslas (T^2).World Magnetic Model of Earth.private doubleContains 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 TypeMethodDescriptionvoidaddBodyMagneticFluxDensity(BodyMagneticFluxDensity bodyMagneticFluxDensity) Adds a sample of body magnetic flux density.private static doubleconvertTime(com.irurueta.units.Time time) Converts provided time instance to seconds.static doubleconvertTime(Date date) Converts a time instant contained ina date object to a decimal year.static doubleconvertTime(GregorianCalendar calendar) Converts a time instant contained in a gregorian calendar to a decimal year.doubleGets average of estimated standard deviation of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensityGets average of estimated standard deviation of body magnetic flux density.voidgetAverageStandardDeviationAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets average of estimated standard deviation of body magnetic flux density.doubleGets 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.voidgetBiasTriad(MagneticFluxDensityTriad result) Gets estimated bias of body magnetic flux density.doublegetBiasX()Gets estimated bias of x coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensityGets estimated bias of x coordinate of body magnetic flux density.voidgetBiasXAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of x coordinate of body magnetic flux density.doublegetBiasY()Gets estimated bias of y coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensityGets estimated bias of y coordinate of body magnetic flux density.voidgetBiasYAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of y coordinate of body magnetic flux density.doublegetBiasZ()Gets estimated bias of z coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensityGets estimated bias of z coordinate of body magnetic flux density.voidgetBiasZAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated bias of z coordinate of body magnetic flux density.com.irurueta.navigation.frames.CoordinateTransformationgetEcefC()Gets current body orientation as a transformation from body to ECEF coordinates.voidgetEcefC(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to ECEF coordinates.com.irurueta.navigation.frames.ECEFFrameGets ECEF frame containing current body position and orientation expressed in ECEF coordinates.voidgetEcefFrame(com.irurueta.navigation.frames.ECEFFrame result) Gets ECEF frame containing current body position and orientation expressed in ECEF coordinates.com.irurueta.navigation.frames.ECEFPositionGets current body position expressed in ECEF coordinates.voidgetEcefPosition(com.irurueta.navigation.frames.ECEFPosition result) Gets current body position expressed in ECEF coordinates.Gets theoretically expected body magnetic flux density for provided instant, body position and orientation, assuming that body remains at the same position (zero velocity).voidGets 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.booleanGets 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.CoordinateTransformationgetNedC()Gets current body orientation as a transformation from body to NED coordinates.voidgetNedC(com.irurueta.navigation.frames.CoordinateTransformation result) Gets current body orientation as a transformation from body to NED coordinates.com.irurueta.navigation.frames.NEDFrameGets NED frame containing current body position and orientation expressed in NED coordinates.voidgetNedFrame(com.irurueta.navigation.frames.NEDFrame result) Gets NED frame containing current body position and orientation expressed in NED coordinates.com.irurueta.navigation.frames.NEDPositionGets current body position expressed in NED coordinates.voidgetNedPosition(com.irurueta.navigation.frames.NEDPosition result) Gets current body position expressed in NED coordinates.intGets number of samples that have been processed so far.doublegetPsdX()Gets magnetometer noise PSD (Power Spectral Density) on x axis expressed in (T^2 * s).doublegetPsdY()Gets magnetometer noise PSD (Power Spectral Density) on y axis expressed in (T^2 * s).doublegetPsdZ()Gets magnetometer noise PSD (Power Spectral Density) on z axis expressed in (T^2 * s).doubleGets magnetometer root noise root PSD (Power Spectral Density) which is the norm of root PSD components expressed as (T * s^0.5).doubleGets magnetometer noise root PSD (Power Spectral Density) on x axis expressed in (T * s^0.5).doubleGets magnetometer noise root PSD (Power Spectral Density) on y axis expressed in (T * s^0.5).doubleGets 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.voidGets estimated standard deviation of body magnetic flux density.doubleGets estimated standard deviation of x coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensityGets estimated standard deviation of x coordinate of body magnetic flux density.voidgetStandardDeviationXAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of x coordinate of body magnetic flux density.doubleGets estimated standard deviation of y coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensityGets estimated standard deviation of y coordinate of body magnetic flux density.voidgetStandardDeviationYAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of y coordinate of body magnetic flux density.doubleGets estimated standard deviation of z coordinate of body magnetic flux density expressed in Teslas (T).com.irurueta.units.MagneticFluxDensityGets estimated standard deviation of z coordinate of body magnetic flux density.voidgetStandardDeviationZAsMagneticFluxDensity(com.irurueta.units.MagneticFluxDensity result) Gets estimated standard deviation of z coordinate of body magnetic flux density.doubleGets time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).com.irurueta.units.TimeGets time interval between body kinematics (IMU acceleration + gyroscope) samples.voidgetTimeIntervalAsTime(com.irurueta.units.Time result) Gets time interval between body kinematics (IMU acceleration + gyroscope) samples.doubleGets estimated variance of x coordinate of body magnetic flux density expressed in squared Teslas (T^2).doubleGets estimated variance of y coordinate of body magnetic flux density expressed in squared Teslas (T^2).doubleGets estimated variance of z coordinate of body magnetic flux density expressed in squared Teslas (T^2).doublegetYear()Gets year expressed in decimal format.private voidInitializes world magnetic model and estimates expected body magnetic flux density.booleanIndicates whether estimator is currently running or not.private voidRebuilds expected body magnetic flux density based on current instant, location and body orientation.booleanreset()Resets current estimator.voidsetEcefC(com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets current body orientation as a transformation from body to ECEF coordinates.voidsetEcefPosition(double x, double y, double z) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.geometry.Point3D position) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.navigation.frames.ECEFPosition position) Sets current body position expressed in ECEF coordinates.voidsetEcefPosition(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z) Sets current body position expressed in ECEF coordinates.voidsetEcefPositionAndEcefOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndEcefOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position and orientation both expressed on ECEF coordinates.voidsetEcefPositionAndNedOrientation(double x, double y, double z, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidsetEcefPositionAndNedOrientation(com.irurueta.geometry.Point3D position, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidsetEcefPositionAndNedOrientation(com.irurueta.navigation.frames.ECEFPosition ecefPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidsetEcefPositionAndNedOrientation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position expressed on ECEF coordinates and orientation respect to NED axes.voidSets listener to handle events raised by this estimator.voidsetMagneticModel(WorldMagneticModel magneticModel) Sets Earth's magnetic model.voidsetNedC(com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets current body orientation as a transformation from body to NED coordinates.voidsetNedPosition(double latitude, double longitude, double height) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.navigation.frames.NEDPosition position) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height) Sets current body position expressed in NED coordinates.voidsetNedPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height) Sets current body position expressed in NED coordinates.voidsetNedPositionAndEcefOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndEcefOrientation(com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndEcefOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation ecefC) Sets position expressed on NED coordinates and orientation respect to ECEF axes.voidsetNedPositionAndNedOrientation(double latitude, double longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidsetNedPositionAndNedOrientation(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.navigation.frames.CoordinateTransformation nedC) Sets position and orientation both expressed on NED coordinates.voidSets decimal year from provided date instance.voidsetTime(GregorianCalendar calendar) Sets decimal year from provided calendar instance.voidsetTimeInterval(double timeInterval) Sets time interval between body kinematics (IMU acceleration + gyroscope) samples expressed in seconds (s).voidsetTimeInterval(com.irurueta.units.Time timeInterval) Sets time interval between body kinematics (IMU acceleration + gyroscope) samples.voidsetYear(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.
-