Embedded Vision
Das eingebettete BV-System
Eine reibungslose Kommunikation zwischen den Komponenten eines eingebetteten BV-Systems und dieses Systems mit der Automatisierung ist Voraussetzung für eine Datenübertragung in Echtzeit. Hier ist die Entwicklung von Standards gefragt.
Unterschiedliche Typen von Vision-Systemen, von klassisch bis eingebettet.
© Embedded Vision Study GroupEmbedded-Vision-Systeme wandeln sich zu dezentralen, intelligenten und selbstständig agierenden Teilnehmern im Produktions- und Automatisierungsumfeld. Künftig sollen sie in der Lage sein, sich automatisch im Netzwerk anzumelden und zu wissen, welcher Netzwerk-Teilnehmer ihre Mess-Ergebnisse benötigt. Das Automatisierungs-Netzwerk wiederum kann dann vom Gerät gezielt Informationen abrufen wie etwa Bild- und Signaldaten.
Aufgrund ihrer hohen Rechenleistung und intelligenter Algorithmen werden eingebettete Vision-Systeme es ermöglichen, Daten wie Produkt-, Qualitäts- und Prozessinformationen in Echtzeit vor Ort auszuwerten, zur weiteren Verwendung aufzubereiten und die Ergebnisse zurückzumelden. Die Systeme liefern also nicht nur Informationen, sondern steuern auch Abläufe, um die Leistung, Effizienz und Qualität eines Produktionsprozesses zu verbessern. Vorbeugende Wartung, Mensch-Roboter-Kollaboration und eine flexible Anlagensteuerung für die Einzelstückproduktion sind dadurch effizienter realisierbar.
Parallele Datenverarbeitung in Echtzeit
Wie könnte nun ein eingebettetes Vision-System aussehen, das die hohe Last wachsender Bandbreiten zu reduzieren vermag, um Bilder dezentral in Echtzeit zu verarbeiten und auszuwerten und gleichzeitig Rechner zu entlasten?
Arten eingebetteter Vision-Systeme: Eingebetteter Kamerakopf aus Sensor und FPGA (oben), eingebettetes Vision-System als Smart-Sensor mit FPGA-SoC (Mitte) und Vision-SoC, zumeist in individualisierten Anwendungen integriert (unten).
© Embedded Vision Study GroupDie größten Sprünge in der Steigerung von Prozess-Performance versprechen FPGAs (Field Programmable Gate Arrays), die sich auf Framegrabber, aber auch in eingebetteten Vision-Systemen wie Kameras oder Vision-Sensoren befinden. In einen FPGA lässt sich eine Vielzahl integrierter Schaltungen implementieren, die Bildverarbeitungsprozesse wie beispielsweise Bildoptimierung, Bildauswertung oder die Erzeugung von Steuerungssignalen übernehmen. Mit ihrer Fähigkeit zur Datenverarbeitung mit sehr hohen Parallelitäten bieten FPGAs optimale Voraussetzungen für die Auswertung von Bilddaten in Echtzeit. Hierdurch lässt sich nicht nur das Barcode-Lesen in eine Kamera implementieren, sondern auch die Erkennung des Strichcodes auf den Produkten sowie die Bildverbesserung durch das Herausrechnen unerwünschter Reflexionen, Verschmutzungen oder auch geometrischer Verzerrungen.
FPGAs steuern Sensoren, die Pixelformatierung und -aufbereitung sowie die Übergabe an Schnittstellen. Sie ermöglichen Vorverarbeitungen, um die Bandbreite der Bilddaten zu reduzieren oder Auswertungen vorzunehmen, um Meta- oder Steuerdaten zu erhalten. Dies erlaubt vielen Unternehmen, ihr Anwendungs-Know-how in die Geräte einfließen zu lassen sowie neue Anwendungen und Märkte zu adressieren.
Galt die FPGA-Hardware-Programmierung früher als aufwendig und teuer, ist sie heute mittels einer grafischen Bedienoberfläche über Operatoren und Datenfluss-Diagramme wesentlich einfacher und ohne Hardware-Programmierkenntnisse durchzuführen.
Da FPGAs wiederprogrammierbar sind, lassen sich beliebig viele spezielle Anwendungen auch in eingebetteten Vision-Systemen verwenden. FPGAs können mit Prozessoren in Form einer Hybridarchitektur gekoppelt sein. Solche cyber-physischen Komponenten stellen einen Kleinrechner dar, oft bestehend aus eingebetteten ‚Systems on a Chip‘ (SoC) inklusive Spezialprozessoren, speziellen echtzeitfähigen Mikrocontrollern und Hightech-Speichern mit hoher Leistung und minimaler Leistungsaufnahme sowie Multi-Core-Architekturen.
Heterogenität ruft nach Standards
Die ‚Embedded Vision Study Group‘ (EVSG) will die heterogene Systemarchitektur für Embedded Vision durchlässiger machen, und hat drei Technologiefelder (SC1, 2 und 3) herausgearbeitet, für die Schnittstellen-Standards zu entwickeln sind.
© VDMADiese heterogene Systemarchitektur durchlässiger zu machen, hat sich die ‚Embedded Vision Study Group‘ (EVSG) auf die Fahnen geschrieben. Sie hat ihren Report im Sommer 2015 auf dem ‚G3 Future Standards Forum‘ (FSF) in Chicago vorgestellt. Durch Weiterentwicklung von Standards wie OPC UA und Gen<I>Cam für Embedded Vision in mehreren Arbeitsgruppen treibt die EVSG die Standardisierung weiter voran, damit sich aufgenommene (Bild-)Daten verlustfrei verarbeiten und Auswertungsergebnisse weitertransportieren lassen.
Im EVSG-Report wurden drei Technologiefelder als ‚Standard Candidates‘ (SC) herausgearbeitet, für die die Arbeitsgruppen Schnittstellen-Standards entwickeln werden:
- SC1 kümmert sich um den modularen Aufbau mit Sensor-Boards und Prozessor-Einheit/System on a Chip (SoC) und deren Kompatibilität.
- SC2 betrifft das Softwaremodell (API) zur Kommunikation mit den eingebetteten Komponenten und deren Steuerung.
- SC3 nimmt sich deren Integration in eine Automatisierungs- beziehungsweise Verarbeitungsumgebung an.
Drei Technologiefelder
Eine konkrete Fragestellung im Technologiefeld SC1 ist beispielsweise, wie sich ein Sensor mit Prozessorintelligenz verbinden lässt, so dass er seine Bilddaten automatisch in ein Netzwerk einspeist. Bislang werden proprietäre Software-Programme eingesetzt, um Kameras und Sensoren zu steuern oder Verarbeitungsergebnisse zu übertragen sowie für die Geräte-Erkennung und -Steuerung. Daher sind Schnittstellen-Standards zu entwickeln, die Gen<I>Cam-kompatibel sind, um Bildverarbeitungsgeräte effizient in das Produktionsumfeld einzubetten. Die EVSG hat dazu verschiedene Schnittstellen zwischen Sensor und Prozessor/SoC evaluiert, insbesondere MIPI, PCI Express und USB3, aber aus Gründen der Langzeitverfügbarkeit und technischer Einschränkungen bislang keine konkrete Empfehlung für eine der Technologien aussprechen können.
Wichtige Grundlage für das Technologiefeld SC2 ist, dass eingebettete Vision-Systeme Bilder intern vorverarbeiten, teilweise bis zu Ergebnisdaten. Diese neue Art von Daten erfordert erweiterte generische Beschreibungsmodelle von Datenformaten und -strukturen sowie ihrer semantischen Information. Die EVSG empfiehlt einen um die Anforderungen im Bereich eingebetteter Systeme erweiterten Gen<I>Cam-Standard, mit Schwerpunkt Unterstützung generischer Datenformate und der Prozessormodule, die die Daten verarbeiten. Ein zusätzlicher Aspekt sind hier die zu beachtenden Sicherheitsmechanismen wie etwa Datenverschlüsselung und IP-Schutz.
Im Technologiefeld SC3 bleibt die Überführung vorverarbeiteter und komprimierter Bilddaten in konkrete Informationen herausfordernd. Dafür notwendig sind standardisierte Schnittstellen zwischen eingebetteten Bildverarbeitungssystemen und der Automatisierungstechnik wie auch der Steuerungs- sowie Planungsebene. Als Lösungsansatz wird im RAMI 4.0, dem Referenzarchitekturmodell Industrie 4.0, die alleinige Empfehlung für das Standardisierungsprotokoll OPC UA im Rahmen eines Companion Standards ausgesprochen, das ein erprobtes Softwaremodell bietet. Als Technologiekandidat wurde Gen<I>Cam als Companion Standard evaluiert mit Schwerpunkt auf der Semantik (Übernahme der Gen<I>Cam SFNC – Standard Features Naming Convention), was auch die EVSG befürwortet. Die Bildverarbeitungssysteme sollen dann direkt in die SPS-Software und damit in die Produktionslinie integriert sein. Im Rahmen einer geplanten OPC-UA-Spezifikation soll es künftig eine Echtzeit-Erweiterung geben.
FPGAs flexibel programmieren
Bildverarbeitungsalgorithmik auf FPGA-Hardware lässt sich beispielsweise über eine grafische Bedienoberfläche erstellen – ohne Hardware-Spezialisten mit FPGA-Programmierkenntnissen zu erfordern.
© Silicon SoftwareWährend die Programmierung von FPGAs früher Hardware-Spezialisten vorbehalten war, sind heute neben Systemintegratoren, Komponentenherstellern und Hardware-Entwicklern auch Software-Entwickler und Anwendungsingenieure in der Lage, Bildverarbeitungs-Algorithmik auf FPGA-Hardware zu erstellen – dank einfach zu bedienender Technologie beispielsweise über eine grafische Benutzeroberfläche. Diesen Ansatz verfolgt Silicon Software mit der Entwicklungsumgebung ‚VisualApplets‘, die es erlaubt, anhand von über 200 Operatoren und vorkonfigurierten Beispiel-Designs individuelle Anwendungen sowie Steueraufgaben auf Signalebene umzusetzen (zum Beispiel Triggersteuerung). Mit der Erweiterung ‚VisualApplets Expert‘ können erfahrene Anwender darüber hinaus vorhandenen Hardware-Code wie Bildverarbeitungsmodule in VHDL und Verilog übernehmen und in VisualApplets als generische Operatoren weiterverwenden. Die Module werden als vorsynthetisierte IP-Core-Netzlisten eingefügt. Jeder IP-Core erzeugt genau einen Operator.
‚VisualApplets Embedder‘ ermöglicht mit seiner Programmier- und Integrationsumgebung einen automatisierten Workflow, um Embedded-Vision-Technologie in BV-Geräte zu implementieren.
© Silicon SoftwareUm eingebettete Vision-Systeme mit FPGAs und SoCs mit VisualApplets individuell zu programmieren, ist eine Zwischenschicht wie ‚VisualApplets Embedder‘ erforderlich. Diese führt die vorhandene Elektronik eines Bildverarbeitungs-Gerätes sowie die Schnittstellen von VisualApplets im FPGA als zentralen Steuerungsprozessor zusammen, abstrahiert über einen zusätzlichen IP-Core. In einem einmaligen Prozess wird in wenigen Schritten die Implementierung von VisualApplets Embedder in ein Bildverarbeitungs-Gerät durchgeführt.
Der Integrationsprozess erfordert zunächst die Definition der Schnittstellen des IP-Core und dessen Integration in das FPGA-Gesamtdesign. Um einen mit VisualApplets erstellten Bildverarbeitungs-Algorithmus auf eingebetteten Systemen nutzen zu können, wird ein beliebig befüllbarer IP-Core als leere Blackbox in VHDL in das FPGA-Design der Hardware-Plattform eingebunden. Die Anbindung an die externen Hardware-Ressourcen, zum Beispiel an Sensorschnittstellen und Speichercontroller, erfolgt mittels ‚Glue-Logic‘. Hierzu geben Hersteller einige Daten ein (beispielsweise verwendeter FPGA) und spezifizieren die Ports am IP-Core (Speicherschnittstellen, Bilddateneingänge, Bilddatenausgänge, Register- und GPIO-Schnittstellen). Mit VisualApplets Embedder ist eine flexible Zusammenstellung beliebig skalierbarer, konfigurierbarer Schnittstellen möglich.
Vom Gesamt-FPGA-Design muss eine Netzliste erzeugt und die zugehörige Constraints-Datei erstellt werden. Zuletzt wird ein Hardwareplattformspezifisches Plug-in für VisualApplets generiert, das für die Unterstützung des Gerätes in der Programmierumgebung sorgt. Das Plug-in enthält neben der IP-Core-Blackbox alle Informationen zum FPGA der Hardware-Plattform, die für die Erstellung eines FPGA-Konfigurations-Bitstreams notwendig sind. Für die softwareseitige Einbindung der neuen Geräte unter VisualApplets wird über das Plug-in ein Installer erzeugt, der an die VisualApplets-Anwender verteilt werden kann und die programmierbaren Bildverarbeitungsgeräte nachrüstet. Nach der abschließenden Installation von VisualApplets und des Plug-ins ist die neue Hardware-Plattform mit VisualApplets programmierbar.
Die Zwischenschicht muss einmalig in die FPGA-Hardware integriert werden, danach sind die entstehenden offenen Plattformen beliebig oft programmierbar. Anwendungen und Funktionen lassen sich zudem auf weitere FPGA-Geräte portieren, um beispielsweise eine Produktfamilie zu pflegen oder eine produktübergreifende Portierung etwa von einem Framegrabber auf eine intelligente Kamera durchzuführen. Über die FPGA-Programmierung direkt im Gerät lassen sich Teile der Bildvorverarbeitung bereits dort ausführen, was die Datenmenge und Systemkosten reduziert. Neue Anwendungen – wie etwa im Industrie-4.0-Umfeld – und Märkte sind adressierbar
Autor:
Martin Cassel ist Redakteur bei Silicon Software in Mannheim.

















