Zum Hauptinhalt springen

RobVision-Einrichtung

Voraussetzungen

  • Mindestversion RobFlow Frontend: v5.5.0
  • Mindestversion RobFlow Backend: v5.5.0

Konfiguration

RobFlow öffnen

  1. Öffnen Sie einen Webbrowser, vorzugsweise Chrome.
  2. Geben Sie die IP-Adresse des Roboters in die Adressleiste ein, um RobFlow zu starten.

Roboterkonfiguration aufrufen

  1. Wechseln Sie in den Bereich Robot Configuration.
  2. Wählen Sie den Tab RobVision Devices

Der Tab RobVision Devices in der Roboterkonfiguration

RobVision Device hinzufügen

  1. Klicken Sie auf „Add Device“.
  2. Tragen Sie die folgenden Angaben ein:
    • Name: [eigener Name]
    • Host IP: 192.168.1.11
  3. Schließen Sie das Fenster

Ein RobVision Device hinzufügen

Kamera-Roboter-Kalibrierung

Die Kamera-Roboter-Kalibrierung bestimmt die räumliche Beziehung zwischen Kamera und Roboter und ermöglicht es dem System, von der Kamera erkannte Objektpositionen in das Koordinatensystem des Roboters zu übersetzen.

Kamera am Roboter montiert

Kameraauswahl

  1. Öffnen Sie RobVision.
  2. Wählen Sie die angeschlossene Kamera aus.

Kalibrierwerkzeug

Positionieren Sie das Kalibrierwerkzeug auf dem Tisch und bewegen Sie es während der gesamten Kalibrierung nicht.

Neue Kalibrierung starten

  1. Klicken Sie auf Start New Calibration.
  2. Wählen Sie die Methode Robot Mount.

Roboter positionieren und Bild aufnehmen

  1. Bewegen Sie den Roboter so, dass die Kamera das Kalibrierbrett vollständig erfassen kann.
  2. Prüfen Sie die Sichtbarkeit des Kalibrierbretts, indem Sie ein Bild aufnehmen (Schaltfläche Capture).
  3. Wenn das Brett vollständig sichtbar ist, klicken Sie auf Calibrate.
  4. Wiederholen Sie diesen Vorgang, bis 9 verschiedene Posen hinzugefügt sind.
  5. Prüfen Sie den Kalibrierschritt: Der Kalibrierschritt war erfolgreich, wenn die Ecken des Schachbretts markiert sind.

Das Kalibrierbrett mit markierten Ecken

  1. War der Kalibrierschritt erfolgreich, klicken Sie auf Next, um zum nächsten Kalibrierschritt zu gelangen

Kalibrierung abschließen

  1. Schließen Sie das Fenster unten rechts.
  2. Drücken Sie die Neu-laden-Schaltfläche.

Statische Kamera

Kameraauswahl

  1. Öffnen Sie RobVision.
  2. Wählen Sie die angeschlossene Kamera aus, die für die Kalibrierung mit Static Mount konfiguriert ist.

Kalibrierwerkzeug

Montieren Sie das Kalibrierwerkzeug (Schachbrett) sicher am Roboter, nach dem letzten Gelenk, sodass es stabil sitzt und sich bei Bewegungen nicht verschiebt.

Neue Kalibrierung starten

  1. Klicken Sie auf Start New Calibration.
  2. Wählen Sie die Methode Static Mount.

Roboter positionieren und Bild aufnehmen

  1. Bewegen Sie den Roboter in verschiedene Positionen, sodass die statische Kamera das Kalibrierbrett aus verschiedenen Winkeln gut sehen kann.
  2. Prüfen Sie die Sichtbarkeit des Kalibrierbretts, indem Sie ein Bild aufnehmen (Schaltfläche Capture).
  3. Wenn das Brett vollständig sichtbar ist, klicken Sie auf Calibrate.
  4. Prüfen Sie den Kalibrierschritt: Der Kalibrierschritt war erfolgreich, wenn die Ecken des Schachbretts markiert sind.

Das Kalibrierbrett mit markierten Ecken

  1. War der Kalibrierschritt erfolgreich, klicken Sie auf Next, um zum nächsten Kalibrierschritt zu gelangen

Kalibrierung abschließen

  1. Schließen Sie das Fenster unten rechts.
  2. Drücken Sie die Neu-laden-Schaltfläche

Bewertung der Kalibrierung

Die Kalibriergenauigkeit sollte bei 3 mm oder weniger liegen. Wird dieser Schwellwert überschritten, setzen Sie die Kalibrierung zurück und fügen Sie neue Posen hinzu, um die Genauigkeit zu verbessern. Achten Sie darauf, dass das Schachbrett nah genug an der Kamera positioniert ist, damit die Kalibrierung gelingt.

Wird ein gleichbleibender Versatz beobachtet, können Sie die Genauigkeit feinjustieren, indem Sie einen Offset in der Greifpose anwenden

Wichtig: Achten Sie darauf, dass die Posen des Roboters in Position und Orientierung deutlich variieren und dass das Kalibrierbrett für optimale Ergebnisse immer vollständig für die Kamera sichtbar ist.

Neukalibrierung

Befolgen Sie diese Schritte, um die automatische Neukalibrierung sicher und genau durchzuführen. Gehen Sie besonders bei der ersten Neukalibrierung vorsichtig vor, um mögliche Kollisionen zu vermeiden.

  1. Geschwindigkeit anpassen
    Setzen Sie die globale Geschwindigkeit des Roboters auf 20 %, um einen sicheren Ablauf der Neukalibrierung zu gewährleisten.
  2. Automatische Neukalibrierung starten
    Klicken Sie auf Recalibrate, um die automatische Kalibrierung zu starten.
    Der Roboter fährt automatisch die zuvor gespeicherten Posen an und nimmt neue Bilder für die Kalibrierung auf.
  3. Ergebnisse prüfen
    Drücken Sie die Neu-laden-Schaltfläche, um die Kalibrierergebnisse anzusehen.

Lösungseinrichtung

  1. RobVision öffnen
  2. Starten Sie RobVision und wechseln Sie zum Tab Solution.
  3. Neue Lösung anlegen
    Klicken Sie auf die Schaltfläche Add New Solution, um eine neue Lösung hinzuzufügen.
    Geben Sie einen Namen für die Lösung ein.
  4. Kamera auswählen
    Wählen Sie die zu verwendende Kamera.
  5. Objekt auswählen
    Wählen Sie das Objekt, das gegriffen werden soll.
  6. Region of Interest

Optional können Sie das Sichtfeld einschränken, indem Sie eine oder mehrere Regions of Interest (ROIs) definieren. Jede Greifpose außerhalb aller ROIs wird verworfen. Um eine ROI festzulegen, klicken Sie auf Add Region of Interest. Es öffnet sich ein Dialog, in dem Sie die ROI angeben können.

Die Region of Interest ist als Quader im Koordinatensystem der Kamera definiert (RGB-Frame, siehe unten). Der Quader wird über die folgenden Parameter beschrieben. Als Hilfestellung wird eine 3D-Darstellung der letzten Kameraaufnahme angezeigt, in der sich die ROI setzen lässt.

  • Reference Position: Die Position einer Ecke des Quaders.
  • Vector to the Opposite Corner: Der Versatz von der Referenzposition zur gegenüberliegenden Ecke.

Eine Region of Interest festlegen

Koordinatensystem der RGB-Kamera

  1. Greifpose

Jedes Objekt wird am vorhergesagten Keypoint gegriffen. Um diese Greifposition zu verschieben, klicken Sie auf „Edit Grasping Pose“. Es öffnet sich ein 3D-Editor, in dem Sie die Greifposition am 3D-Modell des Objekts verschieben können. Für eine genauere Position können auch exakte Zahlenwerte eingegeben werden. Da der Grasping Pose Selector ein 3D-Modell des Objekts benötigt, werden nur CAD-Picking-Projekte unterstützt. Für abweichende Greifposen in Label-Picking-Projekten verwenden Sie den Modus „Detection Only“ und passen die Greifpose mit Variable-Nodes an.

In diesem Beispiel ist der Würfel das zu greifende Objekt, das runde Objekt symbolisiert den Greifer.

Der Editor für die Greifpose

Erweiterte Einstellungen

Posenfilter

  1. Max Tilt:

Der Neigungswinkel ist die Differenz zwischen der Ausrichtung der z-Achse der Kamera zum Zeitpunkt der Bildaufnahme und der Ausrichtung der z-Achse der berechneten Greifpose. Überschreitet dieser Winkel die festgelegte maximale Neigung, verwirft das System die vorgeschlagene Greifpose.

Stellen Sie sich vor, die Kamera ist über einem Tisch montiert und der Roboter greift von diesem Tisch. Die Begrenzung des Neigungswinkels ist entscheidend, um Kollisionen des Roboterarms zu vermeiden. Eine minimale Neigung (linkes Bild) zeigt den Roboter, wie er gerade nach unten greift, ausgerichtet an der z-Achse der Kamera. Eine kleine Neigung (mittleres Bild) kann in Ordnung sein, eine große Neigung (rechtes Bild) birgt jedoch Kollisionsgefahr.

Minimale Neigung

Kleine Neigung

Große Neigung

  1. Distance Filter

Bei aktiviertem Abstandsfilter werden erkannte Objekte nicht gegriffen, wenn sich ein anderes Objekt innerhalb des angegebenen Abstands zur Greifposition des Objekts befindet.

Einstellungen der Posenschätzung

  1. Grasping Pose Override

Die Funktion Grasping Pose Override erlaubt es, die gewünschte Orientierung der Greifpose vorzugeben. Das kann Ihr Roboterprogramm deutlich beschleunigen, da häufige Orientierungswechsel des Endeffektors die Gesamtbewegung verlangsamen. Um die Funktion zu nutzen, bringen Sie zunächst den Endeffektor des Roboters in die richtige Orientierung. Drücken Sie anschließend Apply Current Pose, um diese Konfiguration zu speichern.

  1. Picking Priority

Hier können Sie wählen, in welcher Reihenfolge die Objekte gegriffen werden, wenn mehr als ein Objekt erkannt wird. Distance to Center bevorzugt Objekte, die näher an der Bildmitte liegen. Confidence bevorzugt Objekte mit höheren Konfidenzwerten aus dem Erkennungsmodell.

Axis Priority ist eine mächtige Option, mit der Sie die Sortierreihenfolge anhand der Objektpositionen entlang bestimmter Achsen festlegen können — zum Beispiel, wenn Objekte entlang eines Förderbands ausgerichtet oder in einer Reihe angeordnet sind. Die Objekte werden entsprechend ihrer Position entlang der gewählten Achsen sortiert, gemäß der festgelegten Prioritätsreihenfolge.

Für jede Achse vergleicht der Algorithmus die Objektpositionen (wahlweise im Kamera- oder im Roboter-Frame). Ist die Differenz zwischen zwei Objekten größer als die angegebene Toleranz, wird die Sortierung durch die gewählte Richtung bestimmt:

  • Ascending: Objekte mit kleineren Koordinatenwerten kommen zuerst.
  • Descending: Objekte mit größeren Koordinatenwerten kommen zuerst.

Liegen zwei Objekte auf einer Achse innerhalb der Toleranz, wird die nächste Achse der Prioritätsliste ausgewertet. Liegen alle Achsen innerhalb der Toleranz, gelten die Objekte als gleichrangig.

Das ermöglicht eine feingranulare Steuerung des Greifverhaltens und ist ideal für strukturierte Aufbauten, in denen die räumliche Ordnung zählt.

Sortierung nach Achsenpriorität

In diesem Beispiel beginnt die Sortierung mit der Z-Achse (erste Priorität). Alle Objekte liegen auf derselben Höhe, daher geht der Algorithmus zur X-Achse über. Die Objekte 1, 2 und 3 haben nahezu dieselbe X-Position — innerhalb der festgelegten Toleranz —, sie gelten auf dieser Achse also als gleichrangig. Die nächste Prioritätsachse ist Y, wo Objekt 1 den kleinsten Y-Wert hat und daher zuerst kommt.

Kleine Abweichungen durch ungenaue Teile, Größenunterschiede oder Messrauschen werden über die Einstellung Toleranz aufgefangen, die verhindert, dass unerhebliche Abweichungen die Sortierreihenfolge beeinflussen.

  1. Pick from defined surface

Alternativ können Sie, statt die Höhe der Greifpose über den Tiefensensor zu schätzen, eine feste Ebene definieren, die die Oberfläche des Objekts repräsentiert. Ist diese Ebene aktiviert, schätzt das System die Höhe nicht mehr über den Tiefensensor. Das bedeutet, dass gestapelte Objekte nicht erkannt werden, da das System nur Objekte berücksichtigt, die auf der definierten Ebene liegen.
Um diese Ebene zu definieren, lernen Sie dem System drei Positionen ein. Diese Positionen sollen die Ebene abbilden, auf der der Roboter die Objekte greifen soll (also die Oberseite). Eine Methode ist, drei Objekte an die Ecken der gewünschten Ebene zu legen und den TCP (Tool Center Point) des Roboters zur Position jedes Objekts zu bewegen. Achten Sie darauf, dass die Höhe dieser Positionen der gewünschten Greifhöhe für die Objekte entspricht..

  1. Pixel radius depth estimation

Dieser Wert legt fest, wie viele Pixel rund um den Greifpunkt für die Tiefenschätzung berücksichtigt werden. Mehr Pixel führen in der Regel zu einem besseren Mittelwert, besonders bei verrauschten Tiefendaten. Geometrie und Größe des Objekts müssen dabei berücksichtigt werden.

  1. Pose estimation refinement

Sie können Pose estimation refinement aktivieren, um nach der ersten Posenschätzung eine auf Punktwolken-Matching basierende Verfeinerung (ICP) durchzuführen. Das ist nur für Objekte mit CAD-Daten relevant und kann zu besseren Ergebnissen führen; in den meisten Fällen genügt jedoch die erste Posenschätzung.

Modellkonfiguration

  1. Confidence Threshold

Damit wird die Konfidenzschwelle für das Erkennungsmodell festgelegt. Bei einem höheren Wert muss das Modell sicherer sein, um ein Objekt zu erkennen, wodurch mehr Objekte mit höherer Unsicherheit herausgefiltert werden.

Längenmessung

  1. Length Measurement

Bei aktivierter Längenmessung wird jedes erkannte Objekt entlang seiner beiden Hauptachsen vermessen, woraus sich ein Breiten- und ein Höhenwert ergeben. Auf diese Werte kann über eine Variable im Flow zugegriffen werden.