|
||||||
|
FB3 |
||||||
| AG BKB > Thomas Röfer > Kognitive Robotik II > Übungszettel > | ||||||
4. Übungszettel: Wettbewerb |
||||||
Ausgabe: 23. Juni 2003
Für Aufgaben auf diesem Übungsblatt sollte Cabsl für die Verhaltenbeschreibung genutzt werden. 1. Duell (34%)Im Wettbewerb treten auf dem echten Spielfeld in MZH 3570 jeweils zwei Roboter unterschiedlicher Gruppen gegeneinander an. Beide Roboter tragen ein rotes Trikot. Der Ball wird in der Hälfte des blauen Tors in der Mitte zwischen den Seitenbanden, der Mittellinie und der Strafraumlinie gelegt. Die beiden Roboter werden auf Höhe des Balls mittig zwischen Ball und den Seitenbanden auf gegenüberliegenden Seiten platziert. Die Roboter sehen nach außen, d.h. der Ball ist hinter ihnen. Sie wissen nicht, auf welcher Seite sie stehen (dies wird durch Münzwurf entschieden).
Das Spiel wird durch Loslassen der Rückentaster gestartet. Gewonnen hat der Roboter, der den Ball zuletzt berührt hat, bevor letzterer die Torlinie des blauen Tors vollständig überquert hat. Ist dies nach 5 Minuten nicht geschehen, ist das Spiel unentschieden. Ein Spiel kann bereits vorher unentschieden beendet werden, wenn dies von beiden gegnerischen Parteien akzeptiert wird. Für einen Sieg erhält eine Gruppe drei Punkte, für ein Unentschieden einen Punkt und für eine Niederlage keinen Punkt. Tritt eine Gruppe nicht an, gilt dies als Niederlage. Tritt während eines Spiels ein Problem mit dem Funknetz auf, wird das Spiel wiederholt. Der Turnierablauf wird in Abhängigkeit von der Anzahl der teilnehmenden Gruppen bestimmt. Nehmen ausreichend viele Gruppen teil, wird für den Sieger ein Pokal gestiftet. Tipps. In der Datei DataTypes\Perception\ColorTable64.h ist die Klasse ColorTable64 definiert, deren Funktion getColorClass(y,u,v) genutzt werden kann, um aus den Pixeln des Bildes die in Tools\ColorClasses.h vereinbarten Konstanten vom Typ colorClass zu machen, z.B. orange für den Ball, skyblue für das blaue Tor und red für das gegnerische Trikot. Bevor die Farbtabelle genutzt werden kann, muss eine Instanz des Typs ColorTable64 als (Member-)Variable angelegt und die Tabelle geladen werden: ColorTable64 colorTable;
//...
InBinaryFile("coltable.c64") >> colorTable;
Der Roboter beherrscht bereits eine große Anzahl von Schüssen. Diese sind in DataTypes\Motion\MotionRequest.h als SpecialActionID vereinbart. Empfehlenswert sind:
Andere Schüsse sollten nicht genutzt werden, da sie teilweise den Roboter beschädigen könnten. Schüsse werden ähnlich wie Laufbewegungen gesetzt: motionRequest.motionType = MotionRequest::specialAction; motionRequest.specialActionType = MotionRequest::Schuss; Die meisten Schüsse werden wiederholt, bis eine andere Aktion gesetzt wird. 2. Strafstoß (33%)Roboter und Ball werden an zufällige Positionen der "blauen" Spielfeldhälfte platziert. Ziel ist es, in möglichst kurzer Zeit ein Tor zu schießen. Einen Gegner gibt es dabei nicht. Es kommt nur darauf an, möglichst schnell zu sein. Nach fünf Minuten ohne Tor wird der Versuch abgebrochen. Die Rangfolge der Teams ergibt sich aus der Dauer bis das Tor gefallen ist. Je schneller, desto besser. 3. Lokalisierung (33%)Drei Positionen auf dem Spielfeld müssen möglichst genau angelaufen werden. Diese sind
Der Roboter soll jeweils zu einer Position laufen, anhalten und mit dem Schwanz wackeln, wenn er glaubt, die Position erreicht zu haben. Der Schiedsrichter misst dann die Abweichung von der Zielposition und drückt dann den Rückentaster, damit der Roboter zur nächsten Zielposition läuft. Die Rangfolge der Teams ergibt sich aus der Summe der Abweichungen. Je geringer diese ist, desto besser. |
||||||
| Autor: Dr. Thomas Röfer |
||||||
| Kognitive Robotik II |
|
|||||