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.QuaternionAverage orientation accumulated since last full sample.protected intNumber of orientation samples accumulated since last full sample.protected longTimestamp expressed in nanoseconds since the epoch time of the last sample containing absolute orientation.private com.irurueta.geometry.QuaternionTemporary 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
ConstructorsModifierConstructorDescriptionprotectedAbsoluteOrientationBaseSlamCalibrator(int sampleLength) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncom.irurueta.geometry.Rotation3DGets average orientation accumulated since last full sample.voidgetAccumulatedOrientation(com.irurueta.geometry.Rotation3D result) Gets average orientation accumulated since last full sample.intGets number of orientation samples accumulated since last full sample.longGets most recent timestamp of received partial samples (accelerometer, gyroscope or magnetic field).longGets timestamp expressed in nanoseconds since the epoch time of the last orientation sample, or -1 if no sample has been set yet.booleanIndicates whether a full sample (accelerometer + gyroscope + magnetic field) has been received or not.booleanIndicates whether the orientation sample has been received since last full sample (accelerometer + gyroscope + orientation).protected voidNotifies that a full sample has been received and resets flags indicating whether partial samples have been received.voidupdateOrientationSample(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:
isFullSampleAvailablein 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:
getMostRecentTimestampNanosin 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:
notifyFullSampleAndResetSampleReceivein classBaseSlamCalibrator<D extends BaseCalibrationData>
-