Interface GyroscopeCalibrator

All Known Subinterfaces:
AccelerometerDependentGyroscopeCalibrator, GyroscopeNonLinearCalibrator, KnownBiasAndFrameGyroscopeCalibrator<T,L>, KnownFrameGyroscopeCalibrator<T,L>, OrderedBodyKinematicsSequenceGyroscopeCalibrator, OrderedStandardDeviationBodyKinematicsGyroscopeCalibrator, OrderedStandardDeviationFrameBodyKinematicsGyroscopeCalibrator, QualityScoredGyroscopeCalibrator, UnorderedFrameBodyKinematicsGyroscopeCalibrator, UnorderedStandardDeviationBodyKinematicsGyroscopeCalibrator, UnorderedStandardDeviationFrameBodyKinematicsGyroscopeCalibrator
All Known Implementing Classes:
EasyGyroscopeCalibrator, KnownBiasAndFrameGyroscopeLinearLeastSquaresCalibrator, KnownBiasAndFrameGyroscopeNonLinearLeastSquaresCalibrator, KnownBiasEasyGyroscopeCalibrator, KnownBiasTurntableGyroscopeCalibrator, KnownFrameGyroscopeLinearLeastSquaresCalibrator, KnownFrameGyroscopeNonLinearLeastSquaresCalibrator, LMedSRobustEasyGyroscopeCalibrator, LMedSRobustKnownBiasAndFrameGyroscopeCalibrator, LMedSRobustKnownBiasEasyGyroscopeCalibrator, LMedSRobustKnownBiasTurntableGyroscopeCalibrator, LMedSRobustKnownFrameGyroscopeCalibrator, LMedSRobustTurntableGyroscopeCalibrator, MSACRobustEasyGyroscopeCalibrator, MSACRobustKnownBiasAndFrameGyroscopeCalibrator, MSACRobustKnownBiasEasyGyroscopeCalibrator, MSACRobustKnownBiasTurntableGyroscopeCalibrator, MSACRobustKnownFrameGyroscopeCalibrator, MSACRobustTurntableGyroscopeCalibrator, PROMedSRobustEasyGyroscopeCalibrator, PROMedSRobustKnownBiasAndFrameGyroscopeCalibrator, PROMedSRobustKnownBiasEasyGyroscopeCalibrator, PROMedSRobustKnownBiasTurntableGyroscopeCalibrator, PROMedSRobustKnownFrameGyroscopeCalibrator, PROMedSRobustTurntableGyroscopeCalibrator, PROSACRobustEasyGyroscopeCalibrator, PROSACRobustKnownBiasAndFrameGyroscopeCalibrator, PROSACRobustKnownBiasEasyGyroscopeCalibrator, PROSACRobustKnownBiasTurntableGyroscopeCalibrator, PROSACRobustKnownFrameGyroscopeCalibrator, PROSACRobustTurntableGyroscopeCalibrator, RANSACRobustEasyGyroscopeCalibrator, RANSACRobustKnownBiasAndFrameGyroscopeCalibrator, RANSACRobustKnownBiasEasyGyroscopeCalibrator, RANSACRobustKnownBiasTurntableGyroscopeCalibrator, RANSACRobustKnownFrameGyroscopeCalibrator, RANSACRobustTurntableGyroscopeCalibrator, RobustEasyGyroscopeCalibrator, RobustKnownBiasAndFrameGyroscopeCalibrator, RobustKnownBiasEasyGyroscopeCalibrator, RobustKnownBiasTurntableGyroscopeCalibrator, RobustKnownFrameGyroscopeCalibrator, RobustTurntableGyroscopeCalibrator, TurntableGyroscopeCalibrator

public interface GyroscopeCalibrator
Interface for gyroscope calibrators.
  • Method Details

    • getMeasurementOrSequenceType

      GyroscopeCalibratorMeasurementOrSequenceType getMeasurementOrSequenceType()
      Indicates the type of measurement or sequence used by this calibrator.
      Returns:
      type of measurement or sequence used by this calibrator.
    • isOrderedMeasurementsOrSequencesRequired

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

      boolean isQualityScoresRequired()
      Indicates whether this calibrator requires quality scores for each measurement/sequence 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 Mg 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 Mg matrix.
      Parameters:
      commonAxisUsed - true if z-axis is assumed to be common for accelerometer and gyroscope, false otherwise.
      Throws:
      com.irurueta.navigation.LockedException - if calibrator is currently running.
    • getMinimumRequiredMeasurementsOrSequences

      int getMinimumRequiredMeasurementsOrSequences()
      Gets minimum number of required measurements or sequences.
      Returns:
      minimum number of required measurements or sequences.
    • isReady

      boolean isReady()
      Indicates whether calibrator is ready to start the calibration.
      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 gyroscope calibration parameters containing bias, scale factors, cross-coupling errors and g-dependant cross biases.
      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.
    • getEstimatedMg

      com.irurueta.algebra.Matrix getEstimatedMg()
      Gets estimated gyroscope scale factors and cross coupling errors. This is the product of matrix Tg containing cross coupling errors and Kg containing scaling factors. So that:
           Mg = [sx    mxy  mxz] = Tg*Kg
                [myx   sy   myz]
                [mzx   mzy  sz ]
       
      Where:
           Kg = [sx 0   0 ]
                [0  sy  0 ]
                [0  0   sz]
       
      and
           Tg = [1          -alphaXy    alphaXz ]
                [alphaYx    1           -alphaYz]
                [-alphaZx   alphaZy     1       ]
       
      Hence:
           Mg = [sx    mxy  mxz] = Tg*Kg =  [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 gyroscope z-axis is assumed to be the same as the body z-axis. When this is assumed, myx = mzx = mzy = 0 and the Mg matrix becomes upper diagonal:
           Mg = [sx    mxy  mxz]
                [0     sy   myz]
                [0     0    sz ]
       
      Values of this matrix are unit-less.
      Returns:
      estimated gyroscope scale factors and cross coupling errors.
    • 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.
    • getEstimatedGg

      com.irurueta.algebra.Matrix getEstimatedGg()
      Gets estimated G-dependent cross biases introduced on the gyroscope by the specific forces sensed by the accelerometer.
      Returns:
      a 3x3 matrix containing g-dependent cross biases.