Class KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator

All Implemented Interfaces:
KnownHardIronMagnetometerCalibrator, MagnetometerCalibrator, MagnetometerNonLinearCalibrator, UnorderedStandardDeviationBodyMagneticFluxDensityMagnetometerCalibrator

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.
  • Constructor Details

    • KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator

      public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator()
      Constructor.
    • KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator

      public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      Constructor.
      Parameters:
      listener - listener to handle events raised by this calibrator.
    • 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(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
    • 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(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
    • 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, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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(Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      Constructor.
      Parameters:
      groundTruthMagneticFluxDensityNorm - ground truth magnetic flux density norm expressed in Teslas (T).
      listener - listener to handle events raised by this calibrator.
      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, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, boolean commonAxisUsed, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, boolean commonAxisUsed, double[] hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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

      public KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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.
    • KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator

      protected KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator(Double groundTruthMagneticFluxDensityNorm, Collection<StandardDeviationBodyMagneticFluxDensity> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix initialMm, KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener listener)
      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.
      listener - listener to handle events raised by this calibrator.
      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:
      isReady in interface MagnetometerCalibrator
      Overrides:
      isReady in class BaseKnownHardIronMagneticFluxDensityNormMagnetometerCalibrator<KnownHardIronMagneticFluxDensityNormMagnetometerCalibrator,KnownHardIronMagneticFluxDensityNormMagnetometerCalibratorListener>
      Returns:
      true if calibrator is ready, false otherwise.