KlassenKlassenKlassenKlassen | | | | Operatoren

set_calib_dataset_calib_dataSetCalibDataset_calib_dataSetCalibDataSetCalibData (Operator)

Name

set_calib_dataset_calib_dataSetCalibDataset_calib_dataSetCalibDataSetCalibData — Setzen von Parametern für das Kalibrierdatenmodell.

Signatur

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

Herror set_calib_data(const Hlong CalibDataID, const char* ItemType, const Hlong ItemIdx, const char* DataName, const char* DataValue)

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

Herror set_calib_data(const HTuple& CalibDataID, const HTuple& ItemType, const HTuple& ItemIdx, const HTuple& DataName, const HTuple& DataValue)

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

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 HOperatorSetX.SetCalibData(
[in] VARIANT CalibDataID, [in] VARIANT ItemType, [in] VARIANT ItemIdx, [in] VARIANT DataName, [in] VARIANT DataValue)

void HCalibDataX.SetCalibData(
[in] BSTR ItemType, [in] VARIANT ItemIdx, [in] BSTR DataName, [in] VARIANT DataValue)

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_dataSetCalibDataset_calib_dataSetCalibDataSetCalibData können Daten im Kalibrierdatenmodell CalibDataIDCalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID gespeichert werden. Je nach Auswahl im Parameter ItemTypeItemTypeItemTypeItemTypeItemTypeitemType, werden Modell-, Kamera- oder Kalibrierkörperposedaten, oder Hand-Auge-Kalibrierdaten gesetzt. Der Parameter ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx 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 DataNameDataNameDataNameDataNameDataNamedataName eingegeben, ihre Werte in DataValueDataValueDataValueDataValueDataValuedataValue.

Modelldaten

Für ItemTypeItemTypeItemTypeItemTypeItemTypeitemType='model'"model""model""model""model""model" kann nur der Wert 'general'"general""general""general""general""general" in ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx eingegeben werden. Je nach Auswahl in DataNameDataNameDataNameDataNameDataNamedataName werden die folgenden Modellparameter auf den in DataValueDataValueDataValueDataValueDataValuedataValue übergebenen Wert gesetzt:

'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 Kamera-Koordinatensystem angegeben (siehe get_calib_dataget_calib_dataGetCalibDataget_calib_dataGetCalibDataGetCalibData).

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

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

Kameradaten

Mit ItemTypeItemTypeItemTypeItemTypeItemTypeitemType='camera'"camera""camera""camera""camera""camera" können Kalibriereinstellungen entweder für alle Kameras oder für einzelnen Kameras gespeichert werden.

Mit ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx='general'"general""general""general""general""general" werden die neue Einstellungen als Standardwert für alle Kameras im Modell gesetzt. Wenn dagegen ein gültiger Kameraindex in ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx eingegeben wird, d.h. eine Zahl zwischen 0 und NumCameras-1 (NumCameras wird mit dem Erstellen des Modells von create_calib_datacreate_calib_dataCreateCalibDatacreate_calib_dataCreateCalibDataCreateCalibData festgesetzt), dann werden nur die Einstellungen der ausgewählten Kamera geändert.

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

'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.

Die folgenden Kameraparameter können in DataValueDataValueDataValueDataValueDataValuedataValue verwendet werden:

Interne Kameraparameter

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

Brennweite des Kameraobjektivs.

'kappa'"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' und 'area_scan_telecentric_tilt_division').

'k1'"k1""k1""k1""k1""k1",'k2'"k2""k2""k2""k2""k2", 'k3'"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' und 'area_scan_telecentric_tilt_polynomial').

'poly_tan_2'"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 and p2 (nur für Kameras vom Typ 'area_scan_polynomial', 'area_scan_telecentric_polynomial', 'area_scan_tilt_polynomial' und 'area_scan_telecentric_tilt_polynomial').

'poly'"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' und 'area_scan_telecentric_tilt_polynomial').

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

Verkippung und Rotation des Tiltobjektivs (nur für Kameras vom Typ 'area_scan_tilt_division', 'area_scan_telecentric_tilt_division', 'area_scan_tilt_polynomial' und 'area_scan_telecentric_tilt_polynomial').

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

Koordinaten des Kamerahauptpunktes.

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

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

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

Größe der Sensorelemente des Kamerasensors.

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

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

Bitte beachten Sie, dass die Bezeichung 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""alpha",'beta'"beta""beta""beta""beta""beta",'gamma'"gamma""gamma""gamma""gamma""gamma":

Rotationswerte der Kamerapose.

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

Translationsvektor der Kamerapose.

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

Allgemeiner Parametername, der für alle Kameraposeparameter steht.

Weitere Kameraparameter

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

Kamerabewegungsvektor (nur für Kameras von Typ 'line_scan').

'all'"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 der Kalibrierprozess identisch mit demjenigen vom camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration.

Daten zu den Kalibrierkörperposen

Mit ItemTypeItemTypeItemTypeItemTypeItemTypeitemType='calib_obj_pose'"calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose""calib_obj_pose" können Kalibriereinstellungen für alle Posen oder aber auch für einzelnen Posen der Kalibrierkörper eingestellt werden.

Mit ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx='general'"general""general""general""general""general" werden die neue Einstellungen als Standardwert für alle Kalibrierkörperposen im Modell gesetzt. Wenn dagegen ein gültiger Kalibrierkörperpose-Index, d.h. ein Tupel mit einem gültigen Indexpaar [CalibObjIdx, CalibObjPoseIdx], in ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx eingegeben wird, werden nur die Einstellungen der gekennzeichneten Pose geändert.

Beim Auswählen eines der folgenden Parameter in DataNameDataNameDataNameDataNameDataNamedataName kann eingegeben werden, welche Parameter der Kalibrierkörperpose optimiert werden müssen:

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

Zu optimierende Parameter der Kalibrierkörperpose.

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

Von der Optimierung ausgeschlossene Parameter der Kalibrierkörperpose.

Die folgenden Poseparameter können im DataValueDataValueDataValueDataValueDataValuedataValue aufgelistet werden:

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

Rotationswerte der Kalibrierkörperpose.

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

Translationsvektor der Kalibrierkörperpose.

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

Allgemeiner Parametername, der für alle Poseparameter steht.

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

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

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

Daten für Hand-Auge-Kalibrierung

Mittels ItemTypeItemTypeItemTypeItemTypeItemTypeitemType='tool'"tool""tool""tool""tool""tool" kann die Pose des Robotertools in Roboterbasiskoordinaten gesetzt werden, die für die Beobachtung der Kalibrierkörperpose mit demselben Index ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx benutzt wurde. Wenn DataNameDataNameDataNameDataNameDataNamedataName='tool_in_base_pose'"tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose""tool_in_base_pose" gewählt wird, kann in DataValueDataValueDataValueDataValueDataValuedataValue die Pose übergeben werden.

Parallelisierung

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.

Parameter

CalibDataIDCalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID (input_control, Zustand wird modifiziert)  calib_data HCalibData, HTupleHTupleHCalibData, HTupleHCalibDataX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des Kalibrierdatenmodells.

ItemTypeItemTypeItemTypeItemTypeItemTypeitemType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Typ des abgefragten Elements.

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

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

ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx (input_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*) (Hlong / BSTR) (Hlong / char*)

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

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

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

DataNameDataNameDataNameDataNameDataNamedataName (input_control)  attribute.name HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Name der zu setzenden Daten.

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

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

DataValueDataValueDataValueDataValueDataValuedataValue (input_control)  attribute.value(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong) (BSTR / Hlong) (char* / Hlong)

Werte der zu setzenden Daten.

Defaultwert: 0

Wertevorschläge: 0, 1, 2, 'all'"all""all""all""all""all", 'pose'"pose""pose""pose""pose""pose", 'params'"params""params""params""params""params", 'alpha'"alpha""alpha""alpha""alpha""alpha", 'beta'"beta""beta""beta""beta""beta", 'gamma'"gamma""gamma""gamma""gamma""gamma", 'transx'"transx""transx""transx""transx""transx", 'transy'"transy""transy""transy""transy""transy", 'transz'"transz""transz""transz""transz""transz", 'focus'"focus""focus""focus""focus""focus", 'kappa'"kappa""kappa""kappa""kappa""kappa", 'poly'"poly""poly""poly""poly""poly", 'poly_tan_2'"poly_tan_2""poly_tan_2""poly_tan_2""poly_tan_2""poly_tan_2", 'k1'"k1""k1""k1""k1""k1", 'k2'"k2""k2""k2""k2""k2", 'k3'"k3""k3""k3""k3""k3", 'tilt'"tilt""tilt""tilt""tilt""tilt", 'principal_point'"principal_point""principal_point""principal_point""principal_point""principal_point", 'cx'"cx""cx""cx""cx""cx", 'cy'"cy""cy""cy""cy""cy", 'sx'"sx""sx""sx""sx""sx", 'sy'"sy""sy""sy""sy""sy", 'vx'"vx""vx""vx""vx""vx", 'vy'"vy""vy""vy""vy""vy", 'vz'"vz""vz""vz""vz""vz", 'linear'"linear""linear""linear""linear""linear", 'nonlinear'"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_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints, find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject

Nachfolger

calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras, calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEye

Modul

Calibration


KlassenKlassenKlassenKlassen | | | | Operatoren