Class BaseSlamPairedViewsSparseReconstructorConfiguration<C extends BaseCalibrationData,T extends BaseSlamPairedViewsSparseReconstructorConfiguration<C,T>>

java.lang.Object
com.irurueta.ar.sfm.BasePairedViewsSparseReconstructorConfiguration<T>
com.irurueta.ar.sfm.BaseSlamPairedViewsSparseReconstructorConfiguration<C,T>
Type Parameters:
C - type defining calibration data.
T - an actual implementation of a configuration class.
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AbsoluteOrientationConstantVelocityModelSlamPairedViewsSparseReconstructorConfiguration, AbsoluteOrientationSlamPairedViewsSparseReconstructorConfiguration, ConstantVelocityModelSlamPairedViewsSparseReconstructorConfiguration, SlamPairedViewsSparseReconstructorConfiguration

public class BaseSlamPairedViewsSparseReconstructorConfiguration<C extends BaseCalibrationData,T extends BaseSlamPairedViewsSparseReconstructorConfiguration<C,T>> extends BasePairedViewsSparseReconstructorConfiguration<T> implements Serializable
Contains base configuration for a paired view sparse re-constructor using SLAM (Simultaneous Location And Mapping) to determine the scale of the scene (i.e. the baseline or separation between cameras) by fusing both camera data and data from sensors like an accelerometer or gyroscope.
See Also:
  • Field Details

    • DEFAULT_NOTIFY_SLAM_DATA_AVAILABLE

      public static final boolean DEFAULT_NOTIFY_SLAM_DATA_AVAILABLE
      Indicates that by default new available SLAM state is notified each time that a whole set of IMU (Inertial Measurement Unit) data is received (accelerometer, gyroscope and orientation). SLAM state contains position, velocity, linear acceleration, orientation and angular speed.
      See Also:
    • DEFAULT_NOTIFY_ESTIMATED_SLAM_CAMERA

      public static final boolean DEFAULT_NOTIFY_ESTIMATED_SLAM_CAMERA
      Indicates that by default any new camera that can be estimated by means of SLAM using IMU data, will be notified each time that accelerometer, gyroscope and orientation data is received.
      See Also:
    • DEFAULT_CAMERA_POSITION_VARIANCE

      private static final double DEFAULT_CAMERA_POSITION_VARIANCE
      Default variance for coordinates of estimated camera positions.
      See Also:
    • calibrationData

      private C extends BaseCalibrationData calibrationData
      Calibration data for accelerometer and gyroscope. This data is usually captured and estimated in an offline step previous to the actual scene reconstruction. Calibration data is usually obtained by keeping the system in a constant state of motion (e.g. acceleration and rotation). If this is null, no calibration data will be used.
    • cameraPositionCovariance

      private com.irurueta.algebra.Matrix cameraPositionCovariance
      Matrix containing covariance of measured camera positions. This should usually be an "almost" diagonal matrix, where diagonal elements are close to the position estimation error variance. Values of this matrix are device specific and depends on factors such as resolution of images, pictures quality, gyroscope and accelerometer accuracy. This matrix must be a 3x3 symmetric positive definite matrix.
    • notifyAvailableSlamData

      private boolean notifyAvailableSlamData
      Indicates whether new available SLAM state is notified each time that a whole set of IMU (Inertial Measurement Unit) data is received.
    • notifyEstimatedSlamCamera

      private boolean notifyEstimatedSlamCamera
      Indicates whether any new camera that can be estimated by means of SLAM using IMU data, will be notified each time that accelerometer, gyroscope and orientation data is received.
  • Constructor Details

    • BaseSlamPairedViewsSparseReconstructorConfiguration

      public BaseSlamPairedViewsSparseReconstructorConfiguration()
      Constructor.
  • Method Details

    • getCalibrationData

      public C getCalibrationData()
      Gets calibration data for accelerometer and gyroscope. This data is usually captured and estimated in an offline step previous to the actual scene reconstruction. Calibration data is usually obtained by keeping the system in a constant state of motion (e.g. acceleration and rotation). If this is null, no calibration data will be used.
      Returns:
      calibration data or null.
    • setCalibrationData

      public T setCalibrationData(C calibrationData)
      Specifies calibration data for accelerometer and gyroscope. This data is usually captured and estimated in an offline step previous to the actual scene reconstruction. Calibration data is usually obtained by keeping the system in a constant state of motion (e.g. acceleration and rotation). If set to null, no calibration data will be used.
      Parameters:
      calibrationData - calibration data or null.
      Returns:
      this instance so that method can be easily chained.
    • getCameraPositionCovariance

      public com.irurueta.algebra.Matrix getCameraPositionCovariance()
      Gets matrix containing covariance of measured camera positions. This should usually be an "almost" diagonal matrix, where diagonal elements are close to the position estimation error variance. Values of this matrix are device specific and depends on factors such as resolution of images, pictures quality, gyroscope and accelerometer accuracy. This matrix must be a 3x3 symmetric positive definite matrix.
      Returns:
      covariance of measured camera positions.
    • setCameraPositionCovariance

      public T setCameraPositionCovariance(com.irurueta.algebra.Matrix cameraPositionCovariance)
      Sets matrix containing covariance of measured camera positions. This should usually be an "almost" diagonal matrix, where diagonal elements are close to the position estimation error variance. Values of this matrix are device specific and depends on factors such as resolution of images, pictures quality, gyroscope and accelerometer accuracy. This matrix must be 3x3 symmetric positive definite matrix.
      Parameters:
      cameraPositionCovariance - covariance of measured camera positions.
      Returns:
      this instance so that method can be easily chained.
      Throws:
      IllegalArgumentException - if provided matrix is not 3x3.
    • setCameraPositionVariance

      public T setCameraPositionVariance(double variance)
      Sets independent variance of coordinates of measured camera positions. When using this method, camera position covariance matrix is set as a diagonal matrix whose diagonal elements are equal to provided value.
      Parameters:
      variance - variance of coordinates of measured camera positions.
      Returns:
      this instance so that method can be easily chained.
    • isNotifyAvailableSlamDataEnabled

      public boolean isNotifyAvailableSlamDataEnabled()
      Indicates whether new available SLAM state is notified each time that a whole set of IMU (Inertial Measurement Unit) data is received. IMU data contains accelerometer, gyroscope and orientation samples.
      Returns:
      true if new available SLAM state is notified each time that a whole set of IMU data is received.
    • setNotifyAvailableSlamDataEnabled

      public T setNotifyAvailableSlamDataEnabled(boolean notifyAvailableSlamData)
      Specifies whether new available SLAM state is notified each time that a whole set of IMU (Inertial Measurement Unit) data is received. IMU data contains accelerometer, gyroscope and orientation samples.
      Parameters:
      notifyAvailableSlamData - true if new available SLAM state is notified each time that a whole set of IMU data is received, false otherwise.
      Returns:
      this instance so that method can be easily chained.
    • isNotifyEstimatedSlamCameraEnabled

      public boolean isNotifyEstimatedSlamCameraEnabled()
      Indicates whether any new camera that can be estimated by means of SLAM using IMU data, will be notified each time that accelerometer, gyroscope and orientation data is received.
      Returns:
      true if any newly estimated camera is notified, false otherwise.
    • setNotifyEstimatedSlamCameraEnabled

      public T setNotifyEstimatedSlamCameraEnabled(boolean notifyEstimatedSlamCamera)
      Specifies whether any new camera that can be estimated by means of SLAM using IMU data, will be notified each time that accelerometer, gyroscope and orientation data is received.
      Parameters:
      notifyEstimatedSlamCamera - true if any newly estimated camera is notified, false otherwise.
      Returns:
      this instance so that method can be easily chained.