Bildverarbeitung in Echtzeit?

Bildverarbeitung in Echtzeit?

Was gilt es bei Industrie-Anwendungen zu beachten?

Unter Echtzeitbetrieb versteht man die Einhaltung von maximalen, definierten Verarbeitungszeiten von Rechnersystemen. Entgegen der begrifflich naheliegenden Vermutung, wird mit Echtzeit keine Aussage zur Dauer der Verarbeitung gemacht. Man unterscheidet ´Harte´ und ´Weiche´ Echtzeit: Wenn die Einhaltung der vorgegebenen Verarbeitungszeiten generell gilt, wird von Ersterem gesprochen; wenn die erlaubte Verarbeitungszeit nur üblicherweise eingehalten wird, von Letzterem.
Im Zusammenspiel der Einzelkomponenten einer Maschine ist das rechtzeitige Vorhandensein von Steuerinformationen entscheidend. Entsprechend muss das Bildverarbeitungssystem diese Anforderung in Maschinen-Echtzeit erfüllen. Speziell die Synchronisierung von Kamera und Beleuchtung auf die Prüfobjekte ist zeitkritisch. Perfekte Harte Echtzeit schaffen hier Controller auf FPGA-Basis. Durch ihre klare definierten Zeitabläufe sind sie echtzeitfähig. Bei den Vision-PCs VisionBoxen sind diese deshalb bereits integriert. Für die zügige Umsetzung auch komplexer Anforderungen sorgt ein umfangreiches SDK für C++ oder .net, so dass kein VHDL-Code angefasst werden muss. Dies soll anhand eines Praxis-Beispiels gezeigt werden. Auf einem Fließband laufen zu sortierende Teile. Eine Lichtschranke erfasst die Teileposition, bezogen auf eine Inkrementalgeberstellung. Liegt das Teil passend, werden synchron die Kamera(s) ausgelöst und die LEDs der Beleuchtung mit Strom versorgt. Mit dem Sortierergebnis wird dann an der richtigen Auswurfposition ein Druckluftventil ausgelöst und das Teil vom Band gepustet. Der Echtzeitcontroller einer VisionBox AGE-X erledigt das mit wenigen Zeilen Parametriercode.

Echtzeit auf x86

Die Problematik Windows-basierter Bildverarbeitungssysteme hinsichtlich Echtzeitfähigkeit wurde bereits von IntervalZero (inVision 1/15, S. 62) aufgezeigt. Zusammengefasst: Windows ist erst dann im weichen Sinne echtzeitfähig, wenn neben der Rechenleistung für die Bildauswertung noch ausreichend Ressourcen für die verschiedenen Windows-Services bereitstehen. Wahlweise investiert man in proprietäre Echtzeit-Software für Windows.

Was ist die Alternative?

Kritisch ist der Zeitpunkt der Bildaufnahme und der aus der Bildverarbeitung folgenden Aktion. Dazwischen liegt möglicherweise genug Zeit für einen Windows-Rechner, die (Weiche) Echtzeitbedingung zu erfüllen. Aus diesem Grund kombiniert Imago den Echtzeit-Controller mit einem Windows-OS. Im gezeigten Praxisbeispiel liegt der Auswurf so weit von der Bildaufnahme entfernt, dass sich Latenzen im Windows ausmitteln und die bezahlte Rechenleistung optimal genutzt wird. Darüber hinaus lassen sich auf der x86-Architektur auch andere Betriebssysteme als Windows nutzen. Unter Linux kann z.B. die RT-Erweiterung genutzt werden, um einen x86-Rechner weiter in Richtung Harter Echtzeit zu bringen. Aktuell arbeitet man an entsprechenden Systemen für die VisionBox AGE-X.

Echtzeit auf Multicore-DSP

Als Alternative zur x86-Architektur sehen wir – und viele Hersteller von parametrierbaren Vision Sensoren und -systemen – echtzeitfähige Prozessorarchitekturen mit DSPs und FPGAs. Diese Rechner müssen nicht erst aufwendig entwickelt werden, sondern stehen schon als fertiges Produkt zur Verfügung, wie z.B. die VisionBox Octa. Für die Bildverarbeitung werden moderne Mehrkern-DSPs mit Gleitkomma-Einheit eingesetzt. FPGAs werden nur für klar umrissene Aufgaben verwendet, wie parametrierbare Echtzeit-Controller oder Camera Link Framegrabber. Diese Kombination ermöglicht die Umsetzung der Aufgabenstellung in C++, also ohne VHDL-Kenntnisse. Dank moderner Entwicklungsumgebungen für C++ auf Eclipse-Basis ist der Weg von einem Windows-Rechner zu einer VisionBox Octa nur ein kleiner Schritt und kein großer Sprung. Zudem erlauben die Entwicklungstools effizientes Debugging, sowie den Beweis der Echtzeitfähigkeit einzelner Tasks.

Weitere Anwendungen

Zwei Zeilenkameras scannen eine Druckbahn ab. Erforderlich ist die perfekte Synchronisation der Zeilenkameras auf den Drehgeber. Die einzelnen Zeilen werden mit Camera Link in Harter Echtzeit übertragen und dank der Rechnerarchitektur ebenfalls in Harter Echtzeit ausgewertet. Die Ergebnisse fließen anschließend latenzfrei direkt in die Steuerung der Druckmaschine zurück. In fast allen Zeilenapplikationen müssen die Bilddaten sofort verarbeitet werden. Da es keine Bildlücke geben darf, führt ein Stau in der Bildverarbeitung schnell zum Speicherüberlauf. Harte Echtzeitapplikationen gibt es auch in schnellen Produktionsmaschinen, in denen die gefertigten Teile vor dem nächsten Prozessschritt überprüft werden.

Imago Technologies GmbH

Das könnte Sie auch Interessieren