Class MSACRobustKnownBiasAndPositionAccelerometerCalibrator

java.lang.Object
com.irurueta.navigation.inertial.calibration.accelerometer.RobustKnownBiasAndPositionAccelerometerCalibrator
com.irurueta.navigation.inertial.calibration.accelerometer.MSACRobustKnownBiasAndPositionAccelerometerCalibrator
All Implemented Interfaces:
AccelerometerCalibrator, AccelerometerNonLinearCalibrator, KnownBiasAccelerometerCalibrator, OrderedStandardDeviationBodyKinematicsAccelerometerCalibrator, QualityScoredAccelerometerCalibrator

public class MSACRobustKnownBiasAndPositionAccelerometerCalibrator extends RobustKnownBiasAndPositionAccelerometerCalibrator
Robustly estimates accelerometer 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

    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator()
      Constructor.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

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

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(List<StandardDeviationBodyKinematics> measurements)
      Constructor.
      Parameters:
      measurements - collection of body kinematics measurements with standard deviations taken at the same position with zero velocity and unknown different orientations.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

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

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(double[] bias)
      Constructor.
      Parameters:
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.algebra.Matrix bias)
      Constructor.
      Parameters:
      bias - known accelerometer bias.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix initialMa)
      Constructor.
      Parameters:
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

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

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, double[] bias)
      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.
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, double[] bias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] bias)
      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.
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] initialBias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias)
      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.
      bias - known accelerometer bias.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias)
      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.
      bias - known accelerometer bias.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias, 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.
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix initialMa, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias, 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.
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.ECEFPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix initialMa, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

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

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, double[] bias)
      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.
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, double[] bias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] bias)
      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.
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, double[] bias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias. 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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias)
      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.
      bias - known accelerometer bias.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias)
      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.
      bias - known accelerometer bias.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      listener - listener to handle events raised by this calibrator.
      Throws:
      IllegalArgumentException - if provided bias matrix is not 3x1.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias, 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.
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix initialMa, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias, 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.
      bias - known accelerometer bias.
      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.
    • MSACRobustKnownBiasAndPositionAccelerometerCalibrator

      public MSACRobustKnownBiasAndPositionAccelerometerCalibrator(com.irurueta.navigation.frames.NEDPosition position, List<StandardDeviationBodyKinematics> measurements, boolean commonAxisUsed, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix initialMa, RobustKnownBiasAndPositionAccelerometerCalibratorListener 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.
      bias - known accelerometer bias.
      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 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 RobustKnownBiasAndPositionAccelerometerCalibrator
      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.