Class AngularRateFixer
java.lang.Object
com.irurueta.navigation.inertial.calibration.AngularRateFixer
Fixes angular rate values taking into
account provided bias, cross coupling errors and G-dependant errors.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate 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 -
Method Summary
Modifier and TypeMethodDescriptionprivate 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.fixAndReturnNew
(AngularSpeedTriad measuredAngularRate, AccelerationTriad trueF) 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
getBias()
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
getBiasAsTriad
(AngularSpeedTriad result) Gets angular speed bias.double
getBiasX()
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
getBiasY()
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
getBiasZ()
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
getMxy()
Gets x-y cross coupling error.double
getMxz()
Gets x-z cross coupling error.double
getMyx()
Gets y-x cross coupling error.double
getMyz()
Gets y-z cross coupling error.double
getMzx()
Gets z-x cross coupling error.double
getMzy()
Gets z-y cross coupling error.double
getSx()
Gets x scaling factor.double
getSy()
Gets y scaling factor.double
getSz()
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
setBias
(AngularSpeedTriad bias) 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 factorvoid
setSy
(double sy) Sets y scaling factor.void
setSz
(double sz) Sets z scaling factor.
-
Field Details
-
identity
private com.irurueta.algebra.Matrix identityIdentity matrix to be reused. -
tmp1
private com.irurueta.algebra.Matrix tmp1Temporary matrix to be reused. -
tmp2
private com.irurueta.algebra.Matrix tmp2Temporary matrix to be reused. -
tmp3
private com.irurueta.algebra.Matrix tmp3Temporary matrix to be reused. -
tmp4
private com.irurueta.algebra.Matrix tmp4Temporary matrix to be reused. -
diff
private com.irurueta.algebra.Matrix diffTemporary matrix to be reused. -
tmp5
private com.irurueta.algebra.Matrix tmp5Temporary matrix to be reused. -
measuredAngularRate
private final double[] measuredAngularRateMeasured angular rate to be reused. -
trueF
private final double[] trueFTrue specific force to be reused. -
res
private final double[] resArray containing result values to be reused. -
bias
private com.irurueta.algebra.Matrix biasBias matrix to be reused. -
crossCouplingErrors
private com.irurueta.algebra.Matrix crossCouplingErrorsCross coupling errors matrix to be reused. -
gDependantCrossBias
private com.irurueta.algebra.Matrix gDependantCrossBiasG-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
Gets angular speed bias.- Returns:
- angular speed bias.
-
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(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(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.
-