Class GyroscopeMeasurementsGeneratorTest

java.lang.Object
com.irurueta.navigation.inertial.calibration.generators.GyroscopeMeasurementsGeneratorTest
All Implemented Interfaces:
GyroscopeMeasurementsGeneratorListener, MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>

class GyroscopeMeasurementsGeneratorTest extends Object implements GyroscopeMeasurementsGeneratorListener
  • Field Details

  • Constructor Details

    • GyroscopeMeasurementsGeneratorTest

      GyroscopeMeasurementsGeneratorTest()
  • 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, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.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, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.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, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.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, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testProcessCalibrateAndResetSmallNoiseMaCommonAxisAndWithGDependentCrossBiases

      @Test void testProcessCalibrateAndResetSmallNoiseMaCommonAxisAndWithGDependentCrossBiases() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.navigation.NotReadyException, 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
      com.irurueta.geometry.InvalidRotationMatrixException
      com.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, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.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, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • testProcessErrorWithExcessiveOverallNoise

      @Test void testProcessErrorWithExcessiveOverallNoise() throws com.irurueta.algebra.WrongSizeException, com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
    • 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, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.algebra.WrongSizeException
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.navigation.NotReadyException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • onInitializationStarted

      public void onInitializationStarted(GyroscopeMeasurementsGenerator generator)
      Specified by:
      onInitializationStarted in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onInitializationCompleted

      public void onInitializationCompleted(GyroscopeMeasurementsGenerator generator, double baseNoiseLevel)
      Specified by:
      onInitializationCompleted in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onError

      Specified by:
      onError in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onStaticIntervalDetected

      public void onStaticIntervalDetected(GyroscopeMeasurementsGenerator generator)
      Specified by:
      onStaticIntervalDetected in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onDynamicIntervalDetected

      public void onDynamicIntervalDetected(GyroscopeMeasurementsGenerator generator)
      Specified by:
      onDynamicIntervalDetected in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onStaticIntervalSkipped

      public void onStaticIntervalSkipped(GyroscopeMeasurementsGenerator generator)
      Specified by:
      onStaticIntervalSkipped in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onDynamicIntervalSkipped

      public void onDynamicIntervalSkipped(GyroscopeMeasurementsGenerator generator)
      Specified by:
      onDynamicIntervalSkipped in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onGeneratedMeasurement

      public void onGeneratedMeasurement(GyroscopeMeasurementsGenerator generator, BodyKinematicsSequence<StandardDeviationTimedBodyKinematics> measurement)
      Specified by:
      onGeneratedMeasurement in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • onReset

      public void onReset(GyroscopeMeasurementsGenerator generator)
      Specified by:
      onReset in interface MeasurementsGeneratorListener<BodyKinematicsSequence<StandardDeviationTimedBodyKinematics>,GyroscopeMeasurementsGenerator,GyroscopeMeasurementsGeneratorListener,TimedBodyKinematics>
    • reset

      private void reset()
    • checkLocked

      private void checkLocked(GyroscopeMeasurementsGenerator generator)
    • 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()
    • generateStaticSamples

      private static boolean generateStaticSamples(GyroscopeMeasurementsGenerator generator, AccelerometerMeasurementsGenerator accelerometerGenerator, int numSamples, BodyKinematics trueKinematics, IMUErrors errors, int startSample) throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • generateDynamicSamples

      private static BodyKinematicsSequence<StandardDeviationTimedBodyKinematics> generateDynamicSamples(GyroscopeMeasurementsGenerator generator, AccelerometerMeasurementsGenerator accelerometerGenerator, int numSamples, BodyKinematics trueKinematics, com.irurueta.statistics.UniformRandomizer randomizer, com.irurueta.navigation.frames.ECEFFrame ecefFrame, com.irurueta.navigation.frames.NEDFrame nedFrame, IMUErrors errors, int startSample, boolean changePosition) throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, com.irurueta.navigation.LockedException, com.irurueta.geometry.InvalidRotationMatrixException, com.irurueta.geometry.RotationException
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      com.irurueta.navigation.LockedException
      com.irurueta.geometry.InvalidRotationMatrixException
      com.irurueta.geometry.RotationException
    • interpolate

      private static double interpolate(double value, double progress)