Institut
für Informatik, Universität Freiburg
|
Institut für
Informatik |
Grundlagen der Künstlichen Intelligenz |
Abgabe/Vorführung: 9.11.2000
Vorüberlegung:
Jeder Roboter ist mit einem Laser-Scanner ausgestattet, welcher in sehr kurzen Zeitabständen Sensorbilder der Umgebung des Roboters liefert. Hierbei werden Laserstrahlen in den vorderen Bereich (180°) des Roboters emittiert und die Laufzeiten von der Emission bis zur Rückkehr der an Hindernissen reflektierten Strahlen gemessen. Anhand dieser Laufzeiten können präzise Entfernungen zu Wänden oder nahen Hindernissen ermittelt werden. Bedingt durch die viel höhere Ausbreitungsgeschwindigkeit von Licht gegenüber Schall (wie z.B. bei Ultraschallsensoren verwendet), entstehen bei der Laser-Messung vergleichbar geringe Fehler. Jedoch kann man sich den Laserstrahl als einen sich ausbreitenden Kegel vorstellen, der mit wachsender Entfernung an Breite gewinnt. Dadurch entstehen Ungenauigkeiten, da mehrere Punkte im Raum als Hypothese für die eigentliche Position des reflektierenden Gegenstandes in Frage kommen.
Eine übliche Vorgehensweise in der Robotik ist es, wichtige Merkmale aus Sensorbildern zu extrahieren. Für das Roboterfußball z.B., ist das Extrahieren von Ecken und Kanten des Feldes und das Extrahieren von Positionen und Umrisse anderer Roboter von absoluter Wichtigkeit. Um einen Eindruck über die Funktionsweise des Laser-Scanners zu erhalten, steht Ihnen ein spezieller Saphira-Client zur Verfügung. Bitte installieren Sie dieses Programm mit tar -xzf aufg2.tgz;make in ihrem Home-Verzeichnis und starten Sie es anschließend mit dem Aufruf ./scanDemo. In diesem Demo wird die Datenstruktur "Scan" verwendet, deren Definition in Scan.h gefunden werden kann. Verwenden Sie diese Datenstruktur, analog wie in dem zur Verfügung gestelltem Saphira-Client, um folgende Aufgaben zu lösen:
Schreiben Sie einen Algorithmus zur Erkennung von Objekten auf dem Fußballfeld. Verwenden Sie dazu Daten, die von Linien "gesäuberten" sind. Es genügt hierbei, Objekte anhand ihres Mittelpunktes und eines umschließenden Kreises zu beschreiben. Verschiedenartige Objekte müssen nicht unterschieden werden können. Erzeugen Sie eine Datenstruktur, in der mehrere Objekte dynamisch gespeichert werden. Zeichnen Sie zusätzlich die erkannten Objekte im Saphira-Fenster ein, ggf. mit verschiedenen Nummern versehen.
Testen Sie die Genauigkeit ihrer Objekterkennung mit dem Torwart des CS Freiburg. Messen Sie dazu verschiedene Entfernungen und Winkel zu dem im Tor stehenden Torwart und bestimmen Sie den Fehler der Entfernungs- und Kreisradiusschätzung. Wie könnte man den Gegner präziser erkennen?
Hinweis: Die Fähigkeiten Ihres Roboters zur Erkennung der Position und Grösse des Torwartes sind von entscheidender Wichtigkeit für den kurz vor Weihnachten stattfinden Wettbewerb im Tore schießen!