Class AccelerationFixer
java.lang.Object
com.irurueta.navigation.inertial.calibration.AccelerationFixer
Fixes acceleration values taking into account provided bias and cross coupling errors.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate com.irurueta.algebra.MatrixBias matrix to be reused.private com.irurueta.algebra.MatrixCross coupling errors matrix to be reused.private com.irurueta.algebra.MatrixTemporary matrix to be reused.private com.irurueta.algebra.MatrixIdentity matrix to be reused.private final double[]Measured specific force array to be reused.private final double[]Array containing result values to be reused.private com.irurueta.algebra.MatrixTemporary matrix to be reused.private com.irurueta.algebra.MatrixTemporary matrix to be reused.private com.irurueta.algebra.MatrixTemporary matrix to be reused. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static doubleconvertAcceleration(double value, com.irurueta.units.AccelerationUnit unit) Converts acceleration value and unit to meters per squared second (m/s^2).private static doubleconvertAcceleration(com.irurueta.units.Acceleration acceleration) Converts acceleration measurement to meters per squared second (m/s^2).voidfix(double[] measuredF, double[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(double[] measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, double[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(double measuredFx, double measuredFy, double measuredFz, double[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(double measuredFx, double measuredFy, double measuredFz, 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[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, com.irurueta.algebra.Matrix result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, double[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(double measuredFx, double measuredFy, double measuredFz, com.irurueta.algebra.Matrix result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(com.irurueta.algebra.Matrix measuredF, double[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(com.irurueta.algebra.Matrix measuredF, com.irurueta.algebra.Matrix result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(com.irurueta.algebra.Matrix measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, double[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(com.irurueta.algebra.Matrix measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(AccelerationTriad measuredF, double[] result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(AccelerationTriad measuredF, com.irurueta.algebra.Matrix result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(AccelerationTriad measuredF, AccelerationTriad result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.voidfix(com.irurueta.units.Acceleration measuredFx, com.irurueta.units.Acceleration measuredFy, com.irurueta.units.Acceleration measuredFz, AccelerationTriad result) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.double[]fixAndReturnNew(double[] measuredF) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.double[]fixAndReturnNew(double[] measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.double[]fixAndReturnNew(double measuredFx, double measuredFy, double measuredFz) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.double[]fixAndReturnNew(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.double[]fixAndReturnNew(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.double[]fixAndReturnNew(com.irurueta.algebra.Matrix measuredF) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.double[]fixAndReturnNew(com.irurueta.algebra.Matrix measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.fixAndReturnNew(AccelerationTriad measuredF) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.fixAndReturnNew(com.irurueta.units.Acceleration measuredFx, com.irurueta.units.Acceleration measuredFy, com.irurueta.units.Acceleration measuredFz) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.com.irurueta.algebra.MatrixfixAndReturnNewMatrix(double measuredFx, double measuredFy, double measuredFz) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.com.irurueta.algebra.MatrixfixAndReturnNewMatrix(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.com.irurueta.algebra.MatrixfixAndReturnNewMatrix(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.com.irurueta.algebra.MatrixfixAndReturnNewMatrix(com.irurueta.algebra.Matrix measuredF) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.com.irurueta.algebra.MatrixfixAndReturnNewMatrix(com.irurueta.algebra.Matrix measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors) Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.com.irurueta.algebra.MatrixgetBias()Gets bias values expressed in meters per squared second (m/s^2).voidgetBias(com.irurueta.algebra.Matrix result) Gets bias values expressed in meters per squared second (m/s^2).double[]Gets bias values expressed in meters per squared second (m/s^2).voidgetBiasArray(double[] result) Gets bias values expressed in meters per squared second (m/s^2).Gets acceleration bias.voidgetBiasAsTriad(AccelerationTriad result) Gets acceleration bias.doublegetBiasX()Gets x-coordinate of bias expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets x-coordinate of bias.voidgetBiasXAsAcceleration(com.irurueta.units.Acceleration result) Gets x-coordinate of bias.doublegetBiasY()Gets y-coordinate of bias expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets y-coordinate of bias.voidgetBiasYAsAcceleration(com.irurueta.units.Acceleration result) Gets y-coordinate of bias.doublegetBiasZ()Gets z-coordinate of bias expressed in meters per squared second (m/s^2).com.irurueta.units.AccelerationGets z-coordinate of bias.voidgetBiasZAsAcceleration(com.irurueta.units.Acceleration result) Gets z-coordinate of bias.com.irurueta.algebra.MatrixGets cross coupling errors matrix.voidgetCrossCouplingErrors(com.irurueta.algebra.Matrix result) Gets cross coupling errors matrix.doublegetMxy()Gets x-y cross coupling error.doublegetMxz()Gets x-z cross coupling error.doublegetMyx()Gets y-x cross coupling error.doublegetMyz()Gets y-z cross coupling error.doublegetMzx()Gets z-x cross coupling error.doublegetMzy()Gets z-y cross coupling error.doublegetSx()Gets x scaling factor.doublegetSy()Gets y scaling factor.doublegetSz()Gets z scaling factor.voidsetBias(double[] bias) Sets bias values expressed in meters per squared second (m/s^2).voidsetBias(double biasX, double biasY, double biasZ) Sets coordinates of bias expressed in meters per squared second (m/s^2).voidsetBias(com.irurueta.algebra.Matrix bias) Sets bias values expressed in meters per squared second (m/s^2).voidsetBias(AccelerationTriad bias) Sets acceleration bias.voidsetBias(com.irurueta.units.Acceleration biasX, com.irurueta.units.Acceleration biasY, com.irurueta.units.Acceleration biasZ) Sets coordinates of bias.voidsetBiasX(double biasX) Sets x-coordinate of bias expressed in meters per squared second (m/s^2).voidsetBiasX(com.irurueta.units.Acceleration biasX) Sets x-coordinate of bias.voidsetBiasY(double biasY) Sets y-coordinate of bias expressed in meters per squared second (m/s^2).voidsetBiasY(com.irurueta.units.Acceleration biasY) Sets y-coordinate of bias.voidsetBiasZ(double biasZ) Sets z-coordinate of bias expressed in meters per squared second (m/s^2).voidsetBiasZ(com.irurueta.units.Acceleration biasZ) Sets z-coordinate of bias.voidsetCrossCouplingErrors(double mxy, double mxz, double myx, double myz, double mzx, double mzy) Sets cross coupling errors.voidsetCrossCouplingErrors(com.irurueta.algebra.Matrix crossCouplingErrors) Sets cross coupling errors matrix.voidsetMxy(double mxy) Sets x-y cross coupling error.voidsetMxz(double mxz) Sets x-z cross coupling error.voidsetMyx(double myx) Sets y-x cross coupling error.voidsetMyz(double myz) Sets y-z cross coupling error.voidsetMzx(double mzx) Sets z-x cross coupling error.voidsetMzy(double mzy) Sets z-y cross coupling error.voidsetScalingFactors(double sx, double sy, double sz) Sets scaling factors.voidsetScalingFactorsAndCrossCouplingErrors(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.voidsetSx(double sx) Sets x scaling factorvoidsetSy(double sy) Sets y scaling factor.voidsetSz(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. -
diff
private com.irurueta.algebra.Matrix diffTemporary matrix to be reused. -
tmp3
private com.irurueta.algebra.Matrix tmp3Temporary matrix to be reused. -
measuredF
private final double[] measuredFMeasured specific force array 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.
-
-
Constructor Details
-
AccelerationFixer
public AccelerationFixer()Constructor.
-
-
Method Details
-
getBias
public com.irurueta.algebra.Matrix getBias()Gets bias values expressed in meters per squared second (m/s^2).- Returns:
- bias values expressed in meters per squared second.
-
getBias
public void getBias(com.irurueta.algebra.Matrix result) Gets bias values expressed in meters per squared second (m/s^2).- Parameters:
result- instance where result will be stored.
-
setBias
public void setBias(com.irurueta.algebra.Matrix bias) Sets bias values expressed in meters per squared second (m/s^2).- Parameters:
bias- bias values expressed in meters per squared second. Must be 3x1.- Throws:
IllegalArgumentException- if provided matrix is not 3x1.
-
getBiasArray
public double[] getBiasArray()Gets bias values expressed in meters per squared second (m/s^2).- Returns:
- bias values expressed in meters per squared second.
-
getBiasArray
public void getBiasArray(double[] result) Gets bias values expressed in meters per squared second (m/s^2).- 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 meters per squared second (m/s^2).- Parameters:
bias- bias values expressed in meters per squared second (m/s^2). Must have length 3.- Throws:
IllegalArgumentException- if provided array does not have length 3.
-
getBiasAsTriad
Gets acceleration bias.- Returns:
- acceleration bias.
-
getBiasX
public double getBiasX()Gets x-coordinate of bias expressed in meters per squared second (m/s^2).- Returns:
- x-coordinate of bias expressed in meters per squared second (m/s^2).
-
setBiasX
public void setBiasX(double biasX) Sets x-coordinate of bias expressed in meters per squared second (m/s^2).- Parameters:
biasX- x-coordinate of bias expressed in meters per squared second (m/s^2).
-
getBiasY
public double getBiasY()Gets y-coordinate of bias expressed in meters per squared second (m/s^2).- Returns:
- y-coordinate of bias expressed in meters per squared second (m/s^2).
-
setBiasY
public void setBiasY(double biasY) Sets y-coordinate of bias expressed in meters per squared second (m/s^2).- Parameters:
biasY- y-coordinate of bias expressed in meters per squared second (m/s^2).
-
getBiasZ
public double getBiasZ()Gets z-coordinate of bias expressed in meters per squared second (m/s^2).- Returns:
- z-coordinate of bias expressed in meters per squared second (m/s^2).
-
setBiasZ
public void setBiasZ(double biasZ) Sets z-coordinate of bias expressed in meters per squared second (m/s^2).- Parameters:
biasZ- z-coordinate of bias expressed in meters per squared second (m/s^2).
-
setBias
public void setBias(double biasX, double biasY, double biasZ) Sets coordinates of bias expressed in meters per squared second (m/s^2).- Parameters:
biasX- x-coordinate of bias.biasY- y-coordinate of bias.biasZ- z-coordinate of bias.
-
getBiasXAsAcceleration
public com.irurueta.units.Acceleration getBiasXAsAcceleration()Gets x-coordinate of bias.- Returns:
- x-coordinate of bias.
-
getBiasXAsAcceleration
public void getBiasXAsAcceleration(com.irurueta.units.Acceleration result) Gets x-coordinate of bias.- Parameters:
result- instance where result will be stored.
-
setBiasX
public void setBiasX(com.irurueta.units.Acceleration biasX) Sets x-coordinate of bias.- Parameters:
biasX- x-coordinate of bias.
-
getBiasYAsAcceleration
public com.irurueta.units.Acceleration getBiasYAsAcceleration()Gets y-coordinate of bias.- Returns:
- y-coordinate of bias.
-
getBiasYAsAcceleration
public void getBiasYAsAcceleration(com.irurueta.units.Acceleration result) Gets y-coordinate of bias.- Parameters:
result- instance where result will be stored.
-
setBiasY
public void setBiasY(com.irurueta.units.Acceleration biasY) Sets y-coordinate of bias.- Parameters:
biasY- y-coordinate of bias.
-
getBiasZAsAcceleration
public com.irurueta.units.Acceleration getBiasZAsAcceleration()Gets z-coordinate of bias.- Returns:
- z-coordinate of bias.
-
getBiasZAsAcceleration
public void getBiasZAsAcceleration(com.irurueta.units.Acceleration result) Gets z-coordinate of bias.- Parameters:
result- instance where result will be stored.
-
setBiasZ
public void setBiasZ(com.irurueta.units.Acceleration biasZ) Sets z-coordinate of bias.- Parameters:
biasZ- z-coordinate of bias.
-
setBias
public void setBias(com.irurueta.units.Acceleration biasX, com.irurueta.units.Acceleration biasY, com.irurueta.units.Acceleration 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.
-
fix
public void fix(double[] measuredF, double[] result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must have length 3.result- instance where restored true specific force 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 measuredF, double[] result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must be 3x1.result- instance where restored true specific force 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 measuredF, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must be 3x1.result- instance where restored true specific force 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 measuredFx, double measuredFy, double measuredFz, double[] result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured specific force expressed in meters per squared second (m/s^2).result- instance where restored true specific force will be stored. Must have length 3.- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.IllegalArgumentException- if provided result array does not have length 3.
-
fix
public void fix(double measuredFx, double measuredFy, double measuredFz, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured specific force expressed in meters per squared second (m/s^2).result- instance where restored true specific force will be stored. Must be 3x1.- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.IllegalArgumentException- if provided result matrix is not 3x1.
-
fix
public void fix(double[] measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, double[] result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must have length 3.bias- bias values expressed in meters per squared second (m/s^2). Must be 3x1.crossCouplingErrors- cross coupling errors matrix. Must be 3x3.result- instance where restored true specific force 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 measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, double[] result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must be 3x1.bias- bias values expressed in meters per squared second (m/s^2). Must be 3x1.crossCouplingErrors- cross coupling errors matrix. Must be 3x3.result- instance where restored true specific force 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 measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must have length 3.bias- bias values expressed in meters per squared second (m/s^2). Must be 3x1.crossCouplingErrors- cross coupling errors matrix. Must be 3x3.result- instance where restored true specific force 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 measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, double[] result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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.result- instance where restored true specific force 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 measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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.result- instance where restored true specific force 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 measuredFx, double measuredFy, double measuredFz, 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[] result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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- 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.result- instance where restored true specific force will be stored. Must have length 3.- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.IllegalArgumentException- if result does not have length 3.
-
fix
public void fix(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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- 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.result- instance where restored true specific force will be stored. Must have be 3x1.- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.IllegalArgumentException- if result is not 3x1.
-
fixAndReturnNew
public AccelerationTriad fixAndReturnNew(com.irurueta.units.Acceleration measuredFx, com.irurueta.units.Acceleration measuredFy, com.irurueta.units.Acceleration measuredFz) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredFx- x-coordinate of measured specific force.measuredFy- y-coordinate of measured specific force.measuredFz- z-coordinate of measured specific force.- Returns:
- restored true specific force.
- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.
-
fixAndReturnNew
public double[] fixAndReturnNew(double[] measuredF) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must have length 3.- Returns:
- restored true specific force.
- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.IllegalArgumentException- if provided array does not have length 3.
-
fixAndReturnNew
public double[] fixAndReturnNew(com.irurueta.algebra.Matrix measuredF) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must be 3x1.- Returns:
- restored true specific force.
- 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 measuredF) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must be 3x1.- Returns:
- restored true specific force.
- 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 measuredFx, double measuredFy, double measuredFz) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured specific force expressed in meters per squared second (m/s^2).- Returns:
- restored true specific force.
- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.
-
fixAndReturnNewMatrix
public com.irurueta.algebra.Matrix fixAndReturnNewMatrix(double measuredFx, double measuredFy, double measuredFz) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force. This method uses last provided bias and cross coupling errors.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured specific force expressed in meters per squared second (m/s^2).- Returns:
- restored true specific force.
- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.
-
fixAndReturnNew
public double[] fixAndReturnNew(double[] measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must have length 3.bias- bias values expressed in meters per squared second (m/s^2). Must be 3x1.crossCouplingErrors- cross coupling errors matrix. Must be 3x3.- Returns:
- restored true specific force expressed in meters per squared second (m/s^2).
- 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 measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must be 3x1.bias- bias values expressed in meters per squared second (m/s^2). Must be 3x1.crossCouplingErrors- cross coupling errors matrix. Must be 3x3.- Returns:
- restored true specific force expressed in meters per squared second (m/s^2).
- 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 measuredF, com.irurueta.algebra.Matrix bias, com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredF- measured specific force expressed in meters per squared second (m/s^2). Must have length 3.bias- bias values expressed in meters per squared second (m/s^2). Must be 3x1.crossCouplingErrors- cross coupling errors matrix. Must be 3x3.- Returns:
- restored true specific force expressed in meters per squared second (m/s^2).
- 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 measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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.- Returns:
- restored true specific force expressed in meters per squared second (m/s^2).
- 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 measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, com.irurueta.algebra.Matrix crossCouplingErrors) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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.- Returns:
- restored true specific force expressed in meters per squared second (m/s^2).
- 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 measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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- 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.- Returns:
- restored true specific force expressed in meters per squared second (m/s^2).
- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.
-
fixAndReturnNewMatrix
public com.irurueta.algebra.Matrix fixAndReturnNewMatrix(double measuredFx, double measuredFy, double measuredFz, double biasX, double biasY, double biasZ, double sx, double sy, double sz, double mxy, double mxz, double myx, double myz, double mzx, double mzy) throws com.irurueta.algebra.AlgebraException Fixes provided measured specific force values by undoing the errors introduced by the accelerometer model to restore the true specific force.- Parameters:
measuredFx- x-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFy- y-coordinate of measured specific force expressed in meters per squared second (m/s^2).measuredFz- z-coordinate of measured 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- 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.- Returns:
- restored true specific force expressed in meters per squared second (m/s^2).
- Throws:
com.irurueta.algebra.AlgebraException- if there are numerical instabilities.
-
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.
-