Class BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer
java.lang.Object
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.calibration.TimedBodyKinematics,GyroscopeIntervalDetectorThresholdFactorOptimizerDataSource>
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.GyroscopeIntervalDetectorThresholdFactorOptimizer
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer
- All Implemented Interfaces:
com.irurueta.navigation.inertial.calibration.AccelerometerNoiseRootPsdSource,com.irurueta.navigation.inertial.calibration.GyroscopeBiasUncertaintySource,com.irurueta.navigation.inertial.calibration.GyroscopeCalibrationSource,com.irurueta.navigation.inertial.calibration.GyroscopeNoiseRootPsdSource
public class BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer
extends GyroscopeIntervalDetectorThresholdFactorOptimizer
Optimizes the threshold factor for interval detection of accelerometer and gyroscope
data based on results of calibration.
Only gyroscope calibrators based on unknown orientation are supported (in other terms,
calibrators must be
GyroscopeNonLinearCalibrator and must support
GyroscopeCalibratorMeasurementOrSequenceType.BODY_KINEMATICS_SEQUENCE).
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.OnIterationCompletedListenerIteration listener forBracketedSingleOptimizer.private com.irurueta.numerical.optimization.BracketedSingleOptimizerA bracketed single optimizer to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.private com.irurueta.numerical.SingleDimensionFunctionEvaluatorListenerListener for optimizer.Fields inherited from class com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.GyroscopeIntervalDetectorThresholdFactorOptimizer
DEFAULT_MAX_THRESHOLD_FACTOR, DEFAULT_MIN_THRESHOLD_FACTOR, maxThresholdFactor, minThresholdFactorFields 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.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator calibrator) Constructor.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator calibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(GyroscopeIntervalDetectorThresholdFactorOptimizerDataSource dataSource) Constructor.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(GyroscopeIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator calibrator) Constructor.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(GyroscopeIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator calibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(GyroscopeIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncom.irurueta.numerical.optimization.BracketedSingleOptimizerGets the bracketed single optimizer used to find the threshold factor value that minimizes the Mean Square Error (MSE) for calibration parameters.private voidInitializes optimizer listener.booleanisReady()Indicates whether this optimizer is ready to start optimization.doubleoptimize()Optimizes the threshold factor for a static interval detector or measurement generator to minimize MSE (Minimum Squared Error) of estimated calibration parameters.voidsetMseOptimizer(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.GyroscopeIntervalDetectorThresholdFactorOptimizer
evaluateForThresholdFactor, getAccelerometerBaseNoiseLevel, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelPsd, getAccelerometerBaseNoiseLevelRootPsd, getBaseNoiseLevelAbsoluteThreshold, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getCalibrator, getEstimatedBiases, getEstimatedBiasStandardDeviationNorm, getEstimatedBiasXVariance, getEstimatedBiasYVariance, getEstimatedBiasZVariance, getEstimatedGg, getEstimatedMg, getGyroscopeBaseNoiseLevelPsd, getGyroscopeBaseNoiseLevelRootPsd, 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, setWindowSizeMethods 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
-
BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer
public BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer()Constructor. -
BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer
public BracketedGyroscopeIntervalDetectorThresholdFactorOptimizer(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:
isReadyin classGyroscopeIntervalDetectorThresholdFactorOptimizer- 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:
optimizein classIntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.calibration.TimedBodyKinematics,GyroscopeIntervalDetectorThresholdFactorOptimizerDataSource> - 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.
-