GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander

Die Seite wird erstellt Kasimir Werner
 
WEITER LESEN
GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
GPS im Kinderzimmer
      Navigation eines autonomen Roboters in dynamischer Umgebung

                                                              Jonas Pfeil
                                                        Reiner Schäfer
                                                      Levin Alexander

                                          Jugend-forscht 2002 - Technik

http://www.bildarchivierung.com/gps/                    Berlin, 19. April 2002
GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
GPS im Kinderzimmer

Reiner Schäfer (Gruppensprecher)
Rudolf-Seiffert-Str. 36            Heinrich-Hertz-Gymnasium
10369 Berlin                       Rigaer Strasse 81-82
Tel: 030 / 975 06 80               10247 Berlin
                                   Tel: 030 / 422 62 080
Geb: 6. September 1982

Levin Alexander
Am Danewend 13a                    Heinrich-Hertz-Gymnasium
13125 Berlin                       Rigaer Strasse 81-82
Tel: 030 / 943 80 241              10247 Berlin
                                   Tel: 030 / 422 62 080
Geb: 12. September 1982

Jonas Pfeil
An der Kolonnade 4                  Heinrich-Schliemann-Oberschule
10117 Berlin                        Dunkerstraße 64
Tel: 030 / 224 88 064               10439 Berlin
                                    Tel: 030 / 466 895 0
Geb: 3. März 1983

                                                               GPS im Kinderzimmer
GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
GPS im Kinderzimmer

Inhalt

1. Projektidee
       1.1       Existierende Methoden   1
       1.2       Anwendungsgebiete       1

2. Positionsbestimmung
       2.1       Funktionsweise          3
       2.2       Aufbau                  4
       2.3       Sender                  4
       2.4       Empfänger               5

3. Roboter
       3.1       Hardware                9
       3.2       Software                11

4. Missionsplanung
       4.1       Kartenerstellung        15
       4.2       Wegplanung              16

GPS im Kinderzimmer
GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
GPS im Kinderzimmer

IV                    GPS im Kinderzimmer
GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
1. Projektidee

                                                                                                1. Projektidee

  Das Projekt entstand aus der Überlegung heraus, dass weise aufwändig, einen Laserstrahl stets exakt parallel
es für einen autonomen Roboter, der sich in unbe- zum Boden auszurichten. Weiterhin benötigen entspre-
kannten Räumen orientieren soll, sehr schwierig bis chende Geräte immer freie Sicht auf mehrere Markie-
unmöglich ist, seine Position korrekt zu bestimmen rungen.
und „vernünftige“ Wege zu vorgegebenen Zielpositio-        Wir haben eine einfache Apparatur gebaut, die das
nen zu fahren.                                           Problem der Positionsbestimmung über Laufzeitmes-
  Für Freiflächen existiert mit GPS bereits ein System, sungen von Ultraschallsignalen löst. Sie ist mit gerin-
das eine für Endanwender einfache Möglichkeit bereit- gem Aufwand in vielen Umgebungen einsetzbar.
stellt, absolute Positionsinformationen zu erhalten. Es
ist jedoch in geschlossenen Räumen nicht anwendbar.
Deshalb ist die wesentliche Aufgabe der Positionsbe- 1.2 Anwendungsgebiete
stimmung dort bisher nur sehr aufwändig zu lösen.
                                                           Die Anwendungsmöglichkeiten von autonomen Robo-
                                                         tern in geschlossenen Räumen sind außerordentlich
1.1 Existierende Methoden                                vielfältig. Auch wenn sich die Robotik in diesem
                                                         Bereich noch in einer frühen Phase befindet, wirklich
  Eine Möglichkeit ist, mit an allen Seiten des Roboters nützliche Anwendungen also noch rar sind, so ist doch
montierten Abstandssensoren die umliegenden Hinder- das enorme Potential bereits erkennbar.
nisse zu erfassen und in bereits bekannte Karten einzu-    Ein autonom navigierender Roboter, der eine dyna-
passen. Diese Strategie ist algorithmisch sehr komplex, mische Karte erstellt, könnte zum Beispiel in
arbeitet jedoch in einigen Umgebungen recht gut. Dies, Grossraumbüros Kurierdienste übernehmen (z.B:
kombiniert mit Inkrementalgebern an den Rädern, lässt „Dieses Gerät zu Kollege B bringen“, „Kaffee holen“
bereits eine gute Positionsbestimmung zu.                usw.), dabei auf auftretende Hindernisse reagieren und
  Nachteile sind die notwendigen, sehr genauen und selbsttätig Ausweichrouten planen. Es wäre nicht nötig,
damit teuren Abstandssensoren/Kameras in alle Rich- den Roboter mit einer Grundrisskarte des Gebäudes
tungen, die komplexen, rechenintensiven Algorithmen auszustatten. Einziger Einrichtungsaufwand wäre die
und notwendige Annahmen über die Umgebung, (recht- Montage der Ultraschallsender im Raum.
winklige Wände, gerade Flure usw.) um unweigerlich         Das von uns entwickelte System besteht aus drei Kom-
mit der Zeit auftretende Abweichungen kompensieren ponenten: der Hardware für die Positionsbestimmung,
zu können.                                               einem Roboter und der Missionsplanung auf einem PC.
  Eine weitere Möglichkeit ist, mit Laserscannern Pris- Roboter und PC kommunizieren via Funk miteinander.
menspiegel oder Reflektoren feste Marken anzupeilen Auf dem PC wird eine Karte der Umgebung erzeugt
und durch die Auswertung der Winkel an absolute und verwaltet.
Positionsdaten zu gelangen. Als Nachteil sind hier der     In den folgenden Abschnitten werden wir auf alle
hohe Preis und die hohen Ansprüche an die mecha- Komponenten separat eingehen.
nische Genauigkeit zu nennen. So ist es beispiels-

GPS im Kinderzimmer                                                                                          1
GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
1. Projektidee

2                GPS im Kinderzimmer
GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
2. Positionsbestimmung

                                                                                           2. Positionsbestimmung

                                                         Abb.2: Formeln für die Positionsberechnung. Die Variablen x, y und
                                                         z sind die gesuchten Raumkoordinaten, r1, r2 und r3 die gemessenen
                                                         Entfernungen zu den Ultraschallsendern und R der Radius des Kreu-
                                                         zes.

                                                         2.1 Funktionsweise
                                                           Die Position des Empfängers ergibt sich aus den
Abb.1: Aufbau unseres Systems                            Abständen zu drei Sendern. Man benötigt mindestens
                                                         drei feste Punkte im Raum sowie die drei Entfernungen
                                                         von diesen Punkten zum Empfänger. Die Entfernun-
 Zur Bestimmung der Position des Roboters haben wir      gen werden über die Laufzeiten der Ultraschallsignale
uns für ein System entschieden, welches auf Laufzeit-    bestimmt.
messungen von Ultraschallsignalen basiert. Ultraschall     Ursprünglich hatten wir vor, die Sender frei im Raum
wird vom Menschen nicht als Ton wahrgenommen.            positionierbar zu machen. Dies war jedoch mathema-
Weiterhin sind entsprechende Sender und Empfänger        tisch für uns nicht mehr handhabbar. Allein die Formel
günstig und leicht zu beschaffen.                        einer Koordinate war 70 Seiten lang. Durch Anordnung
 Die verwendeten Piezo-Ultraschallmikrofone besit-       der Ultraschallsender in Form eines Kreuzes parallel
zen eine definierte Resonanzfrequenz, und verstärken     zum Boden reduziert sich die Formel (der Schnittpunkt
dadurch Schall dieser Frequenz selektiv sehr stark.      dreier Kugeln im Raum) auf eine akzeptable Größe.
Deshalb sind aufwändige Frequenzfilter weitgehend        [Abb.2]
überflüssig. Auch die Sender weisen ein ähnliches Ver-     Dies vereinfacht die Installation des Systems erheb-
halten auf.                                              lich, da das Kreuz lediglich an der Decke des Raumes
                                                         befestigt werden muss.
                                                           Zur Bestimmung der Position würden drei Ultraschall-
                                                         sender ausreichen. Wir benutzen jedoch vier Stück,
                                                         um die Genauigkeit zu erhöhen und bei eventueller
                                                         Abschattung eines Senders trotzdem eine korrekte Posi-
                                                         tion zu erhalten.

GPS im Kinderzimmer                                                                                                      3
2. Positionsbestimmung

  Die vier Sender senden mit einem Abstand von 80 ms 2.3 Sender
(12,5 Hz) reihum je 16 Pulse lange Signale, deren Lauf-
zeiten wir messen.                                          Die vier Ultraschallsender sind über eine Transi-
  Um absolute Zeiten ermitteln zu können, wird ein storschaltstufe mit einem 4-Bit Shift-Register (Typ
Synchronisationssignal benötigt. Dazu benutzen wir 74HCT194) verbunden. Sein letztes Bit ist mit dem
Infrarotlichtpulse, die synchron zum ersten Ultraschall- seriellen Eingang verbunden. So können wir ein logi-
signal gesendet werden. Die Laufzeit des Lichts kann sches HIGH so shiften, dass es nacheinander an allen
vernachlässigt werden.                                    Ausgängen anliegt.
                                                            Die Ultraschallsender müssen mit ihrer Resonanz-
                                                          frequenz, 40 kHz, angeregt werden. Da die Lautspre-
2.2 Aufbau                                                cher dann selbsttätig zu schwingen beginnen und somit
                                                          einen harmonischen Sinuston abstrahlen, können sie
  Die vier Sender sind an einem zerlegbaren Kreuz aus problemlos mit dem erzeugten Rechtecksignal ange-
Alurohren befestigt. In der Mitte befindet sich eine Box, steuert werden. Ihre Resonanz sorgt schließlich auch
die die Sendeelektronik enthält.                          für die hohe Sendeleistung.
  Die Rohre sind je einen Meter lang. Sie werden mit
UHF-Steckern direkt an der Box verschraubt.               Schaltung
  Damit lässt sich das Kreuz mit insgesamt über zwei
Meter Armlänge in vier je einen Meter lange Sendean-        Die Ausgänge des Shift-Registers sind jeweils mit
tennen und die zentrale Steuereinheit zerlegen.           einem Eingang je eines Und-Gatters (1-4 in Abb.3)
  Im Inneren der Rohre verläuft der eine Anschluss der verbunden. Es entsteht eine Torschaltung. Nur das
Sender, die Rohre selbst bilden die Masseleitung. So ist Gatter, an dem der entsprechende Pin des Shift-Regi-
die Stromzuführung ähnlich wie bei einem BNC- oder sters logisch High ist, lässt das Ultraschallsignal zur
KOAX-Kabel abgeschirmt.                                   Transistorschaltstufe durch.
  Das zusammengebaute Kreuz wird an einer vom               Da die Sender jeweils nur einen kurzen Ton abgeben
ganzen Raum aus sichtbaren Stelle angebracht, um sollen, legen wir die 40 kHz Pulse an den anderen
einen guten Empfang aller Signale zu gewährleisten.       Eingängen der Tore jeweils nur für eine bestimmte Zeit
 An der Unterseite der Steuereinheit ist der Infrarotsen- an.
der angebracht.                                             Ein 4-Bit Counter (74HCT193) zählt mit jedem
                                                          Umschalten des Shift-Registers sechzehn 40 kHz Pulse
                                                          und setzt dann über den Overflow-Pin ein Flip-Flop
                                                          zurück, das über Tor 5 den jeweils aktiven Ultraschall-
                                                          sender abschaltet.

                                                         Abb.3: Schaltskizze für die Sendeeinheit des Positionierungssystems

4                                                                                                GPS im Kinderzimmer
2. Positionsbestimmung

 Das zur Synchronisation verwendete Licht ist über
Tor 6 mit dem ersten Ausgang des Shift-Registers ver-
bunden. Den zweiten Eingang bildet eine Zählerstufe,
die der des Ultraschalls entspricht, jedoch mit 100 kHz
gesteuert wird. Damit wird mit dem ersten ausgelösten
Ultraschallsignal ein kurzer Lichtblitz ausgesandt.

Erzeugung der Frequenzen
  Das Sendekreuz benötigt mehrere Taktfrequenzen.
Dies sind 40 kHz für die Ultraschallsender, 100 kHz       Abb.4: Zur Erstellung eines synchronen Duty-Cycles
mit denen die Infrarotdioden gepulst werden sowie
50 Hz, die das Shift-Register weiterschalten.
 Unser Taktgeber ist ein 2-MHz-Quarz, von dem              sondern weist an jeder Überlaufstelle einen Puls mit
alle diese Frequenzen durch Teilung ermittelt werden       der Länge der halben Periodendauer des Quarzes auf
können.                                                    und bleibt dann über mehrere Takte bis zum Erreichen
                                                           eines erneuten Überlaufs Low.
40 und 100 kHz                                               Diese Frequenz wird nun durch ein spezielles Flip-
                                                           Flop geleitet. Dieses Flip-Flop des Typs 74HCT74 wird
  Die Quarzfrequenz wird zur Erzeugung der Sendefre-       von uns wie folgt eingesetzt:
quenzen zunächst nur auf das Doppelte der benötigten         Das Flip-Flop verfügt neben den eigentlichen „set“
Frequenz geteilt.                                          und „reset“-Eingängen noch über die zusätzlichen
  Für 100 kHz wird damit durch einen 10-fach Teiler        Eingänge „d“ und „clk“ (clock). Mit jeder steigenden
erst die Frequenz des Quarzes auf 200 kHz gesenkt.         Flanke am „clock“-Eingang wird der aktuell an Pin „d“
Dafür verwenden wir den IC 74HCT390. Dieser IC             anliegende Logikpegel auf den Ausgang q gelegt. Ver-
enthält zwei Teiler durch 2 und zwei Teiler durch 5.       bindet man den Pin „d“ nun mit dem invertierten Aus-
Der benötigte Divisor ergibt sich aus der Kombination      gang „q*“, ergibt sich folgender Effekt: Ist „q“ High,
eines 2-fach und eines 5-fach Teilers.                     dann liegt über „q*“ am Eingang „d“ ein Low an, wel-
  Der 40 kHz-Takt liegt also zunächst als 80 kHz-Signal    ches mit der nächsten steigenden Flanke an „clk“ nach
vor. Hierzu wurde der gleiche IC wie eben benannt ver-    „q“ übernommen wird.
wendetet, lediglich finden hier zwei in Reihe geschal-      Umgekehrt gilt das Gleiche: Ist „q“ Low ist „q*“ dem-
tete 5-fach Teiler ihren Einsatz.                          nach High, ebenso Pin „d“.
                                                             Damit erreicht man mit jeder steigenden clock-Flanke
Duty-Cycle                                                 ein Umschalten des Ausgangs „q“ mit doppelter Ein-
                                                           gangsperiode. Damit wird das asynchrone Eingangssi-
  Der Duty-Cycle gibt das Verhältnis von Low- und          gnal am „clk“-Pin auf ein synchrones Ausgangssignal
High-Zeiten eines Signals an.                              der halben Frequenz umgewandelt. [Abb.4]
  Dass die benötigten Frequenzen nicht direkt durch
Teilung aus dem Quarz ermittelt werden, hat folgenden 50 Hz
Grund:
  Der Quarztakt stellt mit jeder steigenden Flanke          Das letzte benötigte Taktsignal ist 50 Hz. Es wird
den Zähler des Teilers eine Dezimalzahl weiter. Ist genau wie die anderen Signale aus dem Quarz geteilt.
im 5-fach Teiler der Zählerstand 5 erreicht, gibt es
beim nächsten Quarzpuls einen Überlauf, d.h., dass
der Zähler intern auf Null gesetzt wird und der Aus- 2.4 Empfänger
gang des Teilers den Logikpegel von Low auf High
schaltet. Dieses High bleibt solange aktiv, bis ein erneu-  Die Empfängerschaltung auf dem Roboter besteht aus
ter Quarzpuls den Zähler wieder um eins erhöht. Ist zwei Teilen:
dies geschehen, ist der Ausgang Low.
  Das Ausgangssignal der Teiler hat demnach nicht wie      • dem Ultraschallempfänger und
das Eingangssignal einen symmetrischen Duty-Cycle, • dem Lichtempfänger.

GPS im Kinderzimmer                                                                                                5
2. Positionsbestimmung

Abb.5: Signale an verschiedenen Stellen des Ultraschallverstärkers   Abb.6: Foto der Empfangsplatine

  Beide Schaltungen bestehen jeweils aus einer Volt. Um dies zu verhindern haben wir hinter die Diode
Verstärkerstufe und einer Adapterstufe, die die analo- eine Offsetspannung gelegt. Diese Spannung liegt bei
gen Signale der Verstärker in für den Mikrocontroller etwa -0,7 Volt. Da hinter der Diode ein neu definierter
lesbare digitale Signale umwandelt.                      Nullpunkt von eigentlich -0,7 Volt liegt, werden alle
                                                         Signale des OpAmp-Ausgangs im Bereich von Offset-
Ultraschallempfänger                                     spannung bis 5 Volt durch die Diode gelassen. Mit
                                                         der Diodenflussspannung werden also alle Signale zwi-
  Der Ultraschallempfänger besteht zunächst aus drei schen 0 Volt und 5 Volt ausgegeben.
hintereinandergeschalteten invertierenden Verstärkern,
                                                         Umwandlung in Logikpegel
die mit einfachen Operationsverstärkern vom Typ
TL084 realisiert wurden. Wir haben hierfür eine            Dieses Signal wird nun zum ersten Mal durch ein
Gesamtverstärkung von ca. 10.000 gemessen.               Logikgatter geschickt. Ob es sich hierbei um Inverter-,
  Dadurch werden die vom Mikrofon empfangenen, AND-, NAND-, NOR-, etc. Gatter handelt, spielt so
sinusförmigen Signale mit einer Amplitude von weni- lange keine Rolle, wie die Eingangssignale die gleiche
gen Millivolt [Abb.5a] auf Signale der Amplitude von High-Low-Verteilung aufweisen wie die Ausgangs-
einigen Volt angehoben. Da die Schaltungen mit einer signale der Gatter. Diese bereits digitalisierten Signale
Spannung von +5 Volt und -5 Volt betrieben werden, [Abb.5d] werden nun noch durch einen Integrator, beste-
sind die Signale an den Ausgängen der OpAmps hend aus einem OpAmp, zwei Kondensatoren und zwei
natürlich auch nicht größer oder kleiner als +5/-5 Volt. Widerständen, weiterverarbeitet.
Zu stark verstärkte Signale werden an diesen Grenzen
                                                         Integrator
abgeschnitten. [Abb. 5b,c]
                                                           Die vom Mikrofon empfangenen Signale sind gerade
Gleichrichtung und Offset                                die vom Sender geschickten 16 Pulse zuzüglich einiger
 Am Ausgang des dritten Verstärkers befindet sich eine Signale, die vom weiterschwingenden Empfänger aus-
Diode. Sie schneidet die negativen Bestandteile des gehen. Diese, zu einem Rechtecksignal umgewandelt,
verstärkten Signals ab, da diese nicht von den Mikro- liegen nun am Eingang des Integrators an. Der Integra-
controllern verarbeitet werden können.                   tor erzeugt aus diesen vielen Peaks eine Art Hüllkurve.
  Da die verwendete Siliziumdiode eine Flussspannung [Abb.5e] Mit den ersten Peaks schlägt der Integrator-
von 0,7 Volt benötigt um zu öffnen, sind die Signale am ausgang von LOW auf HIGH um und verbleibt dort,
Ausgang der Diode nicht, wie erwünscht, im Bereich bis das Signal endet. Dieses Ausgangssignal wird dann
von 0 bis 5 Volt, sondern beginnen eben erst bei 0,7 ebenfalls noch einmal digitalisiert und weiter zum

6                                                                                                      GPS im Kinderzimmer
2. Positionsbestimmung

Mikrocontroller geschickt. Der Mikrocontroller erhält den Bezugspunkt Masse. Die negativen Bestandteile
also mit jedem ankommenden Ultraschallsignal einen werden noch vor dem Verstärkereingang durch eine
sauberen Umschlag von LOW zu HIGH und umge- Diode gefiltert und damit auch nicht weiter verstärkt.
kehrt – ein gut zu verarbeitendes Signal.               Hinter diesem Verstärker befindet sich ein Gatter, um
                                                        die ankommenden Signale zu digitalisieren. Diese
Lichtempfänger                                          werden wie beim Ultraschall durch einen Integrator
                                                        geschickt.
  Der Schaltplan des Lichtempfängers befindet sich        Die Werte der passiven Bauelemente in den Integrato-
im Anhang. Er ist etwas anders aufgebaut als der ren stimmen in beiden Schaltungen überein. Dadurch
Ultraschallempfänger. Das von der Fotodiode emp- ergeben sich für beide Schaltungen ähnliche Ein-
fangene Signal wird zunächst durch einen speziellen schwingzeiten und die Schaltzeiten können bei der Posi-
Selektivverstärker geleitet. Er verstärkt die ankommen- tionsbestimmung vernachlässigt werden.
den Signale frequenzabhängig. Die Schaltung ist aus       Dieses Ausgangssignal wird nun wieder digitalisiert
einem Elektronikbuch übernommen. Dabei wurden und kann vom Mikrocontroller sauber verarbeitet
allerdings einige Widerstands- und Kondensatorwerte werden.
verändert, um am Ende ein Vertärkungsoptimum bei
einer Frequenz von 100 kHz zu erreichen. Da die
von uns verwendete Infrarotdiode über einen Tages-
lichtsperrfilter verfügt, müssen wir uns um Störungen
von Licht aus dem sichtbaren Spektralbereich keine
Gedanken machen.
  Das Ausgangssignal der übernommenen Schaltung
muss zur Digitalisierung weiter verstärkt werden. Zu
diesem Zweck folgt noch eine nicht-invertierende
OpAmp-Verstärkerschaltung. Da die übernommene
Schaltung nur mit positiver Spannung versorgt wird,
haben wir eine Art Adapter für die folgenden
Schaltungen entworfen [Abb.7]. Am Ausgang des
Selektivverstärkers liegen die empfangenen Ein-Aus-
Zustände des Lichtempfängers an. Dieses Signal hat
jedoch nicht in Masse seinen Bezugspunkt, sondern
bei halber Versorgungsspannung. Damit dieser virtuelle
Nullpunkt aber nicht durch die folgenden Verstärker auf
Versorgungsspannung verstärkt wird, ist der Schaltungs-
teil durch einen Kondensator kapazitiv vom ersten Teil
getrennt. Mit einem Pulldown-Widerstand wird dem
ihm die eigentliche Masse als Bezugspotential bereit-
gestellt. Dadurch entsteht wieder eine Schwingung um

Abb.7: Pegelanpassung nach dem Selektivverstärker

GPS im Kinderzimmer                                                                                         7
2. Positionsbestimmung

8                        GPS im Kinderzimmer
3. Roboter
Bau und Funktionsweise unseres Roboters

                                                                                                   3. Roboter

3.1 Hardware                                              Im hinteren Teil ist ein freilaufendes Stützrad ange-
                                                        bracht. Damit der Roboter nicht nach vorn überkippt,
  Für den Roboter wählten wir eine runde Form mit liegt der Schwerpunkt der Aufbauten im Zentrum zwi-
zwei einzeln gesteuerten Antriebsrädern. Im Vergleich schen den beiden Antriebsrädern und dem Stützrad.
zu einem rechteckigen Roboter, mit gelenkten Rädern,      Vorn unter der Grundplatte sind die Steuerelektronik
ist hier die Steuerung wesentlich einfacher. Ein runder für die Motoren, die Signalaufbereitung der Radenco-
Roboter kann z.B. in eine Parklücke fahren und sich der und der Bodenscanner aufgehängt.
dann beliebig drehen, während eine PKW-ähnliche           Auf der Grundplatte befinden sich ein 12V Akkublock
Konstruktion dafür mehrere Schritte benötigt. Er kann und eine Batterie für die negative Spannung. Darüber
deshalb engere Stellen im Gelände passieren und bei liegen die Hauptplatine und die Schaltung des Licht-
Kontakt mit einem Hindernis sofort drehen, ohne dabei und Ultraschallempfängers mit dem AT90S2313 Mikro-
hängen zu bleiben.                                      controller.
  Der Aufbau besteht aus einer kreisförmigen Plexiglas- Auf der Hauptplatine befinden sich zwei Mikrocon-
platte, an der alle Komponenten befestigt sind.         troller (RabbitCore 2000 und AT90S8535), die Steuer-
  Zwei separat angesteuerte Getriebemotoren mit direkt elektronik für die 433 Mhz-Funkverbindung zum PC
auf den Achsen befestigten Antriebsrädern sind in der und diverse Sensoren.
Mitte des Roboters unter der Grundplatte montiert.

GPS im Kinderzimmer                                                                                          9
3. Roboter

Stromversorgung                                        geschaltet wird. Damit ist der zweite Ausgang immer
                                                       dann Low, wenn der erste High ist.
  Für die Motoren wird eine Spannung von 12V benötigt,   Die Geschwindigkeit der Motoren ist per Pulsbrei-
die durch 10 NiMH-Akkus der Größe Mignon bereit- ten-Modulation zu steuern. Dabei wird die Spannung
gestellt wird. Wir benutzten Akkus mit einer Kapazität schnell an und ausgeschaltet, wobei sich der Spannungs-
von 1800mAh, um eine möglichst hohe Laufzeit zu mittelwert aus dem Tastverhältnis zwischen HIGH und
erreichen.                                             LOW ergibt (Spannung = (tein/tPeriode) * vcc).
  Die für die Elektronik benötigten +5V werden von       Das PWM-Signal wird an die nicht invertierenden
einem DC/DC-Wandler erzeugt, der mit einem Wir- Eingänge der AND-Gatter angelegt.
kungsgrad von 80-90% arbeitet.                           Die Richtung des Motors wird über den invertieren-
  Für die Verstärkerschaltungen der Ultraschall- und den Eingang der ersten Treiberstufe festgelegt.
Licht-Empfängerplatine werden außerdem –5V benötigt,
die durch einen zusätzlichen 9V-Block und einem nega- Radencoder
tiven Spannungsregler bereitgestellt werden.
                                                         Um die Geschwindigkeit der Motoren regeln zu
Motorsteuerung                                         können und die Fahrtrichtung beizubehalten, muss
                                                       der Roboter die Geschwindigkeit der Räder messen
                                                       können.
                                                         Dazu dienen Radencoder, die über eine Reflexlicht-
                                                       schranke und einen Fototransistor die Hell-Dunkel-
                                                       Übergänge auf Scheiben an der Innenseite der Räder
                                                       registrieren.
                                                         Den Fototransistor erreicht damit mehr oder weniger
                                                       reflektiertes Licht. Je höher die Lichtintensität ist, desto
                                                       stärker öffnet der Fototransistor seine Kollektor-Emit-
Abb.8: Schaltung zur Ansteuerung der Motoren           ter-Strecke. Da er mit einem Widerstand zu einem Span-
                                                       nungsteiler geschaltet wird, liegt zwischen Widerstand
  Die Ansteuerung der Getriebemotoren realisierten wir und Fototransistor eine sich während der Rotation des
über einen Motortreiberchip des Typs TC4469. Dieser Rades periodisch ändernde Spannung an.
IC kann vier Ausgänge treiben, die jeweils durch ein     Dieses analoge Signal wird mit einem Schmitt-Trig-
AND-Gatter mit einem invertierenden Eingang gesteu- ger in ein digitales umgewandelt. Ein Schmitt-Trigger
ert werden.                                            schaltet bei steigender Spannung bei einem bestimmten
  Zum Treiben eines Motors benötigt man zwei Wert auf HIGH und bei fallender Spannung bei einem
Ausgänge, zwischen die der Motor geschaltet wird. geringeren Spannungswert auf LOW. Die Differenz
Nun kann man die Richtung des Motors kontrollieren, dieser Spannungswerte heißt Hysterese und verhindert
indem man die Ausgänge jeweils entgegengesetzt schal- ein schnelles Ein- und Ausschalten beim Passieren des
tet.                                                   Triggerpunktes.
  Dies wird erreicht, indem der erste Ausgang an         Die steigenden oder fallenden Flanken des getrigger-
den invertierenden Eingang der zweiten Treiberstufe ten Signals werden durch den AT90S8535 Mikrocon-
                                                       troller gezählt.

                                                          Bodenscanner
                                                            Um Informationen über die Beschaffenheit des Bodens
                                                          zu erhalten und z.B. Striche zu verfolgen, besitzt der
                                                          Roboter vorn unter der Grundplatte eine rote LED, die
                                                          durch den Mikrocontroller an- und ausgeschaltet wird.
                                                          Rechts und links davon befinden sich fokussierte Foto-
                                                          transistoren, die parallel zur LED auf den Boden gerich-
                                                          tet sind.
Abb.9: Pulsweitenmodulation

10                                                                                         GPS im Kinderzimmer
3. Roboter

 Sie messen das Licht, das auf ihrer Seite der LED          sollte er ausserdem so weit wie möglich von Störsendern,
durch den Boden reflektiert wird. Um einen schwarzen        wie z.B. Quarzschwingern, angebracht werden.
Strich auf weißen Grund zu verfolgen, müssen beide            Die ELV-Module erwiesen sich jedoch als zu anfällig
Fototransistoren gleich wenig Licht auffangen, da sich      gegenüber Störungen, da sie nur mit Amplitudenmodu-
der Strich dann genau unter der LED befindet.               lation arbeiten. Um eine stabile Verbindung zu erhal-
 Wie bei den Radencodern werden die Fototransistoren        ten, stellten wir den Funk auf FM-Transciever-Module
als Spannungsteiler geschaltet, nur dass die Spannung       der Firma Radiometrix um. Diese Module sind wesent-
hier mit einem 10-Bit A/D-Wandler des AT90S8535-            lich hochwertiger und lassen Übertragungen mit bis zu
Mikrocontrollers digitalisiert wird.                        40 kbit/s über 30 Meter zu. In Verbindung mit unse-
                                                            rem fehlertoleranten Protokoll ist uns jetzt eine stabile
Bumper                                                      Datenübertragung mit 14,4 kbit/s möglich.

  Bumper sind Mikroschalter, die eine Kollision des
Roboters mit einem Hindernis erkennen. Unser Robo-          3.2 Software
ter besitzt drei solcher Sensoren, zwei vorn und
einen hinten. Sie sind an drei digitale Eingänge des          Die Software des Roboters ist in zwei Ebenen orga-
AT90S8535 angeschlossen.                                    nisiert. Die Ebene der Sensorauswertung und Planung,
                                                            die sein Verhalten bestimmt, ist auf einem schnellen
433 MHz Kommunikation                                       15 MHz Mikrocontroller des Typs RabbitCore 2000
                                                            implementiert. Die Ebene der Sensorerfassung und
  Die Kommunikation zwischen Roboter und PC erfolgt         Motorsteuerung wurde von uns auf zwei 8-Bit AVR
über 433 MHz-Funkmodule. Da die Verbindung bidi-            Mikrocontrollern programmiert.
rektional ist, benötigt jede Seite sowohl Sender als auch     Ein AVR-Controller misst die Ultraschalllaufzeiten
Empfänger. Zuerst verwendeten wir Funkmodule der            für die Positionsmessung und sendet die Ergebnisse
Firma ELV mit einer Übertragungsrate von 2,4 kbit/s.        seriell an den RabbitCore. Der Zweite übernimmt die
Um eine störungsfreie Übertragung zu ermöglichen            Motorsteuerung und andere Mess- und Regelaufgaben.
senden die 433 MHz-Sender ein Dauersignal, solange            Dieses Prinzip, dem Zusammenspiel von Groß- und
keine Daten übertragen werden. Das ist im unidirektio-      Kleinhirn nicht unähnlich, ermöglicht ein effizientes
nalen Betrieb vorteilhaft, verhindert jedoch im bidirek-    Programmieren der eigentlichen Intelligenz, da der
tionalen Betrieb eine Übertragung, da beim Empfangen        Planungscontroller nicht mit Steueraufgaben belastet
der eigene Sender ständig den Sender der Gegenstelle        wird.
überstrahlt. Um dieses Problem zu lösen, haben wir
eine Schaltung entwickelt, mit der man zwischen Sende-      Sensorerfassung und Motorsteuerung
und Empfangsmodus umschalten kann. [Schaltplan im
                                                            Regelung der Motoren
Anhang] Im Empfangsmodus wird der eigene Sender
abgeschaltet. Der Empfänger muss beim Senden eben-            Die Motorsteuerung wird über die PWM-Ausgänge
falls abgeschaltet werden, da er den Sender negativ         des AT90S8535 realisiert. Um die Geschwindigkeit
beeinflusst. Um einen guten Empfang zu ermöglichen          der Motoren zu steuern, kann der Mikrocontroller ein
                                                            bestimmtes PWM-Taktverhältnis setzen.
                                                              Bei gleicher Spannung haben beide Motoren ein unter-
                                                            schiedlich starkes Drehmoment, so dass der Roboter
                                                            bei diesem offenen Regelkreis keine geraden Strecken
                                                            oder definierten Bögen fahren könnte. Deshalb ist es
                                                            notwendig, einen geschlossen Regelkreis mit Hilfe
                                                            der Geschwindigkeitsinformationen der Radencoder zu
                                                            implementieren.
                                                              Beide Motoren müssen so angesteuert werden, dass
                                                            sie ihre Sollgeschwindigkeit erreichen und außerdem
                                                            nur so weit wie gewünscht voneinander abweichen.
Abb.10: Das 433 MHz Kommunikationsmodul für den PC          Wir haben dazu einen Proportional-Integral-Regelkreis
                                                            programmiert.

GPS im Kinderzimmer                                                                                               11
3. Roboter

PI-Regelkreis                                              immer synchron mit dem Senden eines Ultraschallsen-
  Der Regler berechnet die Differenz zwischen Soll-        ders ausgelöst.
und Istgeschwindigkeit jedes Rades und multipliziert         In der Behandlungsroutine für diesen Interrupt wird
diesen Fehler mit einer Konstanten. Der entstehende        der Counter auf Null gesetzt und das Programm
Wert wird zur Stellgröße (PWM-Ausgang) addiert.            wartet auf den nächsten Ultraschallimpuls. Bei Eintref-
Dieser Proportional-Anteil des Reglers sorgt dafür, dass   fen eines Ultraschallsignals kann aus dem aktuellen
jedes Rad seine Sollgeschwindigkeit erreicht.              Counterwert direkt die absolute Schalllaufzeit ermittelt
  Der Integral-Anteil vergleicht die Abweichung der        werden.
Geschwindigkeiten beider Räder mit der gewünschten           Nach vier Compare-Interrupts sind alle vier Laufzei-
Balance zwischen den Geschwindigkeiten. Der Inte-          ten ermittelt, die daraufhin seriell an den RabbitCore
gral-Regler summiert diesen Fehler über die Zeit und       gesendet werden. Sollten nicht alle Ultraschallimpulse
multipliziert ihn ebenfalls mit einer Konstanten. Dieser   empfangen worden sein, werden ihre Laufzeiten auf
Wert wird von der Stellgröße des einen Motors abge-        null gesetzt. Diese werden verworfen.
zogen und zu der anderen addiert. Dadurch versucht           Um innerhalb der Blind-Zone alle Laufzeiten senden
der Regler den zu schnellen Motor abzubremsen und          zu     können,     sind    wir      auf   eine    hohe
den zu langsamen zu beschleunigen. Je länger die           Übertragungsgeschwindigkeit angewiesen. Wir benut-
Abweichung besteht, desto heftiger versucht der Robo-      zen für den AVR einen Quarz mit 3,6864 MHz, da
ter gegenzusteuern.                                        nur aus dieser Frequenz die maximale Baudrate von
  Wenn ein Rad gebremst wird regelt der Mikrocon-          115200 geteilt werden kann.
troller die Leistung des Motors hoch und der Roboter
                                                           Positionsbestimmung
fährt weiter geradeaus. Hält man das Rad fest, so fährt
der Roboter eine Kurve und dreht nach dem Loslassen        Die empfangenen Ultraschalllaufzeiten werden auf
schnell wieder auf den richtigen Kurs zurück.            dem RabbitCore mit einem gleitenden Mittelwert
                                                         geglättet. Dazu werden alle neu hinzukommenden
Ultraschalllaufzeitmessung                               Werte in einen zirkulären Buffer geschrieben.
  Für das Messen der Ultraschalllaufzeiten ist ein        Aus diesem Buffer wird ein Mittelwert gebildet. Um
AT90S2313 zuständig, der die ermittelten Werte via Ausreißer aus den Messwerten zu filtern, wird vor dem
serieller Schnittstelle zum RabbitCore sendet. Die Hinzufügen neuer Werte überprüft, ob sie gegenüber
Ausgänge der Licht- und Infrarotempfängerschaltung dem gleitenden Mittelwert höchstens um einen bestimm-
werden mit zwei Interrupt-Eingängen des Controllers ten Betrag abweichen. Diese Plausibilitätsbetrachtung
verbunden.                                               führt dazu, dass die Position keine plötzlichen Sprünge
  Der Mikrocontroller misst die Zeiten mit Hilfe eines aufweist. Sollten mehr als 3 Werte nacheinander nicht
16-Bit-Counters, der mit einer Frequenz von 460,8 kHz plausibel sein, so wurde der Roboter wahrscheinlich
(Taktfrequenz/8) zählt.                                  schnell bewegt. Deshalb wird der Buffer geleert und es
  Um nicht Ultraschallechos fälschlicherweise als werden alle Werte akzeptiert, bis er wieder gefüllt ist.
Signale zu empfangen, führten wir eine sogenannte          Die gleitenden Mittelwerte der vier Schalllaufzeiten
Blindzone ein. Nur Schalllaufzeiten, die größer sind als werden jeweils nach dem Hinzufügen neuer Messwerte
diese Blindzone, werden als gültig akzeptiert. Indem berechnet und für die Berechnung der Position mit
wir die Blindzone auf die Höhe des Kreuzes über dem Hilfe der oben beschriebenen Formel verwendet. Die
Roboter setzen können wir zuverlässig Signale heraus- Ergebnisse für X-,Y- und Z-Koordinate werden wie-
filtern, bei denen es sich nur um Echos des letzten Sen- derum in einem zirkulären Buffer gespeichert, aus dem
depulses handeln kann. Der AVR-Controller erwartet bei Bedarf der Mittelwert gebildet wird.
nach dem Start zwei Byte für diesen Zeitraum.
                                                         A/D-Wandlung
  Der AVR verfügt über einen sogenannten Compare-
Interrupt. Dieser wird ausgelöst, wenn ein Counter den     Der AT90S8535 verfügt über einen 10-Bit A/D-Wand-
Wert des Compare-Registers erreicht.                     ler mit Acht-Kanal-Multiplexer. An diese acht Ports
  Der Chip misst nach dem Reset einige Male die Zeit- sind der Bodenscanner, die Infrarot-Abstandssensoren
spanne zwischen zwei Lichtimpulsen und bildet den und die Batteriespannungsüberwachung angeschlos-
Mittelwert T. Ein Viertel dieser Zeit liegt zwischen dem sen.
Senden zweier Ultraschallsender. Setzen wir das Com-       Der Controller misst ständig alle Kanäle und bildet
pare-Register auf T/4, so wird der Compare-Interrupt ebenfalls einen gleitenden Mittelwert. Dieser Mittel-

12                                                                                         GPS im Kinderzimmer
3. Roboter

wert wird periodisch an den RabbitCore gesendet, der        Priorität haben die Bumper. Dieses Prinzip heißt Sub-
die Daten weiterverarbeitet.                                sumtion.
                                                              Das Verhalten, eine bestimmte Position mit Hilfe
 Funkprotokoll                                              der von der Missionsplanung übergebenen Wegpunkte
 Da die Funkverbindung nicht immer fehlerfrei arbeitet, anzusteuern, lässt sich gut in dieses System einglie-
 waren wir auf ein möglichst robustes Protokoll ange- dern. So versucht der Roboter nur dann den nächsten
 wiesen, dass einen Abbruch der Verbindung toleriert, Wegpunkt anzusteuern, wenn gerade kein Hindernis in
 Fehler in der Übertragung erkennt und betroffene Daten- seinem Weg erkannt wird. Andererseits ist es aber auch
 pakete erneut sendet.                                      wichtiger das Ziel zu erreichen, als eine Linie auf dem
   Wir haben folgendes Protokoll entworfen:                 Boden zu verfolgen.
                                                              Die nach Prioritäten geordneten Verhalten des Robo-
   170 170 (2 Byte) - ID (1 Byte) - Länge der Nachricht ters sind:
 (1 Byte) - Nachricht (n Byte) - Prüfsumme (1 Byte)
                                                             • Kollision (Bumper)
   Die Startbytes (170 170) werden zum Erkennen des          • Ausweichen (Infrarot Sensoren)
 Paketanfangs im Datenstrom benötigt.                        • Wegpunkt ansteuern (Funk, Positionsbestimmung)
   ID ist eine fortlaufende, eindeutige Zahl, die ein Paket  • Strich verfolgen (Bodenscanner)
 kennzeichnet.                                               • Erkunden
   Die Prüfsumme wird mit einer Hashfunktion ermittelt,
 die einzelne falsche Zeichen sowie Bitfehler zuverlässig     Bei einer Kollision wird der Roboter ein Stück
 erkennt.                                                   zurücksetzen und dann ca. 45° in die dem Hindernis
   Roboter und PC senden abwechselnd jeweils ein Paket. abgewandte Richtung drehen.
 Bei erfolgreichem Empfang und korrekter Prüfsumme            Das Verhalten „Ausweichen“ wird aktiv, wenn der
 wird die ID um eins erhöht, andernfalls das letzte Paket Roboter eine zu geringe Entfernung zu einem Hinder-
 erneut gesendet. So kann herausgefunden werden, ob nis hat. Er fährt dann eine Kurve vom Hindernis weg.
 Übertragungsfehler aufgetreten sind und es können           „Wegpunkt ansteuern“ versucht den Roboter zum
 keine Pakete verlorengehen. Zusätzlich senden sie auch nächsten Wegpunkt zu bringen, wenn Wegpunkte exi-
 wenn keine Nachrichten zu übermitteln sind Pakete mit stieren.
 leeren Nachrichten hin und her, um die Verbindung           „Strich verfolgen“ wird aktiv, wenn ein schwarzer
 aufrechtzuerhalten.                                        Strich auf hellem Grund durch die Fototransistoren
                                                            erkannt wird.
Verhalten des Roboters                                       „Erkunden“ dient dazu den Roboter auch dann fahren
                                                            zu lassen, wenn keine anderen Verhalten aktiv sind.
   Die eigentliche Intelligenz des Roboters ist auf dem
 RabbitCore Mikrocontroller programmiert. Eine Anfor-
 derung an das Gesamtsystem war, dass der Roboter
 auch ohne Verbindung zum PC oder Positionsinforma-
 tionen arbeitet. Deshalb statteten wir den Roboter mit
 Reflexen aus, die es ihm ermöglichen, selbsttätig durch
 das Gelände zu fahren und Hindernissen auszuweichen.
 So wird er versuchen nach rechts zu fahren wenn die
 Infrarotsensoren auf der linken Seite ein Hindernis
 erkennen.
   Jeder Sensortyp löst ein bestimmtes Verhalten aus.
 Damit der Roboter nicht versucht einen Strich auf dem
 Boden zu verfolgen, während er gerade mit einem Hin-
 dernis zusammenstößt, sind die Verhalten hierarchisch
 geordnet. Das Verhalten „Strich verfolgen“ hat bei-
 spielsweise eine geringere Priorität als das Verhalten
„Kollision vermeiden“ (Infrarot Sensoren). Die höchste

GPS im Kinderzimmer                                                                                             13
3. Roboter

14           GPS im Kinderzimmer
4. Missionsplanung

                                                                                          4. Missionsplanung

  Der Roboter ist ohne weiteres in der Lage, auf          Da die Sensorik des Roboters nicht zwischen sta-
plötzlich auftretende Hindernisse zu reagieren. Um tischen und beweglichen Hindernissen unterscheiden
jedoch effizient durch eine bereits teilweise bekannte kann und weil Hindernisse auch entfernt oder verscho-
Umgebung navigieren zu können, ist eine Speicherung ben werden können, sind Einträge in die Karte nicht
und Auswertung der Sensordaten erforderlich. Dies statisch, sondern werden mit der Zeit „vergessen“. Sie
kann mangels Ressourcen nicht direkt in den Mikrocon- haben, wenn sie lange nicht mehr besucht wurden,
trollern des Roboters selbst erfolgen.                  immer weniger Einfluss auf die Wegfindung.
  Also werden Sensordaten zusätzlich via Funk zu          Mit der Zeit ensteht ein Abbild der Umbebung, in
einem PC übermittelt, der daraus eine Karte der Umge- dem Wände unveränderlich sind und sehr langsam ver-
bung erstellt. Diese Karte wird zur Wegplanung ver- gessen werden. Bewegliche Hindernisse dagegen, die
wendet, damit der Roboter auf bekannte Hindernisse nur ein einziges Mal angetroffen wurden, haben nur
außerhalb seines unmittelbaren Sensorbereichs reagie- kurz Einfluss auf die Wegplanung.
ren kann.
  Durch unsere absolute Positionsmessung ist es dem Realisierung
Roboter möglich, exakte Koordinaten der Hindernisse
zu übermitteln, die direkt in eine Karte eingetragen      Die Kartenerstellung ist in Delphi als ein Objekt
werden.                                                 implementiert, das Sensordaten entgegennimmt. Um
                                                        diese speichern zu können wird der Raum in Rasterzel-
                                                        len unterteilt, die in einem zweidimensionalen Array
4.1 Kartenerstellung                                    gespeichert sind. Zu jedem Rasterpunkt werden dann
                                                        folgende Informationen ausgewertet:
  Die auf dem PC erstellte Karte bildet die dem Robo-
ter bekannte Umgebung ab. Sie ist Basis für die Wegfin- • Zeitpunkt des ersten Antreffens des Hindernisses
dung und die Darstellung der bekannten Umgebung auf      • Anzahl der Begegnungen
dem Monitor.                                             • Zeitpunkt des letzten Updates
  Der Roboter sendet seine Sensordaten und absolute      • Art des ansprechenden Sensors (Entfernungssenso-
Koordinaten erkannter Hindernisse an den Rechner, der ren, Bumper, Linienverfolgung, usw.)
daraus eine Karte generiert. Die Karte unterstützt ver-
schiedene Sensorinformationen und behandelt diese         Zusammen mit der erstellten Karte von Sensorinfor-
entsprechend ihrer Funktion.                            mationen wird ein zweidimensionales Array erzeugt,
  Erkannte Hindernisse sollen eine bestimmte Zeit das für jedes Feld des Raumes eine Zahl speichert,
gemieden werden. Die Karte soll selbsttätig ver- die als Aufwand (Kosten) für den Roboter verstanden
schwundene Hindernisse löschen und neu erkannte werden kann, dieses Feld zu passieren. Felder mit
hinzufügen.                                             hohen Kosten werden vom Roboter gemieden.
                                                          Es gibt eine sogenannte Kostenfunktion, die die Sens-
                                                        ordaten mit der aktuellen Zeit in die Kostenverteilung

GPS im Kinderzimmer                                                                                         15
4. Missionsplanung

überführt, welche dann direkt vom Wegfindungsalgo- als der letzte optimale Weg des „Raise-states“ zuzüglich
rithmus weiterverarbeitet werden kann. Diese Funk- der Kostenerhöhung. Hier bricht der Algorithmus ab,
tion hat die Eigenschaft, erkannte Hindernisse in sobald ein Lower-State das Startfeld erreicht, oder
einem Raumbereich weichzuzeichnen, damit der Robo- kein Raise-State mehr den bereits gefundenen Weg ver-
ter diesen nicht zu nahe kommt. Auch weist sie Hin- schlechtern kann.
dernissen, die vor langer Zeit angetroffen und häufig  Die Wegplanung ist echtzeitfähig, nach der Erken-
aktualisiert wurden, auch nach langer Zeit noch hohe nung neuer Hindernisse durch den Roboter steht also
Wegkosten zu, wohingegen sie selten angetroffene Hin- praktisch sofort ein aktualisierter Weg zum Ziel zur
dernisse nach und nach „vergisst“. Durch verschiedene Verfügung.
Kostenfunktionen kann das Verhalten des Roboters
optimiert werden. So können in sehr statischen Umge- Fibonacci-Heaps
bungen Hindernisse länger im Gedächtnis verbleiben
während in sehr dynamischem Gelände Hindernisse        Um D* (wie auch A*) effizient programmieren zu
auch nach häufiger Erkennung relativ schnell verblas- können, benötigt man eine Datenstruktur, die aus allen
sen müssen.                                           zur Expansion vorgemerkten Feldern das Feld mit den
                                                      geringsten Gesamtwegkosten zurückgibt und alle seine
                                                      Nachbarfelder in diese Datenstruktur einfügt.
4.2 Wegplanung                                         Sie muss Folgendes unterstützen:

  Die von der Kostenfunktion generierten Wegkosten              • Einfügen eines Feldes (Insert)
sind Basis für die Planung optimaler Wege durch den             • Auslesen und Entfernen des Feldes mit jeweils
Raum.                                                          geringster Priorität (Extract-Min)
  Es gibt eine sehr große Anzahl Wegfindungsalgorith-           • Einem Feld eine geringere Priorität zuweisen
men1. Für unseren Zweck – die Planung eines Weges              (Decrease-Key)
durch größtenteils unbekanntes Terrain und das dyna-
mische Hinzufügen von Hindernissen – ist eine Weiter-            Es gibt auch hier eine unüberschaubare Vielfalt von
entwicklung des weit verbreiteten A* Algorithmus, D*2,         Strukturen, die dies leisten. Die weitaus effizientesten
optimal geeignet. Sie funktioniert prinzipiell analog,         für unseren Zweck sind die sogenannten Fibonacci-
beschleunigt jedoch die Neuplanung des Weges bei               Heaps4.
Änderung der Karte extrem (um mehrere tausend(!)                 Dabei handelt es sich um zweifach ringförmig ver-
Prozent). Für unser Projekt haben wir D* in der fokus-         kettete Listen aus heapgeordneten Binominialbäumen.
sierten Variante3 programmiert und implementiert.              [Abb.11]
  Grundsätzliche Funktionsweise ist folgende:                    Fibonacci Heaps haben gegenüber anderen Heaps
  Ausgehend vom Zielfeld werden analog zu A* nach-             den enormen Vorteil, dass sie alle Operationen außer
einander Felder X mit jeweils den geringsten Gesamt-           dem Entfernen eines Feldes in konstanter Zeit O(1)
wegkosten betrachtet und für alle Nachbarfelder Y
dieses Feldes daraufhin untersucht, ob sie mit einem
Weg über X schneller (mit geringeren Gesamtwegko-
sten) erreicht werden können, als bereits berechnet.
Falls ja, werden diese Felder zur weiteren Expansion
vorgemerkt. Der Algorithmus terminiert, wenn das
Startfeld erreicht ist. Dann ist der optimale Weg gefun-
den.
  D* führt nun zusätzlich einen weiteren Zustand
(„raise-state“) ein, der Felder mit seit der letzten Berech-
nung erhöhten Wegkosten kennzeichnet. Diese werden
analog solange expandiert, wie sie eventuell den gefun-
denen Weg beeinflussen können. „Raise-states“ werden           Abb.11: Ein Fibonacci-Heap mit zwölf Elementen. Jeder Knoten ist
wieder in „Lower-states“ (das sind Felder mit garan-           kleiner als alle Knoten in seinen Unterbäumen. Auf den kleinsten
tiert optimalem Weg zum Ziel) umgewandelt, wenn ein            Knoten des Heaps kann über den Min-Pointer zugegriffen werden.
direkt benachbartes Feld entdeckt wird, dass besser ist,       Jeder Knoten kann in konstanter Zeit entfernt werden.

16                                                                                                  GPS im Kinderzimmer
Fazit und Literatur

                                                          Ausblick
                                                        Im Gegensatz zu Robotern ohne Weltmodell, ist mit
                                                      unserem System eine gezielte Navigation möglich. Uns
                                                      ist es gelungen einen Roboter mit einem „Gedächtnis“
                                                      für seine Umgebung auszustatten, so dass er mit der
                                                      Zeit immer präziser agieren und trotzdem flexibel auf
                                                      Veränderungen reagieren kann.
                                                        Da der Roboter die Ultraschallsignale nur empfängt
                                                      jedoch keine eigenen sendet, könnten mehrere Roboter
                                                      gleichzeitig navigieren und so im Team arbeiten.
                                                        Unser Positionierungssystem eignet sich bisher nur
                                                      für kleine Räume. Als nächsten Schritt haben wir vor,
                                                      unser System auf beliebig viele Sender zu erweitern, so
                                                      dass es auch in großen Räumen anwendbar ist. Dazu
Abb 12: Ein Screenshot der aktuellen Programmversion. könnte man die Ultraschallsender gezielt per Funk
                                                      ansprechen oder ihre Signale kodieren.
ausführen können. Das Entfernen kostet im Mittel log-   Durch Anpassung des Systems können verschiedenste
arithmische Zeit O(logn).                             Aufgabenfelder abgedeckt werden. Denkbar wären zum
 Dies ist besonders deshalb sehr günstig, da die Beispiel Transportroboter mit Ablagefläche oder mit
Decrease-Key Operation für D* sehr oft benötigt wird. Sprachausgabe ausgerüstete Serviceroboter, die Messe-
 (Zum Vergleich: Heapgeordnete binäre Bäume: alle besucher durch das Standgewirr lotsen.
Operationen O(logn); Listen: Extract Min O(n), Rest
O(1))
                                                          Literatur
Vektorisierung
                                                          1
                                                             „An optimal pathfinder for vehicles in real-world
  Um den Roboter zu bestimmten Zielpunkten fahren          digital terrain maps“, The Royal Institute of Science,
zu lassen kann der Benutzer in unserer Software direkt     Stockholm, Sweden, 1997
auf den gewünschten Punkt der Karte klicken. Dies          http://www.student.nada.kth.se/~f93-maj/pathfinder/
startet die Wegfindungsroutine, die den optimalen Weg      contents.html
zurückgibt. Der von ihr generierte Weg kann jedoch         2
                                                             Anthony Stenz, „Optimal and Efficient Path Plan-
nicht direkt zum Roboter gesendet werden, da er zu         ning for Partially-Known Environments“, In Procee-
viele Zwischenpunkte enthält. Um nutzbar zu sein,          dings IEEE International Conference on Robotics and
muss der Weg zuerst vektorisiert werden.                  Automation, Mai 1994.
  Dazu haben wir einen Algorithmus entworfen, der          http://www.frc.ri.cmu.edu/~axs/
nacheinander Zwischenpunkte aus dem gefundenen             3
                                                             Anthony Stenz, „The Focussed D-star Algorithm
Weg entfernt und die Gesamtwegkosten des vereinfach-       for Real-Time Replanning“, Proceedings of the Inter-
ten Weges mit dem Originalweg vergleicht. Ist die          national Joint Conference on Artificial Intelligence,
Vereinfachung nicht signifikant schechter wird der Zwi-   August 1995.
schenpunkt verworfen. So können alle unwichtigen           http://www.frc.ri.cmu.edu/~axs/
Punkte entfernt werden.                                    4
                                                             TU München, „Effiziente Algorithmen und Daten-
  Resultat der Vektorisierung ist eine kleine Anzahl       strukturen“ (Skript WS 1998/99), April 1999
von Wegpunkten, die via Funk automatisch zum Robo-         http://www14.in.tum.de/skripten/ead_ws9899_html/
ter gesendet werden. Er fährt sie nacheinander an und      node30.html
stoppt bei Erreichen des Zielpunktes.                     „Mobile Robots: Inspiration to Implementation“,
                                                          A K Peters, LTD, 1995

GPS im Kinderzimmer                                                                                            17
Anhang

Schaltpläne

Infrarot-Empfängerschaltung

Torschaltung der 433 MHz-Sender

 Weitere Schaltpläne im Internet: http://www.bildarchivierung.com/gps/

18                                                                       GPS im Kinderzimmer
Sie können auch lesen