Fixture3DTool

Das Fixture3D-Tool dient der Erzeugung neuer 3D Koordinatenräume bei der Verarbeitung von CogImage16Range Bildern (2.5D), zum Beispiel zur Bauteilnachführung. Eingabe des Tools können mehrere Cognex-Bilder sein. Minimal erforderlich ist ein RangeImage vom Typ CogImage16Range.

../../../_images/fixture3dTool-exitor.png

Funktionalität

Erzeugung des neuen 3D Raumes

Das Tool erzeugt einen neuen 3D-Koordinatenraum relativ zum gewählten Raum des Eingangsbildes, indem zwei Transformationen verkettet und an den Koordinatenbaum angehägt werden:

../../../_images/fixture3dTool-createdSpaces.png

Transformationskette einer Fixierung mit angpasstem Ausgaberaum: das fixierte Koordinatensystem ist gegenüber dem Roh-Ausgaberaum des Operators um einen konstanten Offset verschoben und um 90° verdreht

  1. UnfixturedFromRawFixtured: Ein wählbarer Fixture-Operator berechnet dynamisch eine Transformation aus Eingabe-Daten des Tools. Zur Auswahl stehen insbesondere Operatoren, um einen 3D-Raum anhand geometrischer Primitive zu definieren, die mit 2D-Operatoren im Bild gefunden werden können.

  2. RawFixturedFromFixtured: Eine zusätzliche starre Transformation wird an den RawFixtured Raum angehägt. Diese dient insbesondere dazu, um die Lage des Ausgaberaumes relativ zu den Eingabeprimitiven anzupassen: Beispielsweise können hier feste CAD-Offsets einfließen oder Koordinatenachsen mittels Rotation entsprechend dem CAD geeignet „vertauscht“ werden. Als Standard ist eine Einheitsmatrix konfiguriert, so dass der Ausgaberaum dem Roh-Ausgaberaum des Operators entspricht. Die Transformation kann im Tool-Editor parametriert werden.

Erzeugung eines neuen 2D Raumes

Bei Bedarf erzeugt das Tool auch ein neuen 2D-Koordinatenraum, dessen x- und y-Achse die Bildprojektion der x- und y-Achsen des neuen 3D-Ausgaberaumes liegen.

Warnung

Ein 2D-Ausgaberäume sollte nur erzeugt und verwendet werden, solange deren z-Achse „grob“ parallel zur z-Achse des Pixel-Raumes des Eingabebildes liegt. Andernfalls enstehen bei der Darstellung und Messung von Bildmerkmalen sehr große Koordinatenwerte und möglicherweise numerische Probleme.

Im Allgemeinen erscheinen dieses projizierten Koordinatensysteme mit einer „Schiefstellung der Achsen“ und einer Anisotropen Skalierung. Werden im Bild 2D-Messungen in diesem Koordinatensystem durchgeführt, entsprechen die Ergebnisse denjenigen einer Messung innerhalb der Ebene z=0 des Erzeugten 3D-Systems (beziehungsweise parallel dazu).

Warnung

Die resultierenden schiefgestellten Koordinatenräume können bei der Weiterverarbeitung in anderen Tools [geometrische] Fehler erzeugen, sofern das Tool nicht universell anwendbar implemntiert wurde. Beispiele sind hier etwa Tools wie CogFindLine, welche Eingabe-Linien-Segmente ungeprüft unter Annahme einer starren Transformation zwischen Koordinatenräumen umrechnen!

Fixierung verwandter Bilder

Zustäztlich zum 2.5D Eingabebild können weitere verwandte Eingabebilder als Eingabe zum Tool hinzugefügt werden. Voraussätzung ist, dass sich die Koordinatenbäume dieser zusätzlichen Eingabebilder auf denselben Wurzelraum beziehen: Von jedem Eingebbild wird als Ausgabe des Tools eine Kopie erzeugt (mit geteilten Pixeldaten). Dem Koordinatenbaum dieses Ausgabebildes wird eine neuer Koordinatenraum so hinzugefügt, dass er bezogen auf die Baum-wurzel identisch liegt wie die Eingabebilder. Angehängt wird dieser neue Raum dabei an den gewählten Raum des jeweiligen Eingabebildes.

Tool-Editor

Allgemeine Einstellungen

Allgemeine Einstellungen zur Operator-Funktion erfolgen im Tab Settings des Tool-Editors:

../../../_images/fixture3dTool-settings.png
  1. Fixtured Space Name: Benennung der neuen Räume beim Einfügen in die Koordinatenraumbäume der Ausgabebilder. Der Name wird gleichermaßen für 3D- und 2D- Räume in allen Ausgabebildern genutzt.

  2. Create 2D Spaces: Falls aktiv, wird den Ausgabebildern ein neuer 2D Koordinatenraum hinzugefügt.

  3. Fixture Operator: Der gewählte Operator definiert das dynamische Verfahren zur Erzeugung des neuen 3D-Raumes

  4. Space To Output:

    • FixturedSpace setzt die neu erzeugten Koordinatenräume auch als gewählten Koordinatenraum der Ausgabebilder aktiviert.

    • UnfixturedSpace fügt die neuen Räume lediglich zu den Koordinatenbäumen der Ausgabebilder hinzu. Als selektierter Raum wird jedoch unverändert der gewählte Raum des jeweiligen Eingabebildes unverändert übernommen.

  5. Naming Conflict Behaviour: Definiert das Verhalten des Tools, falls beim Hinzufügen des Raumes ein Konflikt mit einem bestehenden Raum gleichen Namens auftritt:

    • DuplicateIsError: Im Konfliktfall bricht das Tool mit einem Fehler ab.

    • ReplaceDuplicate: Der neue Raum soll den vorhanden ersetzen.

    • IgnoreDuplicate: Der vorhandene Raum bleibt erhalten. Das Tool übrespringt das Hinzufügen des neuen Raumes.

  6. Related Images: Hier werden Terminals für die fixierung verwandter Zusatzbilder erstellt werden.

Origin

Im Tab Origin kann durch Parametrierung der Transformation RawFixturedFromFixtured die Lage und Orientierung des Ausgaberaumes bezogen auf das Operator-Ergebnis angepasst werden.

../../../_images/fixture3dTool-origin-tab.png
  1. Angabe der Verschiebung des Ausgabesystems augehend vom Ergebnis des Fixture-Operators.

  2. Angabe der Verdrehung gegenüber dem Ausgabesystem des Fixture-Operators.

Result

Im Tab Result wird als Ergebnis der Tool-Ausführung die Transformation unfixturedFromFixtured angezeigt:

../../../_images/fixture3dTool-results-tab.png
  1. Die Translation/Verschiebung des Ausgaberaumes gegenüber dem Eingaberaum. Die Einheit der Translationskoordinaten ist die Einheit des Ausgaberaumes. zum Beispiel: Hat der Ausgaberaum die Einheit 1 mm, dann ist die gezeigte Verschiebung auch in mm zu interpretieren.

  2. Die Orientierung des Ausgabesystems im Vergleich zum Eingabe-System. Hier angegeben als Euler-XYZ Winkel.

Graphics

Die Konfiguration der erzeugten Grafiken erfolgt im Tab Graphics. Hierbei ist die Kombination der gewählten Optionen entscheidend: Einzelne Grafiken können in bis zu vier Records angezeigt werden:

../../../_images/fixture3dTool-graphics-tab.png

Sowohl Grob können zwei Gruppen von Optionen unterschieden werden:

Optionen, welche Records erzeugt werden sollen:

  1. 2D aktiviert die Erzeugung von 2D Records für alle aktiven Visualisierungen

  2. 3D aktiviert die Erzeugung von 3D Records für alle aktiven Visualisierungen

  3. Range Image aktiviert die Erzeugung von von Records zum RangeImage

  4. Related Images aktiviert die Erzeugung von Records für alle zusätzlichen Related Images

Optionen, die einzelne Visualisierungen zu allen gewählten Records hinzufügen:

  1. Unfixtured Coordinate System: Koordinatensystem des selektierten Raumes des Eingabebildes

  2. Operator Inputs: Visualisierung geometrischer Eingabeparameter des Fixture-Operators

  3. Fixtured Coordinate System: Koordinatensystem des final erzeugten Ausgaberaumes

  4. RawFixtured Coordinate System: Ausgabekoordinatensystem des Fixture-Operators (Zwischenergebnis ohne Ursprungsanpassung)

  5. Unfixtured Coordinate System: Koordinatensystem des selektierten Raumes des Eingabebildes

FixtureOperatoren

Das Tool bietet mehrere Fixture-Operatoren, welche die Lage des Roh-Ausgabesystems anahnd von Eingabe-Daten berechnen. Als Eingabe dienen in der Regel geometrische Merkmale wie zum Beispiel Punkte oder Linien.

Die Auswahl der Operatoren erfolgt im Tool Editor in den Allgemeinen Einstellungen

Target Plane and 2D Pose

Der Operator berechnet einen neuen 3D-Raum anhand einer gegebenen 2D-Ziellage, einer Zielebene und einer Projektionsrichtung.

Berechnet wird eine starre 3D-Transformation, die sich auf den gewählten 3D-Raum des Eingabebildes bezieht. Die 2D-Ziellage beschreibt, wo die Projektion von Ursprung und x-Achse des gewünschten Roh-Ausgaberaumes relativ zu einem 2D-Koordinatensystem auf einer Eingabe-Ebene liegt. Die Zielebene definiert die „Höhe“ des Ausgaberaumes sowie die Orientierung der z-Achse des Ausgaberaumes.

Eingangsparameter für den Operator sind:

  1. Zielebene: Die xy-Ebene des Roh-Ausgaberaumes wird in der Zielebene liegen.

  2. Projektionsrichtung: Auswahl einer Richtung zur Projektion von 2D-Primitiven von der Eingabe- auf die Zielebene

  3. InputPoseSpaceName: Name des 2D-Koordinatenraumes zur Interpretation der 2D-Solllage. Der Raumname muss im Koordinatenbaum des Eingabebildes vorhanden sein!

  4. InputPoseSpacePlane: Die Ebene, auf der die gemessenen Primitive der 2D-Ziellage physikalisch liegen.

  5. FixturedOriginX: x-Koordinate des 2D-Sollpunktes, gemessen im InputPoseSpaceName.

  6. FixturedOriginY: y-Koordinate eines 2D-Punktes, gemessen im InputPoseSpaceName.

  7. FixturedXAxisRotation: Drehwinkel im 2D-Raum, welcher die gewünschte Orientierung der x-Achse beschreibt.

  8. Projection: Projektionsrichtung beim Übergang zwischen von der Eingabe- auf die Zielebene. Optionen:

    • RawFixturedZAxis [Standard]: Richtung der z-Achse des Roh-Ausgaberaumes. Dies entspricht der Normalenrichtung der Zielebene

    • UnfixturedZAxis: Richtung der z-Achse des Eingaberaumes: der SelectedSpace des Eingabebildes

    • Sensor3DZAxis: z-Achse des Raumes mit Namen „Sensor3D“

    • Phys3DZAxis: z-Achse des Raumes mit Namen „Phys3D“

Der Operator berechnet den Roh-Ausgaberaum so, dass:

  • Die xy-Ebene des Roh-Ausgaberaumes in der Zielebene liegt.

  • Der Ursprung des Roh-Ausgaberaumes aus dem Ursprung des Eingaberaumes durch senkrechte Projektion entlang der Projektionsrichtung entsteht.

  • Die Richtung x-Achse des Roh-Ausgaberaumes kollinear zur Projektion der x-Achse des Eingaberaumes liegt. Die Projektion erfolgt senkrecht entlang der Projektionsrichtung

  • Die orthogonale Projektion des Ausgaberaum-Ursprungs entlag der Projektsionsrichtung auf die xy-Richtung des gewählten Eingaberaumes auf dem Ursprung der Eingabelage in dieser Ebene liegt.

  • Die orthogonale Projektion der Ausgabe-Raum-X-Achse auf die xy-Richtung des gewählten 3D-Eingaberaumes die selbe Orientierung gegenüber der

Alle Eingabeparameter können im Editor im Tab Fixture angepasst werden:

../../../_images/fixture3dTool-TargetPlaneAnd2dPose.png

Target Plane and Two Lines

Der Operator berechnet einen neuen 3D-Raum anhand einer Zielebene, einer Projektionsrichtung und zweier Linien, namentlich der XAxisLine und der OriginLine.

Berechnet wird eine starre 3D-Transformation, die sich auf den gewählten 3D-Raum des Eingabebildes bezieht. Die Orientierung des Roh-Ausgaberaumes wird druch die Zielebene und die XAxisLine vorgegeben. Sein Ursprung ergibt sich als Schnittpunkt der Projektionen der beiden Linien auf die Zielebene

  1. TargetPlane: Zielebene, welche die xy-Ebene des Ausgangssystems definiert.

  2. XAxisLine: Eine 2D-Linie, welche die Richtung der X-Achse des Roh-Ausgabesystems sowie einen Freiheitsgrad seines Urpsrungs definiert. Die Linie wird als Abbild einer 3D-Linie interpretiert, welche in der XAxisLineContainingPlane liegt.

  3. XAxisLineContainingPlane: Eine Ebene, welche die 2D-XAxisLine enthält.

  4. OriginLine: Eine 2D-Linie, welche einen Freiheitsgrad des Ursprungs des Roh-Ausgabesystems definiert. Sie ist als Abbild einer 3D-Linie interpretiert, welche in der OriginLine liegt.

  5. OriginLineContainingPlane: Eine Ebene, welche die OriginLine enthält.

  6. Projection: Projektionsrichtung beim Übergang zwischen von der Eingabe- auf die Zielebene. Analog zur Porjektionsrichtung des Operators TaretPlane and 2D Pose

Die 2D Eingabelinien definieren zusammen mit ihrer jeweiligen ContainingPlane je eine Linie in 3D. Dabei enspricht die 2D-Linie der Abbildung einer 3D-Linie mit dem Bildgebenen Sensor: die 2D-Linie ist die senkrechte Projektion der 3D-Linie ins Bild entlang der z-Achse des Sensor3D-Space.

Ausgehend von den 3D-Eingabelinien berechnet der Operator den Roh-Ausgaberaum so, dass:

  • Die xy-Ebene des Roh-Ausgaberaumes in der Zielebene liegt.

  • Der Usprung des Roh-Ausgabesystems ist der Schnittpunkt der senkrechten Projektionen von XAxisLine und OriginLine in die Zielebene entlang der Projektionsrichtung

  • Die X-Axis des Roh-Ausgabesystems liegt kollinear zur senkrechten Projektion der XAxisLine in die Zielebene.

Alle Eingabeparameter können im Editor im Tab Fixture angepasst werden:

../../../_images/fixture3dTool-PlaneAndTwoLinesFixture.png

N-to-N-Point on Plane

Der Operator berechnet einen neuen 3D-Raum aus einer Liste von 2D-Bildpunkten die auf einer gegebenen Eingabe-Ebene liegen und ihren zugehörigen 3D-Sollpunkten.

Berechnet wird eine starre 3D-Transformation, die sich auf den gewählten 3D-Raum des Eingabebildes bezieht. Der Ausgaberaum wird als Least-Squares best-fit so bestimmt, dass die Eingabepunkte auf der Eingabeebene in ihm annähernd die gewünschten Sollkoordinaten erhalten.

Die vorgabe der Sollpunkte kann auf zwei Arten erfolgen:

  • Geometric Fixturing: Die Design-Koordinaten der Punkte werden manuell eingetragen. So wird ein Ausgaberaum erzeugt, der die Entwurfslage des Bauteils bestmöglich nachbildet.

  • Reference Fixturing: Die Sollpunkt-koordinaten werden einem Referenzbild entnommen und zusammen mit diesem im Tool gespeichert. Damit kann eine einfache Nachführung anhand markanter Punkte für nachfolgende Tools umgesetzt werden. Zum Beispiel um Suchbereiche relativ zur 3D-Bauteillage zu definieren.

Eingangsparameter für den Operator sind:

  1. Punkt-Korrespondenzliste: Eine Liste korrespondierender Punktpaare: UnfixturedX und UnfixturedY sind die Ist-Koordinaten des 2D-Eingabepunktes, gemessen im SelectedSpace (2D) des Eingabebildes FixturedX / -Y / -Z sind die Sollkoordinaten des jeweiligen Punktes im 3D-Ausgaberaum

  2. Eingabepunkt-Ebene: Eine Ebene, auf der alle 2D-Eingabepunkte phyiskalisch liegen. Mit ihr werden die 2D-Eingabe-Bildpunkte zu 3D-Punkten ergänzt, so dass die 2D der Sensor-Abbildung der 3D-Punkte ins Bild entsprechen.

Die genannten Eingabeparameter können im Editor im Tab Fixture angepasst werden:

../../../_images/fixture3dTool-NtoNOnPlaneFixture.png

Der Button Grab Reference Image and data (3) speichert die aktuellen Eingabedaten als Referenzdaten im Reference Fixturing Modus ab: Das Eingabebild wird als Referenzbild übernommen, die 3D-Projektionen der unfixtured Eingabebildpunkte werden als fixtured Sollkoordinaten gespeichert.