Interface AccelerometerCalibrator

All Known Subinterfaces:
AccelerometerNonLinearCalibrator, KnownBiasAndFrameAccelerometerCalibrator<T,L>, KnownFrameAccelerometerCalibrator<T,L>, OrderedStandardDeviationBodyKinematicsAccelerometerCalibrator, OrderedStandardDeviationFrameBodyKinematicsAccelerometerCalibrator, QualityScoredAccelerometerCalibrator, UnorderedFrameBodyKinematicsAccelerometerCalibrator, UnorderedStandardDeviationBodyKinematicsAccelerometerCalibrator, UnorderedStandardDeviationFrameBodyKinematicsAccelerometerCalibrator
All Known Implementing Classes:
BaseBiasGravityNormAccelerometerCalibrator, BaseGravityNormAccelerometerCalibrator, KnownBiasAndFrameAccelerometerLinearLeastSquaresCalibrator, KnownBiasAndFrameAccelerometerNonLinearLeastSquaresCalibrator, KnownBiasAndGravityNormAccelerometerCalibrator, KnownBiasAndPositionAccelerometerCalibrator, KnownFrameAccelerometerLinearLeastSquaresCalibrator, KnownFrameAccelerometerNonLinearLeastSquaresCalibrator, KnownGravityNormAccelerometerCalibrator, KnownPositionAccelerometerCalibrator, LMedSRobustKnownBiasAndFrameAccelerometerCalibrator, LMedSRobustKnownBiasAndGravityNormAccelerometerCalibrator, LMedSRobustKnownBiasAndPositionAccelerometerCalibrator, LMedSRobustKnownFrameAccelerometerCalibrator, LMedSRobustKnownGravityNormAccelerometerCalibrator, LMedSRobustKnownPositionAccelerometerCalibrator, MSACRobustKnownBiasAndFrameAccelerometerCalibrator, MSACRobustKnownBiasAndGravityNormAccelerometerCalibrator, MSACRobustKnownBiasAndPositionAccelerometerCalibrator, MSACRobustKnownFrameAccelerometerCalibrator, MSACRobustKnownGravityNormAccelerometerCalibrator, MSACRobustKnownPositionAccelerometerCalibrator, PROMedSRobustKnownBiasAndFrameAccelerometerCalibrator, PROMedSRobustKnownBiasAndGravityNormAccelerometerCalibrator, PROMedSRobustKnownBiasAndPositionAccelerometerCalibrator, PROMedSRobustKnownFrameAccelerometerCalibrator, PROMedSRobustKnownGravityNormAccelerometerCalibrator, PROMedSRobustKnownPositionAccelerometerCalibrator, PROSACRobustKnownBiasAndFrameAccelerometerCalibrator, PROSACRobustKnownBiasAndGravityNormAccelerometerCalibrator, PROSACRobustKnownBiasAndPositionAccelerometerCalibrator, PROSACRobustKnownFrameAccelerometerCalibrator, PROSACRobustKnownGravityNormAccelerometerCalibrator, PROSACRobustKnownPositionAccelerometerCalibrator, RANSACRobustKnownBiasAndFrameAccelerometerCalibrator, RANSACRobustKnownBiasAndGravityNormAccelerometerCalibrator, RANSACRobustKnownBiasAndPositionAccelerometerCalibrator, RANSACRobustKnownFrameAccelerometerCalibrator, RANSACRobustKnownGravityNormAccelerometerCalibrator, RANSACRobustKnownPositionAccelerometerCalibrator, RobustKnownBiasAndFrameAccelerometerCalibrator, RobustKnownBiasAndGravityNormAccelerometerCalibrator, RobustKnownBiasAndPositionAccelerometerCalibrator, RobustKnownFrameAccelerometerCalibrator, RobustKnownGravityNormAccelerometerCalibrator, RobustKnownPositionAccelerometerCalibrator

public interface AccelerometerCalibrator
Interface for accelerometer calibrators.
  • Method Details

    • getMeasurementType

      Indicates the type of measurement used by this calibrator.
      Returns:
      type of measurement used by this calibrator.
    • isOrderedMeasurementsRequired

      boolean isOrderedMeasurementsRequired()
      Indicates whether this calibrator requires ordered measurements in a list or not.
      Returns:
      true if measurements must be ordered, false otherwise.
    • isQualityScoresRequired

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

      boolean isCommonAxisUsed()
      Indicates whether z-axis is assumed to be common for accelerometer and gyroscope. When enabled, this eliminates 3 variables from Ma matrix.
      Returns:
      true if z-axis is assumed to be common for accelerometer and gyroscope, false otherwise.
    • setCommonAxisUsed

      void setCommonAxisUsed(boolean commonAxisUsed) throws com.irurueta.navigation.LockedException
      Specifies whether z-axis is assumed to be common for accelerometer and gyroscope. When enabled, this eliminates 3 variables from Ma matrix.
      Parameters:
      commonAxisUsed - true if z-axis is assumed to be common for accelerometer and gyroscope, false otherwise.
      Throws:
      com.irurueta.navigation.LockedException - if estimator is currently running.
    • getMinimumRequiredMeasurements

      int getMinimumRequiredMeasurements()
      Gets minimum number of required measurements.
      Returns:
      minimum number of required measurements.
    • isReady

      boolean isReady()
      Indicates whether calibrator is ready to start the estimator.
      Returns:
      true if calibrator is ready, false otherwise.
    • isRunning

      boolean isRunning()
      Indicates whether calibrator is currently running or not.
      Returns:
      true if calibrator is running, false otherwise.
    • calibrate

      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 calibration fails for numerical reasons.
    • getEstimatedMa

      com.irurueta.algebra.Matrix getEstimatedMa()
      Gets estimated accelerometer scale factors and cross coupling errors. This is the product of matrix Ta containing cross coupling errors and Ka containing scaling factors. So tat:
           Ma = [sx    mxy  mxz] = Ta*Ka
                [myx   sy   myz]
                [mzx   mzy  sz ]
       
      Where:
           Ka = [sx 0   0 ]
                [0  sy  0 ]
                [0  0   sz]
       
      and
           Ta = [1          -alphaXy    alphaXz ]
                [alphaYx    1           -alphaYz]
                [-alphaZx   alphaZy     1       ]
       
      Hence:
           Ma = [sx    mxy  mxz] = Ta*Ka =  [sx             -sy * alphaXy   sz * alphaXz ]
                [myx   sy   myz]            [sx * alphaYx   sy              -sz * alphaYz]
                [mzx   mzy  sz ]            [-sx * alphaZx  sy * alphaZy    sz           ]
       
      This instance allows any 3x3 matrix however, typically alphaYx, alphaZx and alphaZy are considered to be zero if the accelerometer z-axis is assumed to be the same as the body z-axis. When this is assumed, myx = mzx = mzy = 0 and the Ma matrix becomes upper diagonal:
           Ma = [sx    mxy  mxz]
                [0     sy   myz]
                [0     0    sz ]
       
      Values of this matrix are unit-less.
      Returns:
      estimated accelerometer scale factors and cross coupling errors, or null if not available.
    • getEstimatedSx

      Double getEstimatedSx()
      Gets estimated x-axis scale factor.
      Returns:
      estimated x-axis scale factor or null if not available.
    • getEstimatedSy

      Double getEstimatedSy()
      Gets estimated y-axis scale factor.
      Returns:
      estimated y-axis scale factor or null if not available.
    • getEstimatedSz

      Double getEstimatedSz()
      Gets estimated z-axis scale factor.
      Returns:
      estimated z-axis scale factor or null if not available.
    • getEstimatedMxy

      Double getEstimatedMxy()
      Gets estimated x-y cross-coupling error.
      Returns:
      estimated x-y cross-coupling error or null if not available.
    • getEstimatedMxz

      Double getEstimatedMxz()
      Gets estimated x-z cross-coupling error.
      Returns:
      estimated x-z cross-coupling error or null if not available.
    • getEstimatedMyx

      Double getEstimatedMyx()
      Gets estimated y-x cross-coupling error.
      Returns:
      estimated y-x cross-coupling error or null if not available.
    • getEstimatedMyz

      Double getEstimatedMyz()
      Gets estimated y-z cross-coupling error.
      Returns:
      estimated y-z cross-coupling error or null if not available.
    • getEstimatedMzx

      Double getEstimatedMzx()
      Gets estimated z-x cross-coupling error.
      Returns:
      estimated z-x cross-coupling error or null if not available.
    • getEstimatedMzy

      Double getEstimatedMzy()
      Gets estimated z-y cross-coupling error.
      Returns:
      estimated z-y cross-coupling error or null if not available.