CVBpy 15.0
ExtrinsicCalibrationModel Class Reference

Enum for extrinsic calibration model. More...

Inherits object.

Static Public Attributes

int AffineMatrix = 1
 Elements of affine matrix m11,..., m33 are estimated. More...
 
int NoEstimation = 0
 Extrinsic transformation will not be estimated.
 
int SpecificTransformationParameters = 2
 Transformation parameters like rotation, scale and shear are estimated (recommended). More...
 

Detailed Description

Enum for extrinsic calibration model.

Calibrating a laser triangulation system extrinsically involves transforming an intrinsically calibrated point cloud to a world coordinate system. This transformation includes not only rotation and translation but also correction of the laser plane's inclination about the x and z axes, and scaling. The scaling in the x and z directions depends on the laser plane's inclination. If the scaling in the y direction (known as the encoder step) is unknown, it can be estimated by enabling it via the function #SetEstimateEncoderStep, too. The transformation parameters can be represented by three 3D matrices. Multiplying them results in an affine 3D matrix:

and where

m11,...m33: individual elements of the affine matrix.

Syx and Syz: shear parameters that correct an inclined laser plane.

Scale.X,Y,Z: scaling factors.

R: 3D rotation matrix calculated from the RotationAngles.

There are two ways to estimate the transformation: You may simply estimate the 9 individual elements of the affine matrix m11,..., m33 or estimate the parameters for rotation, scale and shear. The advantage of estimating the single elements is that the system of equations is linear and easy to solve. Whereas estimating the parameters lead to a non-linear system of equations and might not yield a reasonable result in very rare cases. However, using the non-linear system of equations models the errors more accurately and is thus recommended.

The model for the extrinsic calibration can be set in the calibration configuration object via function #SetExtrinsicCalibrationModel or be specified directly like in function cvb.foundation.metric.calculate_correction_of_laser_plane_inclination.

Member Data Documentation

◆ AffineMatrix

int AffineMatrix = 1
static

Elements of affine matrix m11,..., m33 are estimated.

If this model is enabled, the encoder step is always estimated.

◆ SpecificTransformationParameters

int SpecificTransformationParameters = 2
static

Transformation parameters like rotation, scale and shear are estimated (recommended).

When using this model, you can enable or disable the estimation of the encoder step (scale in Y) via property cvb.foundation.CalibrationConfiguration.estimate_encoder_step.