Schnittstellen für die Robotersteuerung

Für die Erstellung von Roboterprogrammen, die auf den unterschiedlichen Robotern und innerhalb der Robotersimulation lauffähig sein sollen, werden mit dem Java-Paket org.jabotics.robot.de öffentliche Schnittstellen- und Implementierungsklassen sowie deren Dokumentation bereitgestellt. Neben dieser deutschprachigen API wird alternativ mit dem Paket org.jabotics.robot.en eine in ganz analoger Weise aufgebaute englischsprachige API ausgeliefert (siehe Details auf der entsprechenden englischsprachigen Seite).

Die HTML-Dokumentation zum Paket org.jabotics.robot.de befindet sich im Unterverzeichnis docs/robot-de des Jabotics-Installationspfades. Die Startseite docs/robot-de/index.html beinhaltet auch die unten gezeigte Übersichtsgrafik der zur Verfügung gestellten Schnittstellen. In der Grafik ist bereits angedeutet, dass man über die Klasse XRoboter (genauer über deren Objektfabrik) Zugang zu allen Steuerungsobjekten erhält. Wie man diese Klasse für unterschiedliche Zielgruppen nutzen kann, wird detaillierter auf der Folgeseite anhand der beiden mitgelieferten Vorlagen für Roboterprogramme vorgestellt. Die HTML-Dokumentation unterstützt die schnellere Orientierung anhand eines Ampel-Farbcodes. Die Klassen und Methoden sind entsprechend ihres Vertiefungs- und Schwierigkeitsgrades mit grünen, gelben bzw. roten Punkten markiert (vgl. Abbildung oben mit einem Auszug aus dem Index der HTML-Dokumentation). Anfänger werden sich in der Regel auf grün markierte Elemente beschränken.

fig interfaces de overview

Beim Entwurf der APIs wurde das Ziel verfolgt, Programmtexte zu ermöglichen, die auch für einen Anfänger in dem Sinne gut lesbar sind, dass sich deren Funktion zu einem gewissen Grad auch ohne Nachlesen in der Dokumentation erschließt. Deshalb wurde sprechenden, die Funktion beschreibenen Methodennamen der Vorzug gegeben vor kompakteren Bezeichnungen. Aus dem gleichen Grund werden verschiedentlich Enumerationen als Parameter von Methodenaufrufen eingesetzt statt boolscher Werte. Damit sich der Schreibaufwand beim Programmieren dennoch in Grenzen hält, stellt die Klasse XRoboter, von der eigene Roboterklassen in der Regel abgeleitet werden, abkürzende Konstanten für die benötigten Enumerationswerte bereit (siehe Folgeseite zu den Vorlagen für Roboterprogramme).

Hinweise zur Erstellung eigener APIs

Wenn die mitgelieferten APIs überhaupt nicht den eigenen Bedürfnissen entsprechen, ist es grundsätzlich auch denkbar, eigene Schnittstellen zu entwerfen. Eine Möglichkeit besteht darin, die eigenen Schnittstellen auf die oben genannten Pakete aufzusetzen. Dieser Ansatz erzeugt dann allerdings zusätzlichen Programmcode, was sich auf NXT-Robotern mit ihren begrenzten Ressourcen evtl. negativ bemerkbar macht. Alternativ könnten sich erfahrenere Entwickler auch direkt an der Implementierung der Pakete org.jabotics.robot.de und org.jabotics.robot.en orientieren, indem ihre eigenen Schnittstellen direkt auf die Pakete org.jabotics.robot.core (Kernfunktionalität für Motor- und Sensorsteuerung) und org.jabotics.robot.adapter zugreifen (siehe Schema unten). Damit die Roboterprogramme innerhalb der Simulation lauffähig bleiben, bleibt man allerdings auf die durch die Adapterklassen bereitgestellte Funktionalität beschränkt.

fig interfaces de package dependencies