Title: Projektstudium%20Technische%20Anwendungen%20der%20Informatik
1RoboCup 2002/2003
- ProjektstudiumTechnische Anwendungen der
Informatik - protai7
Abschlussveranstaltung 07.08.2003 Lehrstuhl für
Rechnerstrukturen, Prof. Dr. Grass Lehrstuhl für
Numerische Mathematik und Analysis, Prof. Dr.
Donner
2Was ist RoboCup?
- Internationale Forschungs- und Bildungsinitiative
- Schwerpunkt Künstliche Intelligenz und
Intelligente Robotik - Populäres Spiel Fußball
3Die Middle Size League
- Robotergröße ca. 50 x 50 x 50 cm
- Maximales Gewicht 80 kg
- Roboterfarbe Schwarz
- Regelwerk an FIFA Bestimmungen angelehnt
- Kommunikation der Roboter untereinander ist
ausdrücklich erlaubt
4Was ist das Projektstudium?
- Praktische Erfahrungen
- Anspruchsvolle wissenschaftliche Themengebiete
- Teamarbeit
5Aufgaben und Ziele
- Ãœbernahme des bestehenden Projektes
- Implementierung von Teamfähigkeit
- Einführung von Echtzeit-Scheduling
- Grundlage für nachfolgende Gruppen
6Herausforderungen
- Hardware
- Programmierung
- Diagnose und Instandhaltung
- Software
- Sehr komplexes System
- Starke Abhängigkeiten der Komponenten
- Teamarbeit
- Organisation der Aufgaben
- Koordination der Gruppe auf ein Ziel hin
7Inhalts-Ãœbersicht
- Grundlagen
- Hardware
- Architektur des Projektes
- Sensorverarbeitung und Bildverarbeitung
- Kommunikationssystem
- Künstliche Intelligenz
- Vorführung Bildverarbeitung und KI
- Live-Vorführung auf dem Spielfeld
8Welche Hardware steht zur Verfügung?
- Roboter
- ActivMedia Pioneer 2
- Embedded Board mit 400 MHz CPU
- Bewegliche Kamera
- Sonar-Sensoren
- Odometrie-Sensoren
- Pioneer 2 Microcontroller Board
9Betriebs-Umgebung
- Standard-Hardware
- Linux (Debian 3.0)
- Echtzeit-Kernel
- Problem Festplatte im fahrenden Roboter
- Lösung Disc on Chip
10Die Kamera
- Sony EVI-D31
- Schwenkbar
- Auto-Tracking
- Kommunikation per VISCATM Protokoll (Video System
Control Architecture)
11Neuerung Auslesen von Kameradaten
- Serielles Kabel von der Kamera zum Mainboard
- Kommunikation über das VISCATM Protokoll
12Interessante Kameradaten
- Belichtungseinstellungen
- Neigungs- und Drehwinkel
- Kamera kann im Spiel bewegt werden
- Auto-Tracking Informationen
- Bis zu vier Ziele
- Aktives und passives Tracking
13Auto-Tracking
14Inhalts-Ãœbersicht
- Grundlagen
- Hardware
- Architektur des Projektes
- Sensorverarbeitung und Bildverarbeitung
- Kommunikationssystem
- Künstliche Intelligenz
- Vorführung Bildverarbeitung und KI
- Live-Vorführung auf dem Spielfeld
15Architektur
Hardware- Ansteuerung
Sensorverarbeitung
Künstliche Intelligenz
16Architektur
Hardware- Ansteuerung
Frame Grabber
Kamera (Tracking)
Sonar
Odometrie
Aktoren
Netzwerk
Sensorverarbeitung
Künstliche Intelligenz
17Architektur
Sensorverarbeitung
Bildverarbeitung
Odometrie
Eigenposition
Ballfindung
Eigenposition
Sonar
Tracking
Eigenposition
Ballfindung
Hardware- Ansteuerung
Sensorfusion
Ballfindung
Eigenposition
Künstliche Intelligenz
18Architektur
Hardware- Ansteuerung
Sensorverarbeitung
Künstliche Intelligenz
Weltmodell
Verhalten
19Echtzeitanforderungen bei Robocup
Performance
Deadline
Antwortzeit
- Weiche Echtzeitanforderungen
Linux Kernel Realtime Linux Kernel
durchschnittliche Latenzzeit 10ms 5µs
maximale Latenzzeit gt10s 50µs
20Echtzeit unter Linux zwei Ansätze
- Preemptive Patch für Kernel
- -MontaVista Scheduler
- -KU-RT Linux
- -TimeSys
- Integration eines Mikrokernels
- -RT-Linux
- -RTAI
21Echtzeit unter Linux - RTAI
User-Space
Realtime- Applikation
Linux- Programme
Fifo, Mailbox, SHMEM
Kernel-Space
Linux Kernel
LXRT
Kernel- Module
RTAI- Modul
RTAI- Modul
RTAI- Modul
Real-Time Hardware Abstraction Layer (RTHAL)
Hardware
22Design-To-Time Scheduling Algorithmus
- Statischer Scheduling-Algorithmus
- Effiziente Nutzung der zur Verfügung stehenden
Zeit - Dynamische Auswahl verschiedener Algorithmen
anhand von - Laufzeit
- Qualität
- Ausführung als Echtzeittask oder als Task
- mit höchster Priorität
-
23Design-To-Time Scheduling Algorithmus
Design To Time Scheduling Algorithmus
Pascha Taskgraph
Dispatcher Creator
C Code
24Echtzeit-Scheduling
25Inhalts-Ãœbersicht
- Grundlagen
- Hardware
- Architektur des Projektes
- Sensorverarbeitung u. Bildverarbeitung
- Kommunikationssystem
- Künstliche Intelligenz
- Vorführung Bildverarbeitung und KI
- Live-Vorführung auf dem Spielfeld
26Eigenpositionsfindung
27Eigenpositionsfindung protai6
- SeedSearch
- Zuordnung von SeedPoints zu drei Gruppen
(Spielfeldbegrenzung, Spielfeldlinie vorne,
Spielfeldlinie hinten) anhand einfacher Annahmen - Liniensplittung und Verwurf der Verbindungspunkte
28Eigenpositionsfindung
- protai6
- Sehr schnell
- Gute Ergebnisse bei guter Farbkalibrierung
- Viele SeedPoints und Farbklassifizierung notwendig
- protai7
- protai6-Algorithmus mit erweiterter
Farbkalibrierung sowie schnellerer
Farbklassifizierung und SeedSearch - Durchschnittliche Laufzeit 18ms
29Farbklassifizierung
- Partitionierung des RGB-Farbraums
- Ziel Robustheit gegenüber Helligkeitsänderungen
30Der HSV-Farbraum
- Robustheit gegenüber Helligkeitsveränderungen
lässt sich durch Wechsel in einen anderen
Farbraum realisieren - Eine Farbe wird durch die Komponenten Hue
(Farbton), Saturation (Farbsättigung) und Value
(Helligkeit) definiert
31Farbklassifizierung
- protai6
- Definiere Farbbereichsgrenzen für die Farbklassen
im HSV-Raum vor Programmstart (Farbkalibrierung) - Konvertierung des RGB-Tripels in ein HSV-Tripel
zur Laufzeit - Test für die zuvor definierten Farbbereichsgrenzen
- protai7
- Definiere Farbbereichsgrenzen vor Programmstart
- Konvertierung aller RGB-Tripel in HSV-Tripel,
Test für die zuvor definierten H-S-V-Intervalle
und Speicherung der Farbklasse in einer
Lookup-Tabelle (16 MB)
32Farbkalibrierung
- Suche nach Bereichsgrenzen der Partitionen
weiß,schwarz,rot, ... (hier im HSV-Raum) - Wir haben zwei verschiedene Verfahren
implementiert
manuell
semi-automatisch
33Farbkalibrierung manuell
- Klick in Region berechnet Minima und Maxima der
HSV-Werte innerhalb eines Umkreises - Vorschau aller Farbregionen des Bildes und
Berechnung von Ãœberlappungsbereichen
34Farbkalibrierung semi-automatisch
- Aufnahme einer definierten Szene
- Berechnung der Mittelwerte und der Varianzen der
HSV-Tripel jeder Farbpartition - Multiplikation der Varianzen mit einstellbaren
Faktoren liefert Intervallgrenzen - Automatische Auflösung von Überlappungen durch
Gewichtung der Varianzen
35SeedSearch
- Suche nach Farbübergängen entlang von Geraden
- Ziel Robustheit gegenüber Störungen und
Laufzeitoptimierung - Wir haben vier verschiedene Verfahren entwickelt
36SeedSearch mit Fenster
Ãœbergangsaktivierungen
w
s
r
b
gr
ge
u
- Robustheit gegenüber Störungen durch individuelle
Aktivierungsgrenzen und Filterung in 3x3-Fenster
37SeedSearch mit Ãœberspringen
Ãœbergangsaktivierungen
w
s
r
b
gr
ge
u
- Robustheit gegenüber Störungen durch
Aktivierungen - Überspringen von je 3 Pixeln bis Farbübergang
erreicht, dann Backtracking
38Ballfindung
- Merkmale
- Form
- Kreisscheibe (evtl. teilweise verdeckt)
- Nur bestimmter Radius möglich, abhängig von der
Höhe im Bild - Farbe
- Farbpartition rot (aber Reflexionen und
Schattenwürfe)
39Ballfindung
- Suche nach roten Farbclustern ausschließlich mit
SeedPoints - Berechne erwartete Ausmaße anhand der Höhe im
Bild - Sind die Ausmaße zu gering könnte der Ball
teilweise verdeckt sein Berechne Ballzentrum mit
Dreiecksverfahren
40Gegnererkennung
- Suche nach schwarzen Farbclustern ausschließlich
mit SeedPoints - Berechne erwartete Ausmaße anhand der Höhe im
Bild
41Sonar und Odometrie
- Alle 50 ms kann je einer der 8 Sonarsensoren
abgerufen werden. - Sonarinformationen werden für die
Eigenpositionsfindung und Hindernis/Gegner-Erkennu
ng verwendet - Odometrieinformationen werden alle 50 ms
abgefragt und für die Eigenpositionsfindung
verwendet.
42Tracking
- Abfrage der Auto-Tracking-Funktion der Kamera
über die serielle Schnittstelle - Verwendung für Ballfindung, Gegnererkennung und
Eigenpositionsfindung (z.B. über Torerkennung)
möglich
43Sensorfusion
Sensor
Letzter Wert
Zeitstempel
Zeitstempel
Messwert
Messwert
Varianz
Varianz
Kalman Filter
- Sensormesswerte sind immer fehlerbehaftet
(Varianz) - Sensormesswerte verschiedener Sensoren sowie
verschiedener Zeitpunkte müssen zu einem
optimalen Wert fusioniert werden - Der Kalman Filter ist optimal im Sinne, dass die
Varianz minimiert wird
44Sensorfusion der Eigenpositionsfindung
Bildverarbeitung
Sonar
Odometrie
Letzter Wert
Zeitstempel
Zeitstempel
Zeitstempel
Zeitstempel
Messwert
Messwert
Messwert
Messwert
Varianz
Varianz
Varianz
Varianz
Kalman Filter
45Sensorfusion der Ballfindung
Bildverarbeitung
Tracking
Kommunikation
Letzter Wert
Zeitstempel
Zeitstempel
Zeitstempel
Zeitstempel
Messwert
Messwert
Messwert
Messwert
Varianz
Varianz
Varianz
Varianz
Kalman Filter
46Inhalts-Ãœbersicht
- Grundlagen
- Hardware
- Architektur des Projektes
- Sensorverarbeitung u. Bildverarbeitung
- Kommunikationssystem
- Künstliche Intelligenz
- Vorführung Bildverarbeitung und KI
- Live-Vorführung auf dem Spielfeld
47Gruppenkommunikationsprotokoll (GKP)
- Aufgaben des CommSystems
- Ermöglicht Erweiterung der KI auf Teamplay
- Bietet zusätzliche Daten für die Sensorfusion
- Dient als zusätzlicher Sensor für
- Ballfindung und Gegnererkennung
- Client/Server-Architektur
- CommServer / Software-Access-Point
- CommClient als eigener Prozess
48Gruppenkommunikationsprotokoll (GKP)
- Gruppenkommunikationsprotokoll
- Anerkanntes Kommunikationsparadigma
- Handling von Paketverlusten
- Begrenzung der maximalen Verzögerung
- Probleme des IEEE 802.11 GKP
- Keine Bestätigung der Broadcastnachrichten
- Keine garantierte begrenzte Verzögerung
- Keine Erkennung inaktiver Clients
- Nur der Access-Point hat ein aktuelles Bild der
Gruppe
49Gruppenkommunikationsprotokoll (GKP)
- Datenpaket / Header (36 Bit)
- Ident ID-Nummer des Clients
- Seq Sequenznummer des Pakets
- Akk SeqNr des letzten erhaltenen Pakets
- Mode Aktueller Modus (0 Broadcast,
- 1 Peer2Peer, 2 TimeSync)
-
50Gruppenkommunikationsprotokoll (GKP)
- Datenpaket / Header (36 Bit)
- Login Login-Modus (0 No Login, 1 Login, 2
Relogin) - Sync Zeitsynchronisation (0 No Sync, 1 Sync)
- Clients Gesamtzahl der eingeloggten Clients
- Active Active-Flags aller max. 11 Clients
51Gruppenkommunikationsprotokoll (GKP)
- Datenpaket / Nutzdaten
- Zeitstempel
- Eigenposition
- Ballposition
- Gegnerposition
- Ballbesitz
- Beliebig erweiterbar um weitere Daten
- des Weltmodells und der KI
52Gruppenkommunikationsprotokoll (GKP)
- Funktionsweise / Ãœbersicht
53Zeitsynchronisation
- Notwendig für verteilte (Echtzeit-) Anwendungen
- Notwendig zur Erkennung temporaler Abhängigkeiten
in verteilten Systemen (WLAN) - Zeitdifferenz
- um einen gewissen Offset
- durch asynchrone Systemuhren
54Zeitsynchronisation
- Initiale Zeitsynchronisation
- Ausgleich des Offsets beim Login
- Ãœbernahme der Zeit des CommServers
- Problem Werteanpassung des im IEEE 802.11
Standard definierten Uhren-synchronisationsprotoko
lls - Doppelte Zeitpunkte
- Zeitsprünge
55Zeitsynchronisation
- Werteanpassung vs. Ratenanpassung
56Zeitsynchronisation
- Implementierung einer ans WLAN angepassten
Version eines für den CAN-Bus entwickelten
Protokolls - Einsatz eines TSC-Timers (TimeStampCounter)
- Einsatz einer Softwareuhr mit Ratenanpassung
- Erweiterung des CommSystems um einen
TimeSync-Modus
57Gruppenkommunikationsprotokoll (GKP)
- Erweiterungsmöglichkeiten
- Ãœbertragung weiterer Informationen aus dem
Weltmodell - Integration aller übertragenen Daten in die
Sensorfusion und KI - Übertragung von KI-Flags für dynamisches
Rollenverhalten
58Inhalts-Ãœbersicht
- Grundlagen
- Hardware
- Architektur des Projektes
- Sensorverarbeitung u. Bildverarbeitung
- Kommunikationssystem
- Künstliche Intelligenz
- Vorführung Bildverarbeitung und KI
- Live-Vorführung auf dem Spielfeld
59Künstliche Intelligenz
Kommando
Kommandofusion
Verhalten
Verhalten
Verhalten
KF
Kommando
Arbitrationstrategy
Kommando
Arbitrationstrategy
Arbitrationstrategy
V
V
K
K
AS
AS
60Teamverhalten
- Kooperatives Verhalten
- Dezentrale Entscheidungen
- Informationsaustausch
- Rollenzuweisung
61Simulator
- Ersetzt die reale Umgebung
- Ersetzt Sensoren und Aktoren
- Einsatz zum Test der KI
- Einsatz zum Test der Sensorverarbeitung
62GrabBall
63GrabBall - Teamverhalten
64ScoreGoal
65ScoreGoal - Teamverhalten
66Pass
67Positionsspiel
68Torwartposition
69Torwart GrabBall
70Beispiel 2 gegen 1
71Beispiel 2 gegen 1
72Beispiel 2 gegen 1
73Beispiel 2 gegen 1
74Vielen Dank für die Aufmerksamkeit!