Starke Hardware für Embedded Vision
Höchste Effizienz mit Cortex-A15 und Cortex-A72
Begriffe wie Embedded Vision, ARM oder Linux kursieren zurzeit verstärkt durch die Bildverarbeitungsbranche. Stehen sie für Veränderungen oder für Weiterentwicklungen vorhandener Technologien? Und wohin geht der Trend bei den Smart Kameras oder den dezentralen Visionrechnern? Gibt es Alternativen zum klassischen x86er/Windows-Lösungsansatz und wo ist der „klassische Ansatz“ weiterhin sinnvoll.
Übersetzt mit „eingebettet“ bedeutet „embedded“ in Bezug auf ein Visionsystem, dass dieses in die Anwendung, das Gerät oder die Maschine integriert wurde und dadurch ein vollwertiger Bestandteil ist. Das komplette System kommt ohne die Funktionalität des Visionsystems nicht mehr aus. Ein Beispiel hierfür sind die weit verbreiteten Pfandrücknahmesysteme. Ohne die Bildverarbeitung sind diese Maschinen wertlos.
Eine Maschine, die Schwebstoffe in Ampullen erkennt, benötigt die Bildverarbeitung genauso wie eine Track-and-Trace-Maschine, mit der gedruckte Codes überprüft werden. Wie das „embedded system“ letztendlich realisiert ist, ob als Vision Sensor, Smart Kamera, oder als Hochleistungscomputer-Kamera-System, spielt für die Definition eine sekundäre Rolle. Wichtig ist dessen Funktionalität sowie die Schnittstellen zu anderen Komponenten. Auch sollte Embedded Vision nicht mit einfachen Platinencomputern wie „RaPi“ („Raspberry Pi“) in Verbindung gebracht werden. Diese sind weder industrietauglich, noch haben sie die erforderliche Rechenleistung für anspruchsvolle Anwendungssoftware.
CPU in der Kamera oder als separate Box?
Die auf Smart Kameras montierten Kühlkörper zeigen es an: Hier wird es knapp! Denn die CPU-Wärmeentwicklung ist hoch und Einbaukonditionen wie Formfaktor und Luftströmung sind limitiert. Diese Bauart erscheint wie ein Bindeglied zwischen Smart Kamera und separater Rechenleistung in einem lüfterlosen Kompaktrechner. Hier ist die CPU-Verlustleistung ein entscheidender Faktor. Eine weitere Einschränkung von Smart Kameras sind die limitierten Schnittstellen. Viele Anwendungen benötigen eine Reihe von Schnittstellen, nicht nur für die Kamera, sondern auch für I/O und Ethernet. Die Anzahl der I/Os, sowie Encoder, Feldbus und die Mehrkamerafunktionalität sind einige der Parameter für die Entscheidungsfindung.
Smart Kamera CPU: x86, DSP oder ARM?
Sehr selten werden in Smart Kameras x86er CPUs (ATOM) verbaut. Warum eigentlich? – Weil damit in der Regel der stets kritische Formfaktor ansteigt. Ein PC benötigt Schnittstellen für Monitor, Tastatur und Maus, was im Falle der Smart Kamera über eine separate Break Out Box realisiert wird. Ganz so elegant wie bei den folgenden Alternativen lassen sich die Geräte nicht betreiben.
Der DSP (Digital Signal Processor), sehr häufig aus der Texas Instruments Da Vinci Familie, steckt in vielen Vision Sensoren. Allerdings mausern sich die Applikationen in den Kameras zu ausgewachsenen Anwendungen, die nicht nur einige Filter ausführen. Bei allgemeiner, nicht signalprozessoroptimierter Software, läuft diese auf einer ARM-Architektur schneller ab. Zudem ist die Infrastruktur der ARM-Prozessoren umfangreicher und besser - Stichwort Linux Betriebssystem. Allerdings behaupten sich DSPs weiterhin, wenn es um die Verwendung eines robusten Echtzeit-Betriebssystems geht. Auch als Coprozessoren sind die DSPs weiterhin auf den Chips vorhanden.
Der Trend geht heute eindeutig in Richtung ARM-Prozessoren und SoC (System on Chip). Die Firma ARM liefert die CPU, während die Chiphersteller (TI, NXP, Altera) ihr jeweils eigenes Knowhow um die CPU herum ansiedeln. Im Falle eines Altera-Bausteins ist dieses das FPGA, im Falle des in der Imago Smart Camera verwendeten Chips TI AM5728 sind dieses eine Reihe weiterer Prozessoren für Spezialaufgaben.
Neue Leistungsklasse für Smart Kameras
Die Cortex-A CPUs der Firma ARM sind in die Leistungsklassen ultra-high-efficient (Cortex-A5; -A7; -A32; -A35), high-efficient (Cortex-A8; -A9; A53) und high-performance (Cortex-A15; -A17; -A57; A-72; -A73) unterteilt. Für eine Smart Kamera ist einerseits die CPU-Leistungsaufnahme kritisch, andererseits wünscht sich jedoch der Bildverarbeiter möglichst hohe Rechenleistung. Dem Imago-Team ist es gelungen, den Cortex-A15 aus der Klasse high-performance in ein kompaktes Kameragehäuse zu integrieren.
Der Benchmark eines Halcon-Operators zeigt die Überlegenheit des Cortex-A15 gegenüber anderen ARM-basierten Alternativen (Abb. 1). Und rund um die neuen Smart-Kamera-Anwendungen sind Fragen zu beantworten: Kann ich meine anspruchsvolle Applikation im Formfaktor einer Smart Kamera realisieren? Muss es zwingend ein Boxrechner im Schaltschrank sein? In Verbindung mit solchen Fragen ist auch der Begriff „Personal Vision Sensor“ (Abb. 2) in Anlehnung an den „Personal Computer“ erfunden worden.
Dieser „Personal Vision Sensor“ ist eine Rechnerplattform, die es ermöglicht, im Formfaktor eines Sensors eine anspruchsvolle individuelle Anwendung ablaufen zu lassen. Ergänzend zur Rechenleistung wird das Ziel mittels weiterer Schnittstellen sowie dem OS Linux erreicht. Darüber hinaus bietet der Linux-Markt ergänzend Programme für eine Reihe von applikationsbegleitenden Aufgaben an.
Weitere Daten zeigt das Blockschaltbild in Abbildung 3, wobei die Kamera optional mit einem Echtzeitfeldbus ausgerüstet werden kann. Diese Funktionalität wird über einen weiteren auf dem CPU-Chip integrierten RISC-Prozessor bereitgestellt. Die dort ablaufende Firmware hat die Aufgabe, den jeweiligen Stack eines der Echtzeitfeldbusse (EtherCAT, ProfiNet, SercosIII, Powerlink etc.) abzuarbeiten. Außer den Treibern und RJ45-Buchsen ist keine weitere Hardware erforderlich.
Auf der Kameraseite stehen eine Reihe von CMOS-Sensoren zur Verfügung, mit Auflösungen von 0,3 MPixel bis zu 5 MPixel. Mit M12- oder C-Mount-Objektiven sowie integrierter LED-Blitzbeleuchtung ist ein Baukasten von Modellen entstanden, dessen Inhalt den Alltag des Bildverarbeitungsingenieurs gut abdeckt. Jedoch ist die Applikationsentwicklung eines Personal Vision Sensors nur für Serien wirtschaftlich realisierbar. Die MOQ (Minimum Order Quantity) von 25/Jahr ist dabei niedrig und erlaubt es, neueste Produktideen zu verfolgen.
Entwicklungsumgebung: traditionell
Mit „traditionell“ ist die bei Entwicklern zu Recht erfolgreiche Entwicklungs-Toolchain MS Visual Studio gemeint. Eclipse ist ebenso weit verbreitet, jedoch haben die Imago-Entwickler eine Methode gefunden, Code für die mit Linux betriebene Smart Kamera via MS Visual Studio zu entwickeln. Ein Plug-In transferiert den Quellcode in die Kamera, führt dort den Compiler aus und liefert Debugging-Informationen zurück ins Visual Studio (Abb. 4). Dies ist gegenüber früheren Vorgehensweisen elegant und einfach geworden und Berührungsängste mit einer Linux-basierten CPU muss es nicht mehr geben. Zudem sind inzwischen sehr viele Entwickler relativ gut mit den ARM-Prozessoren vertraut. Schnell läuft eine erste Applikation, und der Entwicklungsingenieur kann sich auf die eigentliche Aufgabe fokussieren. Per Videoschulung steht zudem ein zweistündiges Expertenseminar zur Verfügung.
Interaktiv die Bildverarbeitung erweitern: Halcon Embedded
Die populäre Halcon Bildverarbeitungsbibliothek läuft grundsätzlich auch auf Linux-basierten Rechnern. Voraussetzung hierfür ist eine Kompilierung für die entsprechende Zielarchitektur. Bei einem für den Personal Vision Sensor entwickelten Rahmenprogramm, das die Schnittstellen inkl. Kamera bedient, lässt sich via HDevelop der Kern der Bildverarbeitungsroutinen ändern und erweitern. HDevelop erzeugt ein Skript, das direkt auf der intelligenten Kamera interpretiert wird. Über Remotezugriff kann diese Änderung auf dem Kamerarechner von weltweit jedem Ort aus vorgenommen werden.
Neue Leistungsklasse für VisionBoxen
Mit den ARM-CPUs steht auch für die VisionBoxen (Abb. 5) eine neue Leistungsklasse zur Verfügung. Die Rechner sind mit allen für die Bildverarbeitung und z.T. auch für die Automatisierung erforderlichen Schnittstellen ausgestattet. Zudem erlaubt der Real-Time Communication Controller die Erzeugung echtzeitfähiger Signale aus Eingangssignalen (Abb. 6). Wird beispielsweise ein Sensor bedient, dessen Eingangssignal manipuliert ist (z.B. verzögert, interpretiert, gezählt), wird aus diesem ein Kameratriggersignal oder ein Signal zur Ansteuerung der integrierten LED-Controller erzeugt. Das Kameratriggersignal selbst steht am Ausgang oder alternativ als Action Command, für Trigger-over-Ethernet-Kameras zur Verfügung. Alle diese Funktionen sind auf den x86er Maschinen sowohl für das OS Linux als auch für Windows Embedded verfügbar.
Macht es Sinn, hier über eine CPU-Alternative nachzudenken? Aus drei wesentlichen Gründen macht es Sinn: Ausgehend vom Leistungsverlust der CPU eines lüfterlosen Rechners von 45 Watt, liefert die ARM-Architektur mehr Rechenpower im Vergleich zum x86. Diese Rechenleistung steht zudem permanent zur Verfügung, die CPU wird also dauerhaft mit 2 GHz getaktet, während ein x86er Prozessor nur sporadisch hochtaktet und dann oft nur in diesem Leistungsbereich performant ist.
Der zweite Grund ist die Langzeitverfügbarkeit von Prozessoren: Hersteller von Industrie-CPUs sind darauf bedacht, diese möglichst lange, sprich mehr als 10 Jahre, bauen zu können. Kommerzielle x86er CPUs sind nur wenige Jahre lieferbar, die teurere Embedded-Serie fünf bis sechs Jahre. Ist ein System solide ausgelegt, so sind im Maschinenbau schnell Verfügbarkeiten von bis zu 10 Jahren gefordert plus anschließender Ersatzteilverfügbarkeit. All dies ließe sich mit Generationswechseln von x86er CPUs auch bewerkstelligen, jeder Experte weiß jedoch den Aufwand dahinter abzuschätzen. Anders formuliert: Muss ein Visionsystem beispielsweise 10 Jahre produziert werden, so kann eine ARM-basierte Architektur bzgl. der Gesamtkosten pro Einheit günstiger werden als ein vergleichbarer x86er Rechner. Nicht zu vernachlässigen sind die Aufwände für Entwicklungsressourcen, Logistikänderungen oder Verwaltung beim Wechsel auf eine neue kompatible x86er Generation.
Grund Nummer drei ist schließlich die Technologie selbst: Eine heutige 8-Kern Cortex-A72 CPU wird mit einem 28nm-Prozess gefertigt, ein aktueller Core x86 mit 14nm. Die Anzahl der Kerne wird steigen, das ist sicher. Von 28nm auf 14nm ist einfach noch wesentlich mehr Potential vorhanden, um die Anzahl der Kerne zu steigern oder den Leistungsverbrauch zu reduzieren.
Für die VisionBox (Abb. 7) wird das neueste Flaggschiff der Firma NXP, der LS2088 mit einem Cortex-A72 mit 8 Kernen eingesetzt. Ein DDR4-Speicherinterface erlaubt schnellsten Datentransfer der Bilddaten. Zudem sind an den Prozessor direkt zwei 10 GBit/s Ethernet-Schnittstellen für Kamera und/oder Rechner-Rechner-Kommunikation angebunden. Weitere 4 Gigabit/s Ethernet-Buchsen erlauben den Anschluss weiterer Netzwerkkomponenten. Und anstatt über Rechenbeschleuniger wie GPU, DSP oder FPGA nachzudenken, kann man per 10 GBit/s Ethernet die Rechenleistung skalieren. Schnellere Systemlösungen, homogene Entwicklungsteams, Sicherheit für die Zukunft sind nur einige Stichworte für Entscheider.
Fazit
ARM-basierte CPUs ziehen vermehrt in die Architektur von Visionrechnern und Smart Kameras ein. Sie bieten im jeweiligen Formfaktor ein Mehr an Rechenleistung und längerfristige Verfügbarkeit von Komponenten. Linux ist in vielen Industrieapplikationen kein Fremdwort mehr, junge Ingenieure sind darin ausgebildet und etablierte Ingenieure trumpfen ebenso mit RaPi-Erfahrungen auf.
Teilfunktionen einer Maschine – und hierzu gehört die Bildverarbeitung – werden komplexer und müssen autark sicher funktionieren. Alles in einem PC abzubilden, erhöht das Risiko, im Fehlerfall zu lange nicht handlungsfähig zu sein. Embedded Vision Systeme bieten hier Vorteile. Und die „schaltschranklose“ Maschine wird auch schon beworben. Wo hier die Rechner stecken, lässt sich leicht erraten.
Ob x86 oder ARM, ob Linux oder Windows Embedded, was letztendlich für den Anwender zielführend ist, entscheidet dieser für seine Fragestellung am besten selbst. Das Imago-Team kann aber mit seinen Erfahrungen und einer individuell ausgearbeiteten Entscheidungsmatrix dazu beitragen, die beste Architektur zu wählen.
Die Evolution wird weitergehen und intelligentere Algorithmen und Software benötigen schlagkräftigere Hardware, damit neue Maschinengenerationen für Industrie 4.0 gerüstet sind.
Kontakt
Imago Technologies GmbH
Straßheimer Str. 45
61169 Friedberg
Deutschland
+49 6031 684 26 11
+49 6031 684 26 12