Skripting hoch zwei

Skripting hoch zwei

Rapid Prototyping für intelligente Kameras

Sick AppSpace ist das erste Entwicklungssystem, das zusammen mit Halcon Rapid-Prototyping für intelligente Kameras bietet. Skriptsprachen und vielseitige Entwicklungstools ermöglichen mit geringem Aufwand die Implementierung kundenspezifischer Anwendungen. Darüber hinaus lässt sich die Software-Lösung – je nach Anforderung – auf unterschiedlichen Embedded-Systemen von Sick skalieren.

 Die Entwicklungsumgebung HDevelop von Halcon bietet vielf?ltige Tools und Debug-M?glichkeiten. (Bild: Visioning)

Die Entwicklungsumgebung HDevelop von Halcon bietet vielfältige Tools und Debug-Möglichkeiten. (Bild: Visioning)

Traditionell gibt es für Entwickler von kundenspezifischen Softwarelösungen für intelligente Kameras zwei Wege: Erstens eine low-level Programmierung mit dem Verzicht hinsichtlich Komfort und Schnelligkeit moderner Entwicklungstools (insbesondere was die Erstellung von Schnittstellen, Bedienoberflächen und Applikationslogik angeht) oder zweitens, die Entscheidung für ein konfigurierbares System, mit dem zwar schnell eine Anwendung zu erstellen ist, welches aber auf Grund des begrenzten Funktionsumfangs oder der vordefinierten Konfigurationsmöglichkeiten die Entwicklung einer optimalen und individuellen Kundenlösung nicht erlaubt. Im Folgenden soll anhand einer konkreten Anwendung dargestellt werden, wie die Plattform Sick AppSpace von Sick in Kombination mit der Bildverarbeitungsbibliothek Halcon von MVTec versierten Bildverarbeitungsentwicklern völlig neue Möglichkeiten bietet.

Rapid-Prototyping und Skriptprogrammierung

Entwickler, die aus der Halcon Welt kommen, sind das freie Programmieren mit einer Skriptsprache gewöhnt und freuen sich über deren Vorteile in einer integrierten Entwicklungsumgebung, wie z.B. live Syntax-Check, keine Compile-Zeiten und weitreichende Debug-Möglichkeiten. In der AppSpace Welt bildet Lua als Skriptsprache die Basis zur Entwicklung der Applikation. Die Hürde für Neueinsteiger ist dabei gering. Der Entwickler nutzt die beiden Entwicklungsumgebungen HDevelop und Sick AppStudio parallel, jedes mit eigenem Fokus und speziellen Tools. Der Entwicklungsprozess beginnt typischerweise damit, dass mit einer einfachen App auf der intelligenten Kamera InspectorP, eine programmierbare 2D-Kamera, Bilder von einem Versuchsaufbau aufgenommen und auf den Entwicklungsrechner gespeichert werden. Danach startet das Programmieren in HDevelop mit den bekannten Stärken: Schnelles Entwickeln eines Prototypens z.B. auf Basis von Applikationsbeispielen und mit Hilfe von Tools, sowie die Freiheiten einer high-level Skriptsprache zur Programmierung individueller Lösungswege und die Möglichkeiten zum Feintuning mit Hilfe von Testprogrammen (Bild 1). Lua ist eine Skriptsprache, die sich aus dem Bereich der Computer-Grafik entwickelt hat und sich durch Plattformunabhängigkeit sowie Performanz auszeichnet. Mit der in Lua itegriertenn AppSpace-API stehen alle notwendigen Module für die Entwicklung einer Bildverarbeitungsanwendung auf einem Gerät bereit: Steuerung der Bildaufnahme, digitale I/Os, Peripheriesteuerung sowie Kommunikationsschnittstellen wie Seriell, FTP, TCP/IP und CAN und eine Sick eigene Bildverarbeitungsbibliothek. Zudem gibt es ein Modul mit der Halcon Prozeduren integriert werden. Ist nach der Design Phase die Schnittstelle Lua zu Halcon definiert, reicht eine Aktualisierung der Halcon Prozeduren aus, um einen modifizierten Algorithmus sofort auszuführen.

Arbeiten mit AppStudio

Zentral in AppStudio ist einmal der Lua-Editor mit Unterstützung durch z.B. Syntax High-Lighting und Auto-Completion (Bild 2). Typische Werkzeuge wie Debugger mit Variableninspektion stehen ebenfalls zur Verfügung. Der zweite Hauptarbeitsbereich ist der UI-Builder zur Entwicklung des Web-Frontends. Mit Layout-Elementen wird dabei das Design gestaltet. Typische Controls für die Ein- und Ausgabe stehen zur Verfügung und werden ebenfalls per Drag&Drop platziert. Schließlich ist noch die Verbindung von UI-Elementen zur Applikationslogik zu implementieren. Für diesen Arbeitsschritt wünscht sich der Entwickler in der Zukunft mehr Unterstützung bei der Implementierung von Oberflächen sowie mehr Designmöglichkeiten. Für ein besonderes, über die Standardkomponenten hinausgehendes Design oder eine erweiterte User-Experience muss der Entwickler die Welt der Webprogrammierung betreten. Auf der einen Seite ist dies sicherlich eine Hürde. Andererseits stehen dem Entwickler aber vielfältige Möglichkeiten zur Verfügung. Er profitiert von den aktuellen Entwicklungen im Bereich der Webtechnologien, und mit JavaScript, HTML5 und CSS sind zudem sehr spezielle oder komplexe Benutzerführungen möglich. Sobald eine Verbindung zu einem angeschlossenen Gerät vorhanden ist, reicht zum Testen das Drücken von F5, damit AppStudio die Anwendung auf das Gerät lädt und startet. Ein wichtiges Werkzeug in AppStudio ist der Emulator. Mit diesem ist die offline Entwicklung von Programmen für alle AppSpace fähigen Geräte möglich. Ergänzt wird dieser durch den Recorder, mit dem Datenströme aufgezeichnet und wieder abgespielt werden können.

Applikationen erstellen und verteilen

 Die Entwicklungsumgebung Sick AppStudio mit Skript-Editor und UI-Builder. (Bild: Visioning)

Die Entwicklungsumgebung Sick AppStudio mit Skript-Editor und UI-Builder. (Bild: Visioning)

Nach der fertigen Entwicklung sorgt eine Verschlüsselung dafür, dass der Skriptcode nach der Auslieferung an den Kunden sicher geschützt bleibt. Grundsätzlich können auf einem Gerät mehrere Apps parallel arbeiten (und auch miteinander kommunizieren). Zur Auslieferung werden alle Apps zu einem Paket zusammengeschnürt. Danach kommt der AppManager ins Spiel: Dieser übernimmt die Installation von Firmware und Applikationspaketen auf dem Gerät. Auf Grund der Übersichtlichkeit dieses Tools kann es auch von dem Kunden selbst bedient werden.

Klarschrift- und Codelesung auf Kreisringen

Auf der Stirnfläche eines zylindrischen Metallkörpers wird ein Data Matrix Code sowie eine Zeichenfolge per Laser graviert. Geprüft werden soll die Übereinstimmung von Zeichenfolge und 2D-Code (Bild 3). Gute Codeleser tolerieren auch perspektivische Verzerrungen und finden den Code an beliebiger Position. Die Position und die Ausrichtung des Klartexts hingegen müssen relativ genau bekannt und die Grundlinie des Schriftzugs gerade sein. Typischerweise wird dazu eine Verankerung relativ zum Code oder an einer anderen Struktur auf dem Objekt eingelernt. In der vorliegenden Anwendung hingegen liegt der Text auf der Stirnfläche eines Zylinders. Auf Grund der schrägen Kamerasicht nimmt dieser Kreisring eine elliptische Form an. Die Rektifizierung erfolgt in zwei Schritten: Erstens wird die Perspektive herausgerechnet und damit aus der Ellipse ein Kreis. Dann wird mittels einer Polartransformation die Schrift gerade ausgerichtet und kann so gelesen werden. Die graphische Benutzerschnittstelle besteht aus zwei Ansichten: Die erste Web-Seite dient der Einrichtung. Mittels eines Passwortes authentifiziert sich der Berechtigte. Das Referenzbild wird aufgenommen und die Einstellungen zur Bildaufnahme adaptieren sich selbsttätig. Die Software liest automatisch den Data Matrix Code, detektiert den Ellipsenring, rektifiziert das Bild und liest die Zeichenfolge. Damit die Lesungen im Betrieb robust und schnell erfolgen, werden für alle Teile der Inspektionsaufgabe auf der Basis des Referenzbildes optimierte Parameter berechnet. Die zweite Seite dient der Kontrolle des laufenden Betriebs und zeigt die Ergebnisse der Inspektion an. Der UI-Builder ermöglicht ein responsive Webdesign, sodass die intelligente Kamera über den Browser eines beliebigen Endgerätes wie Smartphone, Tablet oder PC bedient werden kann. Da die Kamera über Taster sowie visuelle und auditive Feedback Möglichkeiten verfügt, kann die Einrichtung und Kontrolle auch ohne graphische Benutzerschnittstelle erfolgen.

Vielfältige und skalierende Hardware

Die intelligenten 2D-Kameras InspectorP gibt es in zwei Gehäusegrößen, respektive Prozessoren, mit Sensoren von 1,3 bis 4MP. Entwickler, die aus der PC Welt kommen, müssen allerdings lernen, bekannte Algorithmen auf die schwächere CPU eines Embedded-Systems auszulegen bzw. zu optimieren. FPGA beschleunigte Algorithmen wären hier eine sinnvolle Ergänzung. Wenn das Projekt mehr Rechenleistung oder ein Multi-Kamerasystem erforderlich macht, kann alternativ auf einen Embedded-Controller z.B. den SIM4000 mit acht Rechenkernen gewechselt werden. Der große Vorteil der AppSpace-Architektur ist, dass derselbe Code (bis auf die Hardware bedingten Unterschiede) auf allen Geräten läuft. Dies stellt einen Mehrwert für Integratoren dar, weil die gewachsene Softwarebasis flexibel und skaliert auf der für das Projekt passenden Hardware zum Einsatz gebracht werden kann. Insgesamt richtet sich das Hauptaugenmerk somit noch mehr auf die Programmierung der Applikation und die Bildverarbeitung.

Fazit

 Laboraufbau der Kundenapplikation: Die App l?uft live auf einem InspectorP63x mit gespeicherten ern. Die Bedienung erfolgt ?ber einen WLAN-Router von einem Tablet. (Bild: Visioning)

Laboraufbau der Kundenapplikation: Die App läuft live auf einem InspectorP63x mit gespeicherten ern. Die Bedienung erfolgt über einen WLAN-Router von einem Tablet. (Bild: Visioning)

AppSpace kam Ende 2016 auf den Markt und ist eine Plattform mit Dynamik. Updates für die unterschiedlichen Softwarekomponenten werden mehrmals im Jahr veröffentlicht. Gleichzeitig wächst das Angebot an Hardwaresystemen beständig. Für Entwickler besonders wertvoll ist die Mitgliedschaft im AppSpace DevelopersClub: Auf einer jährlichen Konferenz kann man sich direkt mit der AppSpace Entwicklermannschaft austauschen und eigene Verbesserungswünsche artikulieren. Als Kommunikations- und Informationsplattform fungiert eine Support-Webseite mit einem Ticketsystem und einer Sammlung an Beispielen und Tutorials. Halcon richtet sich an fortgeschrittene SW-Entwickler, die eine umfangreiche und leistungsstarke Bildverarbeitungsbibliothek wertschätzen, um sehr spezifische Lösungen zu programmieren. AppSpace bietet dieser Gruppe nicht nur einen leichten Zugang in die Welt der Embedded Systeme, sondern stellt Halcon fehlende Komponenten zur Seite: Skripting der Applikation, ein Web-Frontend und Standardschnittstellen für die Integration in eine industrielle Umgebung, auch mit der zukünftigen Fokussierung auf das Internet der Dinge.

Themen:

| Fachartikel

Ausgabe:

inVISION 3 2017
Visioning

Das könnte Sie auch Interessieren