Package com.irurueta.ar.sfm
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 Summary
FieldsModifier and TypeFieldDescriptionprivate C
Calibration data for accelerometer and gyroscope.private com.irurueta.algebra.Matrix
Matrix containing covariance of measured camera positions.private static final double
Default variance for coordinates of estimated camera positions.static final boolean
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.static final boolean
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).private boolean
Indicates whether new available SLAM state is notified each time that a whole set of IMU (Inertial Measurement Unit) data is received.private boolean
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.Fields inherited from class com.irurueta.ar.sfm.BasePairedViewsSparseReconstructorConfiguration
DEFAULT_ALLOW_GENERAL_SCENE, DEFAULT_ALLOW_PLANAR_SCENE, DEFAULT_DAQ_USE_HOMOGENEOUS_POINT_TRIANGULATOR, DEFAULT_FUNDAMENTAL_MATRIX_COMPUTE_AND_KEEP_INLIERS, DEFAULT_FUNDAMENTAL_MATRIX_COMPUTE_AND_KEEP_RESIDUALS, DEFAULT_FUNDAMENTAL_MATRIX_CONFIDENCE, DEFAULT_FUNDAMENTAL_MATRIX_MAX_ITERATIONS, DEFAULT_FUNDAMENTAL_MATRIX_THRESHOLD, DEFAULT_KEEP_FUNDAMENTAL_MATRIX_COVARIANCE, DEFAULT_KEEP_PLANAR_HOMOGRAPHY_COVARIANCE, DEFAULT_KNOWN_INTRINSIC_PARAMETERS, DEFAULT_NON_ROBUST_FUNDAMENTAL_MATRIX_ESTIMATOR_METHOD, DEFAULT_PAIRED_CAMERAS_ASPECT_RATIO, DEFAULT_PAIRED_CAMERAS_CORRECTOR_TYPE, DEFAULT_PAIRED_CAMERAS_ESTIMATOR_METHOD, DEFAULT_PAIRED_CAMERAS_MARK_VALID_TRIANGULATED_POINTS, DEFAULT_PAIRED_CAMERAS_PRINCIPAL_POINT_X, DEFAULT_PAIRED_CAMERAS_PRINCIPAL_POINT_Y, DEFAULT_PLANAR_HOMOGRAPHY_COMPUTE_AND_KEEP_INLIERS, DEFAULT_PLANAR_HOMOGRAPHY_COMPUTE_AND_KEEP_RESIDUALS, DEFAULT_PLANAR_HOMOGRAPHY_CONFIDENCE, DEFAULT_PLANAR_HOMOGRAPHY_MAX_ITERATIONS, DEFAULT_PLANAR_HOMOGRAPHY_THRESHOLD, DEFAULT_REFINE_FUNDAMENTAL_MATRIX, DEFAULT_REFINE_PLANAR_HOMOGRAPHY, DEFAULT_ROBUST_FUNDAMENTAL_MATRIX_ESTIMATOR_METHOD, DEFAULT_ROBUST_PLANAR_HOMOGRAPHY_ESTIMATOR_METHOD
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets calibration data for accelerometer and gyroscope.com.irurueta.algebra.Matrix
Gets matrix containing covariance of measured camera positions.boolean
Indicates whether new available SLAM state is notified each time that a whole set of IMU (Inertial Measurement Unit) data is received.boolean
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.setCalibrationData
(C calibrationData) Specifies calibration data for accelerometer and gyroscope.setCameraPositionCovariance
(com.irurueta.algebra.Matrix cameraPositionCovariance) Sets matrix containing covariance of measured camera positions.setCameraPositionVariance
(double variance) Sets independent variance of coordinates of measured camera positions.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.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.Methods inherited from class com.irurueta.ar.sfm.BasePairedViewsSparseReconstructorConfiguration
areIntrinsicParametersKnown, getDaqUseHomogeneousPointTriangulator, getFundamentalMatrixComputeAndKeepInliers, getFundamentalMatrixComputeAndKeepResiduals, getFundamentalMatrixConfidence, getFundamentalMatrixMaxIterations, getFundamentalMatrixThreshold, getNonRobustFundamentalMatrixEstimatorMethod, getPairedCamerasAspectRatio, getPairedCamerasCorrectorType, getPairedCamerasEstimatorMethod, getPairedCamerasMarkValidTriangulatedPoints, getPlanarHomographyComputeAndKeepInliers, getPlanarHomographyComputeAndKeepResiduals, getPlanarHomographyConfidence, getPlanarHomographyMaxIterations, getPlanarHomographyThreshold, getPrincipalPointX, getPrincipalPointY, getRobustFundamentalMatrixEstimatorMethod, getRobustPlanarHomographyEstimatorMethod, isFundamentalMatrixCovarianceKept, isFundamentalMatrixRefined, isGeneralSceneAllowed, isPlanarHomographyCovarianceKept, isPlanarHomographyRefined, isPlanarSceneAllowed, setDaqUseHomogeneousPointTriangulator, setFundamentalMatrixComputeAndKeepInliers, setFundamentalMatrixComputeAndKeepResiduals, setFundamentalMatrixConfidence, setFundamentalMatrixCovarianceKept, setFundamentalMatrixMaxIterations, setFundamentalMatrixRefined, setFundamentalMatrixThreshold, setGeneralSceneAllowed, setIntrinsicParametersKnown, setNonRobustFundamentalMatrixEstimatorMethod, setPairedCamerasAspectRatio, setPairedCamerasCorrectorType, setPairedCamerasEstimatorMethod, setPairedCamerasMarkValidTriangulatedPoints, setPlanarHomographyComputeAndKeepInliers, setPlanarHomographyComputeAndKeepResiduals, setPlanarHomographyConfidence, setPlanarHomographyCovarianceKept, setPlanarHomographyMaxIterations, setPlanarHomographyRefined, setPlanarHomographyThreshold, setPlanarSceneAllowed, setPrincipalPointX, setPrincipalPointY, setRobustFundamentalMatrixEstimatorMethod, setRobustPlanarHomographyEstimatorMethod
-
Field Details
-
DEFAULT_NOTIFY_SLAM_DATA_AVAILABLE
public static final boolean DEFAULT_NOTIFY_SLAM_DATA_AVAILABLEIndicates 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_CAMERAIndicates 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_VARIANCEDefault variance for coordinates of estimated camera positions.- See Also:
-
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 cameraPositionCovarianceMatrix 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 notifyAvailableSlamDataIndicates whether new available SLAM state is notified each time that a whole set of IMU (Inertial Measurement Unit) data is received. -
notifyEstimatedSlamCamera
private boolean notifyEstimatedSlamCameraIndicates 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
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
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
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
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
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
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.
-