GPS im Kinderzimmer Navigation eines autonomen Roboters in dynamischer Umgebung - Jonas Pfeil Reiner Schäfer Levin Alexander
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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 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 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
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
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