Hauptfunktionen der Robotersimulation

Auf der Basis der Pakete org.jabotics.robot.de bzw. org.jabotics.robot.en erstellte Roboterprogramme können mithilfe des Jabotics-Simulationswerkzeugs in einer virtuellen Umgebung auf dem PC ausgeführt und getestet werden. Die Simulation kann in mehrfacher Weise den Unterricht unterstützen. Zunächst setzen Schülerinnen und Schüler die schnell zu nutzende Simulation gerne für kleinere Programmieraufgaben und Übungen ein, während sie größere, eigene Projekte letztendlich mit einem realen Roboter ausführen wollen. Zudem lässt sich sich im Falle eines unerwarteten Verhaltens des Roboters mit der Simulation häufig schnell klären, ob es sich um einen Programmierfehler oder ein Problem mit der Roboterhardware handelt. Schließlich können die Schülerinnen und Schüler die Entwicklungsumgebung auch auf dem eigenen PC installieren, um zu Hause an den Roboterprogrammen weiterzuarbeiten und diese zu testen.

Starten des Simulationswerkzeugs

Üblicherweise wird die Robotersimulation aus der Entwicklungsumgebung BlueJ heraus gestartet, indem man im Projektfenster einen Rechtsklick auf das Programmsymbol ausführt und im Kontextmenü den Menüpunkt Roboter → Simulieren wählt. Es öffnet sich das oben gezeigte Simulationswerkzeug mit der Hauptansicht links, dem Übersichtsbereich rechts oben und dem Steuerungsbereich rechts unten. Neben dem Reiter mit der Steuerungsansicht gibt es im letztgenannten Bereich zwei weitere Reiter für die Simulationseinstellungen (siehe Folgeseite) sowie den Reiter für Zusatzinformationen, auf dem bestimmte Statusmeldungen ausgegeben werden und auf den die Standard-Ausgabe sowie die Fehlermeldungen für das Roboterprogramm umgeleitet werden. Die zweite Möglichkeit zum Starten der Simulation ist durch den direkten Aufruf der main-Methode im Kontextmenü (Menübefehl void main(String[] args)) gegeben. Diese Vorgehensweise bietet für normale Simulationsläufe eher Nachteile. So lässt sich die Simulation nach vollständigem Durchlauf des Roboterprogramms z.B. nicht mit den Schaltflächen im Steuerungsbereich erneut starten. Andererseits lassen sich derart gestartete Roboterprogramme in BlueJ mit dem Debugger untersuchen. Die Fehlersuche in Roboterprogrammen mit dem Debugger ist allerdings nicht für Anfänger geeignet, weil es sich bei der Robotersimulation um eine Multithreading-Anwendung mit einer Reihe von nebenläufigen Threads (Motor- und Sensorsteuerung des Roboters; Tongenerierung, Benutzeroberläche usw. im Simulationswerkzeug) handelt.

Übersichtsbereich

Rechts oben wird eine Gesamtansicht der Szenerie angezeigt. Der rote Punkt markiert die momentane Position des Roboters und der rote Rahmen den gerade in der Hauptansicht sichtbaren Ausschnitt. Die Säule links neben der Übersicht zeigt die aktuelle Vergrößerungsstufe der Hauptansicht an (im Beispiel oben ist die Vergrößerung gerade maximal). Über die Schalter mit den Lupensymbolen lässt sich die Vergrößerung stufenweise erhöhen bzw. reduzieren.

Hauptansicht

Die Hauptansicht auf der linken Seite zeigt einen vergrößerten Ausschnitt aus der Gesamtszenerie und folgt dabei immer der Position des Roboters. Direkt nach dem Öffnen des Simulationsfensters befindet sich der Roboter an der bei dem letzten Simulationslauf gewählten Startposition. Bevor man die Ausführung des Roboterprogramms tatsächlich startet, lässt sich die Roboterposition über Drag&Drop korrigieren. Zum Verschieben bewegt man den Cursor direkt über den Roboter. Der Cursor wechselt dabei in ein kreuzförmiges Verschiebungssymbol. Mit einem Linksklick wird der Roboter gefangen und verschoben, bis man die Maustaste wieder löst. Zum Drehen des Roboters bewegt man den Cursor ebenfalls in die Nähe des Roboters. In einem bestimmten Abstandsbereich des Cursors zum Roboter wechselt der Cursor in ein ringförmiges Drehen-Symbol. Man fängt den Roboter wieder mit der Linkstaste. Wird der Cursor jetzt um den Roboter herumbewegt, dreht sich der Roboter mit, bis die linke Maustaste losgelassen wird.

Neben der Position des Roboter sind vor dem Starten des zu simulierenden Roboterprogramms ggf. auch die Einstellungen der Sensoren zu überprüfen. Die Richtungseinstellungen der Sensoren werden zunächst vom letzten Simulationslauf übernommen. In der Hauptansicht sind die Ausrichtungen der zur Verfügung stehenden Sensoren zu erkennen. In dem Beispiel oben werden z.B. ein nach vorne gerichteter Ultraschallsensor (blauer "Pfeil" am hinteren Ende des Roboters), ein nach unten gerichteter Lichtsensor (Punkt vorne am Roboter - die rote Farbe zeigt an, dass in dem Programmlauf die LED gerade eingeschaltet ist) sowie ein hinten angebrachter Tastsensor (dunkelgrauer Balken am hinteren Ende der Roboters) eingesetzt. Wie die Sensoreinstellungen zu ändern sind, wird auf der Folgeseite erläutert.

Notfalls lassen sich die Sensoreinstellungen sowie die Roboterposition und -ausrichtung auch noch nach Starten des Simulationslaufs korrigieren. Letzteres kann gelegentlich notwendig sein, wenn der Roboter z.B. an einer Ecke ungewollt "hängen bleibt". Solange der Roboter für die Positionskorrektur durch Halten der linken Maustaste gefangen ist, wird die Ausführung des Roboterprogramms angehalten. Daher funktionieren Verschiebeaktionen während des Simulationslaufs nur, solange man auf dem Einstellungsreiter die Simulationspausen nicht deaktiviert (siehe Folgeseite).

Steuerungsansicht

Auf dem Reiter mit der Steuerungsansicht rechts unten befinden sich alle Elemente, die während des Simulationslauf zugänglich sein müssen. Dazu gehört zunächst eine Ansicht des Roboterbausteins mit dem Anzeigemonitor und den vier Tastenfeldern, die sich während des Programmlaufs mit der Maus anklicken lassen. Links daneben befinden sich Elemente zur Generierung einer Schallkulisse für den Roboter falls kein an den PC angeschlossenes Mikrofon zur Verfügung steht, das den Eingangsschallpegel für den Roboter liefern könnte. Über den Schieberegler lässt sich ein mittlerer Hintergrundgeräuschpegel einstellen, den man während des Programmlaufs verändern kann. Kurzzeitig erhöhte Schallpegel lassen sich über die große Schaltfläche generieren. Je weiter oben man auf die Schaltfläche klickt, umso lauter ist das generierte "Klatschen".

Mit den drei Schaltflächen ganz unten lässt sich schließlich der Simulationslauf starten, anhalten, fortsetzen, abbrechen bzw. nach Abschluss für eine weitere Ausführung zurücksetzen.