Package com.irurueta.ar.slam
Class AbsoluteOrientationBaseSlamCalibrator<D extends BaseCalibrationData>
java.lang.Object
com.irurueta.ar.slam.BaseSlamCalibrator<D>
com.irurueta.ar.slam.AbsoluteOrientationBaseSlamCalibrator<D>
- Type Parameters:
D
- type of calibration data.
- Direct Known Subclasses:
AbsoluteOrientationConstantVelocityModelSlamCalibrator
,AbsoluteOrientationSlamCalibrator
public abstract class AbsoluteOrientationBaseSlamCalibrator<D extends BaseCalibrationData>
extends BaseSlamCalibrator<D>
Base class for estimating mean and covariance of noise in control values
when the system state is held constant (only noise is provided as control
input).
This subclass of BaseSlamCalibrator is used for slam estimator taking into
account absolute orientation.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.irurueta.ar.slam.BaseSlamCalibrator
BaseSlamCalibrator.BaseSlamCalibratorListener<D extends BaseCalibrationData>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final com.irurueta.geometry.Quaternion
Average orientation accumulated since last full sample.protected int
Number of orientation samples accumulated since last full sample.protected long
Timestamp expressed in nanoseconds since the epoch time of the last sample containing absolute orientation.private com.irurueta.geometry.Quaternion
Temporary quaternion.Fields inherited from class com.irurueta.ar.slam.BaseSlamCalibrator
accelerometerTimestampNanos, accumulatedAccelerationSampleX, accumulatedAccelerationSampleY, accumulatedAccelerationSampleZ, accumulatedAccelerometerSamples, accumulatedAngularSpeedSampleX, accumulatedAngularSpeedSampleY, accumulatedAngularSpeedSampleZ, accumulatedGyroscopeSamples, accumulationEnabled, converged, convergenceThreshold, covDiff, DEFAULT_CONVERGENCE_THRESHOLD, DEFAULT_ENABLE_SAMPLE_ACCUMULATION, DEFAULT_MAX_NUM_SAMPLES, DEFAULT_MIN_NUM_SAMPLES, estimator, failed, finished, gyroscopeTimestampNanos, listener, maxNumSamples, meanDiff, MIN_SAMPLE_LENGTH, minNumSamples, N_COMPONENTS_3D, NANOS_TO_SECONDS, previousCovariance, previousMean, sample, sampleCount
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbsoluteOrientationBaseSlamCalibrator
(int sampleLength) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncom.irurueta.geometry.Rotation3D
Gets average orientation accumulated since last full sample.void
getAccumulatedOrientation
(com.irurueta.geometry.Rotation3D result) Gets average orientation accumulated since last full sample.int
Gets number of orientation samples accumulated since last full sample.long
Gets most recent timestamp of received partial samples (accelerometer, gyroscope or magnetic field).long
Gets timestamp expressed in nanoseconds since the epoch time of the last orientation sample, or -1 if no sample has been set yet.boolean
Indicates whether a full sample (accelerometer + gyroscope + magnetic field) has been received or not.boolean
Indicates whether the orientation sample has been received since last full sample (accelerometer + gyroscope + orientation).protected void
Notifies that a full sample has been received and resets flags indicating whether partial samples have been received.void
updateOrientationSample
(long timestamp, com.irurueta.geometry.Rotation3D orientation) Provides a new orientation sample.Methods inherited from class com.irurueta.ar.slam.BaseSlamCalibrator
getAccelerometerTimestampNanos, getAccumulatedAccelerationSample, getAccumulatedAccelerationSample, getAccumulatedAccelerationSampleX, getAccumulatedAccelerationSampleY, getAccumulatedAccelerationSampleZ, getAccumulatedAccelerometerSamples, getAccumulatedAngularSpeedSample, getAccumulatedAngularSpeedSample, getAccumulatedAngularSpeedSampleX, getAccumulatedAngularSpeedSampleY, getAccumulatedAngularSpeedSampleZ, getAccumulatedGyroscopeSamples, getCalibrationData, getCalibrationData, getControlCovariance, getControlCovariance, getControlDistribution, getControlDistribution, getControlMean, getControlMean, getConvergenceThreshold, getEstimatorStateLength, getGyroscopeTimestampNanos, getListener, getMaxNumSamples, getMinNumSamples, getSampleCount, getSampleLength, isAccelerometerSampleReceived, isAccumulationEnabled, isConverged, isFailed, isFinished, isGyroscopeSampleReceived, processFullSample, propagateWithControlJacobian, propagateWithControlJacobian, reset, setAccumulationEnabled, setConvergenceThreshold, setListener, setMaxNumSamples, setMinNumSamples, updateAccelerometerSample, updateAccelerometerSample, updateGyroscopeSample, updateGyroscopeSample, updateSample
-
Field Details
-
orientationTimestampNanos
protected long orientationTimestampNanosTimestamp expressed in nanoseconds since the epoch time of the last sample containing absolute orientation. -
accumulatedOrientationSamples
protected int accumulatedOrientationSamplesNumber of orientation samples accumulated since last full sample. -
accumulatedOrientation
protected final com.irurueta.geometry.Quaternion accumulatedOrientationAverage orientation accumulated since last full sample. -
tempQ
private com.irurueta.geometry.Quaternion tempQTemporary quaternion. For memory reuse.
-
-
Constructor Details
-
AbsoluteOrientationBaseSlamCalibrator
protected AbsoluteOrientationBaseSlamCalibrator(int sampleLength) Constructor.- Parameters:
sampleLength
- sample length of control values used during prediction stage in SLAM estimator.- Throws:
IllegalArgumentException
- if sample length is less than 1.
-
-
Method Details
-
getOrientationTimestampNanos
public long getOrientationTimestampNanos()Gets timestamp expressed in nanoseconds since the epoch time of the last orientation sample, or -1 if no sample has been set yet.- Returns:
- timestamp expressed in nanoseconds since the epoch time of the last orientation sample, or -1.
-
getAccumulatedOrientation
public com.irurueta.geometry.Rotation3D getAccumulatedOrientation()Gets average orientation accumulated since last full sample.- Returns:
- orientation accumulated since last full sample.
-
getAccumulatedOrientation
public void getAccumulatedOrientation(com.irurueta.geometry.Rotation3D result) Gets average orientation accumulated since last full sample.- Parameters:
result
- instance where orientation accumulated since last full sample will be stored.
-
getAccumulatedOrientationSamples
public int getAccumulatedOrientationSamples()Gets number of orientation samples accumulated since last full sample.- Returns:
- number of orientation samples accumulated since last full sample.
-
isOrientationSampleReceived
public boolean isOrientationSampleReceived()Indicates whether the orientation sample has been received since last full sample (accelerometer + gyroscope + orientation).- Returns:
- true if orientation sample has been received, false otherwise.
-
isFullSampleAvailable
public boolean isFullSampleAvailable()Indicates whether a full sample (accelerometer + gyroscope + magnetic field) has been received or not.- Overrides:
isFullSampleAvailable
in classBaseSlamCalibrator<D extends BaseCalibrationData>
- Returns:
- true if full sample has been received, false otherwise.
-
updateOrientationSample
public void updateOrientationSample(long timestamp, com.irurueta.geometry.Rotation3D orientation) Provides a new orientation sample. If accumulation is enabled, samples are averaged until a full sample is received. When a full sample (accelerometer + gyroscope + orientation) is received, internal state gets also updated.- Parameters:
timestamp
- timestamp of accelerometer sample since epoch time and expressed in nanoseconds.orientation
- new orientation.
-
getMostRecentTimestampNanos
public long getMostRecentTimestampNanos()Gets most recent timestamp of received partial samples (accelerometer, gyroscope or magnetic field).- Overrides:
getMostRecentTimestampNanos
in classBaseSlamCalibrator<D extends BaseCalibrationData>
- Returns:
- most recent timestamp of received partial sample.
-
notifyFullSampleAndResetSampleReceive
protected void notifyFullSampleAndResetSampleReceive()Notifies that a full sample has been received and resets flags indicating whether partial samples have been received.- Overrides:
notifyFullSampleAndResetSampleReceive
in classBaseSlamCalibrator<D extends BaseCalibrationData>
-