Technische Universität München Robotics and Embedded Systems
 

TeachingWs2002Khepera

 
Veranstalter Dr.-Ing. Gerhard Schrott
Typ Praktikum
Semester WS 2002/2003
ECTS 10.0
SWS 6
Vorbesprechung Mi 16. Oktober 2002 15:00 MI 03.09.012
Zeit & Ort Di. 14:00 - 18:00 oder Mi. 14:00 - 18:00 MI 03.09.012
Beginn Dienstag 22.10.2002, bzw. Mittwoch 23.10.2002
Schein erfolgreiche Teilnahme am Praktikum

Anmeldung

Anmeldung erfolgt im Rahmen der zentralen Anmeldung für alle Praktika des Hauptstudiums an den Rechnern in der Informatikhalle.
Die Termine werden jeweils über die Drehscheibe bekannt gegeben.

Aktuelles

Beschreibung

Der Khepera-Roboter ist ein zylindrischer Roboter, mit 55 mm Durchmesser und ca. 80 mm Höhe. Das Bild zeigt ein Exemplar mit Funk-Einheit.
foto_khep_mit_html.gif

Die Räder werden von je einem Gleichstrom- Motor angetrieben. Pro Umdrehung werden 24 Impulse erzeugt. Die Untersetzung beträgt 25:1. Dies macht pro Radumdrehung 600 Impulse möglich. Die Sensorik des Khepera besteht aus 8 Infrarot-Abstandssensoren mit je einem Infrarot-Sender und Empfänger. Diese können sowohl das normale Umgebungslicht, als auch von Objekten reflektiertes Licht messen. Der Khepera-Roboter wurde ursprünglich für die Forschung entwickelt. Mit ihm kann man Algorithmen, die in der Simulation entwickelt und getestet wurden, in der realen Welt ausprobieren. Zusätzlich ist es möglich verschiedene Aufsätze (Turrets) auf den Khepera zu stecken, die mit Greifer oder Kamera ausgerüstet sind. Im Praktikum wird ein Vision Turret verwendet (siehe Bild rechts). Dieser Vision Turret besteht aus einer horiziontalen Linear-Kamera (64 pixel, dies entspricht einem 36 Grad Blickfeld), die abgestimmt auf die Lichtstärke ein Graustufenbild erzeugt. Von einer Kamera senkrecht über dem Spielfeld wird die Spielszene beobachtet. Ein spezielles Bildverarbeitungsprogramm bestimmt 3-5mal in der Sekunde die aktuellen Roboter- und Ballkoordinaten und sendet sie über Funk an die Roboter. Die auf dem Roboter selbst montierte Zeilenkamera findet keine Anwendung mehr.

Im Rahmen des Praktikums soll der Khepera-Robotor das Fußballspielen lernen. Innerhalb des Fußballszenario müssen viele Facetten der Künstlichen Intelligenz und Robotik betrachten werden. Dies sind zum Beispiel Bereiche wie reaktives Verhalten, Sensorverarbeitung in Echtzeit, Planung in einer sich veränderten Umgebung, Strategieerfassung, Lernen und Multi-Agenten-Systeme.

Im Praktikum soll ein Algorithmus entwickelt werden, der den Khepera-Robotern das Fußspielen ermöglicht. Dabei gelten folgende Regeln:

Durchführung des Praktikums

In Zweiergruppen soll ein "Fußballspiel"-Algorithmus erarbeitet werden, wobei verschiedene Lösungsansätze möglich sind. Zur Erarbeitung des Algorithmus wird je ein Pflichttermin (Anwesenheit erforderlich) und ein freiwilliger Termin angeboten, an denen Betreuer anwesend sind. Da die im Praktikum verwendeten Entwicklungsrechner in das Institutsnetz eingebunden sind, kann die Programmentwicklung auch außerhalb der Praktikumstermine in der Informatikhalle durchgeführt werden. Zum Abschluß des Praktikums findet ein Fußballturnier statt.

Voraussetzungen

Grundkenntnisse in C-Programmierung.

Regeln

Die Fußballregeln für vier Spieler

Das Spielfeld

fussball_0t.gif
Das Spielfeld ist 105 cm x 68 cm groß, schwarz und hat 20 cm hohe Wände. Die beiden Tore sind 30 cm breit, 20 cm hoch, hellgrau und befinden sich zentriert an den Schmalseiten des Spielfeldes. Das Spielfeld steht im Raum 3712 (3. Stock, Bauteil 7, Zimmer 12). Für die Dauer des Spiels wird die Jalousie geschlossen. Die Leuchtstoffröhren und Deckenleuchten werden eingeschaltet.

Der Fußball

Der Ball ist ein gelber Tennisball.

Die Spieler

Im Spielfeld befinden sich pro Mannschaft genau zwei Khepera-Roboter, die gegeneinander spielen. Die Roboter werden durch Programme auf den Linux-Rechnern atknoll15 und atknoll16 über den Server auf atknoll12 gesteuert. Vor dem Spielstart und bei Spielunterbrechungen sendet der Server für alle Koordinaten den Wert -2.

Die Trainer

Die Trainer dürfen auf keine Weise in eine laufende Runde eingreifen

Das Match

Ein Match besteht aus zwei Runden mit je fünf Minuten reiner Spielzeit. Sieger ist die Mannschaft, die in den zwei Runden die meisten Tore erzielt. Bei Gleichstand wird verlängert, bis das entscheidende Tor fällt. Am Anfang des Matches wird ausgelost, welches Team welche Kheperamannschaft bekommt. Damit ist auch die Spielfeldseite festgesetzt. In der zweiten Runde werden die Spielfeldseiten und die Kheperas getauscht.

Die Runde

Eine Runde besteht aus einer Vorbereitungs-, einer Aufstell- und einer Spielphase.

Die Vorbereitungsphase

Zu Beginn jeder Runde haben die Trainer noch 1 Minute Zeit, ihren Algorithmus zu verändern. (Während der Spielphase sind Eingriffe in das laufende Programm nicht zulässig.) Nach Ablauf der Vorbereitungszeit muß dem Schiedsrichter angezeigt werden, daß das Programm auf dem Rechner gestartet wurde.

Die Aufstellung

Zu Beginn des Spiels und nach jedem Tor werden die Spieler und der Ball wie folgt aufgestellt: Der Ball befindet sich auf einem zufälligen Punkt auf der Mittellinie. Diese Position liegt mindestens 5cm von den Seitenrändern entfernt. Die beiden Kheperas befinden sich jeweils auf den Eckabstoßpunkten in ihrer eigenen Spielfeldhälfte. Jeder Spieler blickt aufs gegnerische Tor.

Die Spielphase Das Spiel beginnt, wenn die ersten Koordinaten der Bildverarbeitung vom Server verfügbar sind. Nach jedem Tor wird der Server unterbrochen (Koordinaten = -2) und die Spieler werden neu aufgestellt. Bei auftretenden Fehlern an den Kheperas oder bei der Funkübertragung kann der Schiedsrichter das Spiel unterbrechen und an derselben Stelle weiterspielen lassen oder eine Neuaufstellung vornehmen. Die Runde endet nach 5 Minuten reiner Spielzeit. Falls der Ball in der markierten Ecke liegt, wird er vom Schiedsrichter auf die näheste weiße Markierung gelegt.

Die Hauptregel Der Schiedsrichter hat immer recht und kann jederzeit einen Spieler disqualifizieren, falls Regellücken ausgenützt werden. Das Motto: Auch zwei Spieler sind eine Mannschaft!

Material