Hier werden die ersten Programmierschritte mit Aseba erklärt, die man auch ohne Roboter ausprobieren kann. Falls Sie bereits den Roboter Thymio II besitzen, gibt es eine spezifisch für Thymio II geschriebene Bedienungsanleitung.
Aseba Challenge (rechtes Bild) ist eine simulierte Welt in welcher mit Aseba programmierte Roboter um Energie kämpfen. Diese simulierte Welt ist als Trainingspiel aufgebaut und gut für den Programmierunterricht geeignet.
Zuerst muss Aseba Challenge in Betrieb genommen werden. Falls Sie Aseba noch nicht installiert haben, folgen Sie bitte der Installationsanleitung. Sobald Challenge gestartet wurde, drücken Sie “Neuen Roboter hinzufügen”. Dann wählen Sie einen Namen für Ihren Roboter. Dabei braucht jeder Spieler in einer Gruppe einen eigenen Roboter. Sämtliche Roboter können mit einem Klick auf “Alle Roboter entfernen” gelöscht werden. Die Tasten können durch “Automatisches Verstecken” vorübergehend unsichtbar gemacht werden. Die Tasten erscheinen erst wieder, wenn der Mauspfeil in dessen Nähe ist. Die Kameraführung kann automatisch erfolgen durch einen Klick auf “Automatische Kamera” oder manuell mit folgenden Befehlen gesteuert werden:
Das Ziel des Spiels Challenge besteht darin, durch das Sammeln von Energie am Leben zu bleiben. Die Punkte der einzelnen Roboter werden an einer lichtdurchlässigen Anzeigetafel über dem Spielfeld angezeigt. Die Punkte vermehren sich solange ein Roboter am Leben bleibt, sobald der Roboter stirbt, werden die Punkte durch zwei geteilt. Vier blaue Energiequellen versorgen die Roboter mit Energie. Von Zeit zu Zeit verschwinden die Energiequellen in den Boden und werden auf diese Weise unsichtbar für die Roboter. Wenn eine Energiequelle vollständig augebraucht ist, verfärbt sich die Energiequelle rot und gibt keine Energie mehr an Roboter ab.
Sobald Aseba Challenge gestartet wurde, sollten Sie Aseba studio ebenfalls starten, um Ihren Roboter zu programmieren. Für jeden einzelnen Roboter muss eine Sequenz auf Studio auf irgendeinem Computer laufen. Zu Beginn, fordert Aseba studio Sie auf, mit einem Aseba Ziel zu verbinden (Bild rechts). Falls Sie Aseba Challenge öffnen, während noch ein Roboter mit Ihrem Computer verbunden ist, wird der Computer automatisch eine Verbindung mit dem Roboter herstellen. Falls Sie Challenge von einem Computer ohne angeschlossenem Roboter öffnen oder sich mehrere Roboer in der Nähe befinden, registrieren Sie sich bitte unter Gast und wählen Ihren Roboter unter port. Das lichtdurchlässige Fenster über der Arena in Challenge zeigt die verschiedenen Verbindungen zu den Robotern an.
Sobald studio läuft (Bild rechts), können Sie Ihre erste Programme in das mittlere Eingabefeld schreiben. Diese Eingaben werden automatisch in Echtzeit überprüft und Fehler im Syntax werden sofort mitgeteilt. Weitere Informationen dazu erhalten Sie unter studio, welches Sie im Menu Hilfe->Studio finden. Zusätzlich finden Sie im Menu Hilfe->Sprache eine detaillierte Dokumentation der Programmiersprache Aseba.
Um einen Roboter zu programmieren, müssen Sie zuerst verstehen, wie er funktioniert. Ein Roboter interagiert mit der Umgebung in einem Kreislauf: Durch Sensoren nimmt der Roboter die Umgebung wahr und reagiert mit einigen vorinstallierten Programmen, welche verschiedene Aktivitäten auslösen können. Dadurch wird die Umgebung verändert und der Roboter nimmt die Veränderung der Umwelt mit seinen Sensoren wahr.
In Challenge können Sie einen simulierten E-puck-Roboter programmieren. Dieser Roboter hat 8 Distanzsenoren und einer nach vorne gerichteten, einfache Kamera mit 3 Pixels mit einem Öffnungswinkel von je 20° pro Pixel. Diese Werte können von Ihnen abgelesen werden und die Geschwindigkeit der Räder gesteuert werden.
Jetzt wissen Sie genug, um die erste Robotersteuerung zu programmieren. Schreiben Sie in das Textfeld in der Mitte des studio-Fensters folgendes:
wheel_left_speed = 5
#Rad_links_Geschwindigkeit = 5
wheel_right_speed = -5
#Rad_rechts_Geschwindigkeit = -5
onevent timer
wheel_left_speed = dist[0] - 6
wheel_right_speed = dist[0] - 6
Einen sicheren Abstand vor Hindernissen zu bewahren ist gut, aber mit diesem Programm wird der Roboter nicht mehr weiterfahren. Um einen Roboter frei herumfahren zu lassen, müssen Sie verstehen, auf welche Art und Weise er sich bewegt.
Der simulierte E-puck Roboter in Challenge kann sich dank verschiedener Geschwindigkeiten auf seinen Rädern freier bewegen. Wenn beide Räder die gleiche Geschwindigkeit aufweisen, fährt der Roboter geradeaus, ansonsten wendet der Roboter. Wenn die Räder mit genau entgegengesetzte Geschwindigkeiten fahren, dreht sich der Roboter um sich selbst an einem Punkt. Industriell gefertigte Raupenantriebe funktionieren nach demselben Prinzip.
Schreiben Sie jetzt einen einfachen Kode, der es dem Roboter erlaubt, Hindernisse zu umfahren und sich sonst geradeaus fortzubewegen:
onevent timer
wheel_left_speed = dist[1] - 6
wheel_right_speed = dist[6] - 6
Die bisher erläuterten Steuerungen verknüpfen durch mathematische Ausdrücke die Werte der Sensoren mit der Geschwindigkeit der Räder. Bislang wurden noch keine “wenn…, dann…” Entscheidungen getroffen. In gewissen Situation wäre dies aber wünschenswert, zum Beispiel, wenn der Roboter entweder geradeaus oder im Kreis fahren sollte. In diesem Fall können Sie programmieren:
onevent timer
var dists = dist[6] + dist[7] + dist[0] + dist[1]
if dists < 48 then
wheel_left_speed = 5
wheel_right_speed = -5
else
wheel_left_speed = 5
wheel_right_speed = 5
end
Eine Programmiersprache enthält aber auch andere interessante Möglichkeiten, wie zum Beispiel eine while Schleife, die ermöglicht, denselben Kodeblock mehrmals durchzuführen, bis die Anfangsbedingung nicht mehr zutrifft. Eine weitere Möglichkeit bietet die for Schleife, wobei die Werte jedes Mal erneuert werden. Im Menu Hilfe -> Sprache findet sich eine Liste mit allen möglichen Befehlen und dazugehörigen Beispielen.
Spielen Sie zur Übung ein wenig mit dem Ausweichen von Hindernissen, um ein gutes Verständnis für die Sensoren zu erhalten. Experimentieren Sie mit allem Möglichen, denn der Roboter in Challenge ist nur ein Simulator und kann nicht kaputt gehen.
Sobald Sie sich sicher beim Programmieren fühlen, versuchen Sie, den Roboter so zu programmieren, dass er automatisch auf die blauen Energiequellen (0, 0, 100) (in R, G, B), zusteuert und automatisch rote Energiequellen vermeidet (100, 0, 0), während die Farbe des Hintergrundes konstant grau (50, 50, 50) bleibt.
Versuchen Sie Ihre Freunde mit der besten Roboterprogrammierung zu übertreffen. Die Farbe Ihres Roboters können Sie durch die Variablen color_red, color_green und color_blue verändern und so Energiequellen imitieren. Falls Ihre Mitspieler versuchen, Sie auf diese Weise hinters Licht zu führen, können Sie anhand einer Überprüfung der Energievariablen herausfinden, ob es sich um echte oder simulierte Energiequellen handelt. Wenn der Roboter blau sieht, seine Variablen sich aber nicht erhöhen, wurden Sie ausgetrickst.
Das Ziel vom Trainingsspiel Aseba Challenge besteht darin, auf spielerische Weise das Programmieren von Robotern zu erlernen.