BushPositionDetectionTool

Das BushPositionDetectionTool ist zur Lagebestimmung gleicher, kreisförmiger Teile (z.B. Scheiben, stehende Zylinder, Buchsen etc.) programmiert worden. Es dient dazu, diese Teile in greifbare Teile und nicht greifbare Teile zu klassifizieren und die Koordinaten der greifbaren Teile (z.B. durch einen Roboter) an eine übergeordnete Steuerung zu übermitteln. Es wird immer nur eine Koordinate weitergegeben, z.B. abhängig von der Distanz zur Bildmitte (konfigurierbar).

../../../_images/BushPositionDetectionTool.png

Der allgemeine Ablauf des Tools ist wie folgt:

In einem definierten Bereich wird nach kreisförmigen Strukturen mittels CircleHough–Algorithmus (CircleHoughTool) gesucht. Werden Strukturen mit genügend hohen Score gefunden, wird auf diesen Strukturen eine Feinsuche nach Kreisen mit dem FindCircle–Algorithmus (CogFindCircleTool) durchgeführt. Anschließend werden Störkonturen mit einem CogBlobTool zwischen den gefundenen Kreisen gesucht, um ggf. umgefallene Teile zu detektieren. Dafür wird aus den bisher gefundenen Kreisen ein Maskenbild erzeugt. Gefundene Kreise, welche zu nahe an diesen dunklen Flächen (Blobs) liegen, werden als nicht greifbar deklariert. Auch werden Teile, deren ermittelte Mittelpunkte zu nahe aneinander liegen (evtl. überlappen) gesondert markiert (nicht greifbar).

Detaillierte Erklärung anhand eines Beispiels:

Im Beispiel werden Bundbuchsen in einer Kiste detektiert. Die Buchsen liegen mehrlagig in einer Kiste mit Bund nach unten und könnten transportbedingt auch umgefallen sein oder übereinander liegen. Die einzelnen Lagen sind mit heller Pappe getrennt.

Ergebnisbild

../../../_images/BushPositionDetectionTool-RunImage.png ../../../_images/BushPositionDetectionTool-RunImage-enlarged.png
  1. Blau (äußere Region): In dieser Region wird mittels CircleHough-Algorithmus nach Kreisen gesucht (CircleHoughTool)

  2. Magenta (innere Region): In dieser Region wird nach umgefallenen Buchsen oder anderen Störkonturen gesucht (CogBlobTool)

  3. Cyan (greifbare Buchsen): Buchsen, welche cyanfarben umrandet werden, sind für die übergeordnete Steuerung greifbar, d.h. ihre Koordinaten werden an die Steuerung weitergegeben

  4. Rot (überlappende Buchsen): Buchsen, welche rot umrandet sind, überlappen, d.h. die Mittelpunkte der gefundenen Kreise sind zu nah. Sie werden als nicht greifbar gewertet

  5. Orange (Buchsen zu nahe an Störkontur): Orange umrandete Buchsen befinden sich zu nahe an einer Störkontur, z.B. an einer umgefallenen Buchse. Die werden als nicht greifbar gewertet

  6. Lila (innere Blobfläche): Es wird nochmal die innere Fläche der Buchsen gesucht und bewertet (Abstand Mittelpunkt innere Fläche – Mittelpunkt äußerer Kreis), um evtl. hervorschauende Buchsen der darunterliegenden Lage abzugrenzen

Hinweis

  1. Die innere Region (Magenta) muss so gesetzt werden, dass sich z.B. durch Verschieben der Zwischenlagen keine darunterliegenden, halb sichtbaren Strukturen (Buchsen) befinden.

  2. Es werden immer nur die Koordinaten von genau einer Buchse nach ausgegeben.

Outputs

../../../_images/BushPositionDetectionTool-terminals.png

Terminal

Zustand

Beschreibung

ResultBestPointX

Rückgabe der ermittelten X-Koordinate

ResultBestPointY

Rückgabe der ermittelten Y-Koordinate

CanBePicked

0

Keine pickbare Buchse vorhanden

CanBePicked

1

Pickbare Buchse vorhanden

IsLayerEmpty

0

Layer vorhanden

IsLayerEmpty

1

Keine Buchse (auch keine umgefallene oder überlappende) mehr vorhanden

Bemerkung

IsLayerEmpty wird verwendet, wenn die Bauteile aus mehreren Lagen gepickt werden müssen und eine Zwischenlage entfernt werden kann.

Einstellungen:

../../../_images/BushPositionDetectionTool-RadiusSettings.png
  1. Radius (mm) of WHOLE bush: Radius des zu suchenden, kreisförmigen Objekts in mm.

  2. Minimal distance (mm) between two bushes: Die Mittelpunkte zweier Objekte dürfen minimal zweimal der Radius (aus Wert oben) inklusive diesen Wertes auseinander sein, damit sie nicht als überlappend deklariert werden (\(Radius * 2 + Minimal distance = tatsächlicher Mindestabstand\)).

  3. Minimal distance (mm) from fall down bush to bush: Minimal notwendiger Abstand zwischen einer Buchse und einer Störkontur, um die Buchse als „greifbar“ zu markieren.

  4. Value (mm) to increase the mask to get the FallDownBushes as blob: Wert, um der Radius von gefundenen Kreisen bzw. Buchsen für die Generierung des Maskenbilds der Blob-Suche nach Störkonturen vergrößert wird.

Hinweis

Die Werte beziehen sich auf den SelectedSpaceName der Bildes. Dieser ist hier im Normalfall auf Weltkoordinaten (mm) gesetzt.

../../../_images/BushPositionDetectionTool-BlobSettings.png
  1. Fall down blobs low range: Minimale Fläche, ab der der dunkle Flächen zwischen gefundenen Buchsen als Störkontur gewertet werden.

  2. Fall down blobs high range: Minimale Fläche, bis zu der dunkle Flächen zwischen gefundenen Buchsen als Störkontur gewertet werden.

../../../_images/BushPositionDetectionTool-AdvancedSettings1.png
  1. Resultlist sorted by: Reihenfolge, nach der die Koordinaten der greifbaren Buchsen ausgegeben werden. Hier stehen folgende Auswahlmöglichkeiten zur Verfügung:

    • DistToImageBorder

    • DistToImageMidPoint

    • FirstByXThenByY

    • FirstByYThenByX

  2. Subsampling value: Um diesen Faktor wird das Bild verkleinert (Anzahl der Pixel), damit die Rechenzeit herabgesetzt wird.

  3. CircleHoughTool Settings: Öffnet das CircleHoughTool, welches innerhalb des BushPositionDetectionTools verwendet wird.

  4. BlobTool Settings (Fall Down Bushes): Öffnet das CogBlobTool für die Suche nach Störkonturen oder umgefallenen Buchsen.

  5. Radius (mm) of cylinder: Sollradius des Innenkreises.

  6. Distance (mm) center of mass innerblob to circle midpoint: Erlaubte maximale Distanz des Flächenschwerpunkts der inneren Kreisfläche zum Mittelpunkt des gefundenen Außenkreises (zu sehen bei Punkt 6 in der oberen Abbildung -> lila- und cyanfarbener Punkt (Wert 100.0).

  7. Max. distance (mm) to innerblob area: Liegt der Schwerpunkt des Blobs außerhalb der eigentlichen Blobfläche (z.B. bei konkaven Polygonen), ist dieser Wert der erlaubte Abstand des Schwerpunkts zur Blobfläche (bei 0: Schwerpunkt muss innerhalb des Blobs liegen)

  8. Blob-Settings (Inner Blob): Öffnet das CogBlobTool für die Suche des Innenkreises.

../../../_images/BushPositionDetectionTool-AdvancedSettings2.png
  1. Percent (threshold) of founded points, which should be find: Prozentsatz der Caliper, welche bei der Feinsuche des Außenkontur mittels CogFindCircleTool mindestens gefunden werden müssen, damit ein Objekt als Buchse bewertet wird.

  2. Max. distance (mm) to Circle: Erlaubter Abstand der gefundenen Punkte zum idealen Kreis, welcher gesucht wird. Punkte mit größerem Abstand zum Idealkreis werden verworfen.

  3. Find an Fit Circle: Öffnet das CogFindCircleTools zur Feinsuche der kreisförmigen Objekte

  4. Angle to step (degree): Wenn (6) angewählt ist, könnten am Rand des Suchfeldes nach dem Greifen einer Buchse Kollisionen auftreten, wenn Bauteile übereinander liegen. Mit einem CogBlobTool (5) wird deshalb schrittweise die Umgebung der Buchse untersucht, um eine Richtung zu ermitteln, in die die Buchse kollisionsfrei bewegt werden kann. Die Richtungsvektor ist im Result unter DirectionX bzw. DirectionY verfügbar.

  5. Direction: Button öffnet das BlobTool für (4).

  6. bushes, which lie above a bush, are pickable: Gibt an, ob übereinander liegende Buchsen als greifbar markiert werden sollen.

Hinweis

Beim Parameter Percent (threshold) of founded points, which should be find wird die Anzahl der zu ignorierenden Caliper miteinbezogen, d.h. werden viele Caliper ignoriert, muss auch der Parameter nach unten korrigiert werden.