1.1 Die Aufgabestellung
Nach Ausgabe des ersten LEGO-Baukastens sollten sich die Gruppen mit der RCX-Einheit und den Steuerelementen sowie der Java-Programmierung vertraut machen. Nachdem sich alle zunächst mit dem RCX, der Java-Programmierumbegung LeJOS und der Art und Weise des Übertragens einiger kleiner Testprogramme über den Tower (Infrarot-Schnittstelle) vertraut gemacht hatten, sollte zunächst ein stabiler, fahrtauglicher Roboter gebaut werden, der in der Lage ist, einer durchgehenden schwarzen Linie mit Kurven unter Nutzung eines Lichtsensors zu folgen. Am Ende der Linie soll dieser dann umkehren und erneut auf dieser Linie zurückfahren.
Zur Verfügung stehen 2 Motoren und 1 Lichtsensor sowie 2 Tastsensoren.



1.2 Aufbau des ersten Roboters (Prototypen I mit einem Lichtsenor)
Der Roboter besteht aus einem Rumpf mit zwei nicht antreibenden Hinterrädern für einen festen Stand und einem Lenkkopf mit einem Antriebsrad im Rotationszentrum, in dem sich hinter diesem Zentrum der Antriebsmotor befindet. Im Rumpf ist die RCX-Einheit integriert, die den Roboter, d.h. zum einen den Lenkkopf und zum anderen den Antriebsmotor steuert. Ebenfalls im Lenkkopf befindet sich das "Auge" des Roboters in Form des Lichtsenors, der räumlich vor dem Rotationszentrum angebaut ist. Der Lenkkopf kann als Ganzes jeweils bis zu 90° nach rechts und links über den Lenkmotor im hinteren Bereich ausgelenkt werden. Sollte der Lenkkopf über 90° ausgelenkt werden, wird dieses von dem Tastsensor registriert und dem Programm mitgeteilt, woraufhin dieses die Auslenkung unterbricht. Das geschieht jedoch sehr selten, da die Strecke keine besonders engen Kurven enthält.
Wobei sich der Antriebsmotor, wie erwähnt, im Lenkkopf selbst befindet (Frontantrieb), liegt der Lemkmotor zwischen den Hinterrädern und wird mit Hilfe eines Getriebes im Rumpf unterhalb der RCX-Einheit nach vorn zum Lenkkopf weitergeleitet.
Der Tastsensor befindet sich vor den Hinterrädern und ist aktiviert, wenn der Lenkkopf mit den angebauten äußeren Schläuchen bei maximaler Auslenkung (+/-90°) diesen berührt.



1.3 Funktionsweise des ersten Roboters (Linienvervolgungsstrategie mit einem Lichtsenor)
Der Lichtsenor wird beim Starten des auf die RCX-Einheit überspielten Programms zur Steuerung auf die den Lichtwert für Schwarz (mit Toleranz) kalibriert, indem er zu Beginn auf die schwarze Linie gesetzt wird. Somit ist der Roboter nun in der Lage zu erkennen, ob er während der Vorwärtsbewegung bereits die Linie verlassen hat oder nicht. Anfangs ist der Lenkkopf in Mittelstellung (+/-0°).
Wird das Verlieren der Linie registriert, muss zunächst herausgefunden werden, auf welcher Seite der Roboter die Linie verlassen hat. Dazu führt der Lenkkopf eine Zick-Zack-Schwänkbewegung durch. Der Lenkkopf bewegt sich dabei als erstes für eine bestimmte Zeit (wenige Sekunden) in die erste Richtung, z.B. nach rechts (max. +90°). Sollte nun die Linie auch vor Ablauf dieser Zeit gefunden worden sein, unterbricht das Programm diese Schwenkbewegung und der Roboter kann seine Fahrt auf der Linie fortsetzten. In einer Booleschen Variable wird zudem die Rechtsbewegung vermerkt, sodass beim späteren erneuten Linienverlieren als erstes automatisch in die entgegen gesetzte Richtung gelenkt wird. Sollte andererseits nach Ablauf der festgelegten kurzen Zeit die Linie nicht wieder gefunden werden, sorgt das Programm dafür, dass der Lenkkopf für maximal genau die doppelte Zeit in die entgegen gesetzte Richtung gedreht wird, sodass spätestens dann wieder die Linie gefunden wird. Auch diesmal wird die Auslenkrichtung gespeichert und fortgefahren. Sollte der Roboter am Ende der Linie angelangt sein (also auch nach dem Wechsel der Lenkrichtung die Linie immernoch nicht gefunden worden sein), setzt eine Wendeprozedur ein.
Das bedeutet somit, dass das Fahrzeug für einen möglichst geringen Lenkradius den Lenkkopf bis zum Maximum (wird vom Tastsensor registriert) in die aktuelle Richtung weiter auslenkt und sich dann bis zum Wiederfinden der Linie vorwärts bewegt. Dabei vollzieht der Lenkkopf eine Öffnungsbewegung zurück zur Mittelstellung, wodurch ein besseres Fortsetzen der Fahrt im Anschluss erreicht wird. Andernfalls würde das Fahrzeug senkrecht auf die Linie treffen und wäre somit nicht fähig weiter gegenzulenken.



Java-Quellcode (Aufgabe 1)
Christian Wasserthal | Tino Brade | Gino Schmidt