2D-Messtechnik

Liste der Operatoren ↓

Dieses Kapitel beschreibt Operatoren für die 2D-Messtechnik.

Konzept der 2D-Messtechnik

Mit 2D-Messtechnik können Objekte einer bestimmten geometrischen Form vermessen werden. Die dafür verfügbaren geometrischen Formen umfassen Kreise, Ellipsen, Rechtecke und Linien. Es müssen genäherte Werte für die Positionen, Orientierungen und geometrischen Formen der zu vermessenden Objekte vorhanden sein. Dann werden in der Nähe der Umrandungen der genäherten Objekte im Bild die tatsächlichen Kanten der Objekte lokalisiert. Die Parameter der geometrischen Formen werden dann so angepasst, dass sie optimal zu den Bilddaten passen. Die Ergebnisse der Messungen sind die optimierten Parameter.

(1) (2)
Die geometrischen Formen in (1) werden mit 2D-Messtechnik vermessen (2): Es wird ein Messmodel mit 4 Metrology-Messobjekten erstellt (blaue Konturen). Unter Benutzung der Kantenpunkte (Kreuze in Cyan), die innerhalb der Messregionen (graue Rechtecke) gefunden wurden, werden die geometrischen Formen (grüne Konturen) angepasst und ihre Parameter können abgefragt werden. Wie man für die Metrology-Messobjekte vom Typ Kreis sieht, können auch mehrere Instanzen pro Objekt gefunden werden. Dieses Bild stammt aus dem Beispielprogramm apply_metrology_model.hdev.

Die genäherten Werte für die Formparameter eines Objekts sowie Parameter zur Steuerung der Messung werden in einer Datenstruktur gespeichert, die als Metrology-Messobjekt bezeichnet wird. Die Kanten des Objekts im Bild werden in den sogenannten Messregionen gesucht. Diese sind rechteckige Regionen, deren Hauptachsen senkrecht zum Rand der genäherten Objekte liegen. Parameter, die die Größe und Verteilung der Messregionen beeinflussen, werden zusammen mit den genäherten Formparametern für jedes Objekt festgelegt. Bei der Messung wird die Anpassung der geometrischen Form an die gefundenen Kantenpositionen mittels eines RANSAC-Algorithmus vorgenommen. Alle Messobjekte, alle weiteren für die Messung notwendigen Informationen und die Ergebnisse der Messungen werden im sogenannten Messmodel gespeichert.

Im Folgenden werden die einzelnen Schritte, die zur Benutzung der 2D-Messtechnik benötigt werden, kurz beschrieben.

Erstellen der Datenstruktur des Messmodells:

Als erstes muss das Messmodell erstellt werden. Dies geschieht mit dem Operator

Das Messmodell dient als Container für ein oder mehrere Metrology-Messobjekte. Für eine effiziente Messung sollte dann die Größe des Bildes, auf dem die Messungen durchgeführt werden, festgelegt werden. Dies erfolgt mit dem Operator

Bereitstellen der genäherten Werte:

Anschließend werden die Metrology-Messobjekte zum Messmodell hinzugefügt. Jedes Metrology-Messobjekt besteht aus genäherten Parametern für die Form des zugehörigen Objekts im Bild und aus Parametern, die die Messungen steuern. Die Parameter, die die Messungen steuern enthalten z.B. Parameter, die die Dimensionen und die Verteilung der Messregionen festlegen. Desweiteren können verschiedene generische Parameter für jedes Metrology-Messobjekt festgelegt werden. Die Metrology-Messobjekte werden mit den folgenden Operatoren definiert:

Um die definierten Metrology-Messobjekte visuell zu prüfen, können die XLD-Konturen ihrer Umrandungen mit dem Operator get_metrology_object_model_contourget_metrology_object_model_contourGetMetrologyObjectModelContourGetMetrologyObjectModelContourGetMetrologyObjectModelContour abgerufen werden. Um die Messregionen visuell zu überprüfen, kann auf die XLD-Konturen ihrer Umrandungen mit dem Operator get_metrology_object_measuresget_metrology_object_measuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasures zugegriffen werden.

Ändern der Modellparameter:

Wenn eine Kamerakalibrierung ausgeführt wurde, werden die Kameraparameter und die Pose des Weltkoordinatensystems zum Messmodel hinzugefügt. Dies erfolgt über den Operator

In diesem Fall werden die Ergebnisse der Messungen, die mit get_metrology_object_resultget_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResultGetMetrologyObjectResult abgerufen werden, im Weltkoordinatensystem zurückgegeben. Weiterhin kann das Referenzsystem, in dem die Metrology-Messobjekte vorliegen, mit set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParam geändert werden.

Ändern der Objektparameter:

Viele Parameter können beim Hinzufügen der Metrology-Messobjekte gesetzt werden. Einige davon können anschließend noch mithilfe des Operators

geändert werden.

Ausrichten des Messmodells (Alignment):

Der Operator

verschiebt und rotiert das Messmodell vor einer Messung, so dass es über dem zu messenden Objekt im aktuellen Bild liegt. Diese Modellausrichtung ist temporär und wird durch die nächste ersetzt. Die Parameter der einzelnen Objekte werden nicht verändert. Typischerweise werden die für die Modellausrichtung benötigten Parameter über formbasiertes Matching ermittelt.

Durchführen der Messungen:

Die eigentlichen Messungen im Bild erfolgen mit dem Operator

Dieser findet die Kanten innerhalb der Messregionen und passt die festgelegten geometrischen Formen an die Kantenpositionen unter Verwendung eines RANSAC-Algorithmus an. Die Kanten werden intern mit den Operatoren measure_posmeasure_posMeasurePosMeasurePosMeasurePos oder fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePosFuzzyMeasurePos (siehe auch Kapitel 1D-Vermessung) ermittelt. Der letztere verwendet Fuzzy-Funktionen und wird nur verwendet, wenn vor der Messung mindestens eine Fuzzy-Funktion mithilfe von set_metrology_object_fuzzy_paramset_metrology_object_fuzzy_paramSetMetrologyObjectFuzzyParamSetMetrologyObjectFuzzyParamSetMetrologyObjectFuzzyParam gesetzt wurde. Wenn mehr als eine Instanz der zurückgegebenen Objektform benötigt wird (siehe Bild oben), muss der generische Parameter 'num_instances'"num_instances""num_instances""num_instances""num_instances" auf die Anzahl benötigter Instanzen gesetzt werden. Der Parameter kann beim Setzen der einzelnen Metrology-Messobjekte oder später mit dem Operator set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParam gesetzt werden.

Zugriff auf die Ergebnisse:

Nach der Messung kann auf die Ergebnisse zugegriffen werden. Die angepassten geometrischen Formen der Objekte werden mit dem Operator

abgefragt. Auf die Zeilen- und Spaltenkoordinaten der gefundenen Kanten kann mit dem Operator

zugegriffen werden. Die Zeilen- und Spaltenkoordinaten der Kanten, die tatsächlich für die Berechnung der Ergebnisse benutzt wurden, können ebenfalls mit get_metrology_object_resultget_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResultGetMetrologyObjectResult abgefragt werden. Eine Visualisierung der gemessenen Formen als XLD Konturen erhält man mit

Weitere Operatoren

Zusätzlich zu den oben genannten Operatoren kann das Messmodell mit copy_metrology_modelcopy_metrology_modelCopyMetrologyModelCopyMetrologyModelCopyMetrologyModel kopiert werden. Um ein Messmodell in eine Datei zu schreiben ist der Operator write_metrology_modelwrite_metrology_modelWriteMetrologyModelWriteMetrologyModelWriteMetrologyModel zu verwenden. Das Model kann unter Verwendung des Operators read_metrology_modelread_metrology_modelReadMetrologyModelReadMetrologyModelReadMetrologyModel wieder eingelesen werden. Mit serialize_metrology_modelserialize_metrology_modelSerializeMetrologyModelSerializeMetrologyModelSerializeMetrologyModel bzw. deserialize_metrology_modeldeserialize_metrology_modelDeserializeMetrologyModelDeserializeMetrologyModelDeserializeMetrologyModel kann das Messmodell serialisiert oder deserialisiert werden.

Die im Messmodell vorhandenen Informationen können auf verschiedene Arten abgefragt werden. Zum Beispiel erhält man die Indizes der Metrology-Messobjekte mit get_metrology_object_indicesget_metrology_object_indicesGetMetrologyObjectIndicesGetMetrologyObjectIndicesGetMetrologyObjectIndices. Parameter, die für das ganze Messmodell zutreffen, können mit get_metrology_model_paramget_metrology_model_paramGetMetrologyModelParamGetMetrologyModelParamGetMetrologyModelParam abgefragt werden. Zum Abfragen der Fuzzy-Parameter des Messmodells (wenn vorhanden) steht get_metrology_object_fuzzy_paramget_metrology_object_fuzzy_paramGetMetrologyObjectFuzzyParamGetMetrologyObjectFuzzyParamGetMetrologyObjectFuzzyParam zur Verfügung. Die Anzahl der Instanzen der Metrology-Messobjekte eines Messmodells erhält man mit get_metrology_object_num_instancesget_metrology_object_num_instancesGetMetrologyObjectNumInstancesGetMetrologyObjectNumInstancesGetMetrologyObjectNumInstances. Und die aktuelle Konfiguration des Messmodells kann mit get_metrology_object_paramget_metrology_object_paramGetMetrologyObjectParamGetMetrologyObjectParamGetMetrologyObjectParam abgefragt werden.

Außerdem können alle Parameter eines Messmodells mit reset_metrology_object_paramreset_metrology_object_paramResetMetrologyObjectParamResetMetrologyObjectParamResetMetrologyObjectParam zurückgesetzt werden. Sollen nur eventuell vorhandene Fuzzy-Parameter und Fuzzy-Funktionen zurückgesetzt werden, kann reset_metrology_object_fuzzy_paramreset_metrology_object_fuzzy_paramResetMetrologyObjectFuzzyParamResetMetrologyObjectFuzzyParamResetMetrologyObjectFuzzyParam benutzt werden.

Glossar

Im Folgenden werden die wichtigsten Begriffe, die im Umfeld der 2D-Messtechnik verwendet werden, beschrieben:

Messmodell

Datenstruktur, die alle Metrology-Messobjekte, alle Informationen, die für die Messung gebraucht werden, sowie die Messergebnisse enthält.

Metrology-Messobjekt

Datenstruktur für das Objekt, das mit 2D-Messtechnik vermessen werden soll. Das Metrology Messobjekt ist durch eine bestimmte geometrische Form repräsentiert für deren Formparameter Näherungswerte bekannt sind. Außerdem enthält es Parameter zur Steuerung der Messung, z.B. Parameter, die die Dimensionen und die Verteilung der Messregionen bestimmen.

Messregionen

Rechteckige Regionen, die senkrecht zum Rand der genäherten Objekte angeordnet sind. Innerhalb dieser Regionen werden Kanten extrahiert, die benutzt werden, um die exakten Formparameter der Metrology-Messobjekte zu ermitteln.

Zurückgegebene Instanz eines Metrology-Messobjekts

Für jedes Metrology-Messobjekt können unterschiedliche Instanzen des Objekts durch die Messung zurückgegeben werden, z.B. wenn in der Nähe der Umrandung der genäherten Form verschiedene parallele Strukturen der gleichen Form vorhanden sind. Die Reihenfolge der zurückgegebenen Instanzen ist zufällig, d.h. die Reihenfolge stellt kein Maß für die Qualität der Anpassung dar.

Weiterführende Information

Weitere Details zur 2D-Messtechnik finden sich im „Solution Guide on 2D Measuring“.


Liste der Operatoren

add_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureadd_metrology_object_circle_measure
Hinzufügen eines Kreises oder Kreisbogens zu einem Messmodell.
add_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasureadd_metrology_object_ellipse_measure
Hinzufügen einer Ellipse oder eines Ellipsenbogens zu einem Messmodell.
add_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic
Hinzufügen eines Metrology-Messobjekts zu einem Messmodell.
add_metrology_object_line_measureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasureadd_metrology_object_line_measure
Hinzufügen einer Linie zu einem Messmodell.
add_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2Measureadd_metrology_object_rectangle2_measure
Hinzufügen eines Rechtecks zu einem Messmodell.
align_metrology_modelAlignMetrologyModelAlignMetrologyModelalign_metrology_model
Ausrichtung eines Messmodells.
apply_metrology_modelApplyMetrologyModelApplyMetrologyModelapply_metrology_model
Messen und Anpassen der geometrischen Formen aller Metrology-Messobjekte eines Messmodells.
clear_metrology_modelClearMetrologyModelClearMetrologyModelclear_metrology_model
Löschen eines Messmodells und Freigabe des verwendeten Speichers.
clear_metrology_objectClearMetrologyObjectClearMetrologyObjectclear_metrology_object
Löschen von Metrology-Messobjekten und Freigabe des verwendeten Speichers.
copy_metrology_modelCopyMetrologyModelCopyMetrologyModelcopy_metrology_model
Kopieren eines Messmodells.
create_metrology_modelCreateMetrologyModelCreateMetrologyModelcreate_metrology_model
Anlegen der Datenstruktur, die für das Messen von geometrischen Formen notwendig ist.
deserialize_metrology_modelDeserializeMetrologyModelDeserializeMetrologyModeldeserialize_metrology_model
Deserialisieren eines serialisierten Messmodells.
get_metrology_model_paramGetMetrologyModelParamGetMetrologyModelParamget_metrology_model_param
Abfragen von Parametern, die für das gesamte Messmodell gelten.
get_metrology_object_fuzzy_paramGetMetrologyObjectFuzzyParamGetMetrologyObjectFuzzyParamget_metrology_object_fuzzy_param
Abfragen von Fuzzy-Parametern des Messmodells.
get_metrology_object_indicesGetMetrologyObjectIndicesGetMetrologyObjectIndicesget_metrology_object_indices
Abfragen der Indizes der Metrology-Messobjekte eines Messmodells.
get_metrology_object_measuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasuresget_metrology_object_measures
Abfragen der Messregionen und der Ergebnisse der Kantenextraktion für die Metrology-Messobjekte eines Messmodells.
get_metrology_object_model_contourGetMetrologyObjectModelContourGetMetrologyObjectModelContourget_metrology_object_model_contour
Abfragen der Modellkonturen in Bildkoordinaten.
get_metrology_object_num_instancesGetMetrologyObjectNumInstancesGetMetrologyObjectNumInstancesget_metrology_object_num_instances
Abfragen der Anzahl der Instanzen der Metrology-Messobjekte eines Messmodells.
get_metrology_object_paramGetMetrologyObjectParamGetMetrologyObjectParamget_metrology_object_param
Abfragen eines oder mehrerer Parameter des Messmodells.
get_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResultget_metrology_object_result
Abfragen der Ergebnisse der Anpassung des Messmodells.
get_metrology_object_result_contourGetMetrologyObjectResultContourGetMetrologyObjectResultContourget_metrology_object_result_contour
Abfragen der Ergebniskonturen eines Metrology-Messobjektes.
read_metrology_modelReadMetrologyModelReadMetrologyModelread_metrology_model
Einlesen eines Messmodells aus einer Datei.
reset_metrology_object_fuzzy_paramResetMetrologyObjectFuzzyParamResetMetrologyObjectFuzzyParamreset_metrology_object_fuzzy_param
Löschen aller Fuzzy-Parameter und Fuzzy-Funktionen eines Messmodells.
reset_metrology_object_paramResetMetrologyObjectParamResetMetrologyObjectParamreset_metrology_object_param
Löschen aller Parameter eines Messmodells.
serialize_metrology_modelSerializeMetrologyModelSerializeMetrologyModelserialize_metrology_model
Serialisieren eines Messmodells.
set_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeset_metrology_model_image_size
Setzen der Bildgröße für die Metrology-Messobjekte.
set_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamset_metrology_model_param
Setzen von Parametern, die für das gesamte Messmodell gelten.
set_metrology_object_fuzzy_paramSetMetrologyObjectFuzzyParamSetMetrologyObjectFuzzyParamset_metrology_object_fuzzy_param
Setzen der Fuzzy-Parameter oder Fuzzy-Funktionen eines Messmodells.
set_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamset_metrology_object_param
Setzen von Parametern für die Metrology-Messobjekte eines Messmodells.
write_metrology_modelWriteMetrologyModelWriteMetrologyModelwrite_metrology_model
Schreiben eines Messmodells in eine Datei.