Rug Warrior Communication

Noisternig Michael Obermair Christoph Schmidbauer Josef Stieglbauer Gerald

16. März 1999

Inhaltsverzeichnis

1 Einleitung 2 1.1 Was sind Rug Warriors? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Sensoren des Rug-Warriors . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1 Infrarotemitter/dekoder . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.2 Pyroelektrischer Sensor . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.3 Fotowiderstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.4 Stoß-Sensoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.5 Mikrofon/Lautsprecher . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.6 Shaft-Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Rug Warrior Communication . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3.1 Grundlegende Betrachtungen . . . . . . . . . . . . . . . . . . . . . 5 1.3.2 Infrarot Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . 5

A Protokolle 7

A.1 Besprechungsprotokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 A.1.1 10.03.1999 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Kapitel 1

Einleitung

1.1 Was sind Rug Warriors?

Die Rug Warriors sind einfache, frei programmierbare Roboter. Sie verfügen über eine große Anzahl an Sensoren und besitzen als Aktoren unter anderem zwei Elektromotoren mit dessen Hilfe sie sich fortbewegen können. Die Roboter wurden am Massachusetts Institute of Technology als Übungsmaterial für das Buch Mobile Robots, Inspiration to Implementation[1] entwickelt. Die Rug Warriors werden als kompletter Bausatz nach den Vorgaben des genannten Buches angeboten und sind einfach aufzubauen. Daher sind sie eine ideale Plattform für erste Experimente mit Robotik. Durch die freie Programmierbarkeit des verwendeten Mikrokontrollersystems und der hohen Anzahl an Sensoren sind sie jedoch auch leistungsfähig genug für weiterführende Experimente.

1.2 Sensoren des Rug-Warriors

Unterteilung der Sensoren laut [1] in

• aktive Sensoren

– Infrarotemitter

– Piezo-Lautsprecher

– 4 LEDs

– Motor-Treiber

• passive Sensoren

– Infrarotdetektor

– 3 Stoß-Sensoren

– Mikrofon

– 2 Radsensoren (Shaft Encoders)

– Pyroelektrischer Sensor

– 2 Fotowiderstände

Außerdem stehen noch 5 weitere Port-Pins (2 digitale Eingänge, 1 digitale Ausgang, sowie 2 analoge Eingänge) für etwaige Erweiterungen zur Verfügung.

1.2.1 Infrarotemitter/dekoder

Dienen dazu um etwaige z.B. im Weg stehende Objekte zu erkennen. Derartige Sensoren können Strahlung im Bereich von ca. 880 nm erkennen. Im Zuge unseres Projektes wird geprüft, ob diese Sensoren auch zu Kommunikation zwischen Rug-Warriors verwendet werden können. Beide IR-Dioden (Emitter) werden durch einen digitalen Port angesteuert (PD2, PD3). Die IR-Detektor-Spezifikation [2] verlangt ein 40 kHz Trägersignal, auf dem das tatsächliche Ausgangssignal moduliert werden muß. Dies geschieht über einen speziellen Schwingkreis. Das Signal selbst hat eine Frequenz von 1667 Hz (d.h. logisch 1 bzw. 0 muß 600s anliegen, um vom Detektor als solches erkannt zu werden). Die geometrische Anordnung der Sensoren am Rug-Warrior sieht folgendermaßen aus: Der Detektor ist vorne in der Mitte angeordnet und geradeaus gerichtet, die Infrarot-Dioden jedoch sitzen links und rechts und sind seitlich gerichtet um dem Roboter sowohl links-, als auch rechtsseitiges ”sehen“ mit nur einem Detektor zu ermöglichen.

1.2.2 Pyroelektrischer Sensor

Dient ebenfalls zur Objekterkennung; im Gegensatz zu den IR-Sensoren wird die IR-Strahlung des Objektes selbst zur dessen Erkennung verwendet. Eine typische Anwendung wäre ein Bewegungsmelder (Menschen senden IR-Strahlung von 8-10m aus). Der am Rug-Warrior verwendete Sensor ist am analogen Port PE5 angeschlossen. Auf diesem Sensor befinden sich zwei Kristalle, aus deren Temperaturunterschied sich das Ausgangssignal ergibt, das anschließend im A/D-Konverter des Mikrocontrollers ausgewertet wir. Ist die Temperatur der beiden Kristalle identisch, so liegt am Ausgang des Sensors eine Spannung von 2.5V an. Nähert sich nun ein Objekt von links nach rechts, so steigt die Spannung um ca. 1V an, sich anschließend wieder bei 2.5V einzupendeln. Nähert sich ein Objekt von rechts nach links, so geschieht das Umgekehrte: Die Spannung fällt im 1V ab und stellt sich anschließend wieder bei 2.5V ein.

1.2.3 Fotowiderstände

Der Rug Warrior ist mit zwei Fotowiderständen ausgerüstet, die mit Port PE1 und PE0 verbunden sind. Diese Sensoren verändern in Abhängigkeit der umgebenden Lichtstärke ihren Widerstandswert. Dieser Wert wird in Form eines proportionalen Spannungswerts von ca. 0 bis 5V an den A/D-Konverter geschickt, um somit vom Prozessor ausgewertet werden zu können.

1.2.4 Stoß-Sensoren

Der Rug Warrior besitzt weiters 3 Stoß-Sensoren die gleichmäßig rund um den Roboter verteilt sind. Bei diesen Sensoren handelt es sich um nichts anderes als um Mikroschalter die bei direkten Kontakt des Roboters mit einem fremden Objekt ein entsprechendes Signal zum Prozessor senden sollen. Dabei gibt es zwei Verschaltungsstrategien:

• Jeder Sensor wird direkt mit einem Port-Pin verbunden (PE7, PE6, PE3 - Achtung, da dieser Port u.a. zur A/D-Konvertierung genützt wird, das Signal aber von digitaler Natur ist, muß der Port entsprechend konfiguriert werden).

• Die Mikroschalter werden so verschaltet, daß jeder Schalter bei Betätigung einen anderen Spannungswert liefert, der dann vom A/D-Konverter umgewandelt und entsprechend ausgewertet werden kann. Der Vorteil dieser Verschaltung liegt darin, daß nur ein Port-Pin benötigt wird (PE3).

1.2.5 Mikrofon/Lautsprecher

Das im Rug Warrior verwendete Mikrofon mit nachgeschaltetem Verstärker liefert Analogsignal im Bereich von 0 bis 5V das anschließend vom A/D Konverter (Pin PE2) in einen digitalen Wert umgewandelt wird. Bei der Verwendung des Mikrofons ergeben sich zwei Probleme:

• Um Signale nicht zu überhören, müssen vom Prozessor entsprechend viele Samples genommen werden. Besonders bei kurzen Signalen, wie z.B. ein Händeklatsch, kann dies leicht zu einer Prozessorüberlastung führen (Laut Abtasttheorem [3] muß der Prozessor mindestens mit der doppelten Frequenz, welche am Eingang des Mikrofon erwartet wird, abtasten). Eine Lösung wäre ein unabhängiger Schaltkreis, der dem Mikrocontroller diese Arbeit abnimmt.

• Das zweite Problem sind die Eigengeräusche des Roboters wie z.B. Motorengeräusche, die sich mit den tatsächlichen auszuwertenden Signalen vermischen. Hier würde die Einführung eines Schwellenwertes Abhilfe bringen, indem man nur Geräusche ab eines gewissen Lautstärkepegels für die Auswertung zuläßt.

Um charakteristische Eigenschaften unterschiedlicher Signale besser unterscheiden zu können, besteht die Möglichkeit einer Fouriertransformation die das Signal von dem Zeitbereich in den Frequenzbereich abbildet. Diese Aufgabe könnte vom Prozessor übernommen werden, ist aber verhältnismäßig zur Prozessorleistung relativ aufwendig. Der verwendete Lautsprecher basiert auf Piezo-Technik und ist mit Port-Pin PA3 verbunden. Eine weitere Möglichkeit zur Interaktion mehrerer Rug Warriors würde in der Kombination Lautsprecher - Mikrofon bestehen. Der Nachteil ist aber eine sicher nicht zu unterschätzende Fehleranfälligkeit durch Nebengeräusche.

1.2.6 Shaft-Encoder

Dieser Sensor dient zur Positionserkennung und Orientierung des Rug Warriors. Dazu sind an den Rädern kreisförmig angeordnete Schwarz/Weiß-Streifen vorhanden. Durch ein IR-Emitter/Dekoder Paar wird die aktuelle Reflektion gemessen. Durch eine Bewegung der Räder ergibt sich daraus ein Puls aus dem sich proportional zur Frequenz desselbigen die Geschwindigkeit bzw. die relative Positionsänderung des Robotors berechnen lassen. In Abhängigkeit der Anzahl der Streifen auf den Rädern steht die Genauigkeit der berechneten Daten. Einer der beiden Shaft-Encoder ist mit dem Puls-Akkumulator-Pin (PA7) vebunden, währenddessen der andere am dritten Capture Register des Ports (PA7) angeschlossen ist, was zu unterschiedlichen Auswertungsstrategien führt.

1.3 Rug Warrior Communication

Um sogenannte Multi Agenten Systeme in der Praxis realisieren zu können ist ein Informationsaustausch, also eine Kommunikation zwischen den einzelnen Teilnehmern notwendig. Damit mit den Rug Warriors ein Multi Agentensystem realisiert werden kann ist es daher nötig das die Rug Warriors untereinander kommunizieren können. Idealierweise sollte eine Kommunikation zwischen ihnen ohne zusätzlichen Hardwareaufwand möglich sein.

1.3.1 Grundlegende Betrachtungen

Aufgrund der vorhandenen, oben erwähnten, Sensoren und Aktoren sind folgende Kommunikationsmöglichkeiten denkbar:

1. via Infrarot Signale

2. via akustischer Signale

3. via motorischer Signale

Optional ist aufgrund noch vorhandener, freier Ein- und Ausgänge des verwendeten Mikrokonrollersystems auch eine Erweiterung für andere Kommunikationswege möglich. Diese ist jedoch mit einem zusätzlichen Hardwareaufwand verbunden und macht die Kommunikationslösung stark systemabhängig. Denkbar wäre hierbei vor allem eine Funk-Kom-mu-ni-ka-tion zwischen den Rug Warriors.

Im folgenden werden die Vor- und Nachteile der einzelnen Methoden erläutert.

1.3.2 Infrarot Kommunikation

Die Roboter besitzen zwei Infrarot-Dioden und einen Infrarot-Detektor. Die vorhanden Infrarot-Sensoren und Aktoren werden zur Erkennung von Hindernissen verwendet [1]. Für diese Aufgabe ist es zweckmäig eine geringe Strahlungsleistung zu verwenden. Daher, und um möglichst wenig Hardware zu verwenden, werden die Infrarot-Dioden des Rug Warriors direkt und ohne Treiber angesteuert [1]. Die deshalb sehr geringe Sendeleistung dürfe nur eine Kommunikation erlauben wenn sich die Roboter frontal gegenüberstehen. Als Protokoll sollten idealerweise die Protokolle der IrDA (Infrared Data Association) zum Einsatz kommen. Diese Protokolle werden weit verbreitet eingesetzt. Damit wäre eine einfache Kommunikation mit Notebooks, eventuell sogar mit Druckern und Mobiltelefonen möglich. IrDA verwendet als physikalisches bertragungsmedium kodierte Infrarot-Signale. Bei Kommunikationsraten unter 115.2\frac{kBit}{s} kommt dabei eine NRZI (Non-Return-to-Zero-Inverted) Kodierung zum Einsatz [4]. Das bedeutet das eine logische NULL als Infrarot Impuls und eine logische EINS als kein-Intrarot-Impuls kodiert werden. Als Protokoll auf dem Layer 1 nach dem ISO Refernzmodell [5] wird das gängige serielle Protokoll der 16550 kompatibelen Bausteine mit einem Startbit, acht Datenbits und einem Stopbit benutzt [4]. In [4] wird die verwendete, nominale Impulsbreite mit \frac{3}{16} der Bit-Dauer festgelegt. Weiters wird eine minimale Geschwindigkeit von 9600\frac{Bit}{s} gefordert. Damit ergibt sich eine Impulsdauer von \frac{1}{9600} \frac{3}{16} = 19.53μs. Die minimale Impulsdauer, die ein entsprechender Empfänger auswerten können muß, beträgt sogar nur 1.41μs [4]. Der auf den Rug Warriors eingesetzte IR-Empfänger/Demodulator GP1U52X reagiert nur auf ein, mit 40kHz moduliertes Infrarotsignal [2] wie es z.B. bei Fernsteuerungen in der Unterhaltungselektronik verwendet wird. Aufgrund des integrierten Tiefpasses benötigt der Sensor mehrere Schwingungen des modulierten Signales und spricht daher nicht auf einzelne IR-Impulse an (siehe Sensorbeschreibung). Dies entspricht den Verfahren die bei IR-Fernsteuerungen verwendet werden (z.B. RC 5 Kodierung). Deshalb ist es mit diesem Sensor nicht möglich ein, nach der IrDA Spezifikation [4] kodiertes Signal zu empfangen.

Damit ergeben sich für die IR-Kommunikation zwei mögliche Alternativen:

1. Verwendung eines alternativen Übertragungsprotokolls (z.B. RC 5)

2. Abäenderung der Hardware um den IrDA Standard zu unterstützen

Alternative Übertragungsprotokolle

Um eine Infrarot Kommunikation ohne eine Änderung der Hardware zu ermöglichen müßen Verfahren verwendet werden die auf einen 40kHz modulierten Träger aufsetzen. Grob kann man dabei folgende Verfahren unterscheiden:

• Kodierung mit verschiedenen Signalpegeln

• Kodierung mit verschiedenen Signallängen

• Kodierung mit verschiedenen Signalflanken (z.B. RC 5)

Modifizierte Hardware

Durch eine einfache Änderung der Hardware (Deaktivierung des vorhandenen RC-Oszil-la-tors) wäre es möglich via Software eine IrDA konforme Informationsübertragung zu ermöglichen. Ebenfalls wäre es durch Abänderung der Empfanghardware (IR-Photodiode statt IR-Demodulator) möglich das IrDA Signal zu empfangen. Allerdings ist hierbei eine sehr hohe Abtastfrequenz seitens der Software erforderlich. Um auch Impulse mit einer Mindestimpulsdauer von den oben genannten 1.41μs zu erkennen müßte die Abtastfrequenz \frac{1}{1/2} \frac{1}{1.41} = 2.82MHz betragen. Da der verwendete Mikrokontroller maximal 1 Million Befehle pro Sekunde verarbeiten kann [1], ist es nicht möglich das IrDA Protokoll auf diese Weise zu verarbeiten. Eine Implementierung des IrDA Protokolls ist somit nur mit erhöhten Hardwareaufwand möglich.

Anhang A

Protokolle

A.1 Besprechungsprotokolle

A.1.1 10.03.1999

Einführende Besprechung über das Projekt und erste Aufgabenstellung Spezifikation des abzugebenden Projektberichtes

• Zu verwendendes Satzsystem: L^{A}TEX

• Eigene Titelseite

• Abstract (Übersicht)

• Einleitung (Um was geht es?)

• Literaturübersicht

• Literaturverzeichnis Abgabe der Projektberichte jeweils bis Dienstag 13.00 Uhr Erste Fragestellungen:

• Was sind Rug Warriors?

• Was ist Sensorik?

• Inter Rug Warrior Communication + Kommunikation mit Rechnern Vorläufiges Projektziel sind prototypische Anwendungen für die Kommunikation falls diese möglich ist.

Literaturverzeichnis

[1] J. L. Jones and A. M. Flynn, Mobile Robots - Inspiration to Implementation. A. K. Peters, Ltd., first ed., 1993.

[2] Radio Shack, GP1U52X Infrared Receiver/Demodulator Technical Data Sheet. Radio Shack Nr. 276-137.

[3] E. Herter and W. Loercher, Nachrichtentechnik, subsection 3.5.2, pp. 176–178. Carl Hanser Verlag, seventh ed., 1994.

[4] “Serial infrared physical layer specification,” Specification Version 1.3, Infrared Data Association, Intrared Data Association, P.O. BOX 3883, Walnut Creek, California, U.S.A. 94598, Oct. 1998.

[5] E. Herter and W. Loercher, Nachrichtentechnik, subsection 5.3.2, pp. 258–260. Carl Hanser Verlag, seventh ed., 1994.