set_calib_dataT_set_calib_dataSetCalibDataSetCalibDataset_calib_data (Operator)

Name

set_calib_dataT_set_calib_dataSetCalibDataSetCalibDataset_calib_data — 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)

def set_calib_data(calib_data_id: HHandle, item_type: str, item_idx: MaybeSequence[Union[int, str]], data_name: str, data_value: MaybeSequence[Union[str, int]]) -> None

Beschreibung

Mit dem Operator set_calib_dataset_calib_dataSetCalibDataSetCalibDataSetCalibDataset_calib_data können Daten im Kalibrierdatenmodell CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataIDcalib_data_id gespeichert werden.

Eine Übersicht wie das Kalibrierdatenmodell im Laufe des Prozesses einer Kamerakalibrierung oder einer Hand-Auge-Kalibrierung mit Daten gefüllt wird, ist in der Beschreibung von get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibDataget_calib_data gegeben.

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 ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx 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 DataNameDataNameDataNameDataNamedataNamedata_name eingegeben, ihre Werte in DataValueDataValueDataValueDataValuedataValuedata_value.

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

Modelldaten

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

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

Je nach Auswahl in DataNameDataNameDataNameDataNamedataNamedata_name werden die folgenden Modellparameter auf den in DataValueDataValueDataValueDataValuedataValuedata_value ü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 Kamerakoordinatensystem angegeben (siehe get_calib_dataget_calib_dataGetCalibDataGetCalibDataGetCalibDataget_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.

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

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

Kameradaten

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

ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx legt fest, ob die Kalibriereinstellungen für alle Kameras oder für einzelne Kameras gespeichert werden sollen. Mit ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx='general'"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 ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx eingegeben wird, 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), dann werden nur die Einstellungen der ausgewählten Kamera geändert.

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

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

Von der Optimierung ausgeschlossene Kameraparameter.

Die folgenden Kameraparameter können in DataValueDataValueDataValueDataValuedataValuedata_value verwendet werden. Betroffene Kameratypen und weitere Details zu den Parametern sind in Kalibrierung zu finden.

Interne Kameraparameter

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

Brennweite des Kameraobjektivs.

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

Vergrößerungsmaßstab des Kameraobjektivs.

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

Verzeichnungskoeffizient zur Modellierung der Verzeichnung mit dem Divisionsmodell.

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

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

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

Allgemeiner Parametername, der für alle Verzeichnungskoeffizienten des Polynommodells steht, d.h. k1, k2, k3, p1 und p2.

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

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

Verkippung und Rotation des Tiltobjektivs.

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

Parameter des Bewegungsvektors. Es ist zu beachten, dass für Stereosysteme, die Zeilenkameras mit telezentrischen Objektiven verwenden und die einen gemeinsamen Bewegungsvektor besitzen (d.h. 'common_motion_vector'"common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector""common_motion_vector" = 'true'"true""true""true""true""true"), die Optimierungsparameter des Bewegungsvektors der Referenzkamera festlegen, welche Parameter des gemeinsamen Bewegungsvektors optimiert werden. Für diese Art von System wird empfohlen, keine Parameter des Bewegungsvektors von der Optimierung auszuschließen.

'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 (NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras=1). Für diesen Fall wird die Kamerapose von der Optimierung ausgeschlossen. Diese Sondereinstellung macht den Kalibrierprozess identisch mit demjenigen vom camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration.

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 Kalibriereinstellungen für alle Posen oder für einzelne Posen der Kalibrierkörper eingestellt werden sollen. Mit ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx='general'"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 ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx eingegeben wird, werden nur die Einstellungen der gekennzeichneten Pose geändert.

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

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

Von der Optimierung ausgeschlossene Parameter der Kalibrierkörperpose.

Die folgenden Poseparameter können in DataValueDataValueDataValueDataValuedataValuedata_value 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_dataGetCalibDataGetCalibDataGetCalibDataget_calib_data abgefragt werden.

Daten für Hand-Auge-Kalibrierung

ItemTypeItemTypeItemTypeItemTypeitemTypeitem_type='tool'"tool""tool""tool""tool""tool":

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

Beim Auswählen des folgenden Parameters in DataNameDataNameDataNameDataNamedataNamedata_name, 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""tool_in_base_pose":

Setzen der Pose des Robotertools (in Roboterbasiskoordinaten), die für die Beobachtung der Kalibrierkörperpose mit demselben Index ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx (entspricht dem Parameter CalibObjPoseIdx eines der Operatoren find_calib_objectfind_calib_objectFindCalibObjectFindCalibObjectFindCalibObjectfind_calib_object, set_calib_data_observ_poseset_calib_data_observ_poseSetCalibDataObservPoseSetCalibDataObservPoseSetCalibDataObservPoseset_calib_data_observ_pose, oder set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPointsSetCalibDataObservPointsset_calib_data_observ_points) 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

CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataIDcalib_data_id (input_control, Zustand wird modifiziert)  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: '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"

ItemIdxItemIdxItemIdxItemIdxitemIdxitem_idx (input_control)  number(-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: 'general' "general" "general" "general" "general" "general"

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

DataNameDataNameDataNameDataNamedataNamedata_name (input_control)  attribute.name HTuplestrHTupleHtuple (string) (string) (HString) (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", '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", '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"

DataValueDataValueDataValueDataValuedataValuedata_value (input_control)  attribute.value(-array) HTupleMaybeSequence[Union[str, int]]HTupleHtuple (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""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", 'magnification'"magnification""magnification""magnification""magnification""magnification", '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", 'image_plane_dist'"image_plane_dist""image_plane_dist""image_plane_dist""image_plane_dist""image_plane_dist", '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", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", '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_pointsSetCalibDataObservPointsSetCalibDataObservPointsSetCalibDataObservPointsset_calib_data_observ_points, find_calib_objectfind_calib_objectFindCalibObjectFindCalibObjectFindCalibObjectfind_calib_object

Nachfolger

calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras, calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye

Modul

Calibration