set_calib_dataT_set_calib_dataSetCalibDataSetCalibData (Operator)

Name

set_calib_dataT_set_calib_dataSetCalibDataSetCalibData — Setzen von Parametern für das Kalibrierdatenmodell.

Signatur

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

Herror T_set_calib_data(const Htuple CalibDataID, const Htuple ItemType, const Htuple ItemIdx, const Htuple DataName, const Htuple DataValue)

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

void HCalibData::SetCalibData(const HString& ItemType, const HTuple& ItemIdx, const HString& DataName, const HTuple& DataValue) const

void HCalibData::SetCalibData(const HString& ItemType, Hlong ItemIdx, const HString& DataName, const HString& DataValue) const

void HCalibData::SetCalibData(const char* ItemType, Hlong ItemIdx, const char* DataName, const char* DataValue) const

void HCalibData::SetCalibData(const wchar_t* ItemType, Hlong ItemIdx, const wchar_t* DataName, const wchar_t* DataValue) const   (Nur Windows)

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

void HCalibData.SetCalibData(string itemType, HTuple itemIdx, string dataName, HTuple dataValue)

void HCalibData.SetCalibData(string itemType, int itemIdx, string dataName, string dataValue)

Beschreibung

Mit dem Operator set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibData können Daten im Kalibrierdatenmodell CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID gespeichert werden.

Wie das Kalibrierdatenmodell im Laufe des Prozesses einer Kamerakalibrierung oder einer Hand-Auge-Kalibrierung mit Daten gefüllt wird, wird übersichtsmäßig bei der Beschreibung zu get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibData dargestellt.

Das Kalibrierdatenmodell kann unterschiedliche Arten von Daten enthalten. Wie bestimmte Daten im Kalibrierdatenmodell gesetzt werden, wird für verschiedene Kategorien von Daten beschrieben:

Der Parameter ItemIdxItemIdxItemIdxItemIdxitemIdx bezeichnet, ob der neue Parameterwert für alle oder nur für ein Element gesetzt werden soll. Die Daten, die geändert werden sollen, werden in DataNameDataNameDataNameDataNamedataName eingegeben, ihre Werte in DataValueDataValueDataValueDataValuedataValue.

Weitere detaillierte Informationen zur Kalibrierung von Kameraaufbauten befinden sich im Kapitel Kalibrierung.

Modelldaten

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

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

Je nach Auswahl in DataNameDataNameDataNameDataNamedataName werden die folgenden Modellparameter auf den in DataValueDataValueDataValueDataValuedataValue übergebenen Wert gesetzt:

'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 angegeben (siehe get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibData).

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

Setzen der Optimierungsmethode für die Hand-Auge-Kalibrierung. Falls DataValueDataValueDataValueDataValuedataValue='linear'"linear""linear""linear""linear" gesetzt ist, wird eine lineare Methode verwendet. Falls DataValueDataValueDataValueDataValuedataValue='nonlinear'"nonlinear""nonlinear""nonlinear""nonlinear" gesetzt ist, wird eine nichtlineare Methode verwendet (siehe calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye für mehr Details).

Kameradaten

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

ItemIdxItemIdxItemIdxItemIdxitemIdx legt fest, ob die Kalibriereinstellungen für alle Kameras oder für einzelne Kameras gespeichert werden sollen. Mit ItemIdxItemIdxItemIdxItemIdxitemIdx='general'"general""general""general""general" werden die neuen Einstellungen als Standardwert für alle Kameras im Modell gesetzt. Wenn dagegen ein gültiger Kameraindex in ItemIdxItemIdxItemIdxItemIdxitemIdx eingegeben wird, d.h. eine Zahl zwischen 0 und NumCameras-1 (NumCameras wurde bei der Erstellung des Modells mit create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibData gesetzt), dann werden nur die Einstellungen der ausgewählten Kamera geändert.

Beim Auswählen eines der folgenden Parameter in DataNameDataNameDataNameDataNamedataName kann eingegeben werden, welche Kameraparameter optimiert werden sollen:

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

Zusätzlich zu den bereits für die Optimierung ausgewählten Kameraparametern zu optimierende Kameraparameter. Standardmäßig sind alle Kameraparameter für die Optimierung ausgewählt. D.h., 'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings" ist hauptsächlich dazu geeignet, vorher ausgeschlossene Parameter wieder zur Auswahl hinzuzufügen.

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

Von der Optimierung ausgeschlossene Kameraparameter.

Die folgenden Kameraparameter können in DataValueDataValueDataValueDataValuedataValue verwendet werden:

Interne Kameraparameter

'focus'"focus""focus""focus""focus":

Brennweite des Kameraobjektivs (nur perspektivische Kameras, d.h. für Kameras vom Typ 'area_scan_division', 'area_scan_polynomial', 'area_scan_tilt_division', 'area_scan_tilt_polynomial', 'area_scan_tilt_image_side_telecentric_division', 'area_scan_tilt_image_side_telecentric_polynomial', 'area_scan_hypercentric_division', 'area_scan_hypercentric_polynomial', 'line_scan_division' und 'line_scan_polynomial').

'magnification'"magnification""magnification""magnification""magnification":

Vergrößerungsmaßstab des Kameraobjektivs (nur für telezentrische Kameras, d.h. Kameras vom Typ 'area_scan_telecentric_division', 'area_scan_telecentric_polynomial', 'area_scan_tilt_bilateral_telecentric_division', 'area_scan_tilt_bilateral_telecentric_polynomial', 'area_scan_tilt_object_side_telecentric_division' 'area_scan_tilt_object_side_telecentric_polynomial', 'line_scan_telecentric_division' und 'line_scan_telecentric_polynomial').

'kappa'"kappa""kappa""kappa""kappa":

Verzeichnungskoeffizient zur Modellierung der Verzeichnung mit dem Divisionsmodell (nur für Kameras vom Typ 'area_scan_division', 'area_scan_telecentric_division', 'area_scan_tilt_division', 'area_scan_tilt_bilateral_telecentric_division', 'area_scan_tilt_object_side_telecentric_division', 'area_scan_hypercentric_division', 'line_scan_division' und 'line_scan_telecentric_division').

'k1'"k1""k1""k1""k1",'k2'"k2""k2""k2""k2", 'k3'"k3""k3""k3""k3":

Radiale Verzeichnungskoeffizienten zur Modellierung der Verzeichnung mit dem Polynommodell (nur für Kameras vom Typ 'area_scan_polynomial', 'area_scan_telecentric_polynomial', 'area_scan_tilt_polynomial', 'area_scan_telecentric_tilt_polynomial', 'area_scan_hypercentric_polynomial', 'line_scan_polynomial' und 'line_scan_telecentric_polynomial').

'poly_tan_2'"poly_tan_2""poly_tan_2""poly_tan_2""poly_tan_2":

Allgemeiner Parametername, der für alle tangentialen Verzeichnungskoeffizienten des Polynommodells steht, d.h. für p1 und p2 (nur für Kameras vom Typ 'area_scan_polynomial', 'area_scan_telecentric_polynomial', 'area_scan_tilt_polynomial', 'area_scan_tilt_bilateral_telecentric_polynomial', 'area_scan_tilt_object_side_telecentric_polynomial', 'area_scan_hypercentric_polynomial', 'line_scan_polynomial' und 'line_scan_telecentric_polynomial').

'poly'"poly""poly""poly""poly":

Allgemeiner Parametername, der für alle Verzeichnungskoeffizienten des Polynommodells steht, d.h. k1, k2, k3, p1 und p2 (nur für Kameras vom Typ 'area_scan_polynomial', 'area_scan_telecentric_polynomial', 'area_scan_tilt_polynomial', 'area_scan_tilt_bilateral_telecentric_polynomial', 'area_scan_tilt_object_side_telecentric_polynomial', 'area_scan_hypercentric_polynomial', 'line_scan_polynomial' und 'line_scan_telecentric_polynomial').

'image_plane_dist'"image_plane_dist""image_plane_dist""image_plane_dist""image_plane_dist":

Der Abstand der verkippten Bildebene vom Zentrum der perspektivischen Projektion (nur für Kameras mit Tiltobjektiven, die eine perspektivische Projektion auf der Bildseite des Objektivs durchführen, d.h. Kameras vom Typ 'area_scan_tilt_division', 'area_scan_tilt_polynomial', 'area_scan_tilt_object_side_telecentric_division' und 'area_scan_tilt_object_side_telecentric_polynomial').

'tilt'"tilt""tilt""tilt""tilt":

Verkippung und Rotation des Tiltobjektivs (nur für Kameras mit Tiltobjektiven, d.h. Kameras vom Typ 'area_scan_tilt_division', 'area_scan_tilt_polynomial', 'area_scan_tilt_bilateral_telecentric_division', 'area_scan_tilt_bilateral_telecentric_polynomial', 'area_scan_tilt_object_side_telecentric_division' und 'area_scan_tilt_object_side_telecentric_polynomial').

'cx'"cx""cx""cx""cx",'cy'"cy""cy""cy""cy":

Koordinaten des Kamerahauptpunktes.

'principal_point'"principal_point""principal_point""principal_point""principal_point":

Allgemeiner Parametername, der für 'cx'"cx""cx""cx""cx" und 'cy'"cy""cy""cy""cy" steht.

'sx'"sx""sx""sx""sx",'sy'"sy""sy""sy""sy":

Größe der Sensorelemente des Kamerasensors.

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

Allgemeiner Parametername, der für alle internen Kameraparameter steht.

Bitte beachten Sie, dass die Bezeichnung Brennweite (Focus) nicht ganz richtig ist, da der Parameter Focus im Allgemeinen nicht der realen Brennweite entspricht, wenn die Objektweite nicht unendlich ist. Der Einfachheit halber wird hier aber nicht zwischen Brennweite und Bildweite unterschieden.

Externe Kameraparameter

'alpha'"alpha""alpha""alpha""alpha",'beta'"beta""beta""beta""beta",'gamma'"gamma""gamma""gamma""gamma":

Rotationswerte der Kamerapose.

'transx'"transx""transx""transx""transx",'transy'"transy""transy""transy""transy",'transz'"transz""transz""transz""transz":

Translationsvektor der Kamerapose.

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

Allgemeiner Parametername, der für alle Kameraposeparameter steht.

Weitere Kameraparameter

'vx'"vx""vx""vx""vx",'vy'"vy""vy""vy""vy",'vz'"vz""vz""vz""vz":

Kamerabewegungsvektor (nur für Kameras von Typ 'line_scan_division', 'line_scan_polynomial', 'line_scan_telecentric_division' und 'line_scan_telecentric_polynomial').

'all'"all""all""all""all":

Allgemeiner Parametername, der für alle Kameraparameter, sowohl die internen als auch die externen, steht.

Als Standardeinstellung werden alle Parameter zum Optimieren gekennzeichnet. Eine Ausnahme davon ist es, wenn nur eine Kamera im Aufbau kalibriert wird (NumCameras=1). Für diesen Fall wird die Kamerapose von der Optimierung ausgeschlossen. Diese Sondereinstellung macht den Kalibrierprozess identisch mit demjenigen vom camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration.

Daten zu den Kalibrierkörperposen

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

ItemIdxItemIdxItemIdxItemIdxitemIdx legt fest, ob Kalibriereinstellungen für alle Posen oder für einzelne Posen der Kalibrierkörper eingestellt werden sollen. Mit ItemIdxItemIdxItemIdxItemIdxitemIdx='general'"general""general""general""general" werden die neuen Einstellungen als Standardwert für alle Kalibrierkörperposen im Modell gesetzt. Wenn dagegen ein gültiger Kalibrierkörperposeindex, d.h. ein Tupel mit einem gültigen Indexpaar [CalibObjIdx, CalibObjPoseIdx], in ItemIdxItemIdxItemIdxItemIdxitemIdx eingegeben wird, werden nur die Einstellungen der gekennzeichneten Pose geändert.

Beim Auswählen eines der folgenden Parameter in DataNameDataNameDataNameDataNamedataName kann eingegeben werden, welche Parameter der Kalibrierkörperpose optimiert werden sollen:

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

Zusätzlich zu den bereits für die Optimierung ausgewählten Parametern zu optimierende Parameter der Kalibrierkörperpose. Standardmäßig sind alle Kameraparameter für die Optimierung ausgewählt. D.h., 'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings" ist hauptsächlich dazu geeignet, vorher ausgeschlossene Parameter wieder zur Auswahl hinzuzufügen.

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

Von der Optimierung ausgeschlossene Parameter der Kalibrierkörperpose.

Die folgenden Poseparameter können in DataValueDataValueDataValueDataValuedataValue aufgelistet werden:

'alpha'"alpha""alpha""alpha""alpha",'beta'"beta""beta""beta""beta",'gamma'"gamma""gamma""gamma""gamma":

Rotationswerte der Kalibrierkörperpose.

'transx'"transx""transx""transx""transx",'transy'"transy""transy""transy""transy",'transz'"transz""transz""transz""transz":

Translationsvektor der Kalibrierkörperpose.

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

Allgemeiner Parametername, der für alle Poseparameter steht.

'all'"all""all""all""all":

Alle Kalibrierkörperparameter, d.h. dieselben wie 'pose'"pose""pose""pose""pose".

Die aktuellen Einstellungen der Optimierungsparameter eines Elements können mit get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibData abgefragt werden.

Daten für Hand-Auge-Kalibrierung

ItemTypeItemTypeItemTypeItemTypeitemType='tool'"tool""tool""tool""tool":

ItemIdxItemIdxItemIdxItemIdxitemIdx muss auf einen gültigen Kalibrierkörperposeindex gesetzt werden.

Beim Auswählen des folgenden Parameters in DataNameDataNameDataNameDataNamedataName, kann die Pose des Robotertools gesetzt werden:

'tool_in_base_pose'"tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose":

Setzen der Pose des Robotertools (in Roboterbasiskoordinaten), die für die Beobachtung der Kalibrierkörperpose mit demselben Index ItemIdxItemIdxItemIdxItemIdxitemIdx (entspricht dem Parameter CalibObjPoseIdx eines der Operatoren find_calib_objectfind_calib_objectFindCalibObjectFindCalibObjectFindCalibObject, set_calib_data_observ_poseset_calib_data_observ_poseSetCalibDataObservPoseSetCalibDataObservPoseSetCalibDataObservPose, oder set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPointsSetCalibDataObservPoints) benutzt wurde.

Ausführungsinformationen

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.

Parameter

CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID (input_control, Zustand wird modifiziert)  calib_data HCalibData, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Kalibrierdatenmodells.

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

Typ des abgefragten Elements.

Defaultwert: 'model' "model" "model" "model" "model"

Werteliste: '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)  number(-array) HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

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

Defaultwert: 'general' "general" "general" "general" "general"

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

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

Name der zu setzenden Daten.

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

Werteliste: 'calib_settings'"calib_settings""calib_settings""calib_settings""calib_settings", 'excluded_settings'"excluded_settings""excluded_settings""excluded_settings""excluded_settings", 'optimization_method'"optimization_method""optimization_method""optimization_method""optimization_method", '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"

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

Werte der zu setzenden Daten.

Defaultwert: 0

Wertevorschläge: 0, 1, 2, 'all'"all""all""all""all", 'pose'"pose""pose""pose""pose", 'params'"params""params""params""params", 'alpha'"alpha""alpha""alpha""alpha", 'beta'"beta""beta""beta""beta", 'gamma'"gamma""gamma""gamma""gamma", 'transx'"transx""transx""transx""transx", 'transy'"transy""transy""transy""transy", 'transz'"transz""transz""transz""transz", 'focus'"focus""focus""focus""focus", 'magnification'"magnification""magnification""magnification""magnification", 'kappa'"kappa""kappa""kappa""kappa", 'poly'"poly""poly""poly""poly", 'poly_tan_2'"poly_tan_2""poly_tan_2""poly_tan_2""poly_tan_2", 'k1'"k1""k1""k1""k1", 'k2'"k2""k2""k2""k2", 'k3'"k3""k3""k3""k3", 'image_plane_dist'"image_plane_dist""image_plane_dist""image_plane_dist""image_plane_dist", 'tilt'"tilt""tilt""tilt""tilt", 'principal_point'"principal_point""principal_point""principal_point""principal_point", 'cx'"cx""cx""cx""cx", 'cy'"cy""cy""cy""cy", 'sx'"sx""sx""sx""sx", 'sy'"sy""sy""sy""sy", 'vx'"vx""vx""vx""vx", 'vy'"vy""vy""vy""vy", 'vz'"vz""vz""vz""vz", 'linear'"linear""linear""linear""linear", 'nonlinear'"nonlinear""nonlinear""nonlinear""nonlinear"

Beispiel (HDevelop)

* Here, the cell size is known exactly, thus it is excluded from
* the optimization.
set_calib_data (CalibDataID, 'camera', 'general', 'excluded_settings', \
                ['sx','sy'])

Vorgänger

set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPointsSetCalibDataObservPoints, find_calib_objectfind_calib_objectFindCalibObjectFindCalibObjectFindCalibObject

Nachfolger

calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras, calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEye

Modul

Calibration