Institut für Informatik, Universität Freiburg


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

Grundlagen der Künstlichen Intelligenz
Veranstalter: Prof. Dr. Bernhard Nebel
Betreuer: Alexander Kleiner
  

Übungsblatt 3 - Verhalten

Abgabe/Vorführung: 22.11.2000

Vorüberlegung:

Die Problematik der Steuerung eines autonomen Roboters läßt sich häufig in mehrere Teilprobleme aufteilen. Eine komplexe Aufgabe ist z. B. die Anfahrt von Zielpunkten in einem Bürogebäude oder Museum, während gleichzeitigem Ausweichens von statischen und dynamischen Hindernissen. Grundsätzlich bestehen zwei verschiedene Vorgehensweisen in der Robotik, welche man als reaktiv und deliberative bezeichen kann. Reaktives Verhalten basiert meistens auf einer Überlagerung mehrerer primitiver Verhalten, die unmittelbar auf Sensoreingaben reagieren. Typischerweise bestehen direkte Verbindungen zwischen Sensoren und Aktoren, die je nach Aufgabe gewichtet sind. Bei deliberatives Verhalten, auf der anderen Seite, wird eine Modellierung der Welt durchgeführt und anschließend ein optimales Verhalten durch Planen oder Schlussfolgern ermittelt.

Beide Vorgehensweisen haben ihre Vor- und Nachteile, weshalb Heutzutage meist eine Vermischung beider vorgenommen wird. Diese Übung soll einen Einblick in beide Vorgehensweisen geben, wobei es den Gruppen freigestellt ist eine Lösung basierend auf dem Weltmodell oder basierend auf Sensordaten zu entwickeln.

Anleitung

Das Modell des Feldes befindet sich in der Datenstruktur FieldLines. Verwenden Sie den Code der letzten Aufgabe für diese Übung.


Aufgabe 1

Schreiben Sie eine Funktion die bei gegebenem Modell des Feldes oder bei gegebenen Rohdaten des LRF einen von der Bande wegführenden Drehwinkel berechnet. Der Winkel sollte möglichst so gewählt werden, dass der Roboter eine minimale Korrektur seiner Orientierung auszuführen hat. Zusätzlich soll die Funktion einen Wert zwischen 0 und 1 ausgeben, welcher aussagt wie kritisch die Nähe zu der Umrandung des Feldes ist. Bei Abständen über 500mm sollte die Ausgabe 0 sein.

Für die "deliberative" Lösung kann der Simulator zur schnelleren Entwicklung verwendet werden. Für die "reaktive" Lösung ist es ausreichend einen Geschwindigkeitsvektor für eine spätere Überlagerung auszugeben.

Aufgabe 2

Schreiben Sie ein Verhalten, welches den Roboter das Feld explorieren lässt. Dabei sollte der Roboter in möglichst verschiedene Bereiche vorstoßen und nicht zwischen vorprogrammierten Positionen wechseln! Verwenden Sie die "Bandenvermeidung" aus Aufgabe 1 um unnötige Kollisionen zu vermeiden.

Aufgabe 3

Erweitern Sie das Verhalten von Aufgabe 2 derart, dass der Roboter Objekte auf dem Feld ansteuert, vor diesen stoppt und mit dem Hinterteil wedelt. Nach einer kurzzeitigen Pause sollte der Roboter dann die entgegengesetzte Richtung einschlagen. Zur Lösung dieser Aufgabe können entweder erkannte Objekte (Übung 2) oder die Rohdaten des LRF verwendet werden.



Abgabe