Class BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
java.lang.Object
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.calibration.TimedBodyKinematicsAndMagneticFluxDensity,AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizerDataSource>
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
- All Implemented Interfaces:
com.irurueta.navigation.inertial.calibration.AccelerometerNoiseRootPsdSource,com.irurueta.navigation.inertial.calibration.GyroscopeNoiseRootPsdSource
public class BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
extends AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
Optimizes the threshold factor for interval detection of accelerometer and gyroscope
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).
Only gyroscope calibrators based on unknown orientation are supported (in other terms,
calibrators must be GyroscopeNonLinearCalibrator and must support
GyroscopeCalibratorMeasurementOrSequenceType.BODY_KINEMATICS_SEQUENCE).
Only magnetometer calibrators based on unknown orientation are supported, in other terms,
calibrators must be MagnetometerNonLinearCalibrator and must support
MagnetometerCalibratorMeasurementType.STANDARD_DEVIATION_BODY_MAGNETIC_FLUX_DENSITY.
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.AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
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.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator accelerometerCalibrator, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator gyroscopeCalibrator, com.irurueta.navigation.inertial.calibration.magnetometer.MagnetometerNonLinearCalibrator magnetometerCalibrator) Constructor.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator accelerometerCalibrator, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator gyroscopeCalibrator, com.irurueta.navigation.inertial.calibration.magnetometer.MagnetometerNonLinearCalibrator magnetometerCalibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource) Constructor.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator accelerometerCalibrator, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator gyroscopeCalibrator, com.irurueta.navigation.inertial.calibration.magnetometer.MagnetometerNonLinearCalibrator magnetometerCalibrator) Constructor.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator accelerometerCalibrator, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator gyroscopeCalibrator, com.irurueta.navigation.inertial.calibration.magnetometer.MagnetometerNonLinearCalibrator magnetometerCalibrator, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.numerical.optimization.BracketedSingleOptimizer mseOptimizer) Constructor.BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(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.AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
evaluateForThresholdFactor, getAccelerometerBaseNoiseLevel, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelPsd, getAccelerometerBaseNoiseLevelRootPsd, getAccelerometerCalibrator, getAccelerometerQualityScoreMapper, getBaseNoiseLevelAbsoluteThreshold, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getEstimatedAccelerometerBiases, getEstimatedAccelerometerBiasFxVariance, getEstimatedAccelerometerBiasFyVariance, getEstimatedAccelerometerBiasFzVariance, getEstimatedAccelerometerBiasStandardDeviationNorm, getEstimatedAccelerometerMa, getEstimatedGyroscopeBiases, getEstimatedGyroscopeBiasStandardDeviationNorm, getEstimatedGyroscopeBiasXVariance, getEstimatedGyroscopeBiasYVariance, getEstimatedGyroscopeBiasZVariance, getEstimatedGyroscopeGg, getEstimatedGyroscopeMg, getEstimatedMagnetometerHardIron, getEstimatedMagnetometerMm, getGyroscopeBaseNoiseLevelPsd, getGyroscopeBaseNoiseLevelRootPsd, getGyroscopeCalibrator, getGyroscopeQualityScoreMapper, getInitialStaticSamples, getInstantaneousNoiseLevelFactor, getMagnetometerCalibrator, getMagnetometerQualityScoreMapper, getMaxDynamicSamples, getMaxThresholdFactor, getMinStaticSamples, getMinThresholdFactor, getMseRule, getThreshold, getThresholdAsMeasurement, getThresholdAsMeasurement, getTimeInterval, getTimeIntervalAsTime, getTimeIntervalAsTime, getWindowSize, setAccelerometerCalibrator, setAccelerometerQualityScoreMapper, setBaseNoiseLevelAbsoluteThreshold, setBaseNoiseLevelAbsoluteThreshold, setGyroscopeCalibrator, setGyroscopeQualityScoreMapper, setInitialStaticSamples, setInstantaneousNoiseLevelFactor, setMagnetometerCalibrator, setMagnetometerQualityScoreMapper, setMaxDynamicSamples, setMinStaticSamples, setMseRule, 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
-
BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
public BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer()Constructor. -
BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer
public BracketedAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer(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 classAccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizer- 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.TimedBodyKinematicsAndMagneticFluxDensity,AccelerometerGyroscopeAndMagnetometerIntervalDetectorThresholdFactorOptimizerDataSource> - 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.
-