Überblick

χirp steht für "eXtendable interface for robotic purposes". Übersetzt heißt dies "Erweiterbare Benutzerschnittstelle für Robotikanwendungen". χirp bietet eine erweiterbare graphische Benutzeroberfläche zur Steuerung verschiedenster Robotersysteme. Für jedes erdenkliche Robotersystem kann durch für χirp entwickelte Plugins eine Kontrolloberfläche geschaffen werden. Um Plugins für einen beliebigen Roboter entwickeln zu können, stellt χirp eine umfangreiche Programmierschnittstelle zur Verfügung.

Das Framework stellt zur Unterstützung und Beschleunigung der Entwicklung diverse Hilfsklassen und -methoden zur Verfügung. Entwickelte Plugins können mittels der integrierten Testumgebung ohne "echten" Roboter getestet werden. Die Anwendung stellt dem Benutzer eine Fülle an Funktionen zur Auswertung, Aufzeichnung und für Experimente zur Verfügung. Die umfangreiche Dokumentation ermöglicht Entwicklern und Benutzern einen leichten Einstieg in χirp.

Technische Details

χirp wurde komplett in Java geschrieben und ist kompatibel zur Java Laufzeitumgebung ab Version 6. Die graphische Oberfläche wurde mittels des "Standard Widget Toolkit" (SWT) erstellt. Darüber hinaus wurden diverse Open Source Bibliotheken verwendet. Darunter befinden sich z.B.:

  • Apache Jakarta Commons Projekte
  • Hibernate 3 (Objekt Persistierung)
  • iText (PDF-Erstellung)
  • FreeTTS (Sprachausgabe)
  • JavaMail
  • JFreeChart (Diagrammerstellung)
  • HSQLDB (Dateibasierte Datenbank)

χirp kann als plattformunabhängige Installationsvariante, sowie als Quelltextvariante heruntergeladen werden. Das Installationsprogramm wurde mit "IzPack" erstellt. χirp kann allerdings auch auf Grundlage der Quelltexte mit Hilfe eines "ANT"-Buildscriptes selbst erstellt werden.

In χirp werden Roboter in XML spezifiziert. Diese XML-Dateien werden mittels "JAXB - Java Architecture for XML Binding" und annotierten Klassen in eine Bean-Struktur überführt. Der Arbeitsbereich kann den Wünschen des Benutzers angepasst werden. Hierzu können sämtliche Farben selbst definiert, die Sprache umgestellt und Oberflächenelemente frei angeordnet werden.