Class ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerTest

java.lang.Object
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerTest
All Implemented Interfaces:
IntervalDetectorThresholdFactorOptimizerListener<TimedBodyKinematics,AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource>

class ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerTest extends Object implements IntervalDetectorThresholdFactorOptimizerListener<TimedBodyKinematics,AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource>
  • Field Details

  • Constructor Details

    • ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerTest

      ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerTest()
  • 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
    • testGetSetAccelerometerCalibrator

      @Test void testGetSetAccelerometerCalibrator() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetGyroscopeCalibrator

      @Test void testGetSetGyroscopeCalibrator() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetAccelerometerQualityScoreMapper

      @Test void testGetSetAccelerometerQualityScoreMapper() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetGyroscopeQualityScoreMapper

      @Test void testGetSetGyroscopeQualityScoreMapper() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetMseRule

      @Test void testGetSetMseRule() 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
    • testOptimizeMaCommonAxisWithNoise

      @Test void testOptimizeMaCommonAxisWithNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      IntervalDetectorThresholdFactorOptimizerException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testOptimizeGeneralNoGDependentCrossBiasesWithSmallNoise

      @Test void testOptimizeGeneralNoGDependentCrossBiasesWithSmallNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      IntervalDetectorThresholdFactorOptimizerException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testOptimizeMaCommonAxisNoGDependentCrossBiasesWithSmallNoise

      @Test void testOptimizeMaCommonAxisNoGDependentCrossBiasesWithSmallNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      IntervalDetectorThresholdFactorOptimizerException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testOptimizeGeneralGDependentCrossBiasesWithSmallNoise

      @Test void testOptimizeGeneralGDependentCrossBiasesWithSmallNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      IntervalDetectorThresholdFactorOptimizerException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testOptimizeMaCommonAxisGDependentCrossBiasesWithSmallNoise

      @Test void testOptimizeMaCommonAxisGDependentCrossBiasesWithSmallNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      IntervalDetectorThresholdFactorOptimizerException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testOptimizeMaCommonAxisNoGDependentCrossBiasesWithSmallNoiseRotationAndPositionChange

      @Test void testOptimizeMaCommonAxisNoGDependentCrossBiasesWithSmallNoiseRotationAndPositionChange() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      IntervalDetectorThresholdFactorOptimizerException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testOptimizeRobustCalibrators

      @Test void testOptimizeRobustCalibrators() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, IntervalDetectorThresholdFactorOptimizerException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      IntervalDetectorThresholdFactorOptimizerException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • onOptimizeStart

      Specified by:
      onOptimizeStart in interface IntervalDetectorThresholdFactorOptimizerListener<TimedBodyKinematics,AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource>
    • onOptimizeEnd

      Specified by:
      onOptimizeEnd in interface IntervalDetectorThresholdFactorOptimizerListener<TimedBodyKinematics,AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource>
    • onOptimizeProgressChange

      Specified by:
      onOptimizeProgressChange in interface IntervalDetectorThresholdFactorOptimizerListener<TimedBodyKinematics,AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource>
    • checkLocked

    • generateBodyKinematics

      private void generateBodyKinematics(com.irurueta.navigation.frames.NEDFrame nedFrame, com.irurueta.navigation.frames.ECEFFrame ecefFrame, boolean changePosition, com.irurueta.algebra.Matrix ma, double accelNoiseRootPSD, double gyroNoiseRootPSD, int numSequences, int numMeasurements) throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • generateFrame

      private static com.irurueta.navigation.frames.NEDFrame generateFrame() throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
    • 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 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()
    • generateStaticSamples

      private void generateStaticSamples(int numSamples, com.irurueta.navigation.inertial.BodyKinematics trueKinematics, IMUErrors errors, Random random, int startSample)
    • generateDynamicSamples

      private void generateDynamicSamples(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, Random random, int startSample, boolean changePosition) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • interpolate

      private static double interpolate(double value, double progress)
    • reset

      private void reset()