Class MSACRobustKnownPositionAccelerometerCalibrator

java.lang.Object
com.irurueta.navigation.inertial.calibration.accelerometer.RobustKnownPositionAccelerometerCalibrator
com.irurueta.navigation.inertial.calibration.accelerometer.MSACRobustKnownPositionAccelerometerCalibrator
All Implemented Interfaces:
AccelerometerCalibrator, AccelerometerNonLinearCalibrator, OrderedStandardDeviationBodyKinematicsAccelerometerCalibrator, QualityScoredAccelerometerCalibrator, UnknownBiasAccelerometerCalibrator, UnknownBiasNonLinearAccelerometerCalibrator, AccelerometerBiasUncertaintySource, AccelerometerCalibrationSource

public class MSACRobustKnownPositionAccelerometerCalibrator extends RobustKnownPositionAccelerometerCalibrator
Robustly estimates accelerometer biases, cross couplings and scaling factors using a MSAC algorithm to discard outliers.

To use this calibrator at least 10 measurements taken at a single known position must be taken at 10 different unknown orientations and zero velocity when common z-axis is assumed, otherwise at least 13 measurements are required.

Measured specific force is assumed to follow the model shown below:

     fmeas = ba + (I + Ma) * ftrue + w
 
Where: - fmeas is the measured specific force. This is a 3x1 vector. - ba is accelerometer bias. Ideally, on a perfect accelerometer, this should be a 3x1 zero vector. - I is the 3x3 identity matrix. - Ma is the 3x3 matrix containing cross-couplings and scaling factors. Ideally, on a perfect accelerometer, this should be a 3x3 zero matrix. - ftrue is ground-truth specific force. - w is measurement noise.
  • Field Details

    • DEFAULT_THRESHOLD

      public static final double DEFAULT_THRESHOLD
      Constant defining default threshold to determine whether samples are inliers or not.
      See Also:
    • MIN_THRESHOLD

      public static final double MIN_THRESHOLD
      Minimum value that can be set as threshold. Threshold must be strictly greater than 0.0.
      See Also:
    • threshold

      private double threshold
      Threshold to determine whether samples are inliers or not when testing possible estimation solutions.
  • Constructor Details

    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator()
      Constructor.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      listener - listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(List<StandardDeviationBodyKinematics> measurements)
      Constructor.
      Parameters:
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(boolean commonAxisUsed)
      Constructor.
      Parameters:
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(double[] initialBias)
      Constructor.
      Parameters:
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.algebra.Matrix initialBias)
      Constructor.
      Parameters:
      initialBias - initial bias to find a solution.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa)
      Constructor.
      Parameters:
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
      listener - listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      listener - listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, double[] initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, double[] initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      listener - listener to handle events raised by this calibrator.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
      listener - listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - list of body kinematics measurements taken at a given position with different unknown orientations and containing the standard deviations of accelerometer and gyroscope measurements.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      listener - listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, double[] initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, double[] initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial accelerometer bias to be used to find a solution. This must have length 3 and is expressed in meters per squared second (m/s^2).
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias array does not have length 3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      listener - listener to handle events raised by this calibrator.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
    • MSACRobustKnownPositionAccelerometerCalibrator

      public MSACRobustKnownPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix initialBias, com.irurueta.algebra.Matrix initialMa, RobustKnownPositionAccelerometerCalibratorListener listener)
      Constructor.
      Parameters:
      position - position where body kinematics measures have been taken.
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
      commonAxisUsed - indicates whether z-axis is assumed to be common for accelerometer and gyroscope.
      initialBias - initial bias to find a solution.
      initialMa - initial scale factors and cross coupling errors matrix.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if either provided bias matrix is not 3x1 or scaling and coupling error matrix is not 3x3.
  • Method Details

    • getThreshold

      public double getThreshold()
      Returns threshold to determine whether samples are inliers or not.
      Returns:
      threshold to determine whether samples are inliers or not.
    • setThreshold

      public void setThreshold(double threshold) throws com.irurueta.navigation.LockedException
      Sets threshold to determine whether samples are inliers or not.
      Parameters:
      threshold - threshold to be set.
      Throws:
      IllegalArgumentException - if provided value is equal or less than zero.
      com.irurueta.navigation.LockedException - if calibrator is currently running.
    • calibrate

      public void calibrate() throws com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, CalibrationException
      Estimates accelerometer calibration parameters containing bias, scale factors and cross-coupling errors.
      Throws:
      com.irurueta.navigation.LockedException - if calibrator is currently running.
      com.irurueta.navigation.NotReadyException - if calibrator is not ready.
      CalibrationException - if estimation fails for numerical reasons.
    • getMethod

      public com.irurueta.numerical.robust.RobustEstimatorMethod getMethod()
      Returns method being used for robust estimation.
      Specified by:
      getMethod in class RobustKnownPositionAccelerometerCalibrator
      Returns:
      method being used for robust estimation.
    • isQualityScoresRequired

      public boolean isQualityScoresRequired()
      Indicates whether this calibrator requires quality scores for each measurement or not.
      Returns:
      true if quality scores are required, false otherwise.