RoboSoccer Gruppe A4 - WS 19/20
Autor: Daniel Klassen & Moritz-Ben-Joe Kühnrich & Anton Baraschenkov
Einleitung
Im Rahmen des Informatikpraktikums im Wintersemester 19/20 haben wir mit Lego Mindstorms NXT einen Roboter konstruiert, gebaut und programmiert, welcher in der Lage ist autonom gegen einen anderen Roboter Fußball zu spielen.
Team
- Anton Baraschenkov
- Entwicklung der Spielstrategie
- Umsetzung der Spielstrategie in NXC
- Anfertigung des Plakats
- Daniel Klassen
- Konstruktion des Roboters
- Entwicklung der Spielstrategie
- Umsetzung der Spielstrategie in NXC
- Anfertigung des Plakats
- Anfertigen des Wiki-Artikels
- Moritz Kühnrich
- Konstruktion des Roboters
- Entwicklung der Spielstrategie
- Umsetzung der Spielstrategie in NXC
- Anfertigen des Wiki-Artikels
Das Spielfeld
Die Maße des Spielfeldes sind 190cm x 129cm. Die Tore befinden sich wie bei einem echten Fußballfeld jeweils an den beiden Enden des Spielfeldes in der Mitte und sind ca 25cm breit.
Hardware
Die Grundlage für den Roboter bietet ein Lego Mindstorms Bausatz den jede Gruppe gestellt bekommen hat. Die finale Konstriktion von Jens ist mit der Zeit entstanden und stammt vom Grundprinzip von unseren ersten Ideen, bis hin zu stetigen Verbesserung. Besonderes Augenmerk liegt bei der Konstruktion auf einem niedrigen Schwerpunkt, einem möglichst kleinen Wendekreis und schnellen Fahrbewegungen.
Die Motoren
Jens steht auf drei Rädern: zwei von getrennten Motoren angetriebenen und einem Stützrad an der Hinterseite. Mittig nach vorne ragt der Schuss- bzw. Fangmotor, der bei der Ballsuche kontinuierlich dreht um den Ball zu fangen, und ihn zu schießen, wenn der Ball gefangen wurde. Bei den Motoren handelt es sich um Servomotoren. Diese sind Elektromotoren, die mit einem inkremental Sensor zu Positionserkennung der Motorwelle ausgestattet sind.
Der Kompasssensor
Möglichst weit weg von den Motoren, liegt der Kompasssensor, der zur Orientierung von Jens dient. Der Kompasssensor sollte deshalb so weit weg von Magnetfeldquellen wie möglich sein, weil er nach dem magnetoresistiven Prinzip arbeitet. Das bedeutet, dass intern durch eine Änderung des außen angelegten Magnetfelds, eine Änderung des Messwiderstandes geschieht. Dies ist auch erwünscht, allerdings im Idealfall ausschließlich durch das Erdmagnetfeld und nicht durch äußere Störeinflüsse. Er gibt einen Digitalen Messwert zwischen 0 und 359 aus. 0 entspricht der Himmelsrichtung Norden, 90 Osten, 180 Süden und 270 Westen.
Der Infrarotsensor
Direkt darunter, auf Höhe des Balläquators ist der Infrarotsensor angebracht, der die Richtung und die Stärke des vom Ball ausgesendeten Infrarotsignals erkennt. Intern wird das Feld, indem der Sensor das Infrarot Signal des Balls empfangen kann in 9 Bereiche aufgeteilt, sodass Jens laut Programm immer versucht den Ball in Bereich 5 direkt vor sich zu haben.
Der Infrarotsensor
Direkt darunter, auf Höhe des Balläquators ist der Infrarotsensor angebracht, der die Richtung und die Stärke des vom Ball ausgesendeten Infrarotsignals erkennt. Intern wird das Feld, indem der Sensor das Infrarot Signal des Balls empfangen kann in 9 Bereiche aufgeteilt, sodass Jens laut Programm immer versucht den Ball in Bereich 5 direkt vor sich zu haben. so wars erstmal
Ultraschallsensor
Der Ultraschallsensor befindet sich an der Rückseite und misst die Distanz nach links zum Spielfeldrand. Intern ist diese Distanz dafür um nach dem Ballfang eine genauere Ausrichtung zum Tor zu berechnen und letztendlich auszuführen. Die Distanzmessung funktioniert dabei so, dass der Ultraschallsensor periodisch Ultraschallwellen aussendet und mittels der Zeit, die die Wellen brauchen um vom reflektierten Objekt zurück zum Sensor zu gelangen und der Schallgeschwindigkeit, die Entfernung misst
Spielstrategie
Mithilfe des Programms "PaP-Designer" haben wir den groben Ablauf unserer Spielstrategie visualisiert:
Umsetzung in NXC
Wir haben uns an den PaPs orientiert die wir angefertigt haben und darauf hin zur Übersichtlichkeit den Code in einzelne Subroutine gegliedert.
→ zurück zum Hauptartikel: Informatikpraktikum WS 19/20