Class ExhaustiveMagnetometerIntervalDetectorThresholdFactorOptimizerTest
java.lang.Object
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.ExhaustiveMagnetometerIntervalDetectorThresholdFactorOptimizerTest
- All Implemented Interfaces:
IntervalDetectorThresholdFactorOptimizerListener<com.irurueta.navigation.inertial.BodyKinematicsAndMagneticFluxDensity,
MagnetometerIntervalDetectorThresholdFactorOptimizerDataSource>
class ExhaustiveMagnetometerIntervalDetectorThresholdFactorOptimizerTest
extends Object
implements IntervalDetectorThresholdFactorOptimizerListener<com.irurueta.navigation.inertial.BodyKinematicsAndMagneticFluxDensity,MagnetometerIntervalDetectorThresholdFactorOptimizerDataSource>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final double
private final List<com.irurueta.navigation.inertial.BodyKinematicsAndMagneticFluxDensity>
private static final double
private int
private static final Calendar
private static final long
private final com.irurueta.navigation.inertial.calibration.generators.MagnetometerMeasurementsGeneratorListener
private final List<StandardDeviationBodyMagneticFluxDensity>
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private static final double
private float
private static final double
private int
private static final Calendar
private static final long
private static final double
private static final int
private static final double
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
private static com.irurueta.navigation.frames.NEDPosition
createPosition
(com.irurueta.statistics.UniformRandomizer randomizer) private static long
createTimestamp
(com.irurueta.statistics.UniformRandomizer randomizer) private static com.irurueta.navigation.inertial.BodyMagneticFluxDensity
generateB
(double[] hardIron, com.irurueta.algebra.Matrix softIron, com.irurueta.navigation.inertial.wmm.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.Matrix
private static com.irurueta.algebra.Matrix
private static com.irurueta.navigation.frames.CoordinateTransformation
generateBodyC
(com.irurueta.statistics.UniformRandomizer randomizer) private boolean
generateBodyKinematicsAndMagneticFluxDensity
(boolean changePosition, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix mm, double accelNoiseRootPSD, double gyroNoiseRootPSD, int numMeasurements, Date timestamp, com.irurueta.navigation.frames.NEDPosition nedPosition, double magnetometerNoiseStd) private void
generateDynamicSamples
(com.irurueta.navigation.inertial.calibration.generators.MagnetometerMeasurementsGenerator generator, int numSamples, com.irurueta.navigation.inertial.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, com.irurueta.navigation.inertial.wmm.WMMEarthMagneticFluxDensityEstimator wmmEstimator, Random random, Date timestamp, com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation cnb, com.irurueta.statistics.GaussianRandomizer noiseRandomizer, boolean changePosition) private static com.irurueta.algebra.Matrix
private static double[]
generateHardIron
(com.irurueta.statistics.UniformRandomizer randomizer) private static com.irurueta.algebra.Matrix
private static com.irurueta.navigation.inertial.BodyMagneticFluxDensity
generateMeasuredMagneticFluxDensity
(com.irurueta.navigation.inertial.BodyMagneticFluxDensity input, double[] hardIron, com.irurueta.algebra.Matrix softIron) private static com.irurueta.algebra.Matrix
private static com.irurueta.algebra.Matrix
private static com.irurueta.algebra.Matrix
private void
generateStaticSamples
(com.irurueta.navigation.inertial.calibration.generators.MagnetometerMeasurementsGenerator generator, int numSamples, com.irurueta.navigation.inertial.BodyKinematics trueKinematics, IMUErrors errors, com.irurueta.algebra.Matrix hardIron, com.irurueta.algebra.Matrix mm, com.irurueta.navigation.inertial.wmm.WMMEarthMagneticFluxDensityEstimator wmmEstimator, Random random, Date timestamp, com.irurueta.navigation.frames.NEDPosition nedPosition, com.irurueta.navigation.frames.CoordinateTransformation cnb, com.irurueta.statistics.GaussianRandomizer noiseRandomizer) private static double
private static double
void
onOptimizeEnd
(IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.BodyKinematicsAndMagneticFluxDensity, MagnetometerIntervalDetectorThresholdFactorOptimizerDataSource> optimizer) void
onOptimizeProgressChange
(IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.BodyKinematicsAndMagneticFluxDensity, MagnetometerIntervalDetectorThresholdFactorOptimizerDataSource> optimizer, float progress) void
onOptimizeStart
(IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.BodyKinematicsAndMagneticFluxDensity, MagnetometerIntervalDetectorThresholdFactorOptimizerDataSource> optimizer) private void
reset()
(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
(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_METERS
private static final double MIN_HEIGHT_METERS- See Also:
-
MAX_HEIGHT_METERS
private static final double MAX_HEIGHT_METERS- 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:
-
LARGE_ABSOLUTE_ERROR
private static final double LARGE_ABSOLUTE_ERROR- See Also:
-
VERY_LARGE_ABSOLUTE_ERROR
private static final double VERY_LARGE_ABSOLUTE_ERROR- 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 -
bodyKinematicsAndMagneticFluxDensities
private final List<com.irurueta.navigation.inertial.BodyKinematicsAndMagneticFluxDensity> bodyKinematicsAndMagneticFluxDensities -
dataSource
-
generatorListener
private final com.irurueta.navigation.inertial.calibration.generators.MagnetometerMeasurementsGeneratorListener generatorListener -
generatorMeasurements
-
start
private int start -
end
private int end -
progress
private float progress
-
-
Constructor Details
-
ExhaustiveMagnetometerIntervalDetectorThresholdFactorOptimizerTest
ExhaustiveMagnetometerIntervalDetectorThresholdFactorOptimizerTest()
-
-
Method Details
-
testConstructor1
@Test void testConstructor1() -
testConstructor2
@Test void testConstructor2() -
testConstructor3
@Test void testConstructor3() -
testConstructor4
@Test void testConstructor4() -
testGetSetThresholdFactorStep
@Test void testGetSetThresholdFactorStep() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetCalibrator
@Test void testGetSetCalibrator() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetQualityScoreMapper
@Test void testGetSetQualityScoreMapper() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetThresholdFactorRange
@Test void testGetSetThresholdFactorRange() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetDataSource
@Test void testGetSetDataSource() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testIsReady
@Test void testIsReady() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetTimeInterval
@Test void testGetSetTimeInterval() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetTimeIntervalAsTime
@Test void testGetSetTimeIntervalAsTime() 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
-
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
-
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
-
testGetSetListener
@Test void testGetSetListener() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testGetSetProgressDelta
@Test void testGetSetProgressDelta() throws com.irurueta.navigation.LockedException- Throws:
com.irurueta.navigation.LockedException
-
testOptimizeGeneralWithNoise
@Test void testOptimizeGeneralWithNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, CalibrationException, IOException- Throws:
com.irurueta.algebra.WrongSizeException
com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
com.irurueta.navigation.LockedException
com.irurueta.navigation.NotReadyException
IntervalDetectorThresholdFactorOptimizerException
CalibrationException
IOException
-
testOptimizeCommonAxisSmallNoiseOnlyRotation
@Test void testOptimizeCommonAxisSmallNoiseOnlyRotation() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, CalibrationException, IOException- Throws:
com.irurueta.algebra.WrongSizeException
com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
com.irurueta.navigation.LockedException
com.irurueta.navigation.NotReadyException
IntervalDetectorThresholdFactorOptimizerException
CalibrationException
IOException
-
testOptimizeCommonAxisSmallNoiseWithRotationAndPositionChange
@Test void testOptimizeCommonAxisSmallNoiseWithRotationAndPositionChange() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, CalibrationException, IOException- Throws:
com.irurueta.algebra.WrongSizeException
com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
com.irurueta.navigation.LockedException
com.irurueta.navigation.NotReadyException
IntervalDetectorThresholdFactorOptimizerException
CalibrationException
IOException
-
testOptimizeRobustCalibrator
@Test void testOptimizeRobustCalibrator() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, CalibrationException, IOException- Throws:
com.irurueta.algebra.WrongSizeException
com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
com.irurueta.navigation.LockedException
com.irurueta.navigation.NotReadyException
IntervalDetectorThresholdFactorOptimizerException
CalibrationException
IOException
-
reset
private void reset() -
generateBodyC
private static com.irurueta.navigation.frames.CoordinateTransformation generateBodyC(com.irurueta.statistics.UniformRandomizer randomizer) -
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() -
createPosition
private static com.irurueta.navigation.frames.NEDPosition createPosition(com.irurueta.statistics.UniformRandomizer randomizer) -
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
-
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()
-