Technische Schwierigkeiten

Motoren

Für Spielzeug sind die Lego Motoren eigentlich relativ gut, haben aber trotzdem einige unpraktische Eigenschaften. Z.B. kann mit NQC bzw. der Standard Lego Software die Geschwindigkeit in nur 8 Stufen eingestellt werden. Dabei wird nicht die Spannung geregelt die am Motor anliegt sondern der Motor in längeren (schneller) bzw kürzeren (langsamer) Intervallen mit voller Spannung angetrieben. Dadurch wird das Ganze ziemlich ungenau. Durch arbeiten mit sehr kurzen Übersetzungen kann man die Ungenauigkeit jedoch ziemlich gut umgehen. Bei unserem Roboter ist der Antriebsmotor zur Achse 1:X übersetzt, der Drehmotor 1:135. Dadurch ist die Wiederholungsgenauigkeit ausreichend. Außerdem gilt natürlich: je langsamer, desto mehr Zeit zum korrigieren (siehe "Sensoren"). Die Motoren sind nach unserer Erfahrung nicht besonders robust, sie sollten nach Möglichkeit nicht überansprucht werden. Vor allem die Konstruktionen aus Dave Baums Buch "Definitive Guide to LEGO MINDSTORMS" scheinen die Motoren voll auszulasten (und manchmal etwas mehr).

Sensoren

Die Sensoren sind alle in den Büchern von Dave Baum gut und detailliert erklärt, deshalb wollen wir hier nur auf den Sensortyp besonders eingehen mit dem wir selbst gearbeitet haben. Unsere Wahl fiel schnell auf Abtastung einer Linie durch Lichtsensoren, da uns die Abtastung mit Tastsensoren zu aufwändig gewesen wäre (wir hätten das Labyrinth komplett mit Wänden nachbauen müssen).
Der Roboter folgt einer schwarzen Linie aus Isolierband mit Hilfe zweier nebeneinander angebrachter Lichtsensoren (siehe Bild). Auf dem blauen Untergrund schien weißes Klebeband zuerst am sinnvollsten, da der Kontrast zwischen Weiß und Bodenbelag größer ist als der zwischen Bodenbelag und Schwarz. Wegen dem Muster mit kleinen weißen Flecken hatten wir allerdings Probleme, der Roboter erkannte Klebeband wo gar keins war. Generell kann man über die Lego Lichtsensoren folgendes aussagen:

Aus diesen Gründen kann kein fester Schwellenwert festgelegt werden, ab dem das Ergebnis als Linie bzw. Boden ausgewertet werden kann. Wir haben eine kleine Routine geschrieben, die eine Kalibrierung vornimmt. Dabei wird für beide Sensoren jeweils Schwarz und der Untergrund gemessen und der (gewichtete) Durchschnitt als Schwellenwert in einer Public Variable gespeichert.

Getriebe und Fahrwerk

Wir haben uns für das "Differential Drive" aus Baums Buch entschieden, weil wir einerseits die Möglichkeit brauchten, den Roboter auf der Stelle zu drehen, und andererseits nicht beide Seiten einzeln antreiben wollten (siehe Genauigkeit der Motoren). Das Getriebe wurde im Laufe der Zeit mehrfach auseinandergebaut und abgeändert (im Prinzip wurde die Übersetzung immer kürzer...)
Das Bild zeigt die ursprüngliche Idee, den Roboter mit Ketten anzutreiben. Diese Antriebsart hat den Vorteil, dass Drehen auf der Stelle gut möglich ist. Die Lego Ketten aus dem Mindstorms Kasten haben aber den Nachteil, dass sie nur locker auf den Räder sitzen und ein extremes Profil haben. Dadurch ruckelt der Roboter beim geradeaus fahren (schwierig für Lichtsensoren) und die Reibung beim Drehen ist sehr belastend für die Motoren.
Eine Änderung auf 4 Gummireifen hatte zur Folge, dass der Roboter gleichmäßig geradeaus fuhr, sich aber fast überhaupt nicht mehr auf der Stelle drehen konnte (zu wenig Haftung). Durch kürzeren Radstand kann man dieses Problem in den Griff bekommen, wegen unserer Getriebekonstruktion wäre das allerdings ein sehr großer Aufwand gewesen.
Inspririert durch eine Konstruktion, die wir im Internet gefunden hatten, haben wir uns für eine Lösung mit nur zwei großen Reifen entschieden die fast das ganze Gewicht halten und durch ein frei drehbares nicht angetriebenes Hinterrad unterstützt werden. Durch nur eine Achse kann der Roboter sich ohne Widerstand auf der Stelle drehen (keine Reibung durch rutschen der Reifen quer zur Achse). Trotzdem ist der geradeauslauf relativ gut, weil durch die Getriebekonstruktion beide Räder vom selben Motor, also gleich schnell, angetrieben werden.

copyright 2005 by Tobias Brachmann & Jonas Rauch