get_calib_dataT_get_calib_dataGetCalibDataGetCalibDataget_calib_data (Operator)

Name

get_calib_dataT_get_calib_dataGetCalibDataGetCalibDataget_calib_data — Abfragen der Kalibrierdaten, -einstellungen und -ergebnisse eines Kalibrierdatenmodells.

Signatur

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   (Nur Windows)

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)

def get_calib_data(calib_data_id: HHandle, item_type: str, item_idx: MaybeSequence[Union[int, str]], data_name: MaybeSequence[str]) -> Sequence[Union[float, int, str]]

def get_calib_data_s(calib_data_id: HHandle, item_type: str, item_idx: MaybeSequence[Union[int, str]], data_name: MaybeSequence[str]) -> Union[float, int, str]

Beschreibung

Mit dem Operator get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibDataget_calib_data können Kalibrierdaten aus dem Kalibrierdatenmodell CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataIDcalib_data_id abgefragt werden.

Es ist zu beachten, dass im Folgenden alle 3D-Pose-Ergebnisse relativ zur Referenzkamera des Modells zurückgegeben werden. Die Referenzkamera wird mit dem Operator set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibDataset_calib_data eingestellt und mit dem Operator get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibDataget_calib_data abgefragt. Standardmäßig wird die erste Kamera (Kameraindex 0) als Referenzkamera benutzt.

Das Kalibrierdatenmodell beinhaltet verschiedene Arten von Daten. Wie die einzelnen Daten abgefragt werden, wird für verschiedene Kategorien von Daten beschrieben:

Bevor die einzelnen abzufragenden Daten im Detail beschrieben werden, erfolgt eine Übersicht über die Daten, die nach den jeweiligen Schritten der Kalibrierprozesse im Modell verfügbar sind. Werden Kameras oder Hand-Auge-Systeme kalibriert, werden verschiedene Operatoren aufgerufen, die Schritt für Schritt das Kalibrierdatenmodell mit Inhalt füllen. Im Folgenden wird pro Prozess für jeden Operator tabellarisch aufgelistet, welche Daten dem Modell hinzugefügt werden und wie die Werte für ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type, ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx und DataNameDataNameDataNameDataNamedataNamedata_name kombiniert werden müssen, um die Information mit get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibDataget_calib_data wieder abzurufen. Für die verschiedenen Indices in den Tabellen werden folgende Abkürzungen bzw. mögliche Variablennamen benutzt:

Detailliertere Beschreibungen zu den abzufragenden Daten finden sich dann in den Abschnitten zu den jeweiligen Datenkategorien.

Ausführliche Informationen über den Kalibriervorgang von Kameraaufbauten befinden sich im Kapitel Kalibrierung.

Inhalt des Kalibrierdatenmodells während der Kamerakalibrierung

Für jeden Operator, der das Kalibrierdatenmodell erweitert, wird im Folgenden eine Tabelle angegeben, um einen Überblick über die entsprechenden Daten zu geben:

Für Standard-HALCON-Kalibrierplatten werden dem Modell noch weitere Kalibrierplatten-spezifische Informationen zugefügt, die nicht über get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibDataget_calib_data abgerufen werden können, aber direkt aus der jeweiligen Kalibrierkörperbeschreibungsdatei entnommen werden können (für Details zu den Kalibrierkörperbeschreibungsdateien siehe die Beschreibung von create_caltabcreate_caltabCreateCaltabCreateCaltabCreateCaltabcreate_caltab für eine Kalibrierplatte mit hexagonal angeordneten Kalibriermarken und gen_caltabgen_caltabGenCaltabGenCaltabGenCaltabgen_caltab für eine Kalibrierplatte mit rechtwinklig angeordneten Kalibriermarken).

Inhalt des Kalibrierdatenmodells während der Hand-Auge-Kalibrierung

Für jeden Operator, der das Kalibrierdatenmodell während der Hand-Auge-Kalibrierung erweitert, wird im Folgenden eine Tabelle angegeben, um einen Überblick über die entsprechenden Daten zu geben:

Die folgenden Abschnitte beschreiben die Parameter für die spezifischen Datenkategorien im Detail.

Modelldaten

ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='model'"model""model""model""model""model":

ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx muss auf den Wert 'general'"general""general""general""general""general" gesetzt werden.

Die folgenden Modelldaten werden im Parameter DataValueDataValueDataValueDataValuedataValuedata_value je nach der Auswahl im Parameter DataNameDataNameDataNameDataNamedataNamedata_name zurückgegeben:

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

Generischer Typ des Kalibrierdatenmodells. Derzeit werden die fünf Typen '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_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" und '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" unterstützt.

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

Referenzkamera für das Kalibrierdatenmodell. Alle 3D-Posen, sowohl für die Kameras, als auch für die Kalibrierkörper, werden relativ zu diesem Kamerakoordinatensystem ausgegeben.

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

Anzahl von Kameras im Kalibrierdatenmodell (siehe create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibDatacreate_calib_data).

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

Anzahl von Kalibriermarken im Kalibrierdatenmodell (siehe create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibDatacreate_calib_data).

'common_motion_vector'"common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector":

Für Stereosysteme, die Zeilenkameras mit telezentrischen Objektiven verwenden: ein String mit einem Booleschen Wert (d.h. 'true'"true""true""true""true""true" oder 'false'"false""false""false""false""false"), der festlegt, ob die Zeilenkameras einen gemeinsamen Bewegungsvektor besitzen.

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

Generiert ein neues Kameraaufbaumodell und kapselt eine Kopie der kalibrierten Kameraparameter und -posen darin.

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

Die Wurzel des mittleren quadratischen Rückprojektionsfehlers (RMSE) der Optimierung des Kamerasystems. Üblicherweise fragt man diesen Fehlerwert nach einer Hand-Auge-Kalibrierung (calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye) ab, da bei einer Hand-Auge-Kalibrierung intern eine Kamerakalibrierung durchgeführt wird und der Fehler dieser Kamerakalibrierung nicht zurückgegeben wird. Der zurückgegebene Fehlerwert ist identisch mit dem von calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras zurückgegebenen Wert.

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

Nach einer erfolgreichen Hand-Auge-Kalibrierung wird der Lagefehler über die komplette Transformationskette zurückgegeben. Genau genommen wird ein Tupel mit vier Elementen zurückgegeben, welches zuerst den mittleren, quadratischen Fehler der Translation, dann den mittleren, quadratischen Fehler der Rotation, an dritter Stelle den maximalen Fehler der Translation und schließlich an vierter Stelle den maximalen Fehler der Rotation angibt. Die zurückgegebenen Fehlerwerte sind identisch mit den von calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye zurückgegebenen Werten.

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

Optimierungsmethode, die für die Hand-Auge-Kalibrierung gesetzt wurde (siehe set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibDataset_calib_data).

Die Parameter 'reference_camera'"reference_camera""reference_camera""reference_camera""reference_camera""reference_camera", 'common_motion_vector'"common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector" und 'optimization_method'"optimization_method""optimization_method""optimization_method""optimization_method""optimization_method" können mit set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibDataset_calib_data gesetzt werden. Die anderen Parameter werden während der Modellgenerierung gesetzt oder sind Ergebnisse des Kalibrierungsprozesses und können nicht modifiziert werden.

Kameradaten

ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='camera'"camera""camera""camera""camera""camera":

ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx legt fest, ob generische Kameradaten oder Daten einzelner Kameras abgefragt werden. Mit ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx='general'"general""general""general""general""general" wird der Standardwert eines Parameter für alle Kameras zurückgegeben. Wenn im Gegensatz dazu ein gültiger Kameraindex, d.h. eine Zahl zwischen 0 und NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras-1 (NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras wurde bei der Erstellung des Modells mit create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibDatacreate_calib_data gesetzt), eingegeben wird, wird nur der Parameterwert für die ausgewählte Kamera zurückgegeben.

Beim Auswählen eines der folgenden Parameter in DataNameDataNameDataNameDataNamedataNamedata_name kann abgefragt werden, welche Kameraparameter für die Optimierung im Zuge der Kalibrierung mit calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras markiert, bzw. optimiert worden sind.

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

Zu optimierende Kameraparameter.

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

Von der Optimierung ausgeschlossene Kameraparameter.

Diese Einstellungen können mit einem entsprechenden Aufruf von set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibDataset_calib_data geändert werden.

Die folgenden Parameter können nur für einzelne Kameras abgefragt werden, d.h. ein gültiger Kameraindex muss in ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx übergeben werden:

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

Der Kameratyp, der mit set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParamset_calib_data_cam_param gesetzt wurde.

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

Initiale interne Kameraparameter (siehe set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParamset_calib_data_cam_param).

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

Optimierte interne Kameraparameter.

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

Standardabweichungen der optimierten Kameraparameter, berechnet am Ende der Kamerakalibrierung. Wenn das Tupel, das für 'params'"params""params""params""params""params" zurückgegeben wird, Elemente enthält, enthält das Tupel, das für 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations""params_deviations" zurückgegeben wird, Elemente, da der Kameratyp im ersten Element des Kameraparametertupels gespeichert wird, während dies bei'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations""params_deviations" nicht der Fall ist.

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

Kovarianzmatrix der optimierten Kameraparameter, berechnet am Schluss der Kamerakalibrierung. Wenn das Tupel, das für 'params'"params""params""params""params""params" zurückgegeben wird, Elemente enthält, enthält das Tupel, das für 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances""params_covariances" zurückgegeben wird, Elemente, da der Kameratyp im ersten Element des Kameraparametertupels gespeichert wird, während dies bei 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances""params_covariances" nicht der Fall ist.

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

Kameratyp-spezifische Liste mit den Namen einzelner Kameraparameter, die von 'params'"params""params""params""params""params" zurückgegeben wird. Diese Liste enthält den Wert 'camera_type'"camera_type""camera_type""camera_type""camera_type""camera_type" als erstes Element. Wenn das erste Element der Liste entfernt wird, bezieht sich die Liste von Namen auf 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations""params_deviations" und die Zeilen und Spalten von 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances""params_covariances".

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

Initiale externe Kameraparameter, berechnet am Anfang der Kamerakalibrierung (siehe auch Kalibrierung). Die zurückgegebene 3D-Pose ist relativ zur Referenzkamera.

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

Optimierte Kamerapose, relativ zur Referenzkamera. Bei Kalibrierung einer einzelnen telezentrischen Kamera wird die Translation in z-Richtung auf den Wert 0.0 gesetzt. Bei mehr als einer telezentrischen Kamera, werden die Kameraposen so lange entlang ihrer z-Achse verschoben, bis sie alle auf einer Kugel mit Zentrum in der ersten beobachteten Kalibrierplatte liegen. Der Radius der Kugel entspricht dabei dem größten Abstand einer Kamera zur ersten beobachteten Kalibrierplatte. Sollte dieser berechnete Abstand kleiner als 1 m sein, so wird der Radius auf 1 m gesetzt.

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

Liste mit den Namen einzelner Poseparameter.

Die kalibrierten Kameraparameter ('params'"params""params""params""params""params" und 'pose'"pose""pose""pose""pose""pose") können nur nach einem erfolgreichen Durchlauf von calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras abgerufen werden. Die initialen Kameraparameter 'init_params'"init_params""init_params""init_params""init_params""init_params" können nach einem erfolgreichen Durchlauf von set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParamset_calib_data_cam_param abgerufen werden.

Kalibrierkörperdaten

ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj""calib_obj":

ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx muss auf den Index des Kalibrierkörpers, für den die Daten abgerufen werden, gesetzt werden, d.h., auf eine Zahl zwischen 0 und NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects-1 (NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects wurde bei der Erstellung des Modells mit create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibDatacreate_calib_data gesetzt).

Die folgenden Kalibrierkörperdaten werden im Parameter DataValueDataValueDataValueDataValuedataValuedata_value je nach der Auswahl im Parameter DataNameDataNameDataNameDataNamedataNamedata_name zurückgegeben:

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

Anzahl der Kalibrierkörpermarken.

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

Koordinaten der Kalibrierkörpermarken.

Diese Parameter werden mit dem Operator set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObjectSetCalibDataCalibObjectset_calib_data_calib_object gesetzt.

Daten zu den Kalibrierkörperposen

ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose":

ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx legt fest, ob generische Einstellungen aller Kalibrierkörperposen oder Einstellungen einzelner Kalibrierkörperposen abgefragt werden. Mit ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx='general'"general""general""general""general""general" wird der Standardwert eines Parameters für alle Posen des Kalibrierkörpers zurückgegeben. Wenn im Gegensatz dazu ein gültiger Kalibrierkörperposeindex, d.h. ein Tupel mit gültigem Indexpaar [CalibObjIdx, CalibObjPoseIdx], eingegeben wird, wird nur der Parameterwert für die ausgewählte Kalibrierkörperpose zurückgegeben.

Beim Auswählen eines der folgenden Parameter in DataNameDataNameDataNameDataNamedataNamedata_name kann abgefragt werden, welche Kalibrierkörperposeparameter für die Optimierung markiert, bzw. optimiert worden sind.

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

Zu optimierende Poseparameter.

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

Von der Optimierung ausgeschlossene Poseparameter.

Diese Einstellungen können mit einem entsprechenden Aufruf von set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibDataset_calib_data geändert werden.

Die folgenden Parameter können nur für einzelne Posen eines Kalibrierkörpers abgefragt werden, d.h. ein gültiges Poseindexpaar [CalibObjIdx, CalibObjPoseIdx] muss in ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx eingegeben werden:

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

Initiale 3D-Pose des Kalibrierkörpers. Diese Pose wird anhand der Posen in den Beobachtungsdaten von diesem Körper am Anfang der Kalibrierung berechnet (siehe Kalibrierung). Die zurückgegebene 3D-Pose ist relativ zur Referenzkamera.

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

Optimierte 3D-Pose des Kalibrierkörpers relativ zur Referenzkamera.

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

Liste mit den Namen einzelner Poseparameter.

Diese Parameter können nicht geändert werden und sind erst nach der Kalibrierung mit calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras abfragbar.

Daten zur Hand-Auge-Kalibrierung

Nach einer erfolgreichen Hand-Auge-Kalibrierung mittels calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye, können je nach Modelltyp die folgenden Posen abgerufen werden:

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

Ist ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='camera'"camera""camera""camera""camera""camera" und DataNameDataNameDataNameDataNamedataNamedata_name='tool_in_cam_pose'"tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose" gesetzt, so wird die Pose des Robotertools in Kamerakoordinaten in DataValueDataValueDataValueDataValuedataValuedata_value zurückgegeben. Ist ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj""calib_obj" und DataNameDataNameDataNameDataNamedataNamedata_name='obj_in_base_pose'"obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose" gesetzt, so wird die Pose des Kalibrierkörpers in Roboterbasiskoordinaten in DataValueDataValueDataValueDataValuedataValuedata_value zurückgegeben.

Es ist zu beachten, dass die Z-Translation von 'obj_in_base_pose'"obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose" im Rahmen der Kalibrierung von SCARA-Robotern nicht eindeutig bestimmt werden kann. Um diese Mehrdeutigkeit aufzulösen, wird die Z-Translation von 'obj_in_base_pose'"obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose""obj_in_base_pose" intern auf 0.0 gesetzt und 'tool_in_cam_pose'"tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose""tool_in_cam_pose" entsprechend berechnet. Es ist notwendig, die tatsächliche Translation in Z nach der Kalibrierung zu bestimmen (siehe calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye).

Die Standardabweichungen und Kovarianzmatrizen der 6 Poseparameter beider Posen können mit '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_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""tool_in_cam_pose_covariances" (ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='camera'"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""obj_in_base_pose_deviations" und '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_covariances" (ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj""calib_obj") abgefragt werden. Wie die Poseparameter selbst werden auch diese in den Einheiten [m] und [°] angegeben.

'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_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":

Ist ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='camera'"camera""camera""camera""camera""camera" und DataNameDataNameDataNameDataNamedataNamedata_name='base_in_cam_pose'"base_in_cam_pose""base_in_cam_pose""base_in_cam_pose""base_in_cam_pose""base_in_cam_pose" gesetzt, so wird die Pose der Roboterbasis in Kamerakoordinaten in DataValueDataValueDataValueDataValuedataValuedata_value zurückgegeben. Ist ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj""calib_obj" und DataNameDataNameDataNameDataNamedataNamedata_name='obj_in_tool_pose'"obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose" gesetzt, so wird die Pose des Kalibrierkörpers in Toolkoordinaten in DataValueDataValueDataValueDataValuedataValuedata_value zurückgegeben.

Es ist zu beachten, dass die Z-Translation von 'obj_in_tool_pose'"obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose" im Rahmen der Kalibrierung von SCARA-Robotern nicht eindeutig bestimmt werden kann. Um diese Mehrdeutigkeit aufzulösen, wird die Z-Translation von 'obj_in_tool_pose'"obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose""obj_in_tool_pose" intern auf 0.0 gesetzt und 'base_in_cam_pose'"base_in_cam_pose""base_in_cam_pose""base_in_cam_pose""base_in_cam_pose""base_in_cam_pose" entsprechend berechnet. Es ist notwendig, die tatsächliche Translation in Z nach der Kalibrierung zu bestimmen (siehe calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye).

Die Standardabweichungen und Kovarianzmatrizen der 6 Poseparameter beider Posen können mit '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_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""base_in_cam_pose_covariances" (ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='camera'"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""obj_in_tool_pose_deviations" und '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_covariances" (ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj""calib_obj") abgefragt werden. Wie die Poseparameter selbst werden auch diese in den Einheiten [m] und [°] angegeben.

Setzt man ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='tool'"tool""tool""tool""tool""tool" und DataNameDataNameDataNameDataNamedataNamedata_name='tool_in_base_pose'"tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose", so wird die Pose des Robotertools mit Index ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx in Roboterbasiskoordinaten zurückgegeben. Diese Posen wurden vorher mit set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibDataset_calib_data gesetzt und dienten als Eingabedaten der Hand-Auge-Kalibrierung.

Ausführungsinformationen

Parameter

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

Handle des Kalibrierdatenmodells.

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

Typ des abgefragten Elements.

Defaultwert: 'camera' "camera" "camera" "camera" "camera" "camera"

Werteliste: 'calib_obj'"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""calib_obj_pose", 'camera'"camera""camera""camera""camera""camera", 'model'"model""model""model""model""model", 'tool'"tool""tool""tool""tool""tool"

ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx (input_control)  integer(-array) HTupleMaybeSequence[Union[int, str]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Index des abgefragten Elements (je nach Auswahl in ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type).

Defaultwert: 0

Wertevorschläge: 0, 1, 2, 'general'"general""general""general""general""general"

DataNameDataNameDataNameDataNamedataNamedata_name (input_control)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Name der abgefragten Daten.

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

Werteliste: 'base_in_cam_pose'"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_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""base_in_cam_pose_deviations", 'calib_settings'"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_calib_error", 'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model", 'common_motion_vector'"common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector", 'excluded_settings'"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""hand_eye_calib_error", 'init_params'"init_params""init_params""init_params""init_params""init_params", 'init_pose'"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_calib_objs", 'num_cameras'"num_cameras""num_cameras""num_cameras""num_cameras""num_cameras", 'num_marks'"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", '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_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_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", '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_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""obj_in_tool_pose_deviations", 'optimization_method'"optimization_method""optimization_method""optimization_method""optimization_method""optimization_method", 'params'"params""params""params""params""params", 'params_covariances'"params_covariances""params_covariances""params_covariances""params_covariances""params_covariances", 'params_deviations'"params_deviations""params_deviations""params_deviations""params_deviations""params_deviations", 'params_labels'"params_labels""params_labels""params_labels""params_labels""params_labels", 'pose'"pose""pose""pose""pose""pose", 'pose_labels'"pose_labels""pose_labels""pose_labels""pose_labels""pose_labels", 'reference_camera'"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_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", '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_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""tool_in_cam_pose_deviations", 'type'"type""type""type""type""type", 'x'"x""x""x""x""x", 'y'"y""y""y""y""y", 'z'"z""z""z""z""z"

DataValueDataValueDataValueDataValuedataValuedata_value (output_control)  attribute.value(-array) HTupleSequence[Union[float, int, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Werte der abgefragten Daten.

Beispiel (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)

Vorgänger

calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras, calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye, create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibDatacreate_calib_data, read_calib_dataread_calib_dataReadCalibDataReadCalibDataReadCalibDataread_calib_data

Modul

Calibration