Softwarepraktikum Lego Mindstorm 2005


Die Finale Aufgabe - Robo-Sokoban

In diesem Jahr haben sich die Mitarbeiter der Fakultät etwas besonderes augedacht - RoboSokoban. Das Ziel ist, eine bestimmte Anzahl an Objekten in einen Zielbereich zu bringen. Anders als beim Spiel, bei dem die Reihenfolge der verschobenen Objekte eine Rolle spielt, ging es hier hauptsächlich um die Konstruktion von Robotern.

Zu den Fakten: es steht ein 2,5m x 2,5m Feld zur Verfügung in dem ca. 15 Objekte (Filmdosen) wahllos verteilt stehen. In diesem Feld gibt es einen 30cm x 30 cm Zielbereich und es ist von einer weissen Markierung abgegrenzt.




Als Steuerung durfte eine Person per PC dem Roboter Befehle und Hinweise senden. Das heißt, der Roboter durfte auch autonom gebaut werden, doch Ziel ist es die Objekte in kürzester Zeit in den Zielbereich zu bringen.



Entwurf

Da wir bei der ersten Aufgabe gemerkt hatten, dass wir mit unserem Entwurf nicht sehr weit kommen werden, haben wir die Roboter schnell auf Kettenantrieb umgerüstet. Desweiteren ist schnell das Problem aufgetaucht, dass wir nur eine begrenzte Anzahl an Motoren zur Verfügung hatten. Das heißt die Lenkung nahm schon diese 2 Motoren in Anspruch, so dass wir uns für den Transport der Objekte etwas anderes einfallen lassen mussten. Eine Art Greifarm kam ja nun nicht mehr in Frage, also Schieben. Doch wie schieben wir? Die Idee war, wir müssen die Fotodosen so weit wie möglich in den Mittelpunkt unseres Roboters bringen, damit er ungehindert drehen und navigieren kann.


Entwurf

Der Entwurf dafür war schnell durchdacht und in die Tat umgesetzt. Nun ging es darum die Steuerung weiterzuentwickeln, da man ja mit einem IR-Tower 2 Roboter steuern musste. Dazu kam noch, dass die Roboter ein gewissen Grad an Selbstständigkeit bekommen sollten. Also z.B. sollten sie das Spielfeld nicht verlassen, oder nach dem Auffinden eines Objekts erstmal auf weitere Anweisungen warten.

 
Der Aufbau der Roboter hat sich nicht verändert. Die Sensoren sind zwar noch vorhanden, erfüllen aber keinerlei Funktion. Die Steuerung wurde nun so verändert, dass beim loslassen der Taste auf der Tastatur auch der Roboter stehen bleibt, bzw. die letzte Aktion fortführt.

Die Softwareebene besteht aus 3 Schichten. Die GUI als oberste Schicht, die Control als Vermittlungsschicht und ganz unten die Receiver der Roboter. Die GUI wurde leicht verändert und reagiert nun auch auf Tastenanschläge.

GUI

Weitere Informationen sind in der Präsentation und den Quelltexten zu finden.

Quelltext GUI

Quelltext Robi1

Der restliche Quelltext

Die Präsentation