Class ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
java.lang.Object
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.IntervalDetectorThresholdFactorOptimizer<com.irurueta.navigation.inertial.calibration.TimedBodyKinematics,AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource>
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
- All Implemented Interfaces:
com.irurueta.navigation.inertial.calibration.AccelerometerNoiseRootPsdSource,com.irurueta.navigation.inertial.calibration.GyroscopeNoiseRootPsdSource
public class ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
extends AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
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).
This implementation makes an exhaustive search between minimum and maximum
threshold factor values to find the threshold value that produces the
minimum Mean Square Error (MSE) for calibration parameters.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleDefault step value to make exhaustive search of threshold factor values.private doubleStep to make exhaustive search of threshold factor values betweenAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor()andAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor().Fields inherited from class com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
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.ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer(com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator accelerometerCalibrator, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator gyroscopeCalibrator) Constructor.ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer(AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource dataSource) Constructor.ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer(AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource dataSource, com.irurueta.navigation.inertial.calibration.accelerometer.AccelerometerNonLinearCalibrator accelerometerCalibrator, com.irurueta.navigation.inertial.calibration.gyroscope.GyroscopeNonLinearCalibrator gyroscopeCalibrator) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiondoubleGets the step to make exhaustive search of threshold values betweenAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor()andAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor().doubleoptimize()Optimizes the threshold factor for a static interval detector or measurement generator to minimize MSE (Minimum Squared Error) of estimated calibration parameters.voidsetThresholdFactorStep(double thresholdStep) Sets step to make exhaustive search of threshold values betweenAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor()andAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor().Methods inherited from class com.irurueta.navigation.inertial.calibration.intervals.thresholdfactor.AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
evaluateForThresholdFactor, getAccelerometerBaseNoiseLevel, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelAsMeasurement, getAccelerometerBaseNoiseLevelPsd, getAccelerometerBaseNoiseLevelRootPsd, getAccelerometerCalibrator, getAccelerometerQualityScoreMapper, getBaseNoiseLevelAbsoluteThreshold, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getBaseNoiseLevelAbsoluteThresholdAsMeasurement, getEstimatedAccelerometerBiases, getEstimatedAccelerometerBiasFxVariance, getEstimatedAccelerometerBiasFyVariance, getEstimatedAccelerometerBiasFzVariance, getEstimatedAccelerometerBiasStandardDeviationNorm, getEstimatedAccelerometerMa, getEstimatedGyroscopeBiases, getEstimatedGyroscopeBiasStandardDeviationNorm, getEstimatedGyroscopeBiasXVariance, getEstimatedGyroscopeBiasYVariance, getEstimatedGyroscopeBiasZVariance, getEstimatedGyroscopeGg, getEstimatedGyroscopeMg, getGyroscopeBaseNoiseLevelPsd, getGyroscopeBaseNoiseLevelRootPsd, getGyroscopeCalibrator, getGyroscopeQualityScoreMapper, getInitialStaticSamples, getInstantaneousNoiseLevelFactor, getMaxDynamicSamples, getMaxThresholdFactor, getMinStaticSamples, getMinThresholdFactor, getMseRule, getThreshold, getThresholdAsMeasurement, getThresholdAsMeasurement, getTimeInterval, getTimeIntervalAsTime, getTimeIntervalAsTime, getWindowSize, isReady, setAccelerometerCalibrator, setAccelerometerQualityScoreMapper, setBaseNoiseLevelAbsoluteThreshold, setBaseNoiseLevelAbsoluteThreshold, setGyroscopeCalibrator, setGyroscopeQualityScoreMapper, setInitialStaticSamples, setInstantaneousNoiseLevelFactor, 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
-
DEFAULT_STEP
public static final double DEFAULT_STEPDefault step value to make exhaustive search of threshold factor values.- See Also:
-
thresholdFactorStep
private double thresholdFactorStepStep to make exhaustive search of threshold factor values betweenAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor()andAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor().
-
-
Constructor Details
-
ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer
public ExhaustiveAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer()Constructor.
-
-
Method Details
-
getThresholdFactorStep
public double getThresholdFactorStep()Gets the step to make exhaustive search of threshold values betweenAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor()andAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor().- Returns:
- step to make exhaustive search of threshold values.
-
setThresholdFactorStep
public void setThresholdFactorStep(double thresholdStep) throws com.irurueta.navigation.LockedException Sets step to make exhaustive search of threshold values betweenAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor()andAccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizer.getMaxThresholdFactor().- Parameters:
thresholdStep- step to make exhaustive search of threshold values.- Throws:
com.irurueta.navigation.LockedException- if optimizer is already running.IllegalArgumentException- if provided value is zero or negative.
-
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,AccelerometerAndGyroscopeIntervalDetectorThresholdFactorOptimizerDataSource> - 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.
-