#This file was created by <pantec> Tue Apr 15 01:40:55 1997
#LyX 0.10 (C) 1995 1996 Matthias Ettrich and the LyX Team
\lyxformat 2.10
\textclass article
\language german
\inputencoding latin1
\fontscheme default
\epsfig dvips
\papersize a4paper 
\paperfontsize 11 
\baselinestretch 1.00 
\secnumdepth 3 
\tocdepth 3 
\paragraph_separation indent 
\quotes_language german 
\quotes_times 2 
\paperorientation portrait 
\papercolumns 1 
\papersides 1 
\paperpagestyle headings 

\layout Title
\fill_top \fill_bottom 
Praktikum 
\newline 

\family roman 

\size giant 

\begin_inset Quotes gld
\end_inset 

Autonome Roboter
\begin_inset Quotes grd
\end_inset 

 
\family default 

\size default 

\newline 

\series medium 

\size large 
Hilfsprogramme zur Ansteuerung und Simulation des Khepera-Roboters 
\newline 

\size small 
Thomas Pantzer 1997
\layout Standard


\begin_inset LatexDel \tableofcontents

\end_inset 


\layout Section
\cursor 49 
'khepera' -- Steuerprogramm mit XForms-Bibliothek
\layout Subsection

Features
\layout Itemize

Anzeige der Infrarot- und Ambientlichtsensoren als Bargraph
\layout Itemize

Anzeige der Lichtschranke und des Kontaktwiderstandswertes im Greifer
\layout Itemize

Anzeige der LCC-Kamera als Bargraph
\layout Itemize

Alle Effektoren des Roboters können interaktiv bedient werden
\layout Itemize

berechnet X,Y-Position aus Impulszählern an den Rädern des Roboters
\layout Itemize

X - Oberfläche, mit Maus bedienbar
\layout Itemize

kann Roboter (und/oder Simulator) über Netzwerksockets ansprechen
\layout Itemize

steuert bis zu 4 Roboter gleichzeitig
\layout Itemize

kann mit SNNS modellierte Feed-Forward-Netze einlesen
\layout Subsection

Kommandozeilenoptionen
\layout Itemize

-H
\shape italic 
 hostname
\newline 

\shape up 
der Hostname auf dem der Simulator läuft
\layout Itemize

-D 
\shape italic 
device
\shape default 
 
\shape up 

\newline 
Dateiname der Gerätedatei, muß mit einer Ziffer enden, bei mehreren zu steuernde
n Robotern wird diese Ziffer inkrementiert.

\layout Itemize

-P 
\shape italic 
portnummer
\shape default 
 
\newline 
Portnummer für Socketoperationen, default ist 55555
\layout Itemize

-R 
\shape italic 
<Anzahl der Roboter>
\shape default 
 
\shape up 

\newline 
nur Werte zwischen 1.
.
4 sind zulässig, Roboter müssen vorher angeschlossen und betriebsbereit
 sein, Schnittstellennamen (Gerätedateien) müssen aufeinanderfolgende Endziffern
 im Namen haben (z.
B.
 ttyS0, ttyS1, ttyS2 .
.
.
)
\layout Subsection

Programmiermodell eines neuronalen Netzes
\layout Itemize

drei Objekttypen, 
\shape italic 
t_Net, t_Neuron, t_Synapse
\layout Itemize

wichtige Methoden: 
\shape italic 
Work,Connect, Cut,ReadInput,Activation
\layout Itemize

Methode zur Darstellung: 
\shape italic 
Show
\layout Itemize

Organisation in verketteten Listen
\layout Itemize

rekursive Funktion um Aktivierung eines Neurons zu Berechnen
\layout Itemize

Zeitschrittvariable zur Realisierung rekurrenter Netze
\layout Standard
\added_space_top 0.30 \added_space_bottom 0.30 \align center 

\begin_inset Figure size 416 462
file neuron-impl.eps
width 3 70
flags 9

\end_inset 


\layout Subsection

Objekt RobotContext
\layout Itemize

stellt Datenstruktur für einen Roboter zur Verfügung
\layout Itemize

enthält ein Objekt des Typs 
\shape italic 
t_World
\layout Itemize

wichtige Methoden: 
\newline 

\shape italic 
Move, Turn, Stop, WaitFinalMove, Grip, Release, Lift, SetOrientation, UpdateSens
ors, GetMotorSpeed, SetWheelCounter, ReadWheelCounter, TurnWheelsCount,
 ReadImage
\layout Itemize

kann X,Y - Koordinaten aus Radzählern berechnen (nicht sehr zuverlässig)
\layout Itemize

noch nicht alle steuerbaren Funktionen des Roboters implementiert
\layout Subsection

User Callback Routinen
\layout Itemize

Programm läuft in einer Schleife
\layout Itemize

User-Callback-Prozedur wird immer wieder angesprungen
\layout Itemize

sollte so schnell wie möglich beendet sein um anderen Programmteilen wie
 zum Beispiel Tastaturabfrage oder Bildschirmaufbau (falls nicht von X schon
 erledigt) auch eine Chance auf Ausführung zu geben.

\layout Subsection

Graphische Ausgabe im X-Fenster
\layout Itemize

Objekte t_Path, t_World
\layout Itemize

t_Path ist verkettete Liste von X,Y-Koordinaten + Flags
\layout Itemize

t_World hält die größten (kleinsten) XY-Werte und die Größe der Welt 
\layout Itemize

xforms-Bibliothek bietet 
\shape italic 
canvas , 
\shape default 
(virtueller Bildschirm) 
\layout Itemize

Makros erleichtern das Zeichnen und Textausgabe in ein X-Fenster (in ein
 
\shape italic 
canvas
\shape default 
)
\layout Itemize

Graphikausgaberoutine wird immer ausgeführt wenn das betreffende X-Fenster
 neu gezeichnet werden muß, d.
h.
 alle Befehle um einen Bildschirm vollständig zu zeichnen müssen in dieser
 Prozedure aufgerufen werden.

\layout Section

'sim' -- Simulator und Steuerprogramm
\layout Subsection

Features
\layout Itemize

Anzeige der Infrarot- und Ambientlichtsensoren
\layout Itemize

Anzeige der Motorgeschwindigkeit
\layout Itemize

X - Oberfläche, mit Maus bedienbar
\layout Itemize

kann als Simulator oder zur Steuerung eines echten Roboters benutzt werden
\layout Itemize

Programmdokumentation im Postscriptformat
\layout Itemize

kann als Simulator für andere Programme dienen
\layout Itemize

Möglichkeit zur Modellierung einer Miniwelt
\layout Itemize

Beispieletexte für regelbasierte und neuronale Steuerung des Roboters
\layout Itemize

erweiterter Simulator 
\shape italic 
sim-hp 
\layout Subsection

Kommandozeilenoptionen
\layout Itemize

Option '-p' 
\hfill 
 pipeline Modus der Simulator öffnet einen Socket um anderen Prozessen Zugriff
 auf einen virtuellen Roboter zu geben.

\layout Subsection

User Callback Routinen
\layout Standard

wie bei khepera Ausführung einer User-Callback-Routine die vom Nutzer mit
 Programmtext zu füllen ist
\layout Subsection

Graphische Ausgabe im X-Fenster
\layout Standard

Makros erleichtern die Ausgabe in einen Bereich des X-Fenster
\layout Subsection

Programmstart
\layout Standard

benötigt Datei
\shape italic 
 .
simrc 
\shape default 
und Unterverzeichnisse 
\shape italic 
WORLD 
\shape default 
und 
\shape italic 
ROBOT
\shape default 
 im aktuellen Verzeichnis
\layout Section

Anhang
\layout Subsection

Pfadnamen
\layout Subsubsection

Ausführbare Dateien
\layout Enumerate

milab: /home/public/kurs207/bin
\layout Enumerate

hppool: /public/mai92cxm/bin
\layout Subsubsection

Programmpacket 'SIM'
\layout Enumerate

milab: 
\begin_deeper 
\layout Enumerate

/home/public/kurs207/src/SIM 
\hfill 
 Originalversion mit regelbasiertem Beispiel
\layout Enumerate

/home/public/kurs207/src/SIM.
2
\hfill 
 Originalversion mit neuronalem Beispiel
\layout Enumerate

/home/public/kurs207/src/sim-hp
\hfill 
erweiterte Version mit Sockets, Radzähleruntersützung im Simulator und kleineren
 Bugfixes ;-)
\end_deeper 
\layout Enumerate

hppool:
\begin_deeper 
\layout Enumerate

/public/mai92cxm/src/sim-hp
\end_deeper 
\layout Subsubsection

Programmpacket 'khepera'
\layout Enumerate

milab: /home/public/kurs207/src/khepera
\layout Enumerate

hppool: /public/mai92cxm/src/khepera
\layout Subsubsection

vortrainierte Beispielnetzwerke (Feed-Forward)
\layout Enumerate

milab: /home/public/kurs207/snns
\layout Enumerate

hppool: /home/mai92cxm/snns
\layout Subsection

Definition der Softwareschnittstelle zum Roboter (Kopien)
