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.
  1. 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.
  2. copyhead ist ein Programm mit dem man Standard Copyright Disclaimer automatisch in seine Quelltexte einfügen kann.
  3. 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
  4. 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.

Khepera Simulator von Oliver Michel


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.
  1. Die Headerdatei khepera.h muß mit einer #include Anweisung in den Quelltext aufgenommen werden.
  2. Beim Übersetzen müssen die Flags -I/home/public/kurs207/include und -L/home/public/kurs207/lib mit angegeben werden.
  3. 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.
  1. was will der denn von mir
  2. die Kamera unseres Pioneer Roboters in Aktion
  3. und eine Übersicht der verwendeten (selbstprogrammierten) Software

weitere Robotik-Links


Thomas Pantzer, April 2000
Tel.@Uni: +49 (0341) 97 32193 (Zi. 2-33/36)