Hinweise für das Praktikum im Milab
Übersicht
Allgemeines
Um etwas einfacher nachinstallierte Programme ausführen zu können und
problemlos Zugriff auf Bibliotheken und Manpages zu gewährleisten können
nachfolgende Ergänzungen in die Datei .bashrc
im eigenen Homeverzeichnis aufgenommen werden.
#
# Ergaenzungen fuer die ~/.bashrc
#
export PATH=$PATH:/home/public/kurs207/bin
export MANPATH=$MANPATH:/home/public/kurs207/man
export LD_LIBRARY_PATH=/home/public/kurs207/lib
#
In oben angegebenen bin-Verzeichnis sind u.a. folgende Programme installiert.
- Der Editor nedit ist sehr komfortabel und kann die Syntax farblich hervorheben.
Die Modi der verschiedenen (Programmier)Sprachen lassen sich anpassen.
Wer sich nicht mit der Definition eines neuen Modus (z.B. für Manpages oder
HTML-Seiten) herumschlagen will, kann sich die Datei .nedit
in sein Homeverzeichnis kopieren.
- copyhead ist ein Programm mit dem man
Standard Copyright Disclaimer automatisch in seine Quelltexte einfügen kann.
- Mit dem Programm fdesign kann man sehr schnell
eine graphische Benutzeroberfläche für X-Programme erstellen, die die
XForms-Bibliothek benutzen. Eine
Online
Dokumentation für XForms ist auch verfügbar.ist
- Das Programm kcontrol ist mein Demoprogramm zur Robotersteuerung
Wer die Umgebungsvariable MANPATH gesetzt hat, kann die jeweilige Manpage aufrufen.
Eyebot Crosscompiler
Unsere neue 6-beinige Schreitmaschine
wird vom Eyebot-Controller
gesteuert.
Der Crosscompiler ist notwendig um Programme auf dem Eyebot auszuführen
Um erfolgreich compilieren zu können, erweitert man die PATH-Umgebungsvariable
um den Pfad /home/public/kurs207/m68k/bin Die Befehlszeile dafür
lautet
- export PATH=/home/public/kurs207/m68k/bin:$PATH
Im Verzeichnis /home/public/kurs207/src/EyeBot findet man zwei
Programmierbeispiele für den EyeBot-Controller. Um die Makefile aus diesem
Verzeichnis nutzen zu können, benötigt man die Umgebungsvariable "EYEBOT_PATH"
- export EYEBOT_PATH=/home/public/kurs207/m68k
Nachdem der Roboter angeschlossen wurde, kann nun mit dem Programm
dter die Datei <meinprojekt>.hex in die CPU
des Roboters geladen werden. Dazu muß man vorher am Menü des Roboters
(HDR -> SET -> SER) die Konfiguration der Schnittstelle auf auf 38400 Baud,
kein Handshake eingestellt werden und der Roboter in den Downloadmodus
(USR -> LD) gebracht werden. Während des Downloads werden die empfangenen
Bytes hochgezählt. Nach dem Download kann das Verbindungskabel
abgezogen werden.
Achtung: Die Abarbeitung des Programms beginnt sofort nach dem Download.
Khepera Crosscompiler
Mit dem Crosscompiler wird es möglich, in C geschriebene Programme direkt im
Khepera-Roboter laufen zu lassen. Um den Crosscompiler zu starten, muß zu der
obengenannten PATH-Umgebungsvariable der Pfad /home/public/kurs207/mc68331/bin
mit aufgenommen werden. Die Befehlszeile dafür lautet
- export PATH=$PATH:/home/public/kurs207/mc68331/bin
Um sich einfach in die Bedienung des Crosscompilers einzuarbeiten, kopiert man sich
folgende Dateien in ein eigenes Verzeichnis:
- /home/public/kurs207/src/Khep_package4/examples/Makefile.wall
- /home/public/kurs207/src/Khep_package4/examples/wall.c
- /home/public/kurs207/src/Khep_package4/examples/s_khep
Danach übersetzt man mit dem Befehl
- make -f Makefile.wall
Nachdem der Roboter angeschlossen wurde, kann nun mit dem Programm
dter die Datei wall.s28 in die CPU des Roboters geladen
werden. Nach dem Download kann der Roboter auf Batteriebetrieb umgeschaltet und das
Verbindungskabel abgezogen werden.
Achtung: Die Abarbeitung des Programms beginnt sofort nach dem Download.
Bibliothek mit Steuerungsroutinen für den Khepera® Roboter
Diese Bibliothek erledigt über ein C++-Objekt die Kommunikation mit dem
realen (oder virtuellen) Khepera® Roboter. Sie kann ganz einfach in einem selbst-
geschriebenen Programm benutzt werden.
- Die Headerdatei khepera.h muß mit einer
#include
Anweisung in den Quelltext aufgenommen werden.
- Beim Übersetzen müssen die Flags
-I/home/public/kurs207/include und
-L/home/public/kurs207/lib mit angegeben werden.
- Bei der Ausführung des compilierten Programms muss die Umgebungsvariable
LD_LIBRARY_PATH=/home/public/kurs207/lib
gesetzt sein
Die Dokumentation der Bibliothek ist als
Postscriptdatei und bald als
HTML-Version verfügbar.
Als zusätzliche Hilfe kann man sich hier noch ein Beispiel für ein allgemein
gehaltenes
Makefile kopieren. Dieses Makefile enthält viele Variablen
und kann (wenn man sich richtig damit vertraut gemacht hat) mit wenig Aufwand an
verschiedene Programme angepaßt werden. Die Variable PREFIX sollte auf das eigene
Homeverzeichnis zeigen.
Das Skelett einer Manpage ist bestimmt sehr nützlich, wenn
man sein Programm professionell dokumentieren möchte. Manche Zeichenketten sehen
zwar etwas sehr kryptisch aus, aber bei HTML hat man das Gefühl auch mal gehabt.
Khepera Steuerungsprogramm
Zum ersten Test kann das Programm kcontrol aufgerufen werden.
Es kann aus jedem beliebigen Verzeichnis gestartet werden, wenn die Pfadvariable
das Verzeichnis /home/public/kurs207/bin enthält.
Dieses Programm wurde mit der Xforms Bibliothek erstellt und benutzt
auch die obengenannte Khepera Bibliothek. Zum Ausführen muß die Variable
LD_LIBRARY_PATH stimmen. (siehe Allgemeines)
Die Quellen zu dem Programm befinden sich im
Verzeichnis /home/public/kurs207/src/kcontrol. Die Xforms
Bibliothek ermöglicht einen leichten Einstieg in die X-Programmierung.
Kommandozeilenoptionen
-N <Ziffer> | Nummer der anzusprechenden seriellen Schnittstelle |
-H <String> | Hostname bei Verbindung mit Khepera Simulator |
-P <Zahl> | Portnummer bei Verbindung mit Khepera Simulator |
Eine ausführliche Dokumentation ist noch in Arbeit, aber die
Manpage ist schon
verfügbar.
Pioneer Simulator
Der Simulator und die Programmierumgebung für den Pioneer Roboter
ist im Verzeichnis
/home/public/kurs207/saphira-v53
installiert. Im selben Verzeichnis befindet sich auch das Manual für das
Softwarepaket als
Adobe oder
Postscript Dokument.
Die Pioneer-Arbeitsgruppe bekommt von mir eine ausgedruckte Version.
Um sich vorteilhaft in die Entwicklungsumgebung einzuarbeiten, können
(fakultativ) Aufgaben oder Teilaufgaben aus den Übungsblättern des
Robotik-Praktikums
der Universität Freiburg abgearbeitet werden. Die ersten Schritte bei der
Programmierung des Roboters können mit Hilfe des Simulators vorbereitet werden,
damit zum Praktikumstermin im Zimmer 2-21 alles glatt geht.
Ich habe zusätzlich zu dem Saphira Packet noch die PAI Bibliothek installiert
(PAI = Pioneer Application Interface).
Ein einfaches Beispielprogramm (incl. Makefile) mit dem man den Roboter steuern kann
liegt im Verzeichnis
/home/public/kurs207/saphira-v53/pai/examples
Um das Programm testen zu können, muß der Pioneer-Simulator laufen.
Gestartet wird dafür das Programm pioneer aus dem
Verzeichnis
/home/public/kurs207/saphira-v53/bin.
Die Umgebungsvariable SAPHIRA muß den Pfad
/home/public/kurs207/saphira-v53 enthalten.
Ergebnisse
Die Ergebnisse des Praktikums Autonome Roboter der vergangenen Semester können
im Verzeichnis
- /home/public/kurs207/all-results
eingesehen werden. Zum Ausführen der Programme muß in dieses Verzeichnis
gewechselt werden.
Die Teilnehmer des Praktikums in diesem Semester legen bitte im Verzeichnis
/home/public/kurs207/results-ss2000
ein Unterverzeichnis mit ihrem Namen an, in dem die abzugebenden Aufgaben dann abgelegt
werden sollen. Es reicht aus wenn jede Arbeitsgruppe nur ein Verzeichnis anlegt.
Bitte benutzt den Befehl 'chmod 755 Verzeichnisname' um allen
anderen Nutzern das Lesen eurer Ergebnisse zu erlauben.
3D Simulator
Ich habe den neuen 3D-Khepera Simulator im Milab installiert.
Wer damit eine Robotik-Aufgabe lösen möchte, kopiert sich die Verzeichnisstruktur
aus dem Verzeichnis /home/public/kurs207/webots-user in ein eigenes
Verzeichnis und setzt die Umgebungsvariable WEBOTS_HOME.
z.B. mit
prmpt>> mkdir $HOME/webots
prmpt>> (cd /home/public/kurs207/webots-user; tar -cf - .)|(cd $HOME/webots; tar -xvf -)
prmpt>> export WEBOTS_HOME=$HOME/webots
Die unter Punkt Allgemeines aufgezählten
Umgebungsvariablen müssen ebenfalls gesetzt sein.
Hurra, unser Pioneer kann sehen
Hier sind sie, die Bilder die unser Roboter als erstes sah.
- was will der denn von mir
- die Kamera unseres Pioneer Roboters in Aktion
- und eine Übersicht der verwendeten (selbstprogrammierten)
Software
weitere Robotik-Links
Thomas Pantzer, April 2000
Tel.@Uni: +49 (0341) 97 32193 (Zi. 2-33/36)