Class BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

All Implemented Interfaces:
com.irurueta.navigation.inertial.calibration.AccelerometerBiasUncertaintySource, com.irurueta.navigation.inertial.calibration.AccelerometerCalibrationSource, com.irurueta.navigation.inertial.calibration.AccelerometerNoiseRootPsdSource

public class BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer extends AccelerometerIntervalDetectorThresholdFactorOptimizer
Optimizes the threshold factor for interval detection of accelerometer data based on results of calibration. Only accelerometer calibrators based on unknown orientation are supported (in other terms, calibrators must be AccelerometerNonLinearCalibrator and must support AccelerometerCalibratorMeasurementType.STANDARD_DEVIATION_BODY_KINEMATICS). This implementation uses a BracketedSingleOptimizer to find the threshold factor value that minimizes Mean Square Error (MSE) for calibration parameters.
  • Field Details

    • mseOptimizer

      private com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer
      A bracketed single optimizer to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.
    • optimizerListener

      private com.irurueta.numerical.SingleDimensionFunctionEvaluatorListener optimizerListener
      Listener for optimizer.
    • iterationCompletedListener

      private com.irurueta.numerical.optimization.OnIterationCompletedListener iterationCompletedListener
      Iteration listener for BracketedSingleOptimizer.
  • Constructor Details

    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer()
      Constructor.
    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource)
      Constructor.
      Parameters:
      dataSource - instance in charge of retrieving data for this optimizer.
    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer(com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator)
      Constructor.
      Parameters:
      calibrator - an accelerometer calibrator to be used to optimize its Mean Square Error (MSE).
      Throws:
      IllegalArgumentException - if accelerometer calibrator does not use StandardDeviationBodyKinematics measurements.
    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator)
      Constructor.
      Parameters:
      dataSource - instance in charge of retrieving data for this optimizer.
      calibrator - an accelerometer calibrator to be used to optimize its Mean Square Error (MSE).
      Throws:
      IllegalArgumentException - if accelerometer calibrator does not use StandardDeviationBodyKinematics measurements.
    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer(com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer)
      Constructor.
      Parameters:
      mseOptimizer - optimizer to find the threshold factor value that minimizes MSE for calibration parameters.
    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer)
      Constructor.
      Parameters:
      dataSource - instance in charge of retrieving data for this optimizer.
      mseOptimizer - optimizer to find the threshold value that minimizes MSE for calibration parameters.
    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer(com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer)
      Constructor.
      Parameters:
      calibrator - an accelerometer calibrator to be used to optimize its Mean Square Error (MSE).
      mseOptimizer - optimizer to find the threshold value that minimizes MSE for calibration parameters.
      Throws:
      IllegalArgumentException - if accelerometer calibrator does not use StandardDeviationBodyKinematics measurements.
    • BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer

      public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer)
      Constructor.
      Parameters:
      dataSource - instance in charge of retrieving data for this mseOptimizer.
      calibrator - an accelerometer calibrator to be used to optimize its Mean Square Error (MSE).
      mseOptimizer - optimizer to find the threshold value that minimizes MSE for calibration parameters.
      Throws:
      IllegalArgumentException - if accelerometer calibrator does not use StandardDeviationBodyKinematics measurements.
  • Method Details

    • getMseOptimizer

      public com.irurueta.numerical.optimization.BracketedSingleOptimizer getMseOptimizer()
      Gets the bracketed single optimizer used to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.
      Returns:
      optimizer to find the threshold factor value that minimizes the MSE for calibration parameters.
    • setMseOptimizer

      public void setMseOptimizer(com.irurueta.numerical.optimization.BracketedSingleOptimizer optimizer) throws com.irurueta.navigation.LockedException
      Sets the bracketed single optimizer used to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.
      Parameters:
      optimizer - optimizer to find the threshold factor value that minimizes the MSE for calibration parameters.
      Throws:
      com.irurueta.navigation.LockedException - if optimizer is already running.
    • isReady

      public boolean isReady()
      Indicates whether this optimizer is ready to start optimization.
      Overrides:
      isReady in class AccelerometerIntervalDetectorThresholdFactorOptimizer
      Returns:
      true if this optimizer is ready, false otherwise.
    • optimize

      public double optimize() throws com.irurueta.navigation.NotReadyException, com.irurueta.navigation.LockedException, IntervalDetectorThresholdFactorOptimizerException
      Optimizes the threshold factor for a static interval detector or measurement generator to minimize MSE (Minimum Squared Error) of estimated calibration parameters.
      Specified by:
      optimize in class IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.BodyKinematics,AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource>
      Returns:
      optimized threshold factor.
      Throws:
      com.irurueta.navigation.NotReadyException - if this optimizer is not ready to start optimization.
      com.irurueta.navigation.LockedException - if optimizer is already running.
      IntervalDetectorThresholdFactorOptimizerException - if optimization fails for some reason.
    • initializeOptimizerListeners

      private void initializeOptimizerListeners()
      Initializes optimizer listener.