Skip to content

create_calib_dataCreateCalibDataCreateCalibDatacreate_calib_dataT_create_calib_data🔗

Short description🔗

create_calib_dataCreateCalibDataCreateCalibDatacreate_calib_dataT_create_calib_data — Create a HALCON calibration data model.

Signature🔗

create_calib_data( string CalibSetup, number NumCameras, number NumCalibObjects, out calib_data CalibDataID )void CreateCalibData( const HTuple& CalibSetup, const HTuple& NumCameras, const HTuple& NumCalibObjects, HTuple* CalibDataID )static void HOperatorSet.CreateCalibData( HTuple calibSetup, HTuple numCameras, HTuple numCalibObjects, out HTuple calibDataID )def create_calib_data( calib_setup: str, num_cameras: int, num_calib_objects: int ) -> HHandle

Herror T_create_calib_data( const Htuple CalibSetup, const Htuple NumCameras, const Htuple NumCalibObjects, Htuple* CalibDataID )

void HCalibData::HCalibData( const HString& CalibSetup, Hlong NumCameras, Hlong NumCalibObjects )

void HCalibData::HCalibData( const char* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects )

void HCalibData::HCalibData( const wchar_t* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects ) (Windows only)

public HCalibData( string calibSetup, int numCameras, int numCalibObjects )

void HCalibData::CreateCalibData( const HString& CalibSetup, Hlong NumCameras, Hlong NumCalibObjects )

void HCalibData::CreateCalibData( const char* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects )

void HCalibData::CreateCalibData( const wchar_t* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects ) (Windows only)

void HCalibData.CreateCalibData( string calibSetup, int numCameras, int numCalibObjects )

Description🔗

The operator create_calib_dataCreateCalibData creates a generic calibration data model that stores

  • the description of a camera calibration setup,

  • settings for the calibration process,

  • the calibration data, and

  • the results of the camera calibration or the hand-eye calibration.

In the parameter CalibSetupcalibSetupcalib_setup, you specify the calibration setup type. Currently, five types are supported. A model of the type 'calibration_object'"calibration_object" is used to calibrate the internal camera parameters and the camera poses of one or more cameras based on the metric information extracted from observations of calibration objects.

A model of type 'hand_eye_moving_cam'"hand_eye_moving_cam", 'hand_eye_stationary_cam'"hand_eye_stationary_cam", 'hand_eye_scara_moving_cam'"hand_eye_scara_moving_cam", or 'hand_eye_scara_stationary_cam'"hand_eye_scara_stationary_cam" is used to perform a hand-eye calibration based on observations of a calibration object and corresponding poses of a robot tool in the robot base coordinate system. The latter four model types on the one hand distinguish whether the camera or the calibration object is moved by the robot and on the other hand distinguish whether an articulated robot or a SCARA robot is calibrated. The arm of an articulated robot has three rotary joints typically covering 6 degrees of freedom (3 translations and 3 rotations). SCARA robots have two parallel rotary joints and one parallel prismatic joint covering only 4 degrees of freedom (3 translations and 1 rotation). Loosely speaking, an articulated robot is able to tilt its end effector while a SCARA robot is not.

NumCamerasnumCamerasnum_cameras specifies the number of cameras that are calibrated simultaneously in the setup. NumCalibObjectsnumCalibObjectsnum_calib_objects specifies the number of calibration objects observed by the cameras. Please note that for camera calibrations with line scan cameras with perspective lenses only a single calibration object is allowed (NumCalibObjectsnumCalibObjectsnum_calib_objects=1). For hand-eye calibrations, only two setups are currently supported: either one area scan projective camera and one calibration object (NumCamerasnumCamerasnum_cameras=1, NumCalibObjectsnumCalibObjectsnum_calib_objects=1) or a general sensor with no calibration object (NumCamerasnumCamerasnum_cameras=0, NumCalibObjectsnumCalibObjectsnum_calib_objects=0). Attention: The four hand-eye calibration models do not support telecentric cameras.

CalibDataIDcalibDataIDcalib_data_id returns a handle of the new calibration data model. You pass this handle to other operators to collect the description of the camera setup, the calibration settings, and the calibration data. For camera calibrations, you pass it to calibrate_camerasCalibrateCameras, which performs the actual camera calibration and stores the calibration results in the calibration data model. For a detailed description of the preparation process, please refer to the chapter Calibration. For hand-eye calibrations, you pass it to calibrate_hand_eyeCalibrateHandEye, which performs the actual hand-eye calibration and stores the calibration results in the calibration data model. For a detailed description of the preparation process, please refer to the operator calibrate_hand_eyeCalibrateHandEye.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

Parameters🔗

CalibSetupcalibSetupcalib_setup (input_control) string → (string)HTuple (HString)HTuple (string)strHtuple (char*)

Type of the calibration setup.

Default: 'calibration_object'"calibration_object"
List of values: 'calibration_object', 'hand_eye_moving_cam', 'hand_eye_scara_moving_cam', 'hand_eye_scara_stationary_cam', 'hand_eye_stationary_cam'"calibration_object", "hand_eye_moving_cam", "hand_eye_scara_moving_cam", "hand_eye_scara_stationary_cam", "hand_eye_stationary_cam"

NumCamerasnumCamerasnum_cameras (input_control) number → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Number of cameras in the calibration setup.

Default: 11
Restriction: NumCameras >= 0

NumCalibObjectsnumCalibObjectsnum_calib_objects (input_control) number → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Number of calibration objects.

Default: 11
Restriction: NumCalibObjects >= 0

CalibDataIDcalibDataIDcalib_data_id (output_control) calib_data → (handle)HTuple (HHandle)HCalibData, HTuple (IntPtr)HHandleHtuple (handle)

Handle of the created calibration data model.

Combinations with other operators🔗

Combinations

Possible successors

set_calib_data_cam_paramSetCalibDataCamParam, set_calib_data_calib_objectSetCalibDataCalibObject

Module🔗

Calibration