Class AngularRateFixer

java.lang.Object
com.irurueta.navigation.inertial.calibration.AngularRateFixer

public class AngularRateFixer extends Object
Fixes angular rate values taking into account provided bias, cross coupling errors and G-dependant errors.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private com.irurueta.algebra.Matrix
    Bias matrix to be reused.
    private com.irurueta.algebra.Matrix
    Cross coupling errors matrix to be reused.
    private com.irurueta.algebra.Matrix
    Temporary matrix to be reused.
    private com.irurueta.algebra.Matrix
    G-dependant cross biases to be reused.
    private com.irurueta.algebra.Matrix
    Identity matrix to be reused.
    private final double[]
    Measured angular rate to be reused.
    private final double[]
    Array containing result values to be reused.
    private com.irurueta.algebra.Matrix
    Temporary matrix to be reused.
    private com.irurueta.algebra.Matrix
    Temporary matrix to be reused.
    private com.irurueta.algebra.Matrix
    Temporary matrix to be reused.
    private com.irurueta.algebra.Matrix
    Temporary matrix to be reused.
    private com.irurueta.algebra.Matrix
    Temporary matrix to be reused.
    private final double[]
    True specific force to be reused.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    private static double
    convertAcceleration(double value, com.irurueta.units.AccelerationUnit unit)
    Converts acceleration value and unit to meters per squared second (m/s^2).
    private static double
    convertAcceleration(com.irurueta.units.Acceleration acceleration)
    Converts acceleration measurement to meters per squared second (m/s^2).
    private static double
    convertAngularSpeed(double value, com.irurueta.units.AngularSpeedUnit unit)
    Converts angular speed value and unit to radians per second (rad/s).
    private static double
    convertAngularSpeed(com.irurueta.units.AngularSpeed angularSpeed)
    Converts angular speed measurement to radians per second (rad/s).
    void
    fix(double[] measuredAngularRate, double[] trueF, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(double[] measuredAngularRate, double[] trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33, com.irurueta.algebra.Matrix result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, com.irurueta.algebra.Matrix result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, com.irurueta.algebra.Matrix result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, com.irurueta.algebra.Matrix result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF, double[] result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF, com.irurueta.algebra.Matrix result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF, AngularSpeedTriad result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    void
    fix(com.irurueta.units.AngularSpeed measuredAngularRateX, com.irurueta.units.AngularSpeed measuredAngularRateY, com.irurueta.units.AngularSpeed measuredAngularRateZ, com.irurueta.units.Acceleration trueFx, com.irurueta.units.Acceleration trueFy, com.irurueta.units.Acceleration trueFz, AngularSpeedTriad result)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    double[]
    fixAndReturnNew(double[] measuredAngularRate, double[] trueF)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    double[]
    fixAndReturnNew(double[] measuredAngularRate, double[] trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    double[]
    fixAndReturnNew(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    double[]
    fixAndReturnNew(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    double[]
    fixAndReturnNew(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    double[]
    fixAndReturnNew(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    double[]
    fixAndReturnNew(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    fixAndReturnNew(com.irurueta.units.AngularSpeed measuredAngularRateX, com.irurueta.units.AngularSpeed measuredAngularRateY, com.irurueta.units.AngularSpeed measuredAngularRateZ, com.irurueta.units.Acceleration trueFx, com.irurueta.units.Acceleration trueFy, com.irurueta.units.Acceleration trueFz)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    com.irurueta.algebra.Matrix
    fixAndReturnNewMatrix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    com.irurueta.algebra.Matrix
    fixAndReturnNewMatrix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    com.irurueta.algebra.Matrix
    fixAndReturnNewMatrix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    com.irurueta.algebra.Matrix
    fixAndReturnNewMatrix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    com.irurueta.algebra.Matrix
    fixAndReturnNewMatrix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias)
    Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
    com.irurueta.algebra.Matrix
    Gets bias values expressed in radians per second (rad/s).
    void
    getBias(com.irurueta.algebra.Matrix result)
    Gets bias values expressed in radians per second (rad/s).
    double[]
    Gets bias values expressed in radians per second (rad/s).
    void
    getBiasArray(double[] result)
    Gets bias values expressed in radians per second (rad/s).
    Gets angular speed bias.
    void
    Gets angular speed bias.
    double
    Gets x-coordinate of bias expressed in radians per second (rad/s).
    com.irurueta.units.AngularSpeed
    Gets x-coordinate of bias.
    void
    getBiasXAsAngularSpeed(com.irurueta.units.AngularSpeed result)
    Gets x-coordinate of bias.
    double
    Gets y-coordinate of bias expressed in radians per second (rad/s).
    com.irurueta.units.AngularSpeed
    Gets y-coordinate of bias.
    void
    getBiasYAsAngularSpeed(com.irurueta.units.AngularSpeed result)
    Gets y-coordinate of bias.
    double
    Gets z-coordinate of bias expressed in radians per second (rad/s).
    com.irurueta.units.AngularSpeed
    Gets z-coordinate of bias.
    void
    getBiasZAsAngularSpeed(com.irurueta.units.AngularSpeed result)
    Gets z-coordinate of bias.
    com.irurueta.algebra.Matrix
    Gets cross coupling errors matrix.
    void
    getCrossCouplingErrors(com.irurueta.algebra.Matrix result)
    Gets cross coupling errors matrix.
    com.irurueta.algebra.Matrix
    Gets g-dependant cross biases matrix.
    void
    getGDependantCrossBias(com.irurueta.algebra.Matrix result)
    Gets g-dependant cross biases matrix.
    double
    Gets x-y cross coupling error.
    double
    Gets x-z cross coupling error.
    double
    Gets y-x cross coupling error.
    double
    Gets y-z cross coupling error.
    double
    Gets z-x cross coupling error.
    double
    Gets z-y cross coupling error.
    double
    Gets x scaling factor.
    double
    Gets y scaling factor.
    double
    Gets z scaling factor.
    void
    setBias(double[] bias)
    Sets bias values expressed in radians per second (rad/s).
    void
    setBias(double biasX, double biasY, double biasZ)
    Sets coordinates of bias expressed in radians per second (rad/s).
    void
    setBias(com.irurueta.algebra.Matrix bias)
    Sets bias values expressed in radians per second (rad/s).
    void
    Sets angular speed bias.
    void
    setBias(com.irurueta.units.AngularSpeed biasX, com.irurueta.units.AngularSpeed biasY, com.irurueta.units.AngularSpeed biasZ)
    Sets coordinates of bias.
    void
    setBiasX(double biasX)
    Sets x-coordinate of bias expressed in radians per second (rad/s).
    void
    setBiasX(com.irurueta.units.AngularSpeed biasX)
    Sets x-coordinate of bias.
    void
    setBiasY(double biasY)
    Sets y-coordinate of bias expressed in radians per second (rad/s).
    void
    setBiasY(com.irurueta.units.AngularSpeed biasY)
    Sets y-coordinate of bias.
    void
    setBiasZ(double biasZ)
    Sets z-coordinate of bias expressed in radians per second (rad/s).
    void
    setBiasZ(com.irurueta.units.AngularSpeed biasZ)
    Sets z-coordinate of bias.
    void
    setCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy)
    Sets cross coupling errors.
    void
    setCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors)
    Sets cross coupling errors matrix.
    void
    setGDependantCrossBias(com.irurueta.algebra.Matrix gDependantCrossBias)
    Sets g-dependant cross biases matrix.
    void
    setMxy(double mxy)
    Sets x-y cross coupling error.
    void
    setMxz(double mxz)
    Sets x-z cross coupling error.
    void
    setMyx(double myx)
    Sets y-x cross coupling error.
    void
    setMyz(double myz)
    Sets y-z cross coupling error.
    void
    setMzx(double mzx)
    Sets z-x cross coupling error.
    void
    setMzy(double mzy)
    Sets z-y cross coupling error.
    void
    setScalingFactors(double sx, double sy, double sz)
    Sets scaling factors.
    void
    setScalingFactorsAndCrossCouplingErrors(double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy)
    Sets scaling factors and cross coupling errors.
    void
    setSx(double sx)
    Sets x scaling factor
    void
    setSy(double sy)
    Sets y scaling factor.
    void
    setSz(double sz)
    Sets z scaling factor.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • identity

      private com.irurueta.algebra.Matrix identity
      Identity matrix to be reused.
    • tmp1

      private com.irurueta.algebra.Matrix tmp1
      Temporary matrix to be reused.
    • tmp2

      private com.irurueta.algebra.Matrix tmp2
      Temporary matrix to be reused.
    • tmp3

      private com.irurueta.algebra.Matrix tmp3
      Temporary matrix to be reused.
    • tmp4

      private com.irurueta.algebra.Matrix tmp4
      Temporary matrix to be reused.
    • diff

      private com.irurueta.algebra.Matrix diff
      Temporary matrix to be reused.
    • tmp5

      private com.irurueta.algebra.Matrix tmp5
      Temporary matrix to be reused.
    • measuredAngularRate

      private final double[] measuredAngularRate
      Measured angular rate to be reused.
    • trueF

      private final double[] trueF
      True specific force to be reused.
    • res

      private final double[] res
      Array containing result values to be reused.
    • bias

      private com.irurueta.algebra.Matrix bias
      Bias matrix to be reused.
    • crossCouplingErrors

      private com.irurueta.algebra.Matrix crossCouplingErrors
      Cross coupling errors matrix to be reused.
    • gDependantCrossBias

      private com.irurueta.algebra.Matrix gDependantCrossBias
      G-dependant cross biases to be reused.
  • Constructor Details

    • AngularRateFixer

      public AngularRateFixer()
      Constructor.
  • Method Details

    • getBias

      public com.irurueta.algebra.Matrix getBias()
      Gets bias values expressed in radians per second (rad/s).
      Returns:
      bias values expressed in radians per second.
    • getBias

      public void getBias(com.irurueta.algebra.Matrix result)
      Gets bias values expressed in radians per second (rad/s).
      Parameters:
      result - instance where result will be stored.
    • setBias

      public void setBias(com.irurueta.algebra.Matrix bias)
      Sets bias values expressed in radians per second (rad/s).
      Parameters:
      bias - bias values expressed in radians per second. Must be 3x1.
      Throws:
      IllegalArgumentException - if provided matrix is not 3x1.
    • getBiasArray

      public double[] getBiasArray()
      Gets bias values expressed in radians per second (rad/s).
      Returns:
      bias values expressed in radians per second.
    • getBiasArray

      public void getBiasArray(double[] result)
      Gets bias values expressed in radians per second (rad/s).
      Parameters:
      result - instance where result data will be stored.
      Throws:
      IllegalArgumentException - if provided array does not have length 3.
    • setBias

      public void setBias(double[] bias)
      Sets bias values expressed in radians per second (rad/s).
      Parameters:
      bias - bias values expressed in radians per second (rad/s). Must have length 3.
      Throws:
      IllegalArgumentException - if provided array does not have length 3.
    • getBiasAsTriad

      public AngularSpeedTriad getBiasAsTriad()
      Gets angular speed bias.
      Returns:
      angular speed bias.
    • getBiasAsTriad

      public void getBiasAsTriad(AngularSpeedTriad result)
      Gets angular speed bias.
      Parameters:
      result - instance where result will be stored.
    • setBias

      public void setBias(AngularSpeedTriad bias)
      Sets angular speed bias.
      Parameters:
      bias - angular speed bias to be set.
    • getBiasX

      public double getBiasX()
      Gets x-coordinate of bias expressed in radians per second (rad/s).
      Returns:
      x-coordinate of bias expressed in radians per second (rad/s).
    • setBiasX

      public void setBiasX(double biasX)
      Sets x-coordinate of bias expressed in radians per second (rad/s).
      Parameters:
      biasX - x-coordinate of bias expressed in radians per second (rad/s).
    • getBiasY

      public double getBiasY()
      Gets y-coordinate of bias expressed in radians per second (rad/s).
      Returns:
      y-coordinate of bias expressed in radians per second (rad/s).
    • setBiasY

      public void setBiasY(double biasY)
      Sets y-coordinate of bias expressed in radians per second (rad/s).
      Parameters:
      biasY - y-coordinate of bias expressed in radians per second (rad/s).
    • getBiasZ

      public double getBiasZ()
      Gets z-coordinate of bias expressed in radians per second (rad/s).
      Returns:
      z-coordinate of bias expressed in radians per second (rad/s).
    • setBiasZ

      public void setBiasZ(double biasZ)
      Sets z-coordinate of bias expressed in radians per second (rad/s).
      Parameters:
      biasZ - z-coordinate of bias expressed in radians per second (rad/s).
    • setBias

      public void setBias(double biasX, double biasY, double biasZ)
      Sets coordinates of bias expressed in radians per second (rad/s).
      Parameters:
      biasX - x-coordinate of bias.
      biasY - y-coordinate of bias.
      biasZ - z-coordinate of bias.
    • getBiasXAsAngularSpeed

      public com.irurueta.units.AngularSpeed getBiasXAsAngularSpeed()
      Gets x-coordinate of bias.
      Returns:
      x-coordinate of bias.
    • getBiasXAsAngularSpeed

      public void getBiasXAsAngularSpeed(com.irurueta.units.AngularSpeed result)
      Gets x-coordinate of bias.
      Parameters:
      result - instance where result will be stored.
    • setBiasX

      public void setBiasX(com.irurueta.units.AngularSpeed biasX)
      Sets x-coordinate of bias.
      Parameters:
      biasX - x-coordinate of bias.
    • getBiasYAsAngularSpeed

      public com.irurueta.units.AngularSpeed getBiasYAsAngularSpeed()
      Gets y-coordinate of bias.
      Returns:
      y-coordinate of bias.
    • getBiasYAsAngularSpeed

      public void getBiasYAsAngularSpeed(com.irurueta.units.AngularSpeed result)
      Gets y-coordinate of bias.
      Parameters:
      result - instance where result will be stored.
    • setBiasY

      public void setBiasY(com.irurueta.units.AngularSpeed biasY)
      Sets y-coordinate of bias.
      Parameters:
      biasY - y-coordinate of bias.
    • getBiasZAsAngularSpeed

      public com.irurueta.units.AngularSpeed getBiasZAsAngularSpeed()
      Gets z-coordinate of bias.
      Returns:
      z-coordinate of bias.
    • getBiasZAsAngularSpeed

      public void getBiasZAsAngularSpeed(com.irurueta.units.AngularSpeed result)
      Gets z-coordinate of bias.
      Parameters:
      result - instance where result will be stored.
    • setBiasZ

      public void setBiasZ(com.irurueta.units.AngularSpeed biasZ)
      Sets z-coordinate of bias.
      Parameters:
      biasZ - z-coordinate of bias.
    • setBias

      public void setBias(com.irurueta.units.AngularSpeed biasX, com.irurueta.units.AngularSpeed biasY, com.irurueta.units.AngularSpeed biasZ)
      Sets coordinates of bias.
      Parameters:
      biasX - x-coordinate of bias.
      biasY - y-coordinate of bias.
      biasZ - z-coordinate of bias.
    • getCrossCouplingErrors

      public com.irurueta.algebra.Matrix getCrossCouplingErrors()
      Gets cross coupling errors matrix.
      Returns:
      cross coupling errors matrix.
    • getCrossCouplingErrors

      public void getCrossCouplingErrors(com.irurueta.algebra.Matrix result)
      Gets cross coupling errors matrix.
      Parameters:
      result - instance where result will be stored.
    • setCrossCouplingErrors

      public void setCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException
      Sets cross coupling errors matrix.
      Parameters:
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided matrix cannot be inverted.
      IllegalArgumentException - if provided matrix is not 3x3.
    • getSx

      public double getSx()
      Gets x scaling factor.
      Returns:
      x scaling factor.
    • setSx

      public void setSx(double sx) throws com.irurueta.algebra.AlgebraException
      Sets x scaling factor
      Parameters:
      sx - x scaling factor.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getSy

      public double getSy()
      Gets y scaling factor.
      Returns:
      y scaling factor.
    • setSy

      public void setSy(double sy) throws com.irurueta.algebra.AlgebraException
      Sets y scaling factor.
      Parameters:
      sy - y scaling factor.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getSz

      public double getSz()
      Gets z scaling factor.
      Returns:
      z scaling factor.
    • setSz

      public void setSz(double sz) throws com.irurueta.algebra.AlgebraException
      Sets z scaling factor.
      Parameters:
      sz - z scaling factor.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getMxy

      public double getMxy()
      Gets x-y cross coupling error.
      Returns:
      x-y cross coupling error.
    • setMxy

      public void setMxy(double mxy) throws com.irurueta.algebra.AlgebraException
      Sets x-y cross coupling error.
      Parameters:
      mxy - x-y cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getMxz

      public double getMxz()
      Gets x-z cross coupling error.
      Returns:
      x-z cross coupling error.
    • setMxz

      public void setMxz(double mxz) throws com.irurueta.algebra.AlgebraException
      Sets x-z cross coupling error.
      Parameters:
      mxz - x-z cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getMyx

      public double getMyx()
      Gets y-x cross coupling error.
      Returns:
      y-x cross coupling error.
    • setMyx

      public void setMyx(double myx) throws com.irurueta.algebra.AlgebraException
      Sets y-x cross coupling error.
      Parameters:
      myx - y-x cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getMyz

      public double getMyz()
      Gets y-z cross coupling error.
      Returns:
      y-z cross coupling error.
    • setMyz

      public void setMyz(double myz) throws com.irurueta.algebra.AlgebraException
      Sets y-z cross coupling error.
      Parameters:
      myz - y-z cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getMzx

      public double getMzx()
      Gets z-x cross coupling error.
      Returns:
      z-x cross coupling error.
    • setMzx

      public void setMzx(double mzx) throws com.irurueta.algebra.AlgebraException
      Sets z-x cross coupling error.
      Parameters:
      mzx - z-x cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • getMzy

      public double getMzy()
      Gets z-y cross coupling error.
      Returns:
      z-y cross coupling error.
    • setMzy

      public void setMzy(double mzy) throws com.irurueta.algebra.AlgebraException
      Sets z-y cross coupling error.
      Parameters:
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided value makes cross coupling matrix non-invertible.
    • setScalingFactors

      public void setScalingFactors(double sx, double sy, double sz) throws com.irurueta.algebra.AlgebraException
      Sets scaling factors.
      Parameters:
      sx - x scaling factor.
      sy - y scaling factor.
      sz - z scaling factor.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided values make cross coupling matrix non-invertible.
    • setCrossCouplingErrors

      public void setCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.algebra.AlgebraException
      Sets cross coupling errors.
      Parameters:
      mxy - x-y cross coupling error.
      mxz - x-z cross coupling error.
      myx - y-x cross coupling error.
      myz - y-z cross coupling error.
      mzx - z-x cross coupling error.
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided values make cross coupling matrix non-invertible.
    • setScalingFactorsAndCrossCouplingErrors

      public void setScalingFactorsAndCrossCouplingErrors(double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.algebra.AlgebraException
      Sets scaling factors and cross coupling errors.
      Parameters:
      sx - x scaling factor.
      sy - y scaling factor.
      sz - z scaling factor.
      mxy - x-y cross coupling error.
      mxz - x-z cross coupling error.
      myx - y-x cross coupling error.
      myz - y-z cross coupling error.
      mzx - z-x cross coupling error.
      mzy - z-y cross coupling error.
      Throws:
      com.irurueta.algebra.AlgebraException - if provided values make cross coupling matrix non-invertible.
    • getGDependantCrossBias

      public com.irurueta.algebra.Matrix getGDependantCrossBias()
      Gets g-dependant cross biases matrix.
      Returns:
      g-dependant cross biases matrix.
    • getGDependantCrossBias

      public void getGDependantCrossBias(com.irurueta.algebra.Matrix result)
      Gets g-dependant cross biases matrix.
      Parameters:
      result - instance where result will be stored.
    • setGDependantCrossBias

      public void setGDependantCrossBias(com.irurueta.algebra.Matrix gDependantCrossBias)
      Sets g-dependant cross biases matrix.
      Parameters:
      gDependantCrossBias - g-dependant cross biases matrix.
      Throws:
      IllegalArgumentException - if provided matrix is not 3x3.
    • fix

      public void fix(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate.
      trueF - true (i.e. fixed) specific force.
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if length of provided result array is not 3.
    • fix

      public void fix(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate.
      trueF - true (i.e. fixed) specific force.
      result - instance where restored true angular rate will be stored. Must be 3x1.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if result matrix is not 3x1.
    • fix

      public void fix(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF, AngularSpeedTriad result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate.
      trueF - true (i.e. fixed) specific force.
      result - instance where restored true angular rate will be stored.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • fix

      public void fix(com.irurueta.units.AngularSpeed measuredAngularRateX, com.irurueta.units.AngularSpeed measuredAngularRateY, com.irurueta.units.AngularSpeed measuredAngularRateZ, com.irurueta.units.Acceleration trueFx, com.irurueta.units.Acceleration trueFy, com.irurueta.units.Acceleration trueFz, AngularSpeedTriad result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided and cross coupling errors.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate.
      measuredAngularRateY - y-coordinate of measured angular rate.
      measuredAngularRateZ - z-coordinate of measured angular rate.
      trueFx - x-coordinate of true (i.e. fixed) specific force.
      trueFy - y-coordinate of true (i.e. fixed) specific force.
      trueFz - z-coordinate of true (i.e. fixed) specific force.
      result - instance where restored true angular rate will be stored.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • fix

      public void fix(double[] measuredAngularRate, double[] trueF, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must have length 3.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must have length 3.
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      result - instance where restored true angular rate will be stored. Must be 3x1.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      result - instance where restored true angular rate will be stored. Must be 3x1.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(double[] measuredAngularRate, double[] trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must have length 3.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must have length 3.
      bias - bias values expressed in radians per second (rad/s). Must be 3x1.
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      bias - bias values expressed in radians per second (rad/s). Must be 3x1.
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      bias - bias values expressed in radians per second (rad/s). Must be 3x1.
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      result - instance where restored true angular rate will be stored. Must be 3x1.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      result - instance where restored true angular rate will be stored. Must be 3x1.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33, double[] result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      sx - initial x scaling factor.
      sy - initial y scaling factor.
      sz - initial z scaling factor.
      mxy - initial x-y cross coupling error.
      mxz - initial x-z cross coupling error.
      myx - initial y-x cross coupling error.
      myz - initial y-z cross coupling error.
      mzx - initial z-x cross coupling error.
      mzy - initial z-y cross coupling error.
      g11 - element 1,1 of g-dependant cross biases.
      g21 - element 2,1 of g-dependant cross biases.
      g31 - element 3,1 of g-dependant cross biases.
      g12 - element 1,2 of g-dependant cross biases.
      g22 - element 2,2 of g-dependant cross biases.
      g32 - element 3,2 of g-dependant cross biases.
      g13 - element 1,3 of g-dependant cross biases.
      g23 - element 2,3 of g-dependant cross biases.
      g33 - element 3,3 of g-dependant cross biases.
      result - instance where restored true angular rate will be stored. Must have length 3.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fix

      public void fix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      sx - initial x scaling factor.
      sy - initial y scaling factor.
      sz - initial z scaling factor.
      mxy - initial x-y cross coupling error.
      mxz - initial x-z cross coupling error.
      myx - initial y-x cross coupling error.
      myz - initial y-z cross coupling error.
      mzx - initial z-x cross coupling error.
      mzy - initial z-y cross coupling error.
      g11 - element 1,1 of g-dependant cross biases.
      g21 - element 2,1 of g-dependant cross biases.
      g31 - element 3,1 of g-dependant cross biases.
      g12 - element 1,2 of g-dependant cross biases.
      g22 - element 2,2 of g-dependant cross biases.
      g32 - element 3,2 of g-dependant cross biases.
      g13 - element 1,3 of g-dependant cross biases.
      g23 - element 2,3 of g-dependant cross biases.
      g33 - element 3,3 of g-dependant cross biases.
      result - instance where restored true angular rate will be stored. Must be 3x1.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNew

      public AngularSpeedTriad fixAndReturnNew(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate.
      trueF - true (i.e. fixed) specific force.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • fixAndReturnNew

      public AngularSpeedTriad fixAndReturnNew(com.irurueta.units.AngularSpeed measuredAngularRateX, com.irurueta.units.AngularSpeed measuredAngularRateY, com.irurueta.units.AngularSpeed measuredAngularRateZ, com.irurueta.units.Acceleration trueFx, com.irurueta.units.Acceleration trueFy, com.irurueta.units.Acceleration trueFz) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate.
      measuredAngularRateY - y-coordinate of measured angular rate.
      measuredAngularRateZ - z-coordinate of measured angular rate.
      trueFx - x-coordinate of true (i.e. fixed) specific force.
      trueFy - y-coordinate of true (i.e. fixed) specific force.
      trueFz - z-coordinate of true (i.e. fixed) specific force.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • fixAndReturnNew

      public double[] fixAndReturnNew(double[] measuredAngularRate, double[] trueF) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must have length 3.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must have length 3.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNew

      public double[] fixAndReturnNew(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNewMatrix

      public com.irurueta.algebra.Matrix fixAndReturnNewMatrix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNew

      public double[] fixAndReturnNew(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • fixAndReturnNewMatrix

      public com.irurueta.algebra.Matrix fixAndReturnNewMatrix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate. This method uses last provided bias and cross coupling errors.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • fixAndReturnNew

      public double[] fixAndReturnNew(double[] measuredAngularRate, double[] trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must have length 3.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must have length 3.
      bias - bias values expressed in radians per second (rad/s). Must be 3x1.
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNew

      public double[] fixAndReturnNew(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      bias - bias values expressed in radians per second (rad/s). Must be 3x1.
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNewMatrix

      public com.irurueta.algebra.Matrix fixAndReturnNewMatrix(com.irurueta.algebra.Matrix measuredAngularRate, com.irurueta.algebra.Matrix trueF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRate - measured angular rate expressed in radians per second (rad/s). Must be 3x1.
      trueF - true (i.e. fixed) specific force expressed in meters per squared second (m/s^2). Must be 3x1.
      bias - bias values expressed in radians per second (rad/s). Must be 3x1.
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNew

      public double[] fixAndReturnNew(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNewMatrix

      public com.irurueta.algebra.Matrix fixAndReturnNewMatrix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix gDependantCrossBias) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      crossCouplingErrors - cross coupling errors matrix. Must be 3x3.
      gDependantCrossBias - g-dependant cross biases matrix. Must be 3x3.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
      IllegalArgumentException - if any of the provided parameters does not have proper size.
    • fixAndReturnNew

      public double[] fixAndReturnNew(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      sx - initial x scaling factor.
      sy - initial y scaling factor.
      sz - initial z scaling factor.
      mxy - initial x-y cross coupling error.
      mxz - initial x-z cross coupling error.
      myx - initial y-x cross coupling error.
      myz - initial y-z cross coupling error.
      mzx - initial z-x cross coupling error.
      mzy - initial z-y cross coupling error.
      g11 - element 1,1 of g-dependant cross biases.
      g21 - element 2,1 of g-dependant cross biases.
      g31 - element 3,1 of g-dependant cross biases.
      g12 - element 1,2 of g-dependant cross biases.
      g22 - element 2,2 of g-dependant cross biases.
      g32 - element 3,2 of g-dependant cross biases.
      g13 - element 1,3 of g-dependant cross biases.
      g23 - element 2,3 of g-dependant cross biases.
      g33 - element 3,3 of g-dependant cross biases.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • fixAndReturnNewMatrix

      public com.irurueta.algebra.Matrix fixAndReturnNewMatrix(double measuredAngularRateX, double measuredAngularRateY, double measuredAngularRateZ, double trueFx, double trueFy, double trueFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, double g11, double g21, double g31, double g12, double g22, double g32, double g13, double g23, double g33) throws com.irurueta.algebra.AlgebraException
      Fixes provided measured angular rate values by undoing the errors introduced by the gyroscope model to restore the true angular rate.
      Parameters:
      measuredAngularRateX - x-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateY - y-coordinate of measured angular rate expressed in radians per second (rad/s).
      measuredAngularRateZ - z-coordinate of measured angular rate expressed in radians per second (rad/s).
      trueFx - x-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFy - y-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      trueFz - z-coordinate of true (i.e. fixed) specific force expressed in meters per squared second (m/s^2).
      biasX - x-coordinate of bias expressed in meters per squared second (m/s^2).
      biasY - y-coordinate of bias expressed in meters per squared second (m/s^2).
      biasZ - z-coordinate of bias expressed in meters per squared second (m/s^2).
      sx - initial x scaling factor.
      sy - initial y scaling factor.
      sz - initial z scaling factor.
      mxy - initial x-y cross coupling error.
      mxz - initial x-z cross coupling error.
      myx - initial y-x cross coupling error.
      myz - initial y-z cross coupling error.
      mzx - initial z-x cross coupling error.
      mzy - initial z-y cross coupling error.
      g11 - element 1,1 of g-dependant cross biases.
      g21 - element 2,1 of g-dependant cross biases.
      g31 - element 3,1 of g-dependant cross biases.
      g12 - element 1,2 of g-dependant cross biases.
      g22 - element 2,2 of g-dependant cross biases.
      g32 - element 3,2 of g-dependant cross biases.
      g13 - element 1,3 of g-dependant cross biases.
      g23 - element 2,3 of g-dependant cross biases.
      g33 - element 3,3 of g-dependant cross biases.
      Returns:
      restored true angular rate.
      Throws:
      com.irurueta.algebra.AlgebraException - if there are numerical instabilities.
    • convertAngularSpeed

      private static double convertAngularSpeed(double value, com.irurueta.units.AngularSpeedUnit unit)
      Converts angular speed value and unit to radians per second (rad/s).
      Parameters:
      value - value to be converted.
      unit - unit of value to be converted.
      Returns:
      converted value.
    • convertAngularSpeed

      private static double convertAngularSpeed(com.irurueta.units.AngularSpeed angularSpeed)
      Converts angular speed measurement to radians per second (rad/s).
      Parameters:
      angularSpeed - angular speed to be converted.
      Returns:
      converted value.
    • convertAcceleration

      private static double convertAcceleration(double value, com.irurueta.units.AccelerationUnit unit)
      Converts acceleration value and unit to meters per squared second (m/s^2).
      Parameters:
      value - value to be converted.
      unit - unit of value to be converted.
      Returns:
      converted value.
    • convertAcceleration

      private static double convertAcceleration(com.irurueta.units.Acceleration acceleration)
      Converts acceleration measurement to meters per squared second (m/s^2).
      Parameters:
      acceleration - acceleration to be converted.
      Returns:
      converted value.