Industrielle Bildverarbeitung: Roboter lernen sehen

Robotik ist eine Art Wirtschaftsmotor im Maschinenbau – und das weniger wegen eingesparter Arbeitsplätze, sondern vorrangig wegen der höheren Qualität, die sich für jedes einzeln gefertigte Stück ermöglichen lässt. Diese Anforderung kann durch den Einsatz von Bildverarbeitung verbessert werden. Denn durch Bildverarbeitung lernen Roboter zu \’sehen\‘. Am Roboter direkt angebrachte Kameras (Bild 1) können während der Arbeit Bilder aufnehmen, die dann nach deren Verarbeitung in Echtzeit wiederum dem Roboter sagen, was er tun muss. 3D-Bildverarbeitung selten Zurzeit wird in der Robotik nur ein geringer Prozentsatz aller Aufgaben mit Bildverarbeitung gelöst. Das hat vor allem traditionelle Gründe. Wenn sie allerdings unumgänglich wird, entwickeln die Ingenieure entsprechende Software meist selbst. Sie greifen also bis heute selten auf Standardsoftware zurück. Das kostet in den meisten Fällen nicht nur enorme Entwicklungszeit, die verloren geht. Aufgrund der hohen Qualität von Standardsoftware sind Eigenentwicklungen kaum in der Lage, das Know-how, die Robustheit, die Zuverlässigkeit und Schnelligkeit von Standardsoftware zu schlagen. Die Standardbibliothek Halcon für Machine Vision hält eine komplette integrierte Entwicklungsumgebung vor. Sie bietet alle Möglichkeiten der 3D-Bildverarbeitung für die Robotik an, z.B. 3D-Vermessung und 3D-Lageerkennung. Neben den schnellen Operatoren hält die Software ein Teaching bereit. Laut Hersteller ist darüber hinaus das Kalibrieren einfach und schnell. Für die 3D-Bildverarbeitung mit Halcon in der Robotik gibt es die Möglichkeit, mit zwei Kameras (Stereo) zu arbeiten, in speziellen Fällen reicht auch eine Kamera. Aufbau mit zwei Kameras Verfügt der Aufbau über zwei Kameras, können zwei unterschiedliche Stereo-Verfahren angewendet werden. Das erste bringt vor allem bei hochgenauen Formvermessungen gute Ergebnisse: Die beiden synchron aufgenommenen Bilder werden transformiert. Über die Disparität, also dem Abstand der korrespondierenden Pixel eines jeden Objektpunkts, kann die Tiefe dieses Punkts ermittelt werden. Das zweite Stereo-Verfahren für die Robotik, das die MVTec-Ingenieure entwickelt haben, beruht auf der Idee, die Aufmerksamkeit gezielt auf bestimmte markante Bildbereiche zu konzentrieren. Das können einzelne Punkte, Ecken oder Kanten sein, die als ausgewiesene Merkmale von der Software aus den Bildern erkannt werden. In diesem Fall brauchen also nicht alle Pixel der beiden Bilder miteinander verglichen werden, sondern die Berechnung wird nur auf die zuvor ausgewählten Bereiche beschränkt. Dadurch ist das Verfahren schneller als das erste. Außerdem können dem Roboter subpixelgenaue bzw. submillimetergenaue Positionsdaten übergeben werden. 3D mit einer Kamera 3D-Verfahren gibt es auch mit nur einer Kamera (Monocular 3D). Sind die Maße eines zu untersuchenden Objekts bekannt, so kann mit Halcon über das Projektionsbild deren 3D-Lage in Weltkoordinaten bestimmt und rekonstruiert werden (Pose Estimation). Nachdem die Applikation kalibriert wurde, werden dem Bildverarbeitungssystem die Koordinaten ganz bestimmter markanter Objektmerkmale mitgeteilt. Die korrespondierenden Bildpunkte werden nun von der Bildverarbeitung gesucht. Danach kann die 3D-Rekonstruktion des Objekts erfolgen. Ein ähnliches Verfahren bietet die Beobachtung von Kreisen, die im Kamerabild projiziert als Ellipse erscheinen; durch deren Analyse lässt sich die Lage des Objekts dreidimensional rekonstruieren (Pose of Circles). Das ist vor allem bei Objekten mit Bohrlöchern von Vorteil. Weshalb das Verfahren für die Autoindustrie interessant sein dürfte. Gerade hier wird oft mit solchen Werkteilen gearbeitet. Weiterhin ist eine Rekonstruktion über die Schärfe/Unschärfe-Beziehung eines Objekts möglich (Depth from Focus). Entweder ist die Kamera so montiert, dass sie sich entlang der optischen Achse bewegen lässt, oder die Kamera ist starr, und das Objekt lässt sich entsprechend bewegen. Resultierend aus dem Schärfegrad lässt sich über diesen Verfahrweg die dreidimensionale Beschaffenheit des beobachteten Objekts bestimmen (Bild 4). Die Schärfe wird von der Software über den Vergleich der Grauwerte und deren Umgebungen eines Pixels einer Bildreihe bestimmt, die mit unterschiedlicher Objekt-Kamera-Distanz aufgenommen wurde. Auch mit kontrollierten Lichtvariationen lässt sich ein Objekt rekonstruieren. Dazu werden mehrere Bilder in Serie aufgenommen, während die Beleuchtungseinheit um das Objekt rotiert wird (Photometric Stereo). Jedes noch so kleine zu untersuchende Bauteil produziert dadurch unterschiedliche Reflexionen. Die einzelnen Bilder mit diesen Reflexionen werden dann von der Software verglichen und führen schließlich zu einer 3D-Rekonstruktion der Morphologie (Bild 5). Klassische Bildverarbeitungsmethoden Neben den speziellen 3D-Methoden für die Robotik bietet Halcon die klassischen Bildverarbeitungsmethoden an. Dazu gehören hochgenaues Messen, Matching, OCR, Data- und Barcode-Lesen sowie Blobanalyse. Auch diese werden immer häufiger in der Robotik zur in-situ-Qualitäts­kontrolle eingesetzt, z.B. zur Identifizierung von Komponenten während des Greifens von Teilen im Automobilbau oder zur Schweißnahtkontrolle. Integrierte Entwicklungsumgebung Halcon bietet außerdem eine integrierte Entwicklungsumgebung (IDE). Das interaktive Entwicklungswerkzeug HDevelop geht dabei über ein \’Rapid Application Development\‘ hinaus. Denn HDevelop exportiert das erstellte Bildverarbeitungs Programm direkt in C++, C, C# oder Visual Basic. Die von HDevelop mit Halcon-Operatoren generierten Applikationen lassen sich also direkt in ein Steuerungsprogramm einfügen. HDevelop ermöglicht es, externe Prozeduren auszuführen und zu integrieren. Die externen Prozeduren können Programm-Schnipsel sein, die der Programmierer zuvor als separat existierende Datei bereits erstellt hat oder die er von anderen Programmierern übernehmen kann. Zusätzlich können die externen Prozeduren mit einem Passwort verknüpft werden, um das Lesen der Algorithmen zu verhindern, nachdem sie in HDevelop hochgeladen worden sind. Außerdem wird so verhindert, dass der Inhalt der Prozedurdatei auf der Festplatte gelesen werden kann. Dadurch sind der Programmiercode und das entsprechende Know-how abgesichert. Über die Eingabe des korrekten Passworts lässt sich dann der Inhalt der entsprechenden externen Prozedur in HDevelop sowohl lesen als auch modifizieren. Darüber hinaus ist mit dem Interpreter HDevelop- Engine (HDevEngine) das Exportieren der erstellten HDevelop-Anwendung nicht mehr länger notwendig (Bild 6). Die Engine ruft – integriert in ein C++ Programm – die Datei der HDevelop-Applikation auf, bindet sie in C++ ein und führt sie dort aus. Dadurch ermöglicht es die Integrierte Entwicklungsumgebung von Halcon, Programme zu erstellen und Teile zu ändern, ohne anschließend einen Kompilierungs- und Link-Prozess durchlaufen zu müssen. Die Halcon-IDE arbeitet interoperabel sowohl unter Windows als auch unter Linux und Unix. Unter Windows entwickelte Halcon-Applikationen lassen sich beispielsweise in einem C++ Programm unter Linux ausführen und umgekehrt. Halcon Embedded In der Robotik werden unterschiedliche Plattformen eingesetzt. Halcon ist in der jeweils aktuellsten Version portierbar für Plattformen, die auch in der Robotik herangezogen werden. Außerdem ist die Software unabhängig von Betriebssystemen und Hardware. Die Bibliothek läuft sowohl unter Windows, Linux, Unix und Solaris. Kommt von einem gängigen Hersteller eine neue Bilderfassungshardware auf den Markt – egal ob Kamera oder Framegrabber – bemüht sich MVTec, bald in Zusammenarbeit mit dem Hersteller eine Schnittstelle zu entwickeln. Die Zukunft wird hier vielleicht von Standards bestimmt werden, was aus Sicht sowohl der Applikationsingenieure für die Robotik als auch der Softwarehersteller wünschenswert wäre. MVTec möchte als \’Contributing Member\‘ Schnittstellen-Standards wie GenICam mit gestalten und auf den Weg bringen. Fazit Standard-Bildverarbeitung wird aus eher traditionellen Gründen in der Robotik noch selten eingesetzt. Dabei bietet standardisierte 3D-Bildverarbeitung Vorteile, die in der Robotikbranche allmählich durchsickern. Bildverarbeitungsapplikationen in der Robotik können mit Standardsoftware im Gegensatz zu Eigenentwicklungen schnell, zuverlässig und damit kostengünstig umgesetzt werden. Sie bieten eine hohe Anpassungsfähigkeit an den Prozess, da sie bei wechselnden Anforderungen und Anordnungen sowie wechselnden Objekten unproblematisch zu handhaben sind. Zudem können erprobte Technologien gleichzeitig eingesetzt werden, so z.B. 2D und 3D Lagerekonstruktionen sowie Inspektion und Qualitätskontrolle. So wie die Ansprüche an die Automatisierung steigen, wird es eher eine Frage der Zeit sein, wann sich aus ökonomischen Gründen die Standard-Bildverarbeitung auch in der Robotik durchsetzt.