\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{\textbf{Rug Warrior Communication}}
\author{Noisternig Michael\\Obermair Christoph\\Schmidbauer Josef\\Stieglbauer Gerald}

\begin{document}
\maketitle
\tableofcontents
\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 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{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�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.

\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�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 Spannungswerts 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{hlabtast} 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.
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}

Um sogenannte Multi Agenten Systeme in der Praxis realisieren zu k"onnen 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"otig das die Rug Warriors untereinander kommunizieren k"onnen. Idealierweise 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 motorischer 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-Kom"=mu"=ni"=ka"=tion 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 �bertragungsmedium 
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 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 \cite{hl7schichten} 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"aenderung 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-Oszil"=la"=tors)
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}{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.


\appendix
\chapter{Protokolle}
\section{Besprechungsprotokolle}
\subsection{10.03.1999}
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.
\bibliographystyle{ieeetr}
\bibliography{prog_paper}

\end{document}
