Skripting hoch zwei

Rapid Prototyping für intelligente Kameras

Skripting hoch zwei

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 mit vielf?ltigen Tools und Debug-M?glichkeiten. (Bild: Visioning)

Bild 1: Die Entwicklungsumgebung HDevelop mit vielfältigen 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.

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

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

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.

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

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

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.

Seiten: 1 2 3Auf einer Seite lesen

Visioning

Das könnte Sie auch Interessieren