Class BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
java.lang.Object
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.BodyKinematics,AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource>
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.AccelerometerIntervalDetectorThresholdFactorOptimizer
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.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 Summary
FieldsModifier and TypeFieldDescriptionprivate com.irurueta.numerical.optimization.OnIterationCompletedListener
Iteration listener forBracketedSingleOptimizer
.private com.irurueta.numerical.optimization.BracketedSingleOptimizer
A bracketed single optimizer to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.private com.irurueta.numerical.SingleDimensionFunctionEvaluatorListener
Listener for optimizer.Fields inherited from class com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.AccelerometerIntervalDetectorThresholdFactorOptimizer
DEFAULT_MAX_THRESHOLD_FACTOR, DEFAULT_MIN_THRESHOLD_FACTOR, maxThresholdFactor, minThresholdFactor
Fields inherited from class com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.IntervalDetectorThresholdFactorOptimizer
dataSource, DEFAULT_PROGRESS_DELTA, listener, MAX_PROGRESS_DELTA, MIN_PROGRESS_DELTA, minMse, optimalThresholdFactor, previousProgress, progress, progressDelta, running
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor.BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
(com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator) Constructor.BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
(com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource) Constructor.BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator) Constructor.BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator calibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
(AccelerometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
(com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncom.irurueta.numerical.optimization.BracketedSingleOptimizer
Gets the bracketed single optimizer used to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.private void
Initializes optimizer listener.boolean
isReady()
Indicates whether this optimizer is ready to start optimization.double
optimize()
Optimizes the threshold factor for a static interval detector or measurement generator to minimize MSE (Minimum Squared Error) of estimated calibration parameters.void
setMseOptimizer
(com.irurueta.numerical.optimization.BracketedSingleOptimizer optimizer) Sets the bracketed single optimizer used to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.Methods inherited from class com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.AccelerometerIntervalDetectorThresholdFactorOptimizer
evaluateForThresholdFactor, getAccelerometerBaseNoiseLevel, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelPsd, getAccelerometerBaseNoiseLevelRootPsd, getBaseNoiseLevelAbsoluteThreshold, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getCalibrator, getEstimatedBiases, getEstimatedBiasFxVariance, getEstimatedBiasFyVariance, getEstimatedBiasFzVariance, getEstimatedBiasStandardDeviationNorm, getEstimatedMa, getInitialStaticSamples, getInstantaneousNoiseLevelFactor, getMaxDynamicSamples, getMaxThresholdFactor, getMinStaticSamples, getMinThresholdFactor, getQualityScoreMapper, getThreshold, getThresholdAsMeasurement, getThresholdAsMeasurement, getTimeInterval, getTimeIntervalAsTime, getTimeIntervalAsTime, getWindowSize, setBaseNoiseLevelAbsoluteThreshold, setBaseNoiseLevelAbsoluteThreshold, setCalibrator, setInitialStaticSamples, setInstantaneousNoiseLevelFactor, setMaxDynamicSamples, setMinStaticSamples, setQualityScoreMapper, setThresholdFactorRange, setTimeInterval, setTimeInterval, setWindowSize
Methods inherited from class com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.IntervalDetectorThresholdFactorOptimizer
checkAndNotifyProgress, getDataSource, getListener, getMinMse, getOptimalThresholdFactor, getProgressDelta, initProgress, isRunning, setDataSource, setListener, setProgressDelta
-
Field Details
-
mseOptimizer
private com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizerA 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 optimizerListenerListener for optimizer. -
iterationCompletedListener
private com.irurueta.numerical.optimization.OnIterationCompletedListener iterationCompletedListenerIteration listener forBracketedSingleOptimizer
.
-
-
Constructor Details
-
BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer
public BracketedAccelerometerIntervalDetectorThresholdFactorOptimizer()Constructor. -
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.
-
-
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 classAccelerometerIntervalDetectorThresholdFactorOptimizer
- Returns:
- true if this optimizer is ready, false otherwise.
-
optimize
public double optimize() throws com.irurueta.navigation.NotReadyException, com.irurueta.navigation.LockedException, IntervalDetectorThresholdFactorOptimizerExceptionOptimizes 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 classIntervalDetectorThresholdFactorOptimizer<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.
-