Bachelorarbeit: Lego Mindstorms simulieren
Lange her, dass ich hier was geschrieben habe, nicht wahr? Na ja, jetzt wird es besser, da ich ein neues Thema gefunden habe: Meine Bachelorarbeit, mit der ich vor kurzem begonnen habe. Hier mal eine kleine Einführung.
![Das Thema: Lego Mindstorms Roboter.](/bachelorthesis/originalrobot.jpg)
Lego sollte ja noch allgemein bekannt sein. Seit einigen Jahren gibt bietet Lego ein System an mit dem man Roboter bauen kann, bekannt als Mindstorms. Die neueste ersinn ist Lego Mindstorms NXT 2.0. Es ist toll und hat auch einen Platz im Informatik-Unterricht gefunden. Insbesondere wird es vom [go4IT!][go4it]-Projekt der [Computer Supported Learning Research Group][cslrg] der RWTH Aachen verwendet, um Schulkindern in der 6. und 7. Klasse die Grundzüge des Programmierens in Workshops zu vermitteln.
Das funktioniert wohl auch prima, bis der Workshop vorbei ist. Dann stellt sich das Problem, dass die Mindstorms-Kästen wieder weggenommenwerden, und ein neuer eine unverbindliche Preisempfehlung von 300€ hat. Man kriegt ihn natürlich auch billiger (Ich habe meinem bei Amazon bestellt, mehr weil ich ihn haben wollte als weil ich ihn für diese Arbeit brauchte), aber unter 250€ für einen neuen halte ich für unwahrscheinlich. Das heißt dass die meisten dieser Kinder nicht zu Hause oder in der Schule weiterprogrammieren können. Dort setzt meine Arbeit an.
Ja, die Qualität ist Mist. Meine Kompaktkamera ist wohl gerade in Goslar und meine Spiegelreflexkamera war nicht teuer genug, um Video aufnehmen zu können, weswegen, der “Vorbild”-Teil von meinem iPhone kommt.
Ich entwickle einen Simulator für Lego Mindstorms NXT 2.0 Roboter[^1]. Die Idee ist, dass man sein Programm schreibt und kompiliert wie für den richtigen Roboter. Statt es aber auf das Stück Plastik zu laden, wird es dann vom Simulator auf dem eigenen Windows-Rechner oder Mac ausgeführt. Es wird noch besser: Die fertige Version wird auch Netzwerkunterstützung bieten, so dass meine seine Roboter von verschiedenen Rechnern mit- oder gegeneinander arbeiten lassen kann, wie bei einem Mehrspielerspiel. Das wird wohl der schwierigste Teil, aber sicher nicht unmöglich.
[^1]: Nur ein Roboter. Es geht hier nicht darum virtuelle Lego-Modelle zu bauen.
Und bis jetzt funktioniert es gut. Vieles ist noch nicht drin, und es wird auch nie alles unterstützen was das richtige Mindstorms kann (es soll ja nur ein Hilfsmittel für Kinder sein), aber man kann die Landschaft leicht ändern, es gibt funktionierende Kollisionserkennung, einen 3D-Roboter und vor allem können einfache Programme direkt ausgeführt werden.
Ich mag dieses Projekt sehr, denn ich kann so ziemlich alles weiterverwenden, was ich je übers Programmieren gelernt habe. Immerhin ist es in vielen Aspekten ein Computerspiel mit schlechter Grafik, meine persönliche Spezialität. [Komische Binärdateiformate][trposer], [Plattformübergreifende Programmierung mit C++][hubi], [3D-Grafik mit OpenGL][snow], [Netzwerkspiele][hubimulti], alles drin. Natürlich darf ich keinen alten Code weiterverwenden, aber alte Kenntnisse sind kein Problem, weshalb ich mich sehr freue dies machen zu können. Oh, und ich bin auch ein großer Lego-Fan. Ich werde hier in Zukunft mehr über den Verlauf posten.
Nächsten Dienstag um 10:00 gebe ich einen Startup-Vortrag im Seminarraum des Lehrstuhls, wo ich weitestgehend dies hier erzählen werde, aber mit mehr technischen Details. Ich weiß allerdings nicht, ob Externe da auch erlaubt sind. Ich habe auch ein [offizielles Proposal][proposal], welches ebenfalls mehr Detail enthält. Der Vollständigkeit halber sei auch noch die [Webseite für die Arbeit][thesis] erwähnt, die aber praktisch keine Informationen enthält, die nicht schon hier oder im Proposal sind.
Geschrieben am 19. April 2010 um 13:48
wugstopher
Torsten Kammer (admin)
wugstopher
Ursula Weinmann
Gernot