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
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_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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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