Main Content

cameraIMUParameters

Object for storing estimated camera-to-IMU parameters

Since R2024a

    Description

    The cameraIMUParameters object stores the camera-to-IMU parameter estimations from the calibration optimization executed by the estimateCameraIMUTransform function.

    Creation

    Description

    [tform,camIMUParams] = estimateCameraIMUTransform(___) returns the transformation between a camera reference frame and an IMU reference frame, and the estimated calibration parameters as a cameraIMUParameters object camIMUParams.

    Properties

    expand all

    This property is read-only.

    Fixed SE(3) transformation from the camera to the IMU, returned as an se3 object.

    This property is read-only.

    Absolute difference between the projected landmark points and the image point observations in each frame, stored as an M-by-2-by-N array of doubles. M is the number of landmarks in the target calibration board, and N is the number of calibration images specified in the imagePoints argument of the estimateCameraIMUTransform function.

    This property is read-only.

    Error in IMU translation prediction between consecutive camera frames after calibration, stored as a (N-1)-by-3 numeric array. Nis the total number of images specified in the imagePoints argument of the estimateCameraIMUTransform function. Each row is a position of the form [x,y,z], in meters.

    This property is read-only.

    Error in the IMU rotation prediction between successive camera poses after calibration, stored as a (N-1)-by-3 numeric array. Nis the total number of images specified in the imagePoints argument of the estimateCameraIMUTransform function. Each row is an Euler rotation of the form [z,y,x], in radians.

    This property is read-only.

    Camera pose estimates from calibration, stored as an N-element array of se3 objects. N is the total number of calibration images used by the estimateCameraIMUTransform function. Note that the computed camera pose estimates may differ from user-specified poses after optimization.

    This property is read-only.

    Indices of images used for the calibration, stored as a M-by-1 array of positive integers.

    This property is read-only.

    Gravity rotation, stored as an se3 object.

    You can use the gravity rotation for converting camera poses to a navigation reference frame.

    This property is read-only.

    Estimated accelerometer bias values at image sampling times, stored as an M-by-3 matrix. M is the number of calibration images specified in the imagePoints argument of the estimateCameraIMUTransform function. Each row is an accelerometer bias in the form [Accel_X_Bias, Accel_Y_Bias, Accel_Z_Bias].

    This property is read-only.

    Estimated gyroscope bias values at image sampling times, stored as an M-by-3 matrix. M is the number of calibration images specified in the imagePoints argument of the estimateCameraIMUTransform function. Each row is a gyroscope bias in the form [Gyro_X_Bias, Gyro_Y_Bias, Gyro_Z_Bias].

    This property is read-only.

    IMU velocities, stored as an M-by-3 matrix in the form [Vel_X Vel_Y Vel_Z]. M is the number of calibration images used by the estimateCameraIMUTransform function. Vel_X, Vel_Y, and Vel_Z are the xyz velocities in meters per second.

    This property is read-only.

    Results of the calibration optimization, returned as a structure containing:

    • InitialCost — Initial cost of the non-linear least squares problem formulated by the factor graph before the optimization.

    • FinalCost — Final cost of the non-linear least squares problem formulated by the factor graph after the optimization.

      Note

      Cost is the sum of error terms, known as residuals, where each residual is a function of a subset of factor measurements.

    • NumSuccessfulSteps — Number of iterations in which the solver decreases the cost. This value includes the initialization iteration at 0 in addition to the minimizer iterations.

    • NumUnsuccessfulSteps — Number of iterations in which the iteration is numerically invalid or the solver does not decrease the cost.

    • TotalTime — Total solver optimization time in seconds.

    • TerminationType — Termination type as an integer in the range [0, 2]:

      • 0 — Solver found a solution that meets convergence criterion and decreases in cost after optimization.

      • 1 — Solver could not find a solution that meets convergence criterion after running for the maximum number of iterations.

      • 2 — Solver terminated due to an error.

    • IsSolutionUsable — The solution is usable if the solution has either converged or estimateCameraIMUTransform has reached the maximum number of iterations. The value is 1 (true) if the solution is usable and the value is 0 (false) if the solution is not usable.

    Object Functions

    showIMUBiasEstimatesVisualize IMU accelerometer and gyroscope bias estimates
    showIMUPredictionErrorsVisualizes absolute values of IMU prediction errors
    showReprojectionErrorsVisualize means reprojection error for images as bar graph
    showTransformVisualize estimated camera-to-IMU transformation
    validateValidate camera-IMU calibration

    Version History

    Introduced in R2024a