Class KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
java.lang.Object
com.irurueta.navigation.inertial.calibration.magnetometer.BaseKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator<KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator,KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener>
com.irurueta.navigation.inertial.calibration.magnetometer.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
- All Implemented Interfaces:
KnownHardIronMagnetometerCalibrator,MagnetometerCalibrator,MagnetometerNonLinearCalibrator,UnorderedStandardDeviationBodyMagneticFluxDensityMagnetometerCalibrator
public class KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
extends BaseKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator<KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator,KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener>
Estimates magnetometer cross couplings and scaling factors.
This calibrator uses Levenberg-Marquardt to find a minimum least squared
error solution.
To use this calibrator at least 7 measurements taken at a single unknown position and instant must be taken at 7 different unknown orientations and zero velocity when common z-axis is assumed, otherwise at least 10 measurements are required.
Measured magnetic flux density is assumed to follow the model shown below:
mBmeas = bm + (I + Mm) * mBtrue + w
Where:
- mBmeas is the measured magnetic flux density. This is a 3x1 vector.
- bm is magnetometer hard-iron bias. Ideally, on a perfect magnetometer,
this should be a 3x1 zero vector.
- I is the 3x3 identity matrix.
- Mm is the 3x3 soft-iron matrix containing cross-couplings and scaling
factors. Ideally, on a perfect magnetometer, this should be a 3x3 zero
matrix.
- mBtrue is ground-truth magnetic flux density. This is a 3x1 vector.
- w is measurement noise. This is a 3x1 vector.
Notice that this calibrator assumes that all measurements are taken in
a short span of time, where Earth magnetic field can be assumed to be
constant at provided location and instant.-
Field Summary
Fields inherited from class com.irurueta.navigation.inertial.calibration.magnetometer.BaseKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
DEFAULT_USE_COMMON_Z_AXIS, groundTruthMagneticFluxDensityNorm, MINIMUM_MEASUREMENTS_COMMON_Z_AXIS, MINIMUM_MEASUREMENTS_GENERAL -
Constructor Summary
ConstructorsModifierConstructorDescriptionConstructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(boolean commonAxisUsed) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(double[] hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(com.irurueta.algebra.Matrix hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, double[] hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.protectedKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron) Constructor.protectedKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.protectedKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.protectedKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, double[] hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron) Constructor.protectedKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.protectedKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, double[] hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, double[] hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor.KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanisReady()Indicates whether calibrator is ready to start.voidsetGroundTruthMagneticFluxDensityNorm(com.irurueta.units.MagneticFluxDensity groundTruthMagneticFluxDensityNorm) Sets ground truth magnetic flux density norm to be expected at location where measurements have been made.voidsetGroundTruthMagneticFluxDensityNorm(Double groundTruthMagneticFluxDensityNorm) Sets ground truth magnetic flux density norm to be expected at location where measurements have been made, expressed in Teslas (T).Methods inherited from class com.irurueta.navigation.inertial.calibration.magnetometer.BaseKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
calibrate, getEstimatedChiSq, getEstimatedChiSqDegreesOfFreedom, getEstimatedCovariance, getEstimatedMm, getEstimatedMse, getEstimatedMxy, getEstimatedMxz, getEstimatedMyx, getEstimatedMyz, getEstimatedMzx, getEstimatedMzy, getEstimatedP, getEstimatedQ, getEstimatedReducedChiSq, getEstimatedSx, getEstimatedSy, getEstimatedSz, getGroundTruthMagneticFluxDensityNorm, getGroundTruthMagneticFluxDensityNormAsMagneticFluxDensity, getGroundTruthMagneticFluxDensityNormAsMagneticFluxDensity, getHardIron, getHardIron, getHardIronAsTriad, getHardIronAsTriad, getHardIronMatrix, getHardIronMatrix, getHardIronX, getHardIronXAsMagneticFluxDensity, getHardIronXAsMagneticFluxDensity, getHardIronY, getHardIronYAsMagneticFluxDensity, getHardIronYAsMagneticFluxDensity, getHardIronZ, getHardIronZAsMagneticFluxDensity, getHardIronZAsMagneticFluxDensity, getInitialMm, getInitialMm, getInitialMxy, getInitialMxz, getInitialMyx, getInitialMyz, getInitialMzx, getInitialMzy, getInitialSx, getInitialSy, getInitialSz, getListener, getMeasurements, getMeasurementType, getMinimumRequiredMeasurements, internalSetGroundTruthMagneticFluxDensityNorm, isCommonAxisUsed, isOrderedMeasurementsRequired, isQualityScoresRequired, isRunning, onBeforeCalibrate, setCommonAxisUsed, setHardIron, setHardIron, setHardIron, setHardIronCoordinates, setHardIronCoordinates, setHardIronX, setHardIronX, setHardIronY, setHardIronY, setHardIronZ, setHardIronZ, setInitialCrossCouplingErrors, setInitialMm, setInitialMxy, setInitialMxz, setInitialMyx, setInitialMyz, setInitialMzx, setInitialMzy, setInitialScalingFactors, setInitialScalingFactorsAndCrossCouplingErrors, setInitialSx, setInitialSy, setInitialSz, setListener, setMeasurements
-
Constructor Details
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator()Constructor. -
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(boolean commonAxisUsed) Constructor.- Parameters:
commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(double[] hardIron) Constructor.- Parameters:
hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided hard-iron array does not have length 3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, double[] hardIron) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided hard-iron array does not have length 3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, double[] hardIron) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided hard-iron array does not have length 3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(com.irurueta.algebra.Matrix hardIron) Constructor.- Parameters:
hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided hard-iron matrix is not 3x1.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided hard-iron matrix is not 3x1.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided hard-iron matrix is not 3x1.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.- Parameters:
hardIron- known hard-iron.initialMm- initial soft-iron matrix containing scale factors and cross coupling errors.- Throws:
IllegalArgumentException- if provided hard-iron matrix is not 3x1 or if soft-iron matrix is not 3x3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.hardIron- known hard-iron.initialMm- initial soft-iron matrix containing scale factors and cross coupling errors.- Throws:
IllegalArgumentException- if provided hard-iron matrix is not 3x1 or if soft-iron matrix is not 3x3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.- Parameters:
measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.hardIron- known hard-iron.initialMm- initial soft-iron matrix containing scale factors and cross coupling errors.- Throws:
IllegalArgumentException- if provided hard-iron matrix is not 3x1 or if soft-iron matrix is not 3x3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, double[] hardIron) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative, or if provided hard-iron array does not have length 3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, double[] hardIron) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative, or if provided hard-iron array does not have length 3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative, or if provided hard-iron matrix is not 3x1.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
protected KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.hardIron- known hard-iron.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative, or if provided hard-iron matrix is not 3x1.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
protected KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.hardIron- known hard-iron.initialMm- initial soft-iron matrix containing scale factors and cross coupling errors.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative, or if provided hard-iron matrix is not 3x1 or if soft-iron matrix is not 3x3.
-
KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator
protected KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm) Constructor.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm expressed in Teslas (T).measurements- collection of body magnetic flux density measurements with standard deviation of magnetometer measurements taken at the same position with zero velocity and unknown different orientations.commonAxisUsed- indicates whether z-axis is assumed to be common for the accelerometer, gyroscope and magnetometer.hardIron- known hard-iron.initialMm- initial soft-iron matrix containing scale factors and cross coupling errors.- Throws:
IllegalArgumentException- if provided magnetic flux norm value is negative, or if provided hard-iron matrix is not 3x1 or if soft-iron matrix is not 3x3.
-
-
Method Details
-
setGroundTruthMagneticFluxDensityNorm
public void setGroundTruthMagneticFluxDensityNorm(Double groundTruthMagneticFluxDensityNorm) throws com.irurueta.navigation.LockedException Sets ground truth magnetic flux density norm to be expected at location where measurements have been made, expressed in Teslas (T).- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm or null if undefined.- Throws:
IllegalArgumentException- if provided value is negative.com.irurueta.navigation.LockedException- if calibrator is currently running.
-
setGroundTruthMagneticFluxDensityNorm
public void setGroundTruthMagneticFluxDensityNorm(com.irurueta.units.MagneticFluxDensity groundTruthMagneticFluxDensityNorm) throws com.irurueta.navigation.LockedException Sets ground truth magnetic flux density norm to be expected at location where measurements have been made.- Parameters:
groundTruthMagneticFluxDensityNorm- ground truth magnetic flux density norm or null if undefined.- Throws:
IllegalArgumentException- if provided value is negative.com.irurueta.navigation.LockedException- if calibrator is currently running.
-
isReady
public boolean isReady()Indicates whether calibrator is ready to start.- Specified by:
isReadyin interfaceMagnetometerCalibrator- Overrides:
isReadyin classBaseKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator<KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator,KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener> - Returns:
- true if calibrator is ready, false otherwise.
-