SE Embedded Systems
Wolf Richter
Projektbeschreibung "LEGO = Explorer Duo"
Inhalt des Projekts:
Die Erkundung einer schachbrettartigen Landschaft mit Hindernissen = durch zwei LEGO-Roboter
Mittel:
Die beiden Roboter sind mit einem Tastsensor ausgerüstet, der = das Vorhandensein von Hindernissen anzeigt. Weiterhin sollten sie zur = Positionsbestimmung Rotations- oder Lichtsensoren besitzen. Sie erkunden = selbständig (also ohne Steuerung durch den Zentralrechner) die = Landschaft und übermitteln nur das Vorhandensein von Hindernissen = an den Zentralrechner. Dieser erstellt aufgrund der übermittelten = Daten eine Karte der Landschaft.
Stößt ein Roboter auf ein Hindernis, muß zudem die = Position des anderen Roboters abgefragt werden, um zu verhindern, = daß die beiden Roboter kollidiert sind und sich gegenseitig als = Hindernis erkennen.
Zu lösende Probleme:
1. Positionserkennung durch die Roboter
Für die Positionsbestimmung der Roboter können verschiedene = Strategien eingesetzt werden:
1. Farbige Linienmarkierungen
Linienmarkierungen auf der Unterlage werden durch den Lichtsensor = erkannt und ein interner Zähler um eins erhöht bzw. = erniedrigt. In Nord-Süd-Richtung werden grüne, in Ost-West = Richtung rote Linien verwendet. Die Linienmarkierungen bestehen aus = einer dicken und einer dünnen Linie, damit der Roboter erkennt, in = welche Richtung er fährt. Problematisch ist allerdings, wenn der = Roboter ausgerechnet über einen Schnittpunkt der beiden Linien = fährt oder genau auf einer der Linien fährt.
Um dieses Risiko zu vermindern, müssen die Linien recht = dünn sein, was wiederum das Problem mit sich bringt, ob der Roboter = dann noch korrekt zwischen dicken und dünne Linien unterscheiden = kann.
Weiterhin ist zu überlegen, ob man nicht den Schnittpunkten = andere Farben gibt.
2. Gabellichtschranke
Mit einer Gabellichtschranke werden die Umdrehungen von zwei = Rädern des Roboters gemessen. Aus den Umdrehungen ergibt sich die = Bewegung und auch die Drehung des Roboters, die vorher experimentell = bestimmt werden muß.
Bei dieser Lösung ergibt sich das Problem, daß wir = lediglich über einen Lichtsensor pro Roboter verfügen.
3. Linienmarkierungen und Zeitsteuerung
Es wird eine einfache Linienmarkierung verwendet, die der Roboter = durch den Lichtsensor beim Überfahren erkennt. Der Roboter wird auf = Ketten gesetzt, in Hoffnung, daß er dann besonders gerade und = ruhig fährt. Drehungen sind nur im 45 Grad Winkel zugelassen und = werden durch zeitliche Motorsteuerung herbeigeführt. Dabei ist = zuvor die Laufzeit der Motoren, die für diese Drehung notwendig ist = experimentell bestimmt. Nachteil: Es ist eine große Ungenauigkeit = zu erwarten, da der Roboter recht unzuverlässig dreht und auch nur = schlecht geradeaus fahren kann. Bei den häufigen Drehungen summiert = sich der Fehler zu unerträglicher Größe auf.
4. Linienmarkierungen und Rotationsensor
Der Roboter wird mit einem Rotationssensor ausgerüstet, der die = Drehung in Winkelgraden bestimmt. Die zurückgelegte Entfernung kann = dann entweder durch auf der Unterlage angebracht Markierung oder durch = eine Gabellichtschranke bestimmt werden. Diese Lösung ist die = genaueste und scheint die einzig praktikable zu sein.
2. Übertragung der Daten an den Zentralrechner
Findet der Roboter ein Hindernis überträgt er die Position = des Hindernisses an den Zentralrechner. Der Zentralrechner muß die = Position des anderen Roboters überprüfen, um sicher zu = stellen, daß die Roboter nicht kollidiert sind. Die = Übertragung der Daten findet über die Infrarotschnittstelle = des RCX statt. Es ist sicher zu stellen, daß der Sender so = angebracht ist, daß eine ständige Verbindung = gewährleistet ist.
Für die Übertragung der Daten an den Zentralrechner = muß ein Datenformat definiert werden. Es bietet sich an, die = Codenummer des Roboters (0 oder 1) und die Koordinaten jeweils getrennt = durch ein Trennzeichen zu übertragen. Der Zentralrechner fragt dann = den anderen Roboter nach seiner Position und vergleicht die beiden. = Sollte es sich um ein Hindernis und nicht um den anderen Roboter = handeln, trägt der Rechner die Koordinaten in die Datenbank = ein.
3. Gleichzeitiger Zugriff beider Roboter auf den Zentralrechner
Problematisch ist die Situation, in der ein Roboter mit dem = Zentralrechner kommunizieren möchte, während der andere mit = diesem kommuniziert. Es ist eine Kollisionsvermeidungsstrategie zu = implementieren.
Möglich wäre eine Strategie, nach der ein Roboter einen = Kommunikationsversuch unternimmt und, wenn er keine Rückmeldung vom = Zentralrechner empfängt, eine zufällige Zeit wartet und dann = einen weiteren Versuch unternimmt. Allerdings muß der Roboter In = dieser Wartezeit empfangsbereit bleiben für die zu erwartende = Rückfrage vom Zentralrechner über seine Position.
Zur Organisation der Datenbank
Die Datenbank des Zentralrechners ist organisiert als = zweidimensionales Datenfeld. Die Abmessungen des Datenfeldes entsprechen = der (bekannten) Größe des zu erforschenden Gebietes. Im = Anfangszustand sind alle Felder mit einer Null belegt. Wird von einem = Roboter ein Hindernis gefunden, wird an der entsprechenden Stelle eine = Eins eingetragen.
Zur Steuerung der Roboters
Die Roboter werden als Kettenantriebsroboter mit zwei getrennt = steuerbaren Kettenläufen ausgelegt. Es werden also pro Roboter zwei = Motoren benötigt.
Der Roboter fährt zunächst eine zufällige Anzahl von = Feldern geradeaus. Trifft er in dieser Zeit auf ein Hindernis, meldet er = dieses an den Zentralrechner. Dann setzt er ein wenig (weniger als ein = halbes Feld) zurück, dreht auf der Stelle um 45 Grad, was mit = Kettenantrieb ohne Probleme möglich ist, und fährt dann wieder = eine zufällige Anzahl von Feldern geradeaus. Erreicht der Roboter = sein "Ziel", also die zufällig bestimmte Anzahl von = Feldern, wird zufällig bestimmt, ob er nach links, nach rechts oder = geradeaus weiterfährt und wie weit er fahren soll.
Mögliche Erweiterungen
Es wäre denkbar, den Roboter auf einem bunten Schachbrett fahren = zu lassen und durch den Lichtsensor, der zur Erkennung der schwarzen = Linien den Boden abtastet die (nicht schwarze) Farbe des Schachbrettes = zu erkennen. Auf diese Weise würde unser Forschungsroboter auch = noch die Bodenbeschaffenheit des Gebietes bestimmen können.
Darüber hinaus ist an eine graphische Darstellung des = erforschten Gebietes zu denken.