740 likes | 835 Views
RoboCup 2002/2003. Projektstudium Technische Anwendungen der Informatik protai 7. Abschlussveranstaltung 07.08.2003 Lehrstuhl für Rechnerstrukturen, Prof. Dr. Grass Lehrstuhl für Numerische Mathematik und Analysis, Prof. Dr. Donner. Was ist RoboCup?.
E N D
RoboCup 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
Was ist RoboCup? • Internationale Forschungs- und Bildungsinitiative • Schwerpunkt: Künstliche Intelligenz und Intelligente Robotik • Populäres Spiel: Fußball
Die 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
Was ist das Projektstudium? • Praktische Erfahrungen • Anspruchsvolle wissenschaftliche Themengebiete • Teamarbeit
Aufgaben und Ziele • Übernahme des bestehenden Projektes • Implementierung von Teamfähigkeit • Einführung von Echtzeit-Scheduling • Grundlage für nachfolgende Gruppen
Herausforderungen • 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
Inhalts-Übersicht • Grundlagen • Hardware • Architektur des Projektes • Sensorverarbeitung und Bildverarbeitung • Kommunikationssystem • Künstliche Intelligenz • Vorführung Bildverarbeitung und KI • Live-Vorführung auf dem Spielfeld
Welche 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
Betriebs-Umgebung • Standard-Hardware • Linux (Debian 3.0) • Echtzeit-Kernel • Problem: Festplatte im fahrenden Roboter • Lösung: Disc on Chip
Die Kamera • Sony EVI-D31 • Schwenkbar • Auto-Tracking • Kommunikation per VISCATM Protokoll (Video System Control Architecture)
Neuerung: Auslesen von Kameradaten • Serielles Kabel von der Kamera zum Mainboard • Kommunikation über das VISCATM Protokoll
Interessante Kameradaten • Belichtungseinstellungen • Neigungs- und Drehwinkel • Kamera kann im Spiel bewegt werden • Auto-Tracking Informationen • Bis zu vier Ziele • Aktives und passives Tracking
Inhalts-Übersicht • Grundlagen • Hardware • Architektur des Projektes • Sensorverarbeitung und Bildverarbeitung • Kommunikationssystem • Künstliche Intelligenz • Vorführung Bildverarbeitung und KI • Live-Vorführung auf dem Spielfeld
Architektur Hardware- Ansteuerung Sensorverarbeitung Künstliche Intelligenz
Architektur Hardware- Ansteuerung Frame Grabber Kamera (Tracking) Sonar Odometrie Aktoren Netzwerk Sensorverarbeitung Künstliche Intelligenz
Architektur Sensorverarbeitung Bildverarbeitung Odometrie Ballfindung Eigenposition Eigenposition Sonar Tracking Eigenposition Ballfindung Hardware- Ansteuerung Sensorfusion Ballfindung Eigenposition Künstliche Intelligenz
Architektur Hardware- Ansteuerung Sensorverarbeitung Künstliche Intelligenz Weltmodell Verhalten
Echtzeitanforderungen bei Robocup Performance Deadline Antwortzeit • Weiche Echtzeitanforderungen
Echtzeit unter Linux – zwei Ansätze: Preemptive Patch für Kernel -MontaVista Scheduler -KU-RT Linux -TimeSys Integration eines Mikrokernels -RT-Linux -RTAI
Echtzeit unter Linux - RTAI User-Space Realtime- Applikation Linux- Programme Fifo, Mailbox, SHMEM Kernel-Space LXRT Linux Kernel Kernel- Module RTAI- Modul RTAI- Modul RTAI- Modul Real-Time Hardware Abstraction Layer (RTHAL) Hardware
Design-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
DecisionDAG Design-To-Time Scheduling Algorithmus Design To Time Scheduling Algorithmus Pascha Taskgraph Dispatcher Creator C++ Code
Hardware- Ansteuerung Sensorverarbeitung Kamera- daten Sonar/ Odometrie- daten Künstliche Intelligenz Kernel Modul RTAI RealTime OS Kernel Dispatcher RTAI TaskGraph Echtzeit-Scheduling
Inhalts-Übersicht • Grundlagen • Hardware • Architektur des Projektes • Sensorverarbeitung u. Bildverarbeitung • Kommunikationssystem • Künstliche Intelligenz • Vorführung Bildverarbeitung und KI • Live-Vorführung auf dem Spielfeld
Fehler • Extrahiere Linien aus Bild • Berechne Lage der Linien im Roboter-Koordinaten-System • Extrahiere Linien aus Bild • Extrahiere Linien aus Bild • Berechne Lage der Linien im Roboter-Koordinaten-System • Linien-Matching mit gespeichertem Spielfeld-Modell und Hypothesen-Erzeugung • Bewertung der Hypothesen mittels Fehlerfunktion und Auswahl der besten Hypothese • Extrahiere Linien aus Bild • Berechne Lage der Linien im Roboter-Koordinaten-System • Linien-Matching mit gespeichertem Spielfeld-Modell und Hypothesen-Erzeugung Eigenpositionsfindung
Eigenpositionsfindung protai6 • SeedSearch • Zuordnung von SeedPoints zu drei Gruppen (Spielfeldbegrenzung, Spielfeldlinie vorne, Spielfeldlinie hinten) anhand einfacher Annahmen • Liniensplittung und Verwurf der Verbindungspunkte
Eigenpositionsfindung • 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
Farbklassifizierung • Partitionierung des RGB-Farbraums • Ziel: Robustheit gegenüber Helligkeitsänderungen
Der 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
Farbklassifizierung • 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)
Farbkalibrierung • Suche nach Bereichsgrenzen der Partitionen {weiß,schwarz,rot, ...} (hier im HSV-Raum) • Wir haben zwei verschiedene Verfahren implementiert manuell semi-automatisch
Farbkalibrierung – manuell • Klick in Region berechnet Minima und Maxima der HSV-Werte innerhalb eines Umkreises • Vorschau aller Farbregionen des Bildes und Berechnung von Überlappungsbereichen
Farbkalibrierung – 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
SeedSearch • Suche nach Farbübergängen entlang von Geraden • Ziel: Robustheit gegenüber Störungen und Laufzeitoptimierung • Wir haben vier verschiedene Verfahren entwickelt
SeedSearch mit Fenster • Robustheit gegenüber Störungen durch individuelle Aktivierungsgrenzen und Filterung in 3x3-Fenster Übergangsaktivierungen s w r gr b ge u
SeedSearch mit Überspringen • Robustheit gegenüber Störungen durch Aktivierungen • Überspringen von je 3 Pixeln bis Farbübergang erreicht, dann Backtracking Übergangsaktivierungen s w r gr b ge u
Ballfindung • 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)
Ballfindung • 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
Gegnererkennung • Suche nach schwarzen Farbclustern ausschließlich mit SeedPoints • Berechne erwartete Ausmaße anhand der Höhe im Bild
Sonar und Odometrie • Alle 50 ms kann je einer der 8 Sonarsensoren abgerufen werden. • Sonarinformationen werden für die Eigenpositionsfindung und Hindernis/Gegner-Erkennung verwendet • Odometrieinformationen werden alle 50 ms abgefragt und für die Eigenpositionsfindung verwendet.
Tracking • Abfrage der Auto-Tracking-Funktion der Kamera über die serielle Schnittstelle • Verwendung für Ballfindung, Gegnererkennung und Eigenpositionsfindung (z.B. über Torerkennung) möglich
Sensorfusion Sensor Letzter Wert Zeitstempel Zeitstempel • 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 Messwert Messwert Varianz Varianz Kalman Filter
Sensorfusion der Eigenpositionsfindung Bildverarbeitung Sonar Odometrie Letzter Wert Zeitstempel Zeitstempel Zeitstempel Zeitstempel Messwert Messwert Messwert Messwert Varianz Varianz Varianz Varianz Kalman Filter
Sensorfusion der Ballfindung Bildverarbeitung Tracking Kommunikation Letzter Wert Zeitstempel Zeitstempel Zeitstempel Zeitstempel Messwert Messwert Messwert Messwert Varianz Varianz Varianz Varianz Kalman Filter
Inhalts-Übersicht • Grundlagen • Hardware • Architektur des Projektes • Sensorverarbeitung u. Bildverarbeitung • Kommunikationssystem • Künstliche Intelligenz • Vorführung Bildverarbeitung und KI • Live-Vorführung auf dem Spielfeld
Gruppenkommunikationsprotokoll (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
Gruppenkommunikationsprotokoll (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
Gruppenkommunikationsprotokoll (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)
Gruppenkommunikationsprotokoll (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