In dieser Arbeit werden die zwei gängigsten in den Soccer-Ligen des Robocup-Junior verwendeten Ballerkennungstechniken hardware- und softwaretechnisch analysiert, bewertet und miteinander verglichen.
In der „Soccer Open League” des Robocup-Juniors treten zwei Roboter gegen zwei Gegnerische an und verfolgen das Ziel, Tore zu schießen und dabei die weiße Seitenlinie nicht vollständig zu überfahren, da dies Zeitstrafen zufolge hat. Bis zum Jahr 2017 wird in dieser Liga – wie in allen anderen Soccer-Ligen auch – mit einem infrarotausstrahlenden Ball (Ball RCJ-05R, Fa. Elekit) gespielt.
Dieser ist unter den Teilnehmern aufgrund der Lichtausstrahlung auch als „aktiver Ball“ bekannt. Vor der Saison des Jahres 2017 erfolgt eine Regeländerung des „SoccerTechnicalCommittee“, das die internationalen Regeln dieser Liga festlegt. Diese Änderung besagt, dass als Spielball ein hohler, orangener Gummiball, der unter den Teilnehmern auch als „passiver Ball“ bekannt ist, verwendet wird. Als Hauptgrund wird genannt, dass die Ballsuche nach einigen Jahren mit demselben Ball keine Herausforderung mehr für die Teams darstellt.
Durch diese Änderung wird das Niveau des Teilnehmerfelds durch die neuen Anforderungen angehoben. Für die Erkennung und Verfolgung des aktiven Infrarotballes sind Infrarotsensoren rund um den Roboter notwendig. Davon werden von den Teams zwischen acht und 64 in einem Ring um den Roboter herum einmontiert. Softwaretechnisch gibt ein solcher Werte in Form eines 8-Bit großen, pulsweiten-modulierten Signals (im weiteren Verlauf der Arbeit kurz: PWM) aus, wobei der Wert 255 die maximale Infraroteinstrahlung darstellt. Seit 2017 ist nun lediglich eine Kamera pro Roboter zugelassen. Neben der Aufgabe, diese zu programmieren, den Ball zu erkennen und dessen Position auszugeben, müssen die Teilnehmer auch eines von zahlreichen Modellen aussuchen und dieses in ihre Hardware mechanisch und elektronisch integrieren.
Auch ist zu bewerten, ob der Einbau eines Spiegels zur Rundumsicht als moderner Lösungsansatz sinnvoll ist. Dabei gilt zu beachten, welche Vor- und Nachteile ein solcher bietet, welche Herausforderungen zu bewältigen sind und welche Arten von Spiegeln infrage kommen. Schlussendlich wird ein Ausblick gegeben, in welche Richtung sich die Soccer Open League des Robocup-Juniors entwickelt und welche Ballerkennungstechnik sich dabei etabliert.
Inhalt
1 Spielbälle in der Soccer Open League des Robocup-Junior
2 Erkennung des infrarotausstrahlenden Balles
2.1 Hardwaretechnische Aspekte – Einbindung des Infrarotsensors in die Hardware
2.2 Softwaretechnische Aspekte – Auslesen und Auswerten der Sensorwerte
3 Erkennung des passiven Balles
3.1 Der Kamerasensor „Pixy CMU Cam5“ und mögliche Alternativen
3.2 Unterschiedliche Verwendung und Profilierung der Kamerasensoren
3.3 Hardwaretechnische Aspekte – Einbau in die Hardware, Elektronik
3.4 Softwaretechnische Aspekte – Auslesen der Sensorwerte
3.5 Softwaretechnische Aspekte – Auswertung der Sensorwerte
4 Folgen und Auswirkungen der Regeländerung
4.1 Höherer Schwierigkeitsgrad und folglich gestrecktes Teilnehmerfeld
4.2 Verschiedene Lösungsansätze zum Einbau der Kamera
4.3 Ausblick
5 Quellenverzeichnis
1 Spielbälle in der Soccer Open League des Robocup-Junior
Im Folgenden werden die zwei gängigsten in den Soccer-Ligen des Robocup-Junior verwendeten Ballerkennungstechniken hardware- und softwaretechnisch analysiert, bewertet und miteinander verglichen.
In der „Soccer Open League” des Robocup-Juniors treten zwei Roboter gegen zwei Gegnerische an und verfolgen das Ziel, Tore zu schießen und dabei die weiße Seitenlinie nicht vollständig zu überfahren, da dies Zeitstrafen zufolge hat. Bis zum Jahr 2017 wird in dieser Liga – wie in allen anderen Soccer-Ligen auch – mit einem infrarotausstrahlenden Ball (Ball RCJ-05R, Fa. Elekit) gespielt. Dieser ist unter den Teilnehmern aufgrund der Lichtausstrahlung auch als „aktiver Ball“ bekannt. Vor der Saison des Jahres 2017 erfolgt eine Regeländerung des „SoccerTechnicalCommittee“, das die internationalen Regeln dieser Liga festlegt. Diese Änderung besagt, dass als Spielball ein hohler, orangener Gummiball, der unter den Teilnehmern auch als „passiver Ball“ bekannt ist, verwendet wird. Als Hauptgrund wird genannt, dass die Ballsuche nach einigen Jahren mit demselben Ball keine Herausforderung mehr für die Teams darstellt. Durch diese Änderung wird das Niveau des Teilnehmerfelds durch die neuen Anforderungen angehoben. Für die Erkennung und Verfolgung des aktiven Infrarotballes sind Infrarotsensoren rund um den Roboter notwendig. Davon werden von den Teams zwischen acht und 64 in einem Ring um den Roboter herum einmontiert. Softwaretechnisch gibt ein solcher Werte in Form eines 8-Bit großen, pulsweiten-modulierten Signals (im weiteren Verlauf der Arbeit kurz: PWM) aus, wobei der Wert 255 die maximale Infraroteinstrahlung darstellt. Seit 2017 ist nun lediglich eine Kamera pro Roboter zugelassen. Neben der Aufgabe, diese zu programmieren, den Ball zu erkennen und dessen Position auszugeben, müssen die Teilnehmer auch eines von zahlreichen Modellen aussuchen und dieses in ihre Hardware mechanisch und elektronisch integrieren.
Im weiteren Verlauf dieser Arbeit wird auch auf die Folgen dieser Regeländerung, insbesondere die zahlreichen Lösungsansätze, die diverse Teams entwickeln, eingegangen. Hierzu werden vor allem der Winkel, die Höhe und der Ort als Parameter des Kameraeinbaus behandelt.
Auch ist zu bewerten, ob der Einbau eines Spiegels zur Rundumsicht als moderner Lösungsansatz sinnvoll ist. Dabei gilt zu beachten, welche Vor- und Nachteile ein solcher bietet, welche Herausforderungen zu bewältigen sind und welche Arten von Spiegeln infrage kommen. Schlussendlich wird ein Ausblick gegeben, in welche Richtung sich die Soccer Open League des Robocup-Juniors entwickelt und welche Ballerkennungstechnik sich dabei etabliert.
2 Erkennung des infrarotausstrahlenden Balles
2.1 Hardwaretechnische Aspekte – Einbindung des Infrarotsensors in die Hardware
Der Infrarotball (im weiteren Verlauf der Arbeit kurz: IR für Infrarot) hat folgende in den Regeln (I_IRBall) vorgegebenen Eigenschaften: der Ball sendet IR-Licht im Wellenlängenbereich 920-960nm gepulst in einer 40kHz Trägerfrequenz (Square wave frequency = Rechteckschwingung). Um das IR-Licht in alle Raumrichtungen mit derselben Intensität abzugeben, sollte der Ball superhelle, weitwinklige LEDs haben. Aufgrund der passenden Eigenschaften wird folgender Ball vorwiegend verwendet: Ball RCJ-05R, Fa. Elekit.
Auf dem Markt gibt es eine große Auswahl an verschiedenen IR-Sensoren. Wegen der maximalen Fotoempfindlichkeit bei 940nm langen Lichtwellen, sowie einer Betriebsspannung von 5±0,5V (Spannungsnetz unseres Roboters) entscheiden wir uns für folgendes Modell: SFH5110 (I_IRSensor). Ursprünglich als Empfänger in Fernbedienungen für TV, CD-Spieler, etc. verwendet, hat der Sensor drei Pins: VCC 5V, GND, Signal-OUT.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: IR-Platine
Jeder Sensor wird auf eine eigene Platine gelötet. Um störende Lichteinflüsse zu unterdrücken (Empfindlichkeit des Sensors im Wellenlängenbereich zwischen 930nm und 1100nm, I_IRSensor) verwenden wir ein 3D-gedrucktes Abschirmgehäuse (siehe Abbildung 1).
Als Kompromiss zwischen maximaler Anzahl an Sensoren begrenzt durch die Anzahl der PWM-Anschlüsse des Mainboards und minimaler Störanfälligkeit durch zum Beispiel Induktionen oder Kabelstörungen entscheiden wir uns für acht Sensoren im 45° Intervall (siehe Abbildung 2).
Für die elektrische Anbindung wird auf die Platine eine Klemmleiste gelötet. An diese werden die Kabelleitungen zum Main-Board angeschlossen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Skizze der Sensoranordnung auf dem Roboter mit Ball
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3: Roboter mit Ball im Spielfeld
2.2 Softwaretechnische Aspekte – Auslesen und Auswerten der Sensorwerte
Jeder Sensor liefert eine andauernde Ausgabe als Rechteckspannung, das in der Software als PWM-Signal verwertet wird. Die Werte ergeben sich aus dem duty cycle (=Auslastungsgrad). Dieser stellt das Verhältnis zwischen der Zeit des Stromflusses HIGH (5V) und der Zeit des deaktivierten Stromflusses LOW (0V) pro Periodendauer dar. In Abbildung 4 ist der Stromfluss pro Periodendauer für dieselbe Zeit aktiviert wie deaktiviert, weswegen der duty cycle hier 50% beträgt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 4: Beispiel eines PWM-Signals mit duty cycle 50% (I_IRSensor)
Der duty cycle wird in der praktischen Anwendung als analoger Wert zwischen 0 und 255 in ein 8-Bit-Integer gespeichert. Je höher der Wert, umso näher ist der Ball. Alle acht Sensorwerte werden in unserem Beispiel in das Array (Datenfeld, siehe Kapitel 3.4) int sensorwert8; gespeichert und in jedem Programmdurchlauf aktualisiert.
Zur Auswertung des Signals und somit der Bestimmung der Position des Balles können verschiedene Ansätze verfolgt werden. In unserem Projekt werden zwei verschiedene Methoden verfolgt und verglichen.
Im ersten Fall wird von uns pragmatisch der höchste Wert des Datenfeldes sensorwert, also die Richtung des Sensors mit der höchsten IR-Einstrahlung, als Ballposition angenommen. Der Algorithmus zur Ermittlung des höchsten Wertes erfolgt in einer for-Schleife (Wiederholung mit fester Anzahl).
Im zweiten Ansatz wird im 5° Abstand für jeden Winkel zwischen 0° und 360° die von uns benannte Suchvarianz berechnet. Die Suchvarianz errechnet sich als Summe der Produkte von Sensorwert mal Winkelabstand des Sensors zum betrachteten Winkel für jeden Sensor. Hierfür nutzen wir eine for-Schleife zum Durchzählen aller zu betrachtenden Winkel. Innerhalb dieser Schleife wird mittels einer weiteren for-Schleife jeder Sensor durchgezählt, um dessen Produkt mit der Winkeldifferenz auf die Suchvarianz des aktuellen Winkels zu addieren. Der Winkel mit der niedrigsten Suchvarianz wird als wahrscheinliche Richtung des Balles interpretiert.
Als Unterfunktion zur Berechnung des Abstandes zweier Winkel (in unserer Anwendung: Abstand zwischen betrachtetem Winkel und Winkel des aktuell abgefragten Sensors) nutzen wir die Methode int delta_w (int winkel_ball, int winkel_betrachtet):
Abbildung in dieser Leseprobe nicht enthalten
Zur Ermittlung des Richtungswinkels des Balles wird mit der folgenden Methode die niedrigste Suchvarianz errechnet und der dazugehörige Ballwinkel ausgegeben:
Abbildung in dieser Leseprobe nicht enthalten
Dieser Wert wird für die Ballverfolgung verwendet.
Der Vorteil dieser Methode gegenüber dem pragmatischen Ansatz ist, dass durch Vergleiche mit den Werten der benachbarten Sensoren potentielle Störungen eines Sensors kompensiert werden. Wegen des erhöhten Rechenbedarfs verringert sich jedoch die Reaktionsgeschwindigkeit. Mit beiden Vorgehensweisen erzielen wir im Wettkampf ähnliche Ergebnisse.
[...]
- Quote paper
- Anonymous,, 2020, Ballerkennungstechniken im Roboterfußball. Bewertung und Vergleich, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/1128332