Class AccelerometerGyroscopeAndMagnetometerMeasurementsGeneratorTest
java.lang.Object
com.irurueta.navigation.inertial.calibration.generators.AccelerometerGyroscopeAndMagnetometerMeasurementsGeneratorTest
- All Implemented Interfaces:
AccelerometerGyroscopeAndMagnetometerMeasurementsGeneratorListener
class AccelerometerGyroscopeAndMagnetometerMeasurementsGeneratorTest
extends Object
implements AccelerometerGyroscopeAndMagnetometerMeasurementsGeneratorListener
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleprivate final List<StandardDeviationBodyKinematics> private static final doubleprivate intprivate intprivate static final Calendarprivate static final longprivate intprivate intprivate intprivate intprivate final List<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>> private intprivate intprivate static final doubleprivate static final doubleprivate final List<StandardDeviationBodyMagneticFluxDensity> private static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate static final doubleprivate intprivate static final doubleprivate static final doubleprivate static final doubleprivate static final Calendarprivate static final longprivate intprivate intprivate static final doubleprivate static final intprivate static final double -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidprivate static longcreateTimestamp(com.irurueta.statistics.UniformRandomizer randomizer) private static BodyMagneticFluxDensitygenerateB(double[] hardIron, com.irurueta.algebra.Matrix softIron, WMMEarthMagneticFluxDensityEstimator wmmEstimator, com.irurueta.statistics.GaussianRandomizer noiseRandomizer, Date timestamp, com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation cnb) private static com.irurueta.algebra.Matrixprivate static com.irurueta.algebra.Matrixprivate static BodyKinematicsSequence<StandardDeviationTimedBodyKinematics> generateDynamicSamples(AccelerometerGyroscopeAndMagnetometerMeasurementsGenerator generator, int numSamples, BodyKinematics trueKinematics, com.irurueta.statistics.UniformRandomizer randomizer, com.irurueta.navigation.frames.ECEFFrame ecefFrame, com.irurueta.navigation.frames.NEDFrame nedFrame, IMUErrors errors, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix mm, WMMEarthMagneticFluxDensityEstimator wmmEstimator, Date timestamp, com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation cnb, com.irurueta.statistics.GaussianRandomizer noiseRandomizer, int startSample, boolean changePosition) private static com.irurueta.algebra.Matrixprivate static double[]generateHardIron(com.irurueta.statistics.UniformRandomizer randomizer) private static com.irurueta.algebra.Matrixprivate static com.irurueta.algebra.Matrixprivate static BodyMagneticFluxDensitygenerateMeasuredMagneticFluxDensity(BodyMagneticFluxDensity input, double[] hardIron, com.irurueta.algebra.Matrix softIron) private static com.irurueta.algebra.Matrixprivate static com.irurueta.algebra.Matrixprivate static com.irurueta.algebra.Matrixprivate static voidgenerateStaticSamples(AccelerometerGyroscopeAndMagnetometerMeasurementsGenerator generator, int numSamples, BodyKinematics trueKinematics, IMUErrors errors, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix mm, WMMEarthMagneticFluxDensityEstimator wmmEstimator, Date timestamp, com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation cnb, com.irurueta.statistics.GaussianRandomizer noiseRandomizer, int startSample) private static doubleprivate static doubleprivate static doubleinterpolate(double value, double progress) voidvoidvoidonError(AccelerometerGyroscopeAndMagnetometerMeasurementsGenerator generator, TriadStaticIntervalDetector.ErrorReason reason) voidonGeneratedAccelerometerMeasurement(AccelerometerGyroscopeAndMagnetometerMeasurementsGenerator generator, StandardDeviationBodyKinematics measurement) voidonGeneratedGyroscopeMeasurement(AccelerometerGyroscopeAndMagnetometerMeasurementsGenerator generator, BodyKinematicsSequence<StandardDeviationTimedBodyKinematics> measurement) voidonGeneratedMagnetometerMeasurement(AccelerometerGyroscopeAndMagnetometerMeasurementsGenerator generator, StandardDeviationBodyMagneticFluxDensity measurement) voidonInitializationCompleted(AccelerometerGyroscopeAndMagnetometerMeasurementsGenerator generator, double accelerometerBaseNoiseLevel) voidvoidvoidvoidprivate voidreset()(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void(package private) void
-
Field Details
-
TIME_INTERVAL_SECONDS
private static final double TIME_INTERVAL_SECONDS- See Also:
-
MICRO_G_TO_METERS_PER_SECOND_SQUARED
private static final double MICRO_G_TO_METERS_PER_SECOND_SQUARED- See Also:
-
DEG_TO_RAD
private static final double DEG_TO_RAD- See Also:
-
MIN_HARD_IRON
private static final double MIN_HARD_IRON- See Also:
-
MAX_HARD_IRON
private static final double MAX_HARD_IRON- See Also:
-
MIN_SOFT_IRON
private static final double MIN_SOFT_IRON- See Also:
-
MAX_SOFT_IRON
private static final double MAX_SOFT_IRON- See Also:
-
MIN_ANGLE_DEGREES
private static final double MIN_ANGLE_DEGREES- See Also:
-
MAX_ANGLE_DEGREES
private static final double MAX_ANGLE_DEGREES- See Also:
-
MIN_LATITUDE_DEGREES
private static final double MIN_LATITUDE_DEGREES- See Also:
-
MAX_LATITUDE_DEGREES
private static final double MAX_LATITUDE_DEGREES- See Also:
-
MIN_LONGITUDE_DEGREES
private static final double MIN_LONGITUDE_DEGREES- See Also:
-
MAX_LONGITUDE_DEGREES
private static final double MAX_LONGITUDE_DEGREES- See Also:
-
MIN_HEIGHT
private static final double MIN_HEIGHT- See Also:
-
MAX_HEIGHT
private static final double MAX_HEIGHT- See Also:
-
SMALL_MAGNETOMETER_NOISE_STD
private static final double SMALL_MAGNETOMETER_NOISE_STD- See Also:
-
MAGNETOMETER_NOISE_STD
private static final double MAGNETOMETER_NOISE_STD- See Also:
-
MIN_DELTA_POS_METERS
private static final double MIN_DELTA_POS_METERS- See Also:
-
MAX_DELTA_POS_METERS
private static final double MAX_DELTA_POS_METERS- See Also:
-
MIN_DELTA_ANGLE_DEGREES
private static final double MIN_DELTA_ANGLE_DEGREES- See Also:
-
MAX_DELTA_ANGLE_DEGREES
private static final double MAX_DELTA_ANGLE_DEGREES- See Also:
-
TIMES
private static final int TIMES- See Also:
-
ABSOLUTE_ERROR
private static final double ABSOLUTE_ERROR- See Also:
-
VERY_LARGE_ABSOLUTE_ERROR
private static final double VERY_LARGE_ABSOLUTE_ERROR- See Also:
-
LARGE_ABSOLUTE_ERROR
private static final double LARGE_ABSOLUTE_ERROR- See Also:
-
SMALL_ABSOLUTE_ERROR
private static final double SMALL_ABSOLUTE_ERROR- See Also:
-
SMALL_ROOT_PSD
private static final double SMALL_ROOT_PSD- See Also:
-
START_CALENDAR
-
END_CALENDAR
-
START_TIMESTAMP_MILLIS
private static final long START_TIMESTAMP_MILLIS -
END_TIMESTAMP_MILLIS
private static final long END_TIMESTAMP_MILLIS -
initializationStarted
private int initializationStarted -
initializationCompleted
private int initializationCompleted -
error
private int error -
staticIntervalDetected
private int staticIntervalDetected -
dynamicIntervalDetected
private int dynamicIntervalDetected -
staticIntervalSkipped
private int staticIntervalSkipped -
dynamicIntervalSkipped
private int dynamicIntervalSkipped -
generatedAccelerometerMeasurement
private int generatedAccelerometerMeasurement -
generatedGyroscopeMeasurement
private int generatedGyroscopeMeasurement -
generatedMagnetometerMeasurement
private int generatedMagnetometerMeasurement -
reset
private int reset -
gyroscopeMeasurements
private final List<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>> gyroscopeMeasurements -
accelerometerMeasurements
-
magnetometerMeasurements
-
-
Constructor Details
-
AccelerometerGyroscopeAndMagnetometerMeasurementsGeneratorTest
AccelerometerGyroscopeAndMagnetometerMeasurementsGeneratorTest()
-
-
Method Details
-
testConstructor1
@Test void testConstructor1() -
testConstructor2
@Test void testConstructor2() -
testGetSetTimeInterval1
@Test void testGetSetTimeInterval1() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetTimeInterval2
@Test void testGetSetTimeInterval2() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetMinStaticSamples
@Test void testGetSetMinStaticSamples() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetMaxDynamicSamples
@Test void testGetSetMaxDynamicSamples() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetListener
@Test void testGetSetListener() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetWindowSize
@Test void testGetSetWindowSize() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetInitialStaticSamples
@Test void testGetSetInitialStaticSamples() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetThresholdFactor
@Test void testGetSetThresholdFactor() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetInstantaneousNoiseLevelFactor
@Test void testGetSetInstantaneousNoiseLevelFactor() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetBaseNoiseLevelAbsoluteThreshold
@Test void testGetSetBaseNoiseLevelAbsoluteThreshold() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetBaseNoiseLevelAbsoluteThresholdAsMeasurement
@Test void testGetSetBaseNoiseLevelAbsoluteThresholdAsMeasurement() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testProcessCalibrateAndResetWithNoiseMaCommonAxisAndNoGDependentCrossBiases
@Test void testProcessCalibrateAndResetWithNoiseMaCommonAxisAndNoGDependentCrossBiases() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, com.irurueta.geometry.InvalidRotationMatrixException, IOException, com.irurueta.geometry.RotationException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptioncom.irurueta.navigation.NotReadyExceptioncom.irurueta.geometry.InvalidRotationMatrixExceptionIOExceptioncom.irurueta.geometry.RotationException
-
testProcessCalibrateAndResetSmallNoiseMaGeneralAndNoGDependentCrossBiases
@Test void testProcessCalibrateAndResetSmallNoiseMaGeneralAndNoGDependentCrossBiases() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, com.irurueta.geometry.InvalidRotationMatrixException, IOException, com.irurueta.geometry.RotationException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptioncom.irurueta.navigation.NotReadyExceptioncom.irurueta.geometry.InvalidRotationMatrixExceptionIOExceptioncom.irurueta.geometry.RotationException
-
testProcessCalibrateAndResetSmallNoiseMaCommonAxisAndNoGDependentCrossBiases
@Test void testProcessCalibrateAndResetSmallNoiseMaCommonAxisAndNoGDependentCrossBiases() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, com.irurueta.geometry.InvalidRotationMatrixException, IOException, com.irurueta.geometry.RotationException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptioncom.irurueta.navigation.NotReadyExceptioncom.irurueta.geometry.InvalidRotationMatrixExceptionIOExceptioncom.irurueta.geometry.RotationException
-
testProcessCalibrateAndResetSmallNoiseMaGeneralAndWithGDependentCrossBiases
@Test void testProcessCalibrateAndResetSmallNoiseMaGeneralAndWithGDependentCrossBiases() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, com.irurueta.geometry.InvalidRotationMatrixException, IOException, com.irurueta.geometry.RotationException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptioncom.irurueta.navigation.NotReadyExceptioncom.irurueta.geometry.InvalidRotationMatrixExceptionIOExceptioncom.irurueta.geometry.RotationException
-
testProcessSkipStaticInterval
@Test void testProcessSkipStaticInterval() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.geometry.InvalidRotationMatrixException, IOException, com.irurueta.geometry.RotationException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptioncom.irurueta.geometry.InvalidRotationMatrixExceptionIOExceptioncom.irurueta.geometry.RotationException
-
testProcessSkipDynamicInterval
@Test void testProcessSkipDynamicInterval() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.geometry.InvalidRotationMatrixException, IOException, com.irurueta.geometry.RotationException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptioncom.irurueta.geometry.InvalidRotationMatrixExceptionIOExceptioncom.irurueta.geometry.RotationException
-
testProcessErrorWithExcessiveOverallNoise
@Test void testProcessErrorWithExcessiveOverallNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, IOException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptionIOException
-
testProcessCalibrateAndResetSmallNoiseWithRotationAndPositionChangeMaCommonAxisAndNoGDependentCrossBiases
@Test void testProcessCalibrateAndResetSmallNoiseWithRotationAndPositionChangeMaCommonAxisAndNoGDependentCrossBiases() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, com.irurueta.geometry.InvalidRotationMatrixException, IOException, com.irurueta.geometry.RotationException- Throws:
com.irurueta.algebra.WrongSizeExceptioncom.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeExceptioncom.irurueta.navigation.LockedExceptioncom.irurueta.navigation.NotReadyExceptioncom.irurueta.geometry.InvalidRotationMatrixExceptionIOExceptioncom.irurueta.geometry.RotationException
-
reset
private void reset() -
generateHardIron
private static double[] generateHardIron(com.irurueta.statistics.UniformRandomizer randomizer) -
generateSoftIronCommonAxis
private static com.irurueta.algebra.Matrix generateSoftIronCommonAxis() -
generateSoftIronGeneral
private static com.irurueta.algebra.Matrix generateSoftIronGeneral() -
createTimestamp
private static long createTimestamp(com.irurueta.statistics.UniformRandomizer randomizer) -
generateBa
private static com.irurueta.algebra.Matrix generateBa() -
generateBg
private static com.irurueta.algebra.Matrix generateBg() -
generateMaCommonAxis
private static com.irurueta.algebra.Matrix generateMaCommonAxis() throws com.irurueta.algebra.WrongSizeException- Throws:
com.irurueta.algebra.WrongSizeException
-
generateMaGeneral
private static com.irurueta.algebra.Matrix generateMaGeneral() throws com.irurueta.algebra.WrongSizeException- Throws:
com.irurueta.algebra.WrongSizeException
-
generateMg
private static com.irurueta.algebra.Matrix generateMg() throws com.irurueta.algebra.WrongSizeException- Throws:
com.irurueta.algebra.WrongSizeException
-
generateGg
private static com.irurueta.algebra.Matrix generateGg() throws com.irurueta.algebra.WrongSizeException- Throws:
com.irurueta.algebra.WrongSizeException
-
getAccelNoiseRootPSD
private static double getAccelNoiseRootPSD() -
getGyroNoiseRootPSD
private static double getGyroNoiseRootPSD() -
interpolate
private static double interpolate(double value, double progress)
-