create_calib_dataT_create_calib_dataCreateCalibDataCreateCalibDatacreate_calib_data (Operator)

Name

create_calib_dataT_create_calib_dataCreateCalibDataCreateCalibDatacreate_calib_data — Create a HALCON calibration data model.

Signature

create_calib_data( : : CalibSetup, NumCameras, NumCalibObjects : CalibDataID)

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

void CreateCalibData(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)

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)

static void HOperatorSet.CreateCalibData(HTuple calibSetup, HTuple numCameras, HTuple numCalibObjects, out HTuple calibDataID)

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

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

def create_calib_data(calib_setup: str, num_cameras: int, num_calib_objects: int) -> HHandle

Description

The operator create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibDatacreate_calib_data creates a generic calibration data model that stores

In the parameter CalibSetupCalibSetupCalibSetupCalibSetupcalibSetupcalib_setup, you specify the calibration setup type. Currently, five types are supported. A model of the type 'calibration_object'"calibration_object""calibration_object""calibration_object""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_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam", 'hand_eye_stationary_cam'"hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam", 'hand_eye_scara_moving_cam'"hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam", or 'hand_eye_scara_stationary_cam'"hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""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.

NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras specifies the number of cameras that are calibrated simultaneously in the setup. NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_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 (NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects=1). For hand-eye calibrations, only two setups are currently supported: either one area scan projective camera and one calibration object (NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras=1, NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects=1) or a general sensor with no calibration object (NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras=0, NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects=0).

CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataIDcalib_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_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras, 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 reference Calibration. For hand-eye calibrations, you pass it to calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye, 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_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye.

Execution Information

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

CalibSetupCalibSetupCalibSetupCalibSetupcalibSetupcalib_setup (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Type of the calibration setup.

Default value: 'calibration_object' "calibration_object" "calibration_object" "calibration_object" "calibration_object" "calibration_object"

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

NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Number of cameras in the calibration setup.

Default value: 1

Restriction: NumCameras >= 0

NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Number of calibration objects.

Default value: 1

Restriction: NumCalibObjects >= 0

CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataIDcalib_data_id (output_control)  calib_data HCalibData, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the created calibration data model.

Possible Successors

set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParamset_calib_data_cam_param, set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObjectSetCalibDataCalibObjectset_calib_data_calib_object

Module

Calibration