\documentclass[12pt,fleqn]{report}
\usepackage[austrian]{babel}
\usepackage{german}
\usepackage{amsfonts}
\usepackage{latexsym}
\usepackage{xspace}
\usepackage{epsfig}
\usepackage{psfrag}
\usepackage{graphicx}

\textheight	680pt
\textwidth	460pt
\topmargin	-40pt
\oddsidemargin	  5pt
\evensidemargin	  5pt
\parindent	  0pt

\title{PR: Programmier-Praktikum II (SS99)\\
       \textbf{Rug Warrior Communcation}}
\author{Noisternig Michael 
        \\\textit{\normalsize{michael.noisternig@sbg.ac.at}}
        \\Obermair Christoph 
	\\\textit{\normalsize{cober@cosy.sbg.ac.at}}
        \\Schmidbauer Josef 
	\\\textit{\normalsize{jschmid@cosy.sbg.ac.at}}
	\\Stieglbauer Gerald 
	\\\textit{\normalsize{gstiegl@cosy.sbg.ac.at}}\\
        \\\textbf{Version 1999-4-14}\\\\Gruppe 2\\Zeit: Mittwoch, 17.00 - 17.30
	\\Lehrveranstaltungsleiter: Schwaiger Roland}
\date{}

\begin{document}
\maketitle
\tableofcontents

\abstract
In diesem Dokument wird das Problem Kommunikation zwischen Robotern behandelt. Dabei
werden zu Versuchszwecken sogenannte Rug Warriors verwendet, wobei
unterschiedliche "Ubertragungsarten betrachtet werden. Weiters soll ein Demonstrationsprogramm
entwickelt werden, um Kommunikationsm"oglichkeiten zu veranschaulichen.

\chapter{Einleitung}
\section{Was sind Rug Warriors?}

Die Rug Warriors sind einfache, frei programmierbare Roboter. Sie verf"ugen "uber eine gro"se 
Anzahl an Sensoren und besitzen als Aktoren  unter anderem zwei Elektromotoren mit dessen 
Hilfe sie sich fortbewegen k"onnen.  Die Roboter wurden am Massachusetts Institute of 
Technology (MIT) als "Ubungsmaterial f"ur das Buch \textit{Mobile Robots, Inspiration to
Implementation}\cite{mobrob} 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"ur erste Experimente mit Robotik. Durch die freie Programmierbarkeit des 
verwendeten Mikrokontrollersystems und der hohen Anzahl an Sensoren sind sie jedoch auch 
leistungsf"ahig genug f"ur weiterf"uhrende Experimente.

\section{Rechnersystem der Rug-Warriors}
Zur Programmierung der Rug-Warriors besitzen diese einen Microcontroller mit der 
Bezeichnung MC68HC11A0.\\
Dieser Controller besitzt folgende Eigenschaften:
\begin{itemize}
\item 2 MHz Taktfrequenz
\item 16 Bit Adre"sbus
\item 256 Bytes RAM
\item 5 memory-mapped Ports mit den Bezeichnungen A - E von der Adresse \$1000 weg
\end{itemize}

Als externer Speicher dient der Chip mit der Bezeichnung HM62256LP-12 und einer Gr"o"se
von 32K. Er wird von \$8000 - \$FFFF adressiert.

\subsubsection{Der Port A}
Er besitzt
\begin{itemize}
\item 3 Input-Leitungen (PA0 - PA2): k"onnen verwendet werden, um Ereignisse abzufangen
\item 1 Input/Output-Leitung (PA3)
\item 4 Output-Leitungen (PA4 - PA7): k"onnen externe Ereignisse ausl"osen
\end{itemize}

\subsubsection{Die Ports B und C}
Bei Verwendung externen Speichers und ohne zus"atzlichem Chip (MC68HC24, port
replacement unit) werden diese Ports zur Ansteuerung des Speichers
verwendet (expanded multiplexed mode). Andernfalls (single-chip mode) ist Port B ein
digitaler Output-Port und Port C entweder ein digitaler Output- oder Input-Port
(konfigurierbar).

\subsubsection{Der Port D}
Er kann zum einen vollst"andig als I/O-Port verwendet werden. Zum anderen k"onnen die
Leitungen PD0 - PD1 verwendet werden, um eine Verbindung mit einem Terminal oder einem
Host-Computer zu erstellen, und auch PD2 - PD5 k"onnen zur Datenuebertragung verwendet
werden.

\subsubsection{Der Port E}
Er kann entweder als Input-Port mit 8 Leitungen verwendet werden oder als A/D-Converter,
wobei jede Leitung eine Aufl"osung von 8 Bit hat.


\section{Sensoren des Rug-Warriors}
Unterteilung der Sensoren laut \cite{mobrob} in
\begin{itemize}
\item aktive Sensoren
\begin{itemize}
   \item Infrarotemitter
   \item Piezo-Lautsprecher
   \item 4 LEDs
   \item Motor-Treiber
\end{itemize}
\item passive Sensoren
\begin{itemize}
   \item Infrarotdetektor
   \item 3 Sto"s-Sensoren
   \item Mikrofon
   \item 2 Radsensoren (Shaft Encoders)
   \item Pyroelektrischer Sensor
   \item 2 Fotowiderst\"ande
\end{itemize}
\end{itemize}

Au"serdem stehen noch 5 weitere Port-Pins (2 digitale Eing\"ange, 1 digitale Ausgang, sowie 2 analoge Eing\"ange) f\"ur etwaige Erweiterungen zur Verf\"ugung.

\subsection{Infrarotemitter/dekoder}

Dienen dazu um etwaige z.B. im Weg stehende Objekte zu erkennen. Derartige Sensoren k\"onnen Strahlung im Bereich von ca. 880 nm erkennen. Im Zuge unseres Projektes wird gepr\"uft, ob diese Sensoren auch zu Kommunikation zwischen Rug-Warriors verwendet werden k\"onnen.
Beide IR-Dioden (Emitter) werden durch einen digitalen Port angesteuert (PD2,
PD3). Die IR-Detektor-Spezifikation \cite{gp1u52x} verlangt ein 40 kHz Tr\"agersignal, auf dem
das tats\"achliche Ausgangssignal moduliert werden mu"s. Dies geschieht \"uber
einen speziellen Schwingkreis. Das Signal selbst hat eine Frequenz von 1667 Hz
(d.h. logisch 1 bzw. 0 mu"s $600 \mu s$ anliegen, um vom Detektor als solches erkannt zu werden).
Die geometrische Anordnung der Sensoren am Rug-Warrior sieht folgenderma"sen 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\"oglichen.\\
In \ref{irdemo1} ist ein einfaches Demoprogramm in Interactive C (IC) abgedruckt, 
das die Ansteuerung der IR-Hardware zeigen soll. 

\subsection{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\"are ein Bewegungsmelder (Menschen senden IR-Strahlung von 8-10$\mu$m 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"send 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\"ahert
sich nun ein Objekt von links nach rechts, so steigt die Spannung um ca. 1V an,
sich anschlie"send wieder bei 2.5V einzupendeln. N\"ahert sich ein Objekt von
rechts nach links, so geschieht das Umgekehrte: Die Spannung f\"allt im 1V ab
und stellt sich anschlie"send wieder bei 2.5V ein.

\subsection{Fotowiderst\"ande}

Der Rug Warrior ist mit zwei Fotowiderst\"anden ausger\"ustet, die mit Port PE1 und PE0 
verbunden sind. Diese Sensoren ver\"andern in Abh\"angigkeit der umgebenden Lichtst\"arke 
ihren Widerstandswert. Dieser Wert wird in Form eines proportionalen Spannungswertes von 
ca. 0 bis 5V an den A/D-Konverter geschickt, um somit vom Prozessor ausgewertet werden zu k\"onnen.

\subsection{Sto"s-Sensoren}

Der Rug Warrior besitzt weiters 3 Sto"s-Sensoren die gleichm\"a"sig 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:
\begin{itemize}
   \item Jeder Sensor wird direkt mit einem Port-Pin verbunden (PE7, PE6, PE3 -
   Achtung, da dieser Port u.a. zur A/D-Konvertierung gen\"utzt wird, das Signal
   aber von digitaler Natur ist, mu"s der Port entsprechend konfiguriert werden).
   \item Die Mikroschalter werden so verschaltet, da"s jeder Schalter bei
   Bet\"atigung einen anderen Spannungswert liefert, der dann vom A/D-Konverter
   umgewandelt und entsprechend ausgewertet werden kann. Der Vorteil dieser
   Verschaltung liegt darin, da"s nur ein Port-Pin ben\"otigt wird (PE3).
\end{itemize}

\subsection{Mikrofon/Lautsprecher}

Das im Rug Warrior verwendete Mikrofon mit nachgeschaltetem Verst\"arker liefert
Analogsignal im Bereich von 0 bis 5V das anschlie"send vom A/D Konverter (Pin PE2) 
in einen digitalen Wert umgewandelt wird.
Bei der Verwendung des Mikrofons ergeben sich zwei Probleme:
\begin{itemize}
   \item Um Signale nicht zu \"uberh\"oren, m\"ussen vom Prozessor entsprechend
   viele Samples genommen werden. Besonders bei kurzen Signalen, wie z.B. ein
   H\"andeklatsch, kann dies leicht zu einer Prozessor\"uberlastung f\"uhren
   (Laut Abtasttheorem \cite{hl} mu"s der Prozessor mindestens mit der doppelten 
   Frequenz, welche am Eingang des Mikrofon erwartet wird, abtasten). Eine 
   L\"osung w\"are ein unabh\"angiger Schaltkreis, der dem Mikrocontroller diese 
   Arbeit abnimmt.
   \item Das zweite Problem sind die Eigenger\"ausche des Roboters wie z.B.
   Motorenger\"ausche, die sich mit den tats\"achlichen auszuwertenden Signalen
   vermischen. Hier w\"urde die Einf\"uhrung eines Schwellenwertes Abhilfe
   bringen, indem man nur Ger\"ausche ab eines gewissen Lautst\"arkepegels f\"ur
   die Auswertung zul\"a"st.
\end{itemize}
Um charakteristische Eigenschaften unterschiedlicher Signale besser
unterscheiden zu k"on"=nen, besteht die M\"oglichkeit einer Fouriertransformation
die das Signal von dem Zeitbereich in den Frequenzbereich abbildet. Diese
Aufgabe k\"onnte vom Prozessor \"ubernommen werden, ist aber verh\"altnism\"a"sig zur Prozessorleistung relativ aufwendig.

Der verwendete Lautsprecher basiert auf Piezo-Technik und ist mit Port-Pin PA3 verbunden.

Eine weitere M\"oglichkeit zur Interaktion mehrerer Rug Warriors w\"urde in der Kombination Lautsprecher - Mikrofon bestehen. Der Nachteil ist aber eine sicher nicht zu untersch\"atzende Fehleranf\"alligkeit durch Nebenger\"ausche.

\subsection{Shaft-Encoder}

Dieser Sensor dient zur Positionserkennung und Orientierung des Rug Warriors.
Dazu sind an den R\"adern kreisf\"ormig angeordnete Schwarz/Wei"s-Streifen vorhanden.
Durch ein IR-Emitter/Dekoder Paar wird die aktuelle Reflektion gemessen. Durch eine
Bewegung der R\"ader ergibt sich daraus ein Puls aus dem sich proportional zur Frequenz
desselbigen die Geschwindigkeit bzw. die relative Positions\"anderung des Robotors
berechnen lassen. In Abh\"angigkeit der Anzahl der Streifen auf den R\"adern steht die
Genauigkeit der berechneten Daten (bei Verwendung einer 64-Segment-Scheibe l"a"st sich
ththeoretisch eine Genauigkeit von ca. 2mm erreichen).
Einer der beiden Shaft-Encoder ist mit dem Puls-Akkumulator-Pin (PA7) vebunden,
w\"ahrenddessen der andere am dritten Capture Register des Ports (PA7) angeschlossen
ist, was zu unterschiedlichen Auswertungsstrategien f\"uhrt.

\section{Rug Warrior Communication}
\label{rugcom}
Um Kommunikation in sogenannten Multi Agenten Systeme (MAS) in der Praxis realisieren zu k"onnen ist ein 
Informationsaustausch zwischen den einzelnen Teilnehmern notwendig.
Damit mit den Rug Warriors ein MAS realisiert werden kann ist es 
daher n"otig, da"s die Rug Warriors untereinander kommunizieren k"onnen. Idealerweise sollte eine 
Kommunikation zwischen ihnen ohne zus"atzlichen Hardwareaufwand m"oglich sein.

\subsection{Grundlegende Betrachtungen}

Aufgrund der vorhandenen, oben erw"ahnten, Sensoren und Aktoren sind folgende
Kommunikationsm"oglichkeiten denkbar:

\begin{enumerate}
\item via Infrarot Signale,
\item via akustischer Signale,
\item via mechanischer Signale.
\end{enumerate}

Optional ist aufgrund noch vorhandener, freier Ein- und Ausg"ange des verwendeten 
Mikrokonrollersystems auch eine Erweiterung f"ur andere Kommunikationswege m"oglich. 
Diese ist jedoch mit einem zus"atzlichen Hardwareaufwand verbunden und macht die 
Kommunikationsl"osung stark systemabh"angig.
Denkbar w"are hierbei vor allem eine Funk-Kommunikation zwischen den Rug Warriors.
\newline
\newline
Im folgenden werden die Vor- und Nachteile der einzelnen Methoden erl"autert.

\subsection{Infrarot Kommunikation}
Die Roboter besitzen zwei Infrarot-Dioden und einen Infrarot-Detektor. Die vorhanden 
Infrarot-Sensoren und Aktoren werden zur Erkennung von Hindernissen verwendet \cite{mobrob}. 
F"ur diese Aufgabe ist es zweckm"aßig eine geringe Strahlungsleistung zu verwenden. Daher, und
um m"oglichst wenig Hardware zu verwenden, werden die Infrarot-Dioden des Rug Warriors direkt 
und ohne Treiber angesteuert \cite{mobrob}. Die 
deshalb sehr geringe Sendeleistung d"urfe nur eine Kommunikation erlauben wenn sich die Roboter 
frontal gegen"uberstehen. Als Protokoll sollten idealerweise die Protokolle der IrDA 
(Infrared Data Association) zum Einsatz kommen. Diese Protokolle werden weit verbreitet 
eingesetzt. Damit w"are eine einfache Kommunikation mit Notebooks, eventuell sogar mit 
Druckern und Mobiltelefonen m"oglich. IrDA verwendet als physikalisches "Ubertragungsmedium 
kodierte Infrarot-Signale. Bei Kommunikationsraten unter $115.2 \frac{kBit}{s}$ kommt dabei 
eine NRZI (Non-Return-to-Zero-Inverted) Kodierung zum Einsatz \cite{irdaphysical}. 
Das bedeutet, da"s 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 \cite{hl} wird das g"angige 
serielle Protokoll der 16550 kompatibelen Bausteine mit einem Startbit, acht Datenbits und 
einem Stopbit benutzt \cite{irdaphysical}.
In \cite{irdaphysical}  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 \mu s $. 
Die minimale Impulsdauer, die ein entsprechender Empf"anger auswerten k"onnen mu"s, betr"agt 
sogar nur $1.41 \mu s $ \cite{irdaphysical}.
Der auf den Rug Warriors eingesetzte IR-Empf"anger/Demodulator GP1U52X reagiert nur auf ein, 
mit $40 kHz$ moduliertes Infrarotsignal \cite{gp1u52x} wie es z.B. bei Fernsteuerungen in der
Unterhaltungselektronik verwendet wird. Aufgrund des integrierten Tiefpasses ben"otigt 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"oglich ein, nach der IrDA Spezifikation 
\cite{irdaphysical} kodiertes Signal zu empfangen.
\newline
\newline
Damit ergeben sich f"ur die IR-Kommunikation zwei m"ogliche Alternativen:
\begin{enumerate}
\item Verwendung eines alternativen "Ubertragungsprotokolls (z.B. RC 5)
\item Ab"anderung der Hardware um den IrDA Standard zu unterst"utzen
\end{enumerate}
\subsubsection{Alternative "Ubertragungsprotokolle}
Um eine Infrarot Kommunikation ohne eine "Anderung der Hardware zu erm"oglichen m"u"sen Verfahren
verwendet werden die auf einen $40 kHz$ modulierten Tr"ager aufsetzen.
Grob kann man dabei folgende Verfahren unterscheiden:
\begin{itemize}
\item Kodierung mit verschiedenen Signalpegeln,
\item Kodierung mit verschiedenen Signall"angen,
\item Kodierung mit verschiedenen Signalflanken (z.B. RC 5).
\end{itemize}
\subsubsection{Modifizierte Hardware}
Durch eine einfache "Anderung der Hardware (Deaktivierung des vorhandenen RC-Oszillators)
w"are es m"oglich via Software eine IrDA konforme Informations"ubertragung zu erm"oglichen.
Ebenfalls w"are es durch Ab"anderung der Empfanghardware (IR-Photodiode statt IR-Demodulator)
m"oglich 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 \mu s $ zu erkennen m"u"ste die Abtastfrequenz 
$\frac{1}{2}\frac{1}{1.41}= 2.82 MHz$ betragen. Da der verwendete Mikrokontroller maximal
1 Million Befehle pro Sekunde verarbeiten kann \cite{mobrob}, ist es nicht m"oglich das 
IrDA Protokoll auf diese Weise zu verarbeiten.
Eine Implementierung des IrDA Protokolls ist somit nur mit erh"ohten Hardwareaufwand m"oglich.
\subsubsection{Zusammenfassung}
Zusammenfassend ergeben sich zwei realistische M"oglichkeiten einer
Infrarot-Kommunikation zwischen den Rug Warriors bzw. den Rug Warriors und
einer Basisstation:
\begin{enumerate}
\item{\textbf{Alternatives Protokoll}\\
      Verwendung eines, zur verwendeten 40 kHz Modulation kompatiblen,
      "Ubertragungsprotokolls. Beispielsweise RC 5.\\
      Vorteile: 
      \begin{itemize}
      \item Keine Modifikation der Hardware erforderlich.
      \item Einfache Realisierung der Software.
      \item Kompatiblit"at zu handels"ublichen Fernbedienungssystemen f"ur
            Unterhaltungselektronik.
      \end{itemize}
      Nachteile:
      \begin{itemize}
      \item Geringe "Ubertragungsgeschwindigkeit
      \item Wird in der Computertechnik "uberlicherweise nicht eingesetzt.
      \end{itemize}
      }
\item{\textbf{"Anderung der Hardware}\\
      Ver"anderung der Hardware der Rug Warriors um die
      Modulations- und Demodulationsaufgaben des Layer 1 im ISO 7-Schichten 
      Modell \cite{hl} f"ur eine IrDA konforme "Ubertragung mittels geeigneter ICs zu 
      realisieren und damit den Mikrokontroller der Roboter zu entlasten.\\
      Vorteile: 
      \begin{itemize}
      \item IrDA konformes "Ubertragungsprotokoll m"oglich.
      \item Kommunikation mit einer gro"sen Anzahl von Ger"aten m"oglich.
      \item Wesentlich h"ohere "Ubertragungsraten m"oglich.
      \item Geringer Hardwareauslastung.
      \end{itemize}
      Nachteile:
      \begin{itemize}
      \item Gr"o"sere Ver"anderung der Hardware erforderlich.
      \item H"oherer finanzieller Aufwand.
      \item Sehr hoher Programmieraufwand, alleine um das Protokoll zu 
            implementieren.
      \item Damit verbundener sehr hoher Speicherplatzbedarf (nur 32 kByte
            RAM verf"ugbar).
      \end{itemize}
      Aufgrund des sehr beschr"ankten Arbeitsspeichers ist noch nicht 
      absch"atzbar inwieweit der IrDA Protokollstack implementiert werden
      kann.
      }
\end{enumerate}      

\subsection{Akustische Kommunikation}
Neben einer Infrarot-Kommunikation ist auch eine Kommunikation "uber
akustische Signale m"oglich. T"one k"onnen "uber den, in den Rug Warriors
eingebauten, Piezo Summer erzeugt werden. Da der Piezo Summer direkt "uber 
einen I/O Port des Mikrokontrollers angesteuert wird, k"onnen mittels
entsprechender Software verschiedene Tonfrequenzen erzeugt werden.
Die vom Mikrofon aufgenommenen Tonsignale werden auf dem Rug Warriors mittels
eines Operationsverst"arkers verst"arkt und dann "uber einen Analog Port des
Mikrokontrollers eingelesen.\\
Eine einfache akustische Kommunikationsm"oglichkeit w"are eine Kodierung von
Bin"ardaten in Ton/Nicht-Ton Folgen (Einfacher Fall von Amplitudenmodulation,
ASK \cite{hl}). Durch Erweiterung des Verfahrens auf verschiede Lautst"arken 
kann man die "Ubertragungskapazit"at erh"ohen, gleichzeitig steigt aber
besonders bei aktustischen St"orger"auschen (im speziellen auch
Motorger"auschen) die Fehlerrate an.
Zur Synchronisation des Empf"angers sowie zur leichteren Erkennung von 
Fehlern ist es dabei sinnvoll eine der in \ref{kanalcodierung} aufgef"uhrten 
Kanalkodierungsverfahren zu verwenden.\\
Eine m"ogliche Verbesserung des Verfahrens w"are eine Nutzung von verschiedenen
Tonh"ohen zur Kodierung der Daten (Frequenzmodulation, FSK \cite{hl}) zu
verwenden. Dabei kann unter anderem die "Ubertragungskapazit"at erh"oht werden.
Weiters ist dadurch auch eine leichtere Erkennung von "Ubertragungsfehlern 
m"oglich \cite{hl}. Zur Realisierung einer frequenzmodulierten "Ubertragung
mu"s beim Sender nur die Software angepa"st werden, aber beim Empf"anger mu"s 
eine Fouriertransformation des akustischen Signales durchgef"uhrt werden. 
Damit kann man die einzelnen Frequenzen unterscheiden. Bei Verwendung des
FFT (Fast Fourier Transformation) ben"otigt man einen Rechenaufwand 
proportional zu $n\log(n)$ (O(FFT)$=n\log(n)$). Als Alternative ist auch eine
Frequenzerkennung durch digitale Filter m"oglich. Der Aufwand f"ur die 
Berechnung eines digitalen Filters ist zur Laufzeit proportional zu $n$. Damit
ist bei einer kleinen Anzahl von zu unterscheidenden Frequenzen eine 
Frequenzerkennung mittels digitaler Filter (je nach Implementierung) weniger
Rechenaufwendig als die Verwendung der Fast Fourier Transformation.\\
Eine Anbindung an eine Basisstation (PC, Workstation) ist hierbei unter 
Verwendung verbreiteter Soundkarten denkbar.
\subsubsection{Zusammenfassung}
Vorteile: 
      \begin{itemize}
      \item Keine Sichtverbindung notwendig.
      \item Einfache Realisierung des Senders.
      \item Gute Medienwirksamkeit.
      \end{itemize}
Nachteile:
      \begin{itemize}
      \item Geringe "Ubertragungsgeschwindigkeit.
      \item Im Vergleich zu Infrarot h"ohere Reichweite.
      \item Aufwendige Realisierung des Empf"angers (Software).
      \item H"ohere St"oranf"alligkeit.
      \end{itemize}

\subsection{Mechanische Kommunikation}
Durch die auf den Rug Warriors vorhandenen Microschalter (Bumper) und durch
Verwendung der Antriebsmotoren ist auch eine mechanische Kommunikation zwischen
den Robotern denkbar. Aufgrund der, in diesem Fall sicherlich sehr geringen,
Kanalkapazit"at des "Ubertragungskanals ist jedoch eine komplexe Kommunikation
unter den Robotern nicht sinnvoll.\\
Sinnvoll kann es jedoch sein nach einem mechanischen Kontakt einen
Kommunikationsversuch "uber ein anderes Kommunikationsmedium zu unternehmen, 
f"ur den Fall das der Kontakt durch einen anderen Rug Warrior ausgel"ost wurde.
Durch diese Kontaktaufnahme k"onnen unter anderem Positionsdaten ermittelt
werden.

\subsection{Funk-Kommunikation}
(Genauere Behandlung zu einem sp"ateren Zeitpunkt.)


\chapter{Planungsphase}
\section{"Uberlegungen zur Auswahl eines "Ubertragungsprotokolls (Kanalcodierung)}
\label{kanalcodierung}

Die Aufgabe der Kanalcodierung ist eine zu \"ubertragende Nachricht und ihre
Signaldarstellung m"oglichst optimal an die Eigenschaften der \"Ubertragungskanals
anzupassen. Dazu geh\"ort z.B. die gezielte Ver"anderung bestimmter Signaleigenschaften
oder die mehr oder weniger gute Sicherung der Nachricht gegen St"orungen.

Im Bezug auf die Daten"ubertragung zwischen Rug Warriors sind zwei Punkte
wesentlich:

\begin{itemize}
\item Fehlererkennung und -korrektur
\item Synchronisation der Rug Warriors bei der Daten\"ubertragung
\end{itemize}

\subsection{Kanalcodierung zur Fehlerbehandlung}
\label{kanalcodierungfehler}
Hier wird redundanter Code neu in die Nachrichtenfolge eingebaut, und zwar
so, da"s trotz m\"oglichst sparsamer Verwendung von Redundanz eine hohe
Erkennungs- und Korrekturrate von \"Ubertragungsfehlern erreicht wird.
Man unterscheidet:

\begin{itemize}
\item Deterministische Codes. Bei diesen Codes besteht eine eindeutige 
      Beziehung zwischen Ein- und Ausgabe. Wichtige Vertreter sind:
   \begin{itemize}
   \item Blockcodes: Eingabe in Bl\"ocke zerlegt; jedem Block wird
         (unabh\"angig vom Inhalt fr\"uherer Bl\"ocke) ein Ausgabeblock
         zugeordnet.
   \item Rekurrente Codes: Jeder Codeblcok h\"angt auch vom Inhalt fr\"uherer
         Bl\"ocke ab (z.B. sogenannte konvolutionelle Codes).
   \end{itemize}
\item Stochastische Codes. Hier liegt der Codevorschrift eine
      Wahrscheinlichkeitsbeziehung zugrunde. Derzeit aber eher von geringerer
      Bedeutung.
\end{itemize}

Ein Beispiel f\"ur einen deterministischen Blockcode ist die Bildung einer
sogenannten Checksumme \"uber einen Block bestimmter L\"ange. Hierbei fast
man in einer Bitfolge zum Beispiel 7 Bits zusammen und wendet darauf
eine logische Operation (z.B. Exklusives Oder) an. Als Ergebis erh\"alt man nun
ein achtes Bit (redundante Information), das nun zusammen mit den anderen 
7 Bits einen neuen Block bildet. Dieser Block kann nun auf der Senderseite 
"uber eine entsprechende Schnittstelle zum Empf\"anger \"ubertragen werden.\\
Auf der Empf\"angerseite mu"s nun das empfangene Signal wieder dekodiert
werden. Es wird wiederum eine logische Verkn\"upfung, die der auf der
Senderseite entsprechen mu"s, \"uber den empfangenen Block gebildet.
Je nach ob eine EVEN-Checksumme (Ergebnis der Verkn\"upfung mu"s logisch 1 
sein) oder eine ODD-Checksumme (Ergebnis ist logisch 0) gebildet wurde, kann
nun das empfangene Signal auf seine fehlerfreie \"Ubertragung \"uberpr\"uft
werden.\\
Diese Methode beinhaltet aber zwei entscheidende Nachteile:
\begin{itemize}
\item Ein Fehler bei der \"Ubertragung kann nur erkannt werden wenn eine
      ungeradzahlige Anzahl von Bits ihren Wert \"andern, da sich im
      geradzahligen Fall der Fehler bedingt durch die logische Verkn\"upfung
      Exklusiv-Oder der Fehler scheinbar wieder "`aufhebt"'. Die Fehlererkennungsrate
      liegt also nur bei 50\%.\\
      Abhilfe w\"urde die Bildung einer "`mehrbitigen"' Checksumme bieten,
      welche die Wahrscheinlichkeit, da"s ein Fehler nicht erkannt wird
      erheblich minimiert.
\item Weiters kann bei dieser Methode der Fehlererkennung nicht festgestellt
      werden, welches Bit seinen Wert ge\"andert hat. So mu"s in Fall eines
      \"Ubertragungsfehlers der Empf\"angereinheit eine weitere Verbindung zum
      Sendeeinheit aufbauen, um diesen die fehlerhafte \"Ubertragung
      mitzuteilen. Eine andere M\"oglichkeit w\"are eine permantente
      bidirektionale Verbindung, bei der die Sendeeinheit nach jedem
      Verschicken einer Nachricht auf ein "`Acknowledge"' f"ur korrekte
      \"Ubertragung von Seiten der Empf\"angereinheit wartet.
      Es gibt aber auch Kodierungen, die eine Ermittlung des fehlerhaften
      Bits erm\"oglichen. Als Beispiel w\"are hier der Hammingcode zu nennen.
\end{itemize}

\subsection{Kanalcodierung zur Erreichung bestimmter Signaleigenschaften}

Prinzipiell bestehen bei der digitalen Daten\"ubertragung zwei Probleme,
die sich im speziellen beim \"Ubertragen einer langen 0- bzw. 1-Folge ergeben:

\begin{itemize}
\item Durch die gleichbleibende Bitfolge entstehen sehr tiefe Frequenzen 
      (im Extremfall sogar Gleichstrom). Da z.B. auf Kabelstrecken in der
      Regel \"Ubertrager notwendig sind (Potentialtrennung,
      Stromversorungsweichen usw.), wird h\"aufig die Forderung an die
      Leitungskodierung (Kanalkodierung) gestellt, diese tiefen Frequenzen
      zu vermeiden. Auch bei Funk\"ubertragung treten bei bestimmten
      Modulationsverfahren (z.B. Amplitudenmodulation) \"ahnliche Probleme
      auf.\\
      Bei einer zus\"atzlichen Verwendung einer Funk\"ubertragung zur
      Kommunikation zwischen den Rug Warriors (w\"urde eine Hardwareerweiterung
      ben\"otigen) w\"aren diese Umst\"ande zu beachten.
      Bei der reinen IR-Kommunikation besteht dieses Problem nicht.
\item Das zweite Problem, das sich mit den langen 0- bzw. 1-Folgen ergibt
      ist das Problem der Synchronisation zwischen Sender- und Empf\"angereinheit.
      Selbst wenn man sich zu Beginn jeder Daten\"ubertragung auf ein
      Handshakeprotokoll einigt, k\"onnen Phasenverschiebungen auftreten,
      die eine falsche Interpretation des gesendeten Signals zur Folge haben.
      Dieses Problem besteht prinzipiell bei jeder digitalen \"Ubertragung,
      bei der nicht st\"andig (d.h. auch w\"ahrend der \"Ubertragung) die
      Sende- und Empfangseinheit aufeinander abgestimmt werden.\\
      Diese Synchronisation kann im allgemeinen durch die zeitliche 
      Feststellung einer Wert\"anderung (positive oder negative Flanke)
      erfolgen. Gerade aber bei einer langen gleichbleibenden Bitfolge treten
      keine solchen Flanken auf. Auf m\"ogliche L\"osungen wird nun im
      Folgenden etwas genauer eingegangen.
\end{itemize}

\subsection{Einige Formen der Leitungskodierung}
Hier werden nun einige g\"angige Kodierungsformen aufgelistet, um das oben 
erw\"ahnte Synchronisationsproblem zu l\"osen. Prinzipiell ist noch zu
sagen, da"s die Sende- und Empfangseinheit immer aufeinander abgestimmt
sein m\"ussen, d.h. die Empfangseinheit mu"s die im Sendesignal zus\"atzliche,
der fehlerfreien \"Ubertragung dienenden Information interpretieren k\"onnen.

\begin{itemize}
\item \textbf{Alternate mark inversion (AMI):}\\
      Bei diesem Verfahren wird der bin\"are Code (0 und 1) in einen
      quasitern\"aren Code (0, 1, -1) umgewandelt, indem die Einsen
      abwechselnd als +1 und -1 gesendet werden.\\
      Dieses Verfahren schafft aber keine Abhilfe bei langen 0-Bit-Folgen.
      Eine m\"ogliche L\"osung w\"are eine f\"ur den Empf\"anger durchschaubare
      Verletzung der AMI-Regeln, d.h. da"s an einer bestimmten Stelle
      statt einer 0 eine 1 bzw. -1 gesendet wird (siehe Bit-Stuffing).\\
      Bei der Kommunikation zwischen den Rug Warriors mittels IR-\"Ubertragung
      kann diese Methode nicht angewendet werden, da nur zwischen Signal an
      (IR-LED leuchtet) und Signal aus (IR-LED leuchtet nicht) unterschieden
      wird.
\item \textbf{Bit-Stuffing:}\\
      Hier wird folgende Konvention sowohl auf der Sender-, als auch auf der
      Empf\"angerseite eingef\"uhrt:\\
      Falls die L\"ange einer gleichbleibenden Bitfolge einen bestimmten Wert n
      erreicht, so wird ein zu dem aktuellen Boolschen-Wert inverses Bit
      in die \"Ubertragungssequenz eingef\"ugt (dieses Bit wird wiederum bei
      der Berechnung der L\"ange n miteinbezogen). Die so erzeugte
      "`k\"unstliche"' Flanke kann nun zur Synchronisation der Empfangs- und
      Sendeeinheit verwendet werden. Auf der Empfangsseite mu"s allerdings
      dieses zus\"atzliche Bit wieder herausgefilter werden.\\
      Der Vorteil dieser Methode liegt in der nur geringf\"ugigen Verl\"angerung
      der Codel\"ange und in der gleichbleibenden Taktrate (vgl. dazu
      Conditioned Diphase und Manchester Code).
\item \textbf{Conditioned Diphase:}\\
      Bei diesem Verfahren gilt die Konvention, da"s jedes Bit mit einer
      positiven oder negativen Flanke (je nach aktuellem boolschen Wert)
      abgeschlossen werden mu"s. Ist weiters der boolsche Wert 0 zu
      \"uebertragen so wird noch eine zus"atzliche Flanke eingef\"uegt (siehe
      Abbildung). Dieses Einf\"ugen bewirkt somit eine Frequenzunterschied
      zwischen logisch 0 und logisch 1 um den Faktor 2. Als Entscheidungskriterium
      beim Empf\"anger ob eine 0 oder 1 am Eingang anliegt, wird daher
      die Frequenz und nicht mehr die Amplitude verwendet.\\
      Der Vorteil dieser Methode liegt darin, da"s unabh\"angig von der logischen
      Bitfolge immer ein alternierendes Singal anliegt und somit eine
      dauernde Synchronisation erfolgen kann.
      Der Nachteil des Conditioned Diphase Verfahrens besteht allerdings darin,
      da"s die maximal auftretende Frequenz ebenfalls um den Faktor 2
      erh\"oht wird bzw. die Bitrate aufgrund Hardwareeinschr\"ankungen
      gesenkt werden mu"s.
\item \textbf{Manchester Code:}\\
      Hier wird das Vorzeichen der Flanken als Kriterium daf\"ur angewendet,
      welcher Boolsche Wert anliegt (z.B. positive Flanke $\rightarrow 1$, negative
      Flanke $\rightarrow 0$). Hier ist wesentlich, da"s nur jene Flanken bewertet
      werden, die sich innerhalb des urspr\"unglichen Taktes befinden
      (siehe Abbildung).\\
      Auch hier ergibt sich somit immer ein alternierendes Signal, allerdings
      ebenfalls die bereits beim Conditioned Diphase Verfahren erw\"ahnten
      Nachteile.\\
      Da sich bei dieser Kodierung systembedingt im Vergleich mit den anderen
      hier beschriebenen Verfahren die k\"urzesten Zeiten zwischen zwei
      Flanken ergeben, kann somit hohe Datensicherheit garantiert werden,
      weshalb wir vorl\"aufig diese Kodierung zur IR-\"Ubertragung zwischen
      den Rug Warriors in Betracht ziehen.
\end{itemize}

\begin{center}
\epsfig{file=prog_kanal.eps, width=8.0cm}
\end{center}

\subsection{IR Kommunikation: "Ubertragungsprotokoll RC 5}
F"ur die Kommunikation via Infrarot wurde das "Uebertragungsprotokoll RC 5 gew"ahlt. Dieses Protokoll
wird unter anderem von der Fa. Philips in der Unterhaltungselektronik verwendet.
\subsubsection{Begr"undung der Auswahl}
\begin{itemize}
\item Aufgrund der vorhergehenden "Uberlegungen wurde dieses "Ubertragungsprotokoll ausgew"ahlt, weil es
      die Vorteile des Manchester Codes nutzt.
\item Der verwendete IR-Detektor \cite{gp1u52x} reagiert auf 40kHz modulierte IR Signale. Die 3dB
      Bandbreite des Detektors liegt bei 40kHz $\pm$ 4kHz. Da RC 5 eine IR Modulation mit einer Frequenz
      von 36kHz verwendet sollten Signale von RC 5 Ger"aten vom Detektor erkannt werden k"onnen.
\item Die minimale Ansprechzeit beim IR-Detektor zwischen zwei Flanken liegt bei $600\mu s$. Das
      Protokoll RC 5 schreibt eine Zeit von $889\mu s$ als IR Sende bzw. Pausenzeit vor. Der Detektor
      spricht in dieser Zeit laut Datenblatt \cite{gp1u52x} sicher an. 
\item Das RC5-Protokoll ist relativ einfach aufgebaut und leicht zu implementieren
      (Speicherplatzersparnis).
\end{itemize}

\subsubsection{Protokollbeschreibung}

Die Dauer eines Bits ist beim RC 5 Code immer gleich lang. Eine Flanke in der Mitte des Intervalls
bestimmt um welchen logischen Zustand es sich handelt. Logisch 0 ist definiert durch eine negative Flanke.
Logisch 1 ist durch eine positive Flanke beschreibbar. Daher wird eine zus"atzliche Flanke am Beginn
eines Bit-Intervalls ben"otigt, falls eine Serie gleicher Bits auftritt. Diese Flanke wird nicht ben"otigt
falls ein zum vorhergenden Zustand komplement"ares Bit auftritt.\\\\
Wie sind die Befehle wie Lautst"arke oder Kanalwahl kodiert?\\
Jeder Befehl wird mit eine L"ange von 14 Bits kodiert. Die ersten beiden Bits werden als Startbits
verwendet, um dem Empf"anger zu synchronisieren. Das n"achste Bit ist ein sogenanntes Toggle-Bit, dessen
logischer Zustand bei jedem neuen Tastendruck negiert wird. Anschlie"send folgt kodiert mit 5 Bits das
Ger"at, das angesprochen werden soll. Schließliche werden die letzten 6 Bits f"ur den eigentlichen Befehl
verwendet.\\

\newpage
\begin{center}
\epsfig{file=Rc5.eps, width=13cm}
\small{Die Abbildung oben zeigt das "ubertragene IR Signal. Die mittlere Abbildung zeigt das vom
IR-Detektor \cite{gp1u52x} gelieferte Ausgangssignal. Dieses Signal wird vom Prozessor "uber eine I/O
Leitung eingelesen. Die untere Abbildung zeigt das logische Signal nach der Verarbeitung durch die
Software.}
\end{center}

\newpage
\begin{center}
\begin{tabbing}
\= Adresse:xxx  \= Audio Tapexxx \= Command: \= Numbers \kill \\
\> Adresse: \> Ger"at: \> Befehl: \\
\> 0         \> TV1             \> 0...9   \> Numbers 0...9 (channel select) \\
\>  1        \> TV2             \> 12      \> Standby \\
\>  5        \> VCR1            \> 16      \> Master Volume + \\
\>  6        \> VCR2            \> 17      \> Master Volume - \\
\> 17        \> Tuner           \> 18      \> Brightness + \\
\> 18        \> Audio Tape      \> 19      \> Brightness - \\
\> 20        \> CD Player       \> 50      \> Fast rewind \\                   
                   \>    \>   \>   52      \> Fast run forward \\
                   \>    \>   \>   53      \> Play \\
                   \>    \>   \>   54      \> Stop \\
                   \>    \>   \>   55      \> Record\\
\end{tabbing}
\small{Einige wichtige Adressen und Befehle}
\end{center}

\section{Beispielszenarien zur Kommunikation}

\subsection{Kommunikation Rug Warrior mit Rechner}
\label{rugpc}
Durch einen Kommunikationskanal zwischen Rug Warrior und Rechner sind verschiedenste Informationen 
austauschbar. Einige M"oglichkeiten sind:

\begin{itemize}
\item "Ubertragen von neuen Programmen auf die Rug Warriors
\item "Uberwachen von Rug Warrior Programmen w"ahrend der Ausf"uhrung (Statusinformationen)
\item "Ubertragen von Steuersignalen zum Rug Warrior (z.B. Fernsteuern des Rug Warriors)
\item Komplexere Aufgaben wie z.B. das Evolvieren eines ANNs
\end{itemize}

Voraussetzung f"ur diese Punkte ist das auf den Rug Warriors ein Programm l"auft welches den entsprechenden
Kommunikationskanal implementiert und via standardisierter Schnittstellen den anderen Programmen zur 
Verf"ugung stellt. Dieses Programm mu"s folgende Funktionen erf"ullen:
\begin{itemize}
\item Hardwareansteuerung f"ur den entsprechenden Kommunikationskanal (Layer 1)
\item Implementierung des entsprechenden "Ubertragungsprotokolls (wie z.B. RC 5 bei IR Kommunikation, ISO
Layer 2)
\item Kapselung des physikalischen "Ubertragungsprotokolls in Unterprogrammen mit, vom verwendeten
Transportmedium unabh"angigen, standardisierten Schnittstellen
\item Bereitstellung einfacher Netzwerkfunktionen zum gezielten Ansteuern einzelner Kommunikationspartner
(ISO Layer 3)
\item Funktionen zur "Uberpr"ufung einer korrekten "Ubertragung und gegebenenfalls einer erneuten
"Ubertragung (ISO Layer 4)
\item Funktionen zum automatischen Ausw"ahlen eines verf"ugbaren, geeigneten "Ubertragungsmedium eventuell
in Verbindung mit einer Type Of Service Unterscheidung
\item Allgemeine Fehler"uberpr"ufung und Korrektur (siehe \ref{kanalcodierungfehler}) f"ur obige Punkte
\end{itemize}

Im folgenden werden die einzelnen M"oglichkeiten n"aher behandelt.

\subsubsection{"Ubertragen von neuen Programmen auf die Rug Warriors}
Hierf"ur mu"s auf den Rug Warriors neben dem oben erw"ahnten Kommunikationsprogramm auch ein kleines 
Monitorprogramm laufen. Dieses Programm mu"s Funktionen wie
\begin{itemize}
\item "Ubertragen von Programmen vom und zum Rug Warrior
\item Starten und Beenden von Programmen 
\item Gegebenenfalls "ubertragen von Debug Informationen
\end{itemize}

\subsubsection{"Uberwachen von Rug Warrior Programmen w"ahrend der Ausf"uhrung}
"Uberwachen von Programmen z.B. durch die M"oglichkeit das Programme Statusinformationen wie
Ladezustand, Position, Landkarten, etc. auf den Rechner "ubertragen k"onnen. Diese Informationen werden
am Rechner durch einsprechendes Programm ausgewertet und angezeigt.

\subsubsection{"Ubertragen von Steuersignalen zum Rug Warrior}
Senden von Anweisungen (Befehlen) vom Rechner an die Rug Warriors um aktiv in das Handeln des Rug Warrior
eingreifen zu k"onnen. Beispielsweise die Fernsteuerung eines Rug Warriors bei Problemsituationen. 

\subsubsection{Komplexere Aufgaben wie z.B. das Evolvieren eines ANNs}
Beispielsweise das Koppeln eines Systems zur Evolution von ANNs am Rechner mit den Rug Warriors welche
die Fitness der generierten Netze in einer realen Umgebung bestimmen. Dies k"onnte wie folgt realisiert 
werden:
\begin{enumerate}
\item \textbf{Generierung eines neuronalen Netzes am Rechner} \\
\item \textbf{"Ubertragung des Netzes auf den Rug Warrior}\\
      Wenn sich ein Rug Warrior in der Ladestation befindet, kann diese Zeit verwendet werden
      um ein neues, vom Rechner generiertes neuronales Netz auf den Rug Warrior zu "ubertragen.
      Damit kann die Zeit sinnvoll genutzt und Leerlaufzeiten in der Ladestation minimiert werden.
      Hierbei ist eine Kommunikation via Infrarot sinnvoller als eine akustische Kommunikation, da
      bei einer akustischen Kommunikation immer nur eine "Ubertragung gleichzeitig stattfinden kann
      und damit den anderen Rug Warriors die M"oglichkeit zu dieser Kommunikation w"ahrend des, relativ
      lange andauernden, Ladevorganges genommen wird.\\
      Optional ist nat"urlich auch eine Daten"ubertragung durch elektrische Kontakte in der Ladestation
      denkbar. Ein Vorteil w"are eine schnelle Daten"ubertragung. Nachteilig wirkt sich der h"ohere
      Hardwareaufwand sowie die Tatsache das die Positionierung des Rug Warriors in der Ladestation 
      sehr genau erfolgen mu"s, um eine Daten"ubertragung zu gew"ahrleisten aus.
\item \textbf{Anwenden des neuronalen Netzes in einer realen Umgebung} \\
      Steuern des Rug Warriors durch das neue ANN. Laufende Berechnung der Fitness aufgrund verschiedener
      Faktoren wie z.B. Fl"ache der erkundeten Umgebung, Ladezustand, etc.\\
\item \textbf{R"uckkehr zur Ladestation}\\
      R"uckkehr des Rug Warriors zur Ladestation wenn ein entsprechend geringer Ladezustand erreicht ist
      und "Ubertragung der Fitness an den Rechner.
\item \textbf{Evolvierung der ANNs}\\
      Evolvierung der Netze durch ein entsprechendes System am Rechner und "Ubertragung eines neuen
      Netzes an den Rug Warrior.
\end{enumerate}


\subsection{Kommunikation Rug Warrior mit Rug Warrior}
Zwischen den Rug Warriors bestehen, wie bereits in \ref{rugcom} erw"ahnt, drei verschiedene
Kommunikationsm"oglichkeiten woraus sich verschiedenste Anwendungsszenarien entwickeln lassen.
Wie in \ref{rugpc} ist auch hier ein Programm n"otig welches die Kommunikationskan"ale implementiert.\\
Einige denkbare Szenarien sind:

\begin{itemize}
\item "Ubertragung von erfolgreichen ANNs auf andere Rug Warriors
\item Abgleichen von Positionsinformationen und Landkarten
\item Fernsteuern von anderen Rug Warriors durch einen Rug Master
\item Organisation von Treffen
\item Morsesignale mittels Sto"ssensoren
\end{itemize}

\subsubsection{"Ubertragung von erfolgreichen ANNs auf andere Rug Warriors}
Durch die M"oglichkeit zum Austausch von ANN-Informationen k"onnen sich Rug Warriors gegenseitig
verbessern. Insbesondere besteht eine Anwendung in der Bildung von Gruppen mit unterschiedlichen
Strategien. Dabei m"ussen allerdings zus"atzlich zur Fitness, Kriterien eingef"uhrt werden nach
denen sich die verschiedenen Rug Warriors entscheiden k"onnen welches Netz sie "ubernehmen
(Charakter).

\subsubsection{Abgleichen von Positionsinformationen und Landkarten}
Mehrere Rug Warriors durchstreifen gleichzeitig ein Gebiet und organisieren nach einiger Zeit
ein Treffen, um die gesammelten Informationen abzugleichen.

\subsubsection{Fernsteuern von anderen Rug Warriors durch einen Rug Master}
Hat ein Rug Warrior eine h"ohere Fitness als die anderen Rug Warriors, so ist er f"ur die Evolution
wichtiger. Deshalb hat er das Recht in f"ur ihn ung"unstigen oder gef"ahrlichen Situationen andere
Rug Warriors zu kommandieren. Ein Beispiel w"are das Erkunden eines unbekannten Gebietes durch
fernsteuern eines anderen Rug Warriors (Rug Scout).

\subsubsection{Organisation von Treffen}
Treffen zwei Rug Warriors zuf"allig aufeinander (Erkennung durch Sto"ssensoren) so wissen sie in diesem
Moment die Position des jeweils anderen. Trifft nun ein dritter Rug Warrior auf einen der beiden, so kann
dieser nun die Position des anderen erfragen, um sich mit ihm zu treffen.

\subsubsection{Morsesignale mittels Sto"ssensoren}
Morsesignale sollen vor allem der ersten Kontaktaufnahme dienen, um anschlie"send eine andere 
Kommunikationsform zu w"ahlen. Die Information welche Form ausgew"ahlt wird, kann unter anderem im
Morsesignal enthalten sein.

\appendix
\chapter{Programme}

\section{Infrarot-Kommunikation}
\subsection{Test Programm}
\label{irdemo1}
Folgendes Unterprogramm sendet ein permanentes 40 kHz moduliertes
Infrarot-Signal aus.

\begin{verbatim}
int ir_send()
{ 
  write_port(port_d,ir_maskl + ir_maskr, ir_mask);
  while(1);
}

int ir_rec()
{
  int status;
  while(1)
  {
    status=peek(port_e) & ir_detect_mask;
    if (status) 
      printf("Kein IR Signal\n");
    else
      printf("IR Signal\n");
    
  }
}
\end{verbatim}


\chapter{Protokolle}
\section{Besprechungsprotokolle}
\subsection{10.03.1999}
\begin{tabbing}
Teilnehmende Personen: \=Stieglbauer Gerald, \kill \\
Teilnehmende Personen: \>Schwaiger Roland\\
                       \>Noisternig Michael\\
		       \>Obermair Christoph\\
		       \>Schmidbauer Josef\\
		       \>Stieglbauer Gerald
\end{tabbing}		       
Protokollf"uhrer: Obermair Christoph\\
Ort: B"uro Herr Schwaiger\\
Zeit: 17.00 - 17.15\\\\
Einf"uhrende Besprechung "uber das Projekt und erste Aufgabenstellung
\newline
\newline
Spezifikation des abzugebenden Projektberichtes
\begin{itemize}
\item Zu verwendendes Satzsystem: \LaTeX
\item Eigene Titelseite
\item Abstract ("Ubersicht)
\item Einleitung (Um was geht es?)
\item Literatur"ubersicht
\item Literaturverzeichnis
\end{itemize}
Abgabe der Projektberichte jeweils bis Dienstag 13.00 Uhr
\newline
\newline
Erste Fragestellungen:
\begin{itemize}
\item Was sind Rug Warriors?
\item Was ist Sensorik?
\item Inter Rug Warrior Communication + Kommunikation mit Rechnern
\end{itemize}
Vorl"aufiges Projektziel sind prototypische Anwendungen f"ur die Kommunikation falls
diese m"oglich ist.



\subsection{17.03.1999}
\begin{tabbing}
Teilnehmende Personen: \=Stieglbauer Gerald, \kill \\
Teilnehmende Personen: \>Schwaiger Roland\\
                       \>Noisternig Michael\\
		       \>Obermair Christoph\\
		       \>Schmidbauer Josef\\
		       \>Stieglbauer Gerald
\end{tabbing}		       
Protokollf"uhrer: Noisternig Michael\\
Ort: B"uro Herr Schwaiger\\
Zeit: 17.00 - 17.20\\\\

Fragestellungen:
\begin{itemize}
\item Genauere Betrachtung der akustischen Kommunikation.
\item Behandlung einer "'motorischen"` Kommunikation, sowie die Kombination derselbigen
      mit anderen Kommunikationsarten.
\item Inter Rug Warrior Communication + Kommunikation mit Rechnern.
\item Einfaches Protokoll f"ur IR-Kommunikation entwickeln.
\item Einfaches Beispielprogramm f"ur IR-Kommunikation.
\end{itemize}

\subsection{24.03.1999}
\begin{tabbing}
Teilnehmende Personen: \=Stieglbauer Gerald, \kill \\
Teilnehmende Personen: \>Schwaiger Roland\\
                       \>Noisternig Michael\\
		       \>Obermair Christoph\\
		       \>Schmidbauer Josef\\
		       \>Stieglbauer Gerald
\end{tabbing}		       
Protokollf"uhrer: Obermair Christoph\\
Ort: B"uro Herr Schwaiger\\
Zeit: 17.00 - 17.25\\\\

Vorzunehmende Verbesserungen am Paper:
\begin{itemize}
\item Literaturverweis auf Multi-Agenten-Systeme notwendig
\item Literaturverweis auf ISO-7-Schichten-Modell notwendig
\item Den Begriff EXOR durch den Begriff Exklusives Oder ersetzen
\item Die Abk"urzung sh. f"ur siehe nicht mehr verwenden
\item Wieviele Prozesse k"onnen auf einem Rug Warrior gleichzeitig ausgef"uhrt
      werden?
\end{itemize}

Aufgaben bis zum 14.4.1999:
\begin{itemize}
\item Auf Kommunikationsbeispiele n"aher eingehen
\item Hat Rug Warrior eine bestimmte Signatur?
\item Auseinandersetzung mit dem RC5-Standard
\end{itemize}

\bibliographystyle{ieeetr}
\bibliography{prog_paper}

\end{document}
