Institut für Informatik, Universität Freiburg


Institut für Informatik
Albert-Ludwigs-Universität Freiburg
Praktikum Robotik
Wintersemester 2000/2001

Grundlagen der Künstlichen Intelligenz
Prof. Dr. Bernhard Nebel
  

Übungsblatt 3 - Behaviours I

Abgabe/Vorführung: 16.11.2000

Vorüberlegung:

Die Problematik der Steuerung eines autonomen Roboters läßt sich normalerweise in mehrere Teilprobleme aufspalten. Eine komplexe Aufgabe, die sich aufteilen läßt, ist z. B. die Anfahrt von Zielpunkten in einem Bürogebäude oder Museum, während gleichzeitigem Ausweichens von statischen oder dynamischen Hindernissen.

Ein üblicher Ansatz, wie er erstmals von Brooks [1] mit der "Subsumtion Architecture" vorgestellt wurde, ist die Implementierung verschiedener, parallel laufender, Verhalten, die ihre Ausgaben (hier Befehle zur Motorsteuerung) gegenseitig hemmen können. Saphira bietet eine ähnliche Architektur durch ein einfaches "Round-Robin" Multitasking System, in dem sogenannte "Micro-Tasks" vom Benutzer gestartet werden können. Hierbei wird garantiert, daß jede Micro-Task in einem Zyklus von 100ms ausgeführt wird. Die Verschmelzung aller Ausgaben dieser Prozesse wird mit einem Fuzzy-Regler durchgeführt (siehe Saphira Handbuch).

Hilfe: Beispiel Behaviors

Aufgabe 1

Machen Sie sich mit Prozessen unter Saphira vertraut. Schreiben Sie einen einfachen Prozeß, der zu jeder Sekunde die mittlere Zykluszeit ausgibt. Auf was muß beim erstellen von eigenen Prozessen geachtet werden? Wie können einzelne Prozesse miteinander kommunizieren?

Aufgabe 2

Schreiben Sie ein Verhalten, welches anhand erkannter Objekte auf dem Feld (Übungsblatt 1) und einem gegebenen Model des Fußballfeldes eine kollisionsfreie Fahrt ermöglicht. Dieses Verhalten sollte je nach Dringlichkeit der Situation die Ausgaben eines zweiten Verhaltens, welches den Roboter mit einer konstanten Geschwindigkeit geradeaus fahren lässt, hemmen.

Anmerkung: Verwenden Sie das gegebene Verhalten "sfConstantVelocity" um Ihren Prozeß zu testen.

Frage: Wie robust verhält sich ihre Steuerung bei höheren Geschwindigkeiten?

Aufgabe 3

Schreiben Sie ein Verhalten, das den Roboter seine Umgebung explorieren läßt, bis sich ein Objekt, z.B. ein anderer Roboter, in unmittelbarer Nähe (<1m) befindet. Wird ein anderes Objekt gefunden, soll dies vom Roboter mit einem Wedeln des Hinterteils verdeutlicht werden. Nach genügend langem Wedeln soll der Roboter eine erneute Suche beginnen.

Tip: Nutzen Sie die Möglichkeit eigene Zustände in einem Prozeß zu definieren.

Aufgabe 4

Starten Sie die Verhalten von Aufgabe 2 und Aufgabe 3 gleichzeitig mit verschiedenen Prioritäten im Fuzzy-Regler.

Literatur

[1] Brooks, Rodney A. "A Robust Layered Control System for a Mobile Robot," [pdf format], MIT AI Lab Memo 864, September 1985.