Tormann Lorenz Maierhofer
Die Test-Umgebung Tor: 5x Roboter-Durchmesser Ball: Wird jeweils in Richtung einer zufälligen Position im Tor geschossen Stoppt der Ball, so wird er wieder neu Richtung Tor geschossen
Der Roboter (1) Kamera: Öffnungswinkel 100° Bounding Box: Runde Hülle statt Keksdosen- Form Abstands-Sensoren: 8x in 45°-Schritten Nur zur Kollisionserkennung
Sensor-Auswertung (1) Absolute Ball-Position: Durch Schwerpunkt und Radius (Trigonometrisch) Ball-Geschwindigkeit & Richtung: Positions-Mittlung über mehrere Bilder, Median, nur grobe Klassifizierung (Stop/in Bewegung;...) Abschätzung des Torlinien-Übertritts: Je näher der Ball, desto schlechter die Schätzung – zu ungenau, weil....
Probleme (1) Durch den grossen Öffnungswinkel der Kamera verzerrt sich das Bild (Entzerrung nötig) In der Nähe wird der Ball sehr leicht aus dem Blickbereich verloren Ball-Radius springt besonders bei nahem, schnellen Ball
Lernen (1) Lernalgorithmus: Q(λ)-Learning (mit Optionen) Zustandsmenge: Bestehend aus Features: Ball-Geschwindigkeit: Stopp / In Bewegung Ball-Richtung: In Richtung Tor / Weg vom Tor / Ball ist zu langsam
Zustandsmenge (1) Ball-Position relativ: nah am Roboter / weit weg / sehr weit weg / unbekannt Ball-Position absolut: 3-Teilung des Spielfeldes in Bereiche nach Entfernung vom Tor
Zustandsmenge (2) Roboter-Positionen Lernziel ist u.a., dass sich der Tormann möglichst - nie in far aufhält - wenig in left/right ist
Zustandsmenge (3) Zusätzliche Zustände: - Kollision - Hindernis links/rechts/vorn/hinten - Kontakt mit dem Ball - Ball ist im Tor
Zustandsmenge (4) Gesamt: 2x3x4x3x6+7=439 Zustände Aber: Viele Zustände fallen in der Praxis weg Beispiel: Ballposition unbekannt => nur Roboterposition Effektiv (für das Lernen relevant): 194 Zustände
Aktionen / Optionen (1) Drehe, um Ball im Blickfeld zu behalten Fahre zurück auf die Torlinie Fahre auf den Ball zu und schieße ihn weg Fahre links/rechts zur X-Koordinate des Balles Fahre links/rechts je nach Ballposition im Bild Schieße Ball weg (nur bei Kontakt wählbar) (Fahre nach links / Fahre nach rechts – Aktionen schließlich nicht verwendet) ! Optionen selbst nicht in jeder Situation erfolgreich !
Reward-Vergabe (1) Ball im Tor: Kontakt mit Ball: +1.0 Kollision: -0.5 Hindernis in der Nähe: Roboter sehr weit weg vom Tor: Ball aus dem Blickfeld: 0.0 ! Ansonsten: 0.0
Lernen (2) Gesamt: 194 effektive Zustände 6 Optionen, 0 Aktionen Lernerfolg: relativ rasch, da - wenige Zustände sehr häufig auftreten und entscheidend sind - nur Entscheiden zwischen Optionen, die bereits Basisfunktionalität besitzen
Lernerfolg (1) Durchschnittliche Ballkontakte pro Episode: ~4.4 Grundverhalten bereits nach Episoden Danach relativ wenig Verbesserung
Vergleich mit programmierter Lösung: Vergleichs-Controller: - Sensor-Auswertung wie beim Lernen - Optionen nur geringfügig angepasst - Optionswahl durch Ballposition und Roboter-Position - Hauptsächlich benutzte Option: Fahre links/rechts auf die Höhe des Balles
Vergleich mit programmierter Lösung: Programmiert: ~5.6 Ballkontakte/Episode ~1.3 min/Episode Gelernt (1450 Episoden) ~4.4 Ballkontakte/Episode ~0.9 min/Episode
Fazit Solide Ballerkennung / Ballauswertung für gutes Verhalten unumgänglich Rundum-Kamera große Verbesserung Reward-Vergabe schwierig...
Fragen?