get_calib_dataT_get_calib_dataGetCalibDataGetCalibData (Operator)

Name

get_calib_dataT_get_calib_dataGetCalibDataGetCalibData — Query data stored or computed in a calibration data model.

Signature

get_calib_data( : : CalibDataID, ItemType, ItemIdx, DataName : DataValue)

Herror T_get_calib_data(const Htuple CalibDataID, const Htuple ItemType, const Htuple ItemIdx, const Htuple DataName, Htuple* DataValue)

void GetCalibData(const HTuple& CalibDataID, const HTuple& ItemType, const HTuple& ItemIdx, const HTuple& DataName, HTuple* DataValue)

HTuple HCalibData::GetCalibData(const HString& ItemType, const HTuple& ItemIdx, const HTuple& DataName) const

HTuple HCalibData::GetCalibData(const HString& ItemType, Hlong ItemIdx, const HString& DataName) const

HTuple HCalibData::GetCalibData(const char* ItemType, Hlong ItemIdx, const char* DataName) const

HTuple HCalibData::GetCalibData(const wchar_t* ItemType, Hlong ItemIdx, const wchar_t* DataName) const   (Windows only)

static void HOperatorSet.GetCalibData(HTuple calibDataID, HTuple itemType, HTuple itemIdx, HTuple dataName, out HTuple dataValue)

HTuple HCalibData.GetCalibData(string itemType, HTuple itemIdx, HTuple dataName)

HTuple HCalibData.GetCalibData(string itemType, int itemIdx, string dataName)

Description

With the operator get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibData, you can query data of the calibration data model CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID.

Note that in the following, all 'pose'-related data are given in relation to the coordinate system of the model's reference camera, which can be set with set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData and queried with get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibData. By default, the first camera (camera index 0) is used as reference camera.

The calibration data model contains various kinds of data. How to query specific data of the calibration data model is described for different categories of data:

Before we describe the individual data you can query in detail, we provide you with an overview on which data is available after the individual steps of the calibration processes. When calibrating cameras or a hand-eye system, several operators are called that step by step fill the calibration data model with content. In the following, for each operator a table lists the data that is added to the model. Additionally, you find information about the combinations of the values for ItemTypeItemTypeItemTypeItemTypeitemType, ItemIdxItemIdxItemIdxItemIdxitemIdx, and DataNameDataNameDataNameDataNamedataName that are needed to query the information with get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibData. For the different indices that are used within the tables the following abbreviations (or potential variable names) are used:

Detailed descriptions of the data that can be queried can then be found in the specific sections that handle the different categories of data individually.

To get detailed information about the calibration process of your camera setup see the chapter reference Calibration.

Content of calibration data model when calibrating cameras

create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Type of the calibration data model 'model'"model""model""model""model" 'general'"general""general""general""general" 'type'"type""type""type""type"
Number of cameras 'model'"model""model""model""model" 'general'"general""general""general""general" 'num_cameras'"num_cameras""num_cameras""num_cameras""num_cameras"
Number of calibration objects 'model'"model""model""model""model" 'general'"general""general""general""general" 'num_calib_objs'"num_calib_objs""num_calib_objs""num_calib_objs""num_calib_objs"
set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParam:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Camera types 'camera'"camera""camera""camera""camera" CameraIdx 'type'"type""type""type""type"
Initial internal camera parameters 'camera'"camera""camera""camera""camera" CameraIdx 'init_params'"init_params""init_params""init_params""init_params"
set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObjectSetCalibDataCalibObject:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Numbers of calibration marks of the calibration objects 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" CalibObjIdx 'num_marks'"num_marks""num_marks""num_marks""num_marks"
Coordinates of the calibration marks of the calibration objects relative to their calibration object coordinate systems 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" CalibObjIdx 'x'"x""x""x""x", 'y'"y""y""y""y", 'z'"z""z""z""z"

For standard HALCON calibration plates, further calibration plate specific information is added to the model, which is not accessible with get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibData but can be obtained directly from the corresponding calibration plate description files instead (for details about the description files see create_caltabcreate_caltabCreateCaltabCreateCaltabCreateCaltab for a calibration plate with hexagonally arranged marks and gen_caltabgen_caltabGenCaltabGenCaltabGenCaltab for a calibration plate with rectangularly arranged marks).

find_calib_objectfind_calib_objectFindCalibObjectFindCalibObjectFindCalibObject (for standard HALCON calibration plates):
Data added to the model accessible with
Observed image coordinates of the calibration marks get_calib_data_observ_pointsget_calib_data_observ_pointsGetCalibDataObservPointsGetCalibDataObservPointsGetCalibDataObservPoints
Observed contours of the calibration marks get_calib_data_observ_contoursget_calib_data_observ_contoursGetCalibDataObservContoursGetCalibDataObservContoursGetCalibDataObservContours
Observed poses of the calibration plate relative to the camera coordinate system get_calib_data_observ_poseget_calib_data_observ_poseGetCalibDataObservPoseGetCalibDataObservPoseGetCalibDataObservPose or get_calib_data_observ_pointsget_calib_data_observ_pointsGetCalibDataObservPointsGetCalibDataObservPointsGetCalibDataObservPoints
set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPointsSetCalibDataObservPoints (for other calibration objects than the HALCON calibration plates):
Data added to the model accessible with
Observed image coordinates of the calibration marks get_calib_data_observ_pointsget_calib_data_observ_pointsGetCalibDataObservPointsGetCalibDataObservPointsGetCalibDataObservPoints
set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Reference camera 'model'"model""model""model""model" 'general'"general""general""general""general" 'reference_camera'"reference_camera""reference_camera""reference_camera""reference_camera"
Internal and external camera parameters to calibrate 'camera'"camera""camera""camera""camera" 'general'"general""general""general""general" or CameraIdx 'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings"
Internal and external camera parameters to be excluded from the calibration 'camera'"camera""camera""camera""camera" 'general'"general""general""general""general" or CameraIdx 'excluded_settings'"excluded_settings""excluded_settings""excluded_settings""excluded_settings"
Calibration object pose settings to be optimized 'calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose" 'general'"general""general""general""general" or [CalibObjIdx, CalibObjPoseIdx] 'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings"
Calibration object pose settings to be excluded from the calibration 'calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose" 'general'"general""general""general""general" or [CalibObjIdx, CalibObjPoseIdx] 'excluded_settings'"excluded_settings""excluded_settings""excluded_settings""excluded_settings"
calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Camera setup model (needed for multi-view stereo reconstruction) 'model'"model""model""model""model" 'general'"general""general""general""general" 'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model"
Optimized internal camera parameters 'camera'"camera""camera""camera""camera" CameraIdx 'params'"params""params""params""params"
Standard deviations of the optimized internal camera parameters 'camera'"camera""camera""camera""camera" CameraIdx 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations"
Covariance matrices of the optimized internal camera parameters 'camera'"camera""camera""camera""camera" CameraIdx 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances"
Labels for the internal camera parameters 'camera'"camera""camera""camera""camera" CameraIdx 'params_labels'"params_labels""params_labels""params_labels""params_labels"
Initial external camera parameters (camera poses) 'camera'"camera""camera""camera""camera" CameraIdx 'init_pose'"init_pose""init_pose""init_pose""init_pose"
Optimized external camera parameters (camera poses) 'camera'"camera""camera""camera""camera" CameraIdx 'pose'"pose""pose""pose""pose"
Labels for the external camera parameters (camera poses) 'camera'"camera""camera""camera""camera" CameraIdx 'pose_labels'"pose_labels""pose_labels""pose_labels""pose_labels"
Initial calibration object poses 'calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose" [CalibObjIdx, CalibObjPoseIdx] 'init_pose'"init_pose""init_pose""init_pose""init_pose"
Optimized calibration object poses 'calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose" [CalibObjIdx, CalibObjPoseIdx] 'pose'"pose""pose""pose""pose"
Labels for the calibration object pose parameters 'calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose" [CalibObjIdx, CalibObjPoseIdx] 'pose_labels'"pose_labels""pose_labels""pose_labels""pose_labels"

Content of calibration data model when performing hand-eye calibration

create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData:

See the section 'Content of calibration data model when calibrating cameras'.

set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Optimization method 'model'"model""model""model""model" 'general'"general""general""general""general" 'optimization_method'"optimization_method""optimization_method""optimization_method""optimization_method"
Poses of the robot tool in robot base coordinates 'tool'"tool""tool""tool""tool" CalibObjPoseIdx 'tool_in_base_pose'"tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose"
set_calib_data_observ_poseset_calib_data_observ_poseSetCalibDataObservPoseSetCalibDataObservPoseSetCalibDataObservPose (observations obtained by 3D sensors):
Data added to the model accessible with
Observed calibration object poses get_calib_data_observ_poseget_calib_data_observ_poseGetCalibDataObservPoseGetCalibDataObservPoseGetCalibDataObservPose

set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParam, set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObjectSetCalibDataCalibObject, and find_calib_objectfind_calib_objectFindCalibObjectFindCalibObjectFindCalibObject or set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPointsSetCalibDataObservPoints (observations obtained by cameras):

See the section 'Content of calibration data model when calibrating cameras'.

calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye:

Moving camera scenario:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Pose of robot tool in camera coordinate system 'camera'"camera""camera""camera""camera" 0 'tool_in_cam_pose'"tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose"
Pose of calibration object in robot base coordinate system 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" 0 'obj_in_base_pose'"obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose"
Standard deviations of the Pose of the robot tool in camera coordinate system 'camera'"camera""camera""camera""camera" 0 'tool_in_cam_pose_deviations'"tool_in_cam_pose_deviations""tool_in_cam_pose_deviations""tool_in_cam_pose_deviations""tool_in_cam_pose_deviations"
Covariance matrices of the Pose of the robot tool in camera coordinate system 'camera'"camera""camera""camera""camera" 0 'tool_in_cam_pose_covariances'"tool_in_cam_pose_covariances""tool_in_cam_pose_covariances""tool_in_cam_pose_covariances""tool_in_cam_pose_covariances"
Standard deviations of the Pose of the calibration object in robot base coordinate system 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" 0 'obj_in_base_pose_deviations'"obj_in_base_pose_deviations""obj_in_base_pose_deviations""obj_in_base_pose_deviations""obj_in_base_pose_deviations"
Covariance matrices of the Pose of the calibration object in robot base coordinate system 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" 0 'obj_in_base_pose_covariances'"obj_in_base_pose_covariances""obj_in_base_pose_covariances""obj_in_base_pose_covariances""obj_in_base_pose_covariances"
Stationary camera scenario:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Pose of robot base in camera coordinate system 'camera'"camera""camera""camera""camera" 0 'base_in_cam_pose'"base_in_cam_pose""base_in_cam_pose""base_in_cam_pose""base_in_cam_pose"
Pose of calibration object in robot tool coordinate system 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" 0 'obj_in_tool_pose'"obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose"
Standard deviations of the Pose of the robot base in camera coordinate system 'camera'"camera""camera""camera""camera" 0 'base_in_cam_pose_deviations'"base_in_cam_pose_deviations""base_in_cam_pose_deviations""base_in_cam_pose_deviations""base_in_cam_pose_deviations"
Covariance matrices of the Pose of the robot base in camera coordinate system 'camera'"camera""camera""camera""camera" 0 'base_in_cam_pose_covariances'"base_in_cam_pose_covariances""base_in_cam_pose_covariances""base_in_cam_pose_covariances""base_in_cam_pose_covariances"
Standard deviations of the Pose of the calibration object in robot tool coordinate system 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" 0 'obj_in_tool_pose_deviations'"obj_in_tool_pose_deviations""obj_in_tool_pose_deviations""obj_in_tool_pose_deviations""obj_in_tool_pose_deviations"
Covariance matrices of the Pose of the calibration object in robot tool coordinate system 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" 0 'obj_in_tool_covariances'"obj_in_tool_covariances""obj_in_tool_covariances""obj_in_tool_covariances""obj_in_tool_covariances"
Both hand-eye scenarios:
Data added to the model ItemTypeItemTypeItemTypeItemTypeitemType ItemIdxItemIdxItemIdxItemIdxitemIdx DataNameDataNameDataNameDataNamedataName
Calibrated poses of the calibration object in camera coordinate system (not available for SCARA robots) 'calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose" [0, CalibObjPoseIdx] 'pose'"pose""pose""pose""pose"
Root mean square error (RMSE) of the back projection after the optimization of the camera system 'model'"model""model""model""model" 'general'"general""general""general""general" 'camera_calib_error'"camera_calib_error""camera_calib_error""camera_calib_error""camera_calib_error"
Pose error of the complete chain of transformations 'model'"model""model""model""model" 'general'"general""general""general""general" 'hand_eye_calib_error'"hand_eye_calib_error""hand_eye_calib_error""hand_eye_calib_error""hand_eye_calib_error"
Camera setup model (needed for multi-view stereo reconstruction) 'model'"model""model""model""model" 'general'"general""general""general""general" 'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model"

The following sections describe the parameters for the specific categories of data in more detail.

Model-related data

ItemTypeItemTypeItemTypeItemTypeitemType='model'"model""model""model""model":

ItemIdxItemIdxItemIdxItemIdxitemIdx must be set to 'general'"general""general""general""general".

Depending on the selection in DataNameDataNameDataNameDataNamedataName, the following model-related data is then returned in DataValueDataValueDataValueDataValuedataValue:

'type'"type""type""type""type":

Type of the calibration data model. Currently, the five types 'calibration_object'"calibration_object""calibration_object""calibration_object""calibration_object", 'hand_eye_stationary_cam'"hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam", 'hand_eye_moving_cam'"hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_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", and '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" are supported.

'reference_camera'"reference_camera""reference_camera""reference_camera""reference_camera":

Index of the reference camera for the calibration model. All poses stored in the calibration data model are specified in the coordinate system of this reference camera.

'num_cameras'"num_cameras""num_cameras""num_cameras""num_cameras":

Number of cameras in the calibration data model (see create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData).

'num_calib_objs'"num_calib_objs""num_calib_objs""num_calib_objs""num_calib_objs":

Number of calibration objects in the calibration data model (see create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData).

'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model":

A handle to a camera setup model containing the poses and the internal parameters for the calibrated cameras from the current calibration setup.

'camera_calib_error'"camera_calib_error""camera_calib_error""camera_calib_error""camera_calib_error":

The root mean square error (RMSE) of the back projection of the optimization of the camera system. Typically, this error is queried after a hand eye calibration (calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye) was performed, where internally the camera system is calibrated without returning the error of the camera calibration. The returned error is identical to the error returned by calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras.

'hand_eye_calib_error'"hand_eye_calib_error""hand_eye_calib_error""hand_eye_calib_error""hand_eye_calib_error":

After a successful hand_eye calibration, the pose error of the complete chain of transformations is returned. To be more precise, a tuple with four elements is returned, where the first element is the root-mean-square error of the translational part, the second element is the root-mean-square error of the rotational part, the third element is the maximum translational error and the fourth element is the maximum rotational error. The returned errors are identical to the errors returned by calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye.

'optimization_method'"optimization_method""optimization_method""optimization_method""optimization_method":

Optimization method that was set for the hand-eye calibration (see set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData).

The parameters 'reference_camera'"reference_camera""reference_camera""reference_camera""reference_camera" and 'optimization_method'"optimization_method""optimization_method""optimization_method""optimization_method" can be set with set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData. The other parameters are set during the model creation or are a result of the calibration process and cannot be modified.

Camera-related data

ItemTypeItemTypeItemTypeItemTypeitemType='camera'"camera""camera""camera""camera":

ItemIdxItemIdxItemIdxItemIdxitemIdx determines, if data is queried for all cameras in general or for a specific camera. With ItemIdxItemIdxItemIdxItemIdxitemIdx='general'"general""general""general""general", the default value of a parameter for all cameras is returned. In contrast, if you pass a valid camera index instead, i.e., a number between 0 and NumCameras-1 (NumCameras is specified during model creation with create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData), only the parameter value of the specified camera is returned.

By selecting the following parameters in DataNameDataNameDataNameDataNamedataName, you can query which camera parameters are (or have been) optimized during the calibration performed by calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras:

'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings":

List of the camera parameters that are marked for calibration.

'excluded_settings'"excluded_settings""excluded_settings""excluded_settings""excluded_settings":

List of camera parameters that are excluded from the calibration.

These parameters can be modified by a corresponding call to set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData.

The following parameters can only be queried for a specific camera, i.e., you must pass a valid camera index in ItemIdxItemIdxItemIdxItemIdxitemIdx:

'type'"type""type""type""type":

The camera type that was set with set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParam.

'init_params'"init_params""init_params""init_params""init_params":

Initial internal camera parameters (set with set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParam).

'params'"params""params""params""params":

Optimized internal camera parameters.

'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations":

Standard deviations of the optimized camera parameters, as estimated at the end of the camera calibration. Note that if the tuple returned for 'params'"params""params""params""params" contains elements, the tuple returned for 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations" contains elements since the camera parameter tuple contains the camera type in the first element of the tuple, whereas the tuple returned for 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations" does not contain the camera type.

'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances":

Covariance matrix of the optimized camera parameters, as estimated at the end of the camera calibration. Note that if the tuple returned for 'params'"params""params""params""params" contains elements, the tuple returned for 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances" contains elements since the camera parameter tuple contains the camera type in the first element of the tuple, whereas the tuple returned for 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances" does not contain the camera type.

'params_labels'"params_labels""params_labels""params_labels""params_labels":

A convenience list of labels for the entries returned by 'params'"params""params""params""params". This list is camera-type specific. Note that this list contains the label 'camera_type'"camera_type""camera_type""camera_type""camera_type" in its first position. If the first element of the tuple is removed, the list refers to the labels of 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations" and the labels of the rows and columns of 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances".

'init_pose'"init_pose""init_pose""init_pose""init_pose":

Initial camera pose, relative to the current reference camera. It is computed internally based on observation poses during the calibration process (see Calibration).

'pose'"pose""pose""pose""pose":

Optimized camera pose, relative to the current reference camera. If one single telecentric camera is calibrated, the translation along the z-axis is set to the value 0.0. If more than one telecentric camera is calibrated, the camera poses are moved in direction of their z-axis until they all lie on a sphere centered at the first observed calibration plate. The radius of the sphere corresponds to the longest distance of a camera to the first observed calibration plate. If this calculated distance is smaller than 1 m, the radius is set to 1 m.

'pose_labels'"pose_labels""pose_labels""pose_labels""pose_labels":

A convenience list of labels for the entries returned by 'pose'"pose""pose""pose""pose".

The calibrated camera parameters ('params'"params""params""params""params" and 'pose'"pose""pose""pose""pose") can be queried only after a successful execution of calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras. The initial internal camera parameters 'init_params'"init_params""init_params""init_params""init_params" can be queried after a successful call to set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParam.

Data related to calibration objects

ItemTypeItemTypeItemTypeItemTypeitemType='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj":

ItemIdxItemIdxItemIdxItemIdxitemIdx must be set to a valid calibration object index (number between 0 and NumCalibObjects-1). NumCalibObjects is specified during the model creation with create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData.

The following parameters can be queried with DataNameDataNameDataNameDataNamedataName and are returned in DataValueDataValueDataValueDataValuedataValue:

'num_marks'"num_marks""num_marks""num_marks""num_marks":

Number of calibration marks of the calibration object.

'x'"x""x""x""x", 'y'"y""y""y""y", 'z'"z""z""z""z":

Coordinates of the calibration marks relative to the calibration object coordinate system.

These parameters can be modified with set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObjectSetCalibDataCalibObject.

Data related to calibration object poses

ItemTypeItemTypeItemTypeItemTypeitemType='calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose":

ItemIdxItemIdxItemIdxItemIdxitemIdx determines, if data is queried for all calibration object poses in general or for a specific calibration object pose. With ItemIdxItemIdxItemIdxItemIdxitemIdx='general'"general""general""general""general", the default value of a parameter for all calibration object poses is returned. In contrast, if you pass a valid calibration object index instead, i.e., a tuple containing a valid index pair [CalibObjIdx, CalibObjPoseIdx], only the parameter value of the specified calibration object pose is returned.

By selecting the following parameters in DataNameDataNameDataNameDataNamedataName, you can query which calibration object pose parameters are (or have been) optimized during the calibration performed by calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras:

'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings":

List of calibration object pose parameters marked for calibration.

'excluded_settings'"excluded_settings""excluded_settings""excluded_settings""excluded_settings":

List of calibration object pose parameters excluded from calibration.

These parameters can be set with set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData.

The following parameters can only be queried for a specific calibration object pose, i.e., you must pass a valid index pair [CalibObjIdx, CalibObjPoseIdx] in ItemIdxItemIdxItemIdxItemIdxitemIdx:

'init_pose'"init_pose""init_pose""init_pose""init_pose":

Initial calibration object pose. It is computed internally based on observation poses during the calibration process (see Calibration). This pose is relative to the current reference camera.

'pose'"pose""pose""pose""pose":

Optimized calibration object pose, relative to current reference camera.

'pose_labels'"pose_labels""pose_labels""pose_labels""pose_labels":

A convenience list of labels for the entries returned by 'pose'"pose""pose""pose""pose".

These parameters cannot be explicitly modified and can only be queried after calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras was executed.

Hand-eye calibration related data

After performing a successful hand-eye calibration using calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye, the following poses can be queried for a calibration data 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_scara_moving_cam'"hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam":

For ItemTypeItemTypeItemTypeItemTypeitemType='camera'"camera""camera""camera""camera" and DataNameDataNameDataNameDataNamedataName='tool_in_cam_pose'"tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose", the pose of the robot tool in the camera coordinate system is returned in DataValueDataValueDataValueDataValuedataValue. For ItemTypeItemTypeItemTypeItemTypeitemType='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" and DataNameDataNameDataNameDataNamedataName='obj_in_base_pose'"obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose", the pose of the calibration object in the robot base coordinate system is returned in DataValueDataValueDataValueDataValuedataValue.

Note that when calibrating SCARA robots, it is not possible to determine the Z translation of 'obj_in_base_pose'. To eliminate this ambiguity the Z translation 'obj_in_base_pose' is internally set to 0.0 and the 'tool_in_cam_pose' is calculated accordingly. It is necessary to determine the true translation in Z after the calibration (see calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye).

The standard deviations and the covariance matrices of the 6 pose parameters of both poses can be queried with 'tool_in_cam_pose_deviations'"tool_in_cam_pose_deviations""tool_in_cam_pose_deviations""tool_in_cam_pose_deviations""tool_in_cam_pose_deviations", 'tool_in_cam_pose_covariances'"tool_in_cam_pose_covariances""tool_in_cam_pose_covariances""tool_in_cam_pose_covariances""tool_in_cam_pose_covariances" (ItemTypeItemTypeItemTypeItemTypeitemType='camera'"camera""camera""camera""camera"), 'obj_in_base_pose_deviations'"obj_in_base_pose_deviations""obj_in_base_pose_deviations""obj_in_base_pose_deviations""obj_in_base_pose_deviations", and 'obj_in_base_pose_covariances'"obj_in_base_pose_covariances""obj_in_base_pose_covariances""obj_in_base_pose_covariances""obj_in_base_pose_covariances" (ItemTypeItemTypeItemTypeItemTypeitemType='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj"). Like poses, they are specified in the units [m] and [°].

'hand_eye_stationary_cam'"hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_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":

For ItemTypeItemTypeItemTypeItemTypeitemType='camera'"camera""camera""camera""camera" and DataNameDataNameDataNameDataNamedataName='base_in_cam_pose'"base_in_cam_pose""base_in_cam_pose""base_in_cam_pose""base_in_cam_pose", the pose of the robot base in the camera coordinate system is returned in DataValueDataValueDataValueDataValuedataValue. For ItemTypeItemTypeItemTypeItemTypeitemType='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj" and DataNameDataNameDataNameDataNamedataName='obj_in_tool_pose'"obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose", the pose of the calibration object in the robot tool coordinate system is returned in DataValueDataValueDataValueDataValuedataValue.

Note that when calibrating SCARA robots, it is not possible to determine the Z translation of 'obj_in_tool_pose'. To eliminate this ambiguity the Z translation of 'obj_in_tool_pose' is internally set to 0.0 and the 'base_in_cam_pose' is calculated accordingly. It is necessary to determine the true translation in Z after the calibration (see calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye).

The standard deviations and the covariance matrices of the 6 pose parameters of both poses can be queried with 'base_in_cam_pose_deviations'"base_in_cam_pose_deviations""base_in_cam_pose_deviations""base_in_cam_pose_deviations""base_in_cam_pose_deviations", 'base_in_cam_pose_covariances'"base_in_cam_pose_covariances""base_in_cam_pose_covariances""base_in_cam_pose_covariances""base_in_cam_pose_covariances" (ItemTypeItemTypeItemTypeItemTypeitemType='camera'"camera""camera""camera""camera"), 'obj_in_tool_pose_deviations'"obj_in_tool_pose_deviations""obj_in_tool_pose_deviations""obj_in_tool_pose_deviations""obj_in_tool_pose_deviations", and 'obj_in_tool_pose_covariances'"obj_in_tool_pose_covariances""obj_in_tool_pose_covariances""obj_in_tool_pose_covariances""obj_in_tool_pose_covariances" (ItemTypeItemTypeItemTypeItemTypeitemType='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj"). Like poses, they are specified in the units [m] and [°].

For ItemTypeItemTypeItemTypeItemTypeitemType='tool'"tool""tool""tool""tool" and DataNameDataNameDataNameDataNamedataName='tool_in_base_pose'"tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose", the pose of the robot tool in the robot base coordinate system with Index ItemIdxItemIdxItemIdxItemIdxitemIdx is returned in DataValueDataValueDataValueDataValuedataValue These poses were previously set using set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData and served as input for the hand-eye calibration algorithm.

Execution Information

Parameters

CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID (input_control)  calib_data HCalibData, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of a calibration data model.

ItemTypeItemTypeItemTypeItemTypeitemType (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Type of calibration data item.

Default value: 'camera' "camera" "camera" "camera" "camera"

List of values: 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj", 'calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose", 'camera'"camera""camera""camera""camera", 'model'"model""model""model""model", 'tool'"tool""tool""tool""tool"

ItemIdxItemIdxItemIdxItemIdxitemIdx (input_control)  integer(-array) HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Index of the affected item (depending on the selected ItemTypeItemTypeItemTypeItemTypeitemType).

Default value: 0

Suggested values: 0, 1, 2, 'general'"general""general""general""general"

DataNameDataNameDataNameDataNamedataName (input_control)  attribute.name(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

The name of the inspected data.

Default value: 'params' "params" "params" "params" "params"

List of values: 'base_in_cam_pose'"base_in_cam_pose""base_in_cam_pose""base_in_cam_pose""base_in_cam_pose", 'base_in_cam_pose_covariances'"base_in_cam_pose_covariances""base_in_cam_pose_covariances""base_in_cam_pose_covariances""base_in_cam_pose_covariances", 'base_in_cam_pose_deviations'"base_in_cam_pose_deviations""base_in_cam_pose_deviations""base_in_cam_pose_deviations""base_in_cam_pose_deviations", 'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings", 'camera_calib_error'"camera_calib_error""camera_calib_error""camera_calib_error""camera_calib_error", 'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model", 'excluded_settings'"excluded_settings""excluded_settings""excluded_settings""excluded_settings", 'hand_eye_calib_error'"hand_eye_calib_error""hand_eye_calib_error""hand_eye_calib_error""hand_eye_calib_error", 'init_params'"init_params""init_params""init_params""init_params", 'init_pose'"init_pose""init_pose""init_pose""init_pose", 'num_calib_objs'"num_calib_objs""num_calib_objs""num_calib_objs""num_calib_objs", 'num_cameras'"num_cameras""num_cameras""num_cameras""num_cameras", 'num_marks'"num_marks""num_marks""num_marks""num_marks", 'obj_in_base_pose'"obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose", 'obj_in_base_pose_covariances'"obj_in_base_pose_covariances""obj_in_base_pose_covariances""obj_in_base_pose_covariances""obj_in_base_pose_covariances", 'obj_in_base_pose_deviations'"obj_in_base_pose_deviations""obj_in_base_pose_deviations""obj_in_base_pose_deviations""obj_in_base_pose_deviations", 'obj_in_tool_pose'"obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose", 'obj_in_tool_pose_covariances'"obj_in_tool_pose_covariances""obj_in_tool_pose_covariances""obj_in_tool_pose_covariances""obj_in_tool_pose_covariances", 'obj_in_tool_pose_deviations'"obj_in_tool_pose_deviations""obj_in_tool_pose_deviations""obj_in_tool_pose_deviations""obj_in_tool_pose_deviations", 'optimization_method'"optimization_method""optimization_method""optimization_method""optimization_method", 'params'"params""params""params""params", 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances", 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations", 'params_labels'"params_labels""params_labels""params_labels""params_labels", 'pose'"pose""pose""pose""pose", 'pose_labels'"pose_labels""pose_labels""pose_labels""pose_labels", 'reference_camera'"reference_camera""reference_camera""reference_camera""reference_camera", 'tool_in_base_pose'"tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose", 'tool_in_cam_pose'"tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose", 'tool_in_cam_pose_covariances'"tool_in_cam_pose_covariances""tool_in_cam_pose_covariances""tool_in_cam_pose_covariances""tool_in_cam_pose_covariances", 'tool_in_cam_pose_deviations'"tool_in_cam_pose_deviations""tool_in_cam_pose_deviations""tool_in_cam_pose_deviations""tool_in_cam_pose_deviations", 'type'"type""type""type""type", 'x'"x""x""x""x", 'y'"y""y""y""y", 'z'"z""z""z""z"

DataValueDataValueDataValueDataValuedataValue (output_control)  attribute.value(-array) HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Requested data.

Example (HDevelop)

* Get the camera type of camera 0.
get_calib_data (CalibDataID, 'camera', 0, 'type', CameraType)

* Get the optimized (calibrated) pose of pose 1 of the
* calibration object 2.
get_calib_data (CalibDataID, 'calib_obj_pose', [2,1], 'pose', CalobjPose)

Possible Predecessors

calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras, calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye, create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData, read_calib_dataread_calib_dataReadCalibDataReadCalibDataReadCalibData

Module

Calibration