RoboSoccer Gruppe A1 - WS 17/18
In dem Modul Informatik 1 des Studiengangs Mechatronik ist ein Informatikpraktikum vorgesehen. Im Praktikum wurden Gruppen von bis zu 3 Personen eingeteilt, die sich gemeinsam mit dem Thema RoboSoccer beschäftigt haben. Die Aufgabe bestand darin, einen Roboter mithilfe von Lego Mindstorms zu konstruieren, welcher in der Lage ist, Fussball spielen zu können.
Team und Aufgabenverteilung
Jonas Wrede: Programmierung, Dokumentation, Lego Digital Designer
Dominic Mähling: Programmierung, Konstruktion des Fahrzeugs, Lego Digital Designer
Kevin Hustedt: Programmierung, Dokumentation, Konstruktion des Fahrzeugs
Hardware
Als erstes musste ein Fahrzeug mit den Bauteilen von Lego Mindstorms konstruiert werden, um auf dem kleinen Spielfeld optimal spielen zu können. Die Konstruktion sollte möglichst klein und wendig werden. Zum Steuern des Roboters und finden des Balls werden verschiedene Sensoren benutzt:
Infrarotsensor
Der Infrarotsensor registriert die Infrarotquellen in einem Winkel von 135°. Dabei sind die 135° in 9 Teilbereiche eingeteilt, die jeweils die Stärke des Infrarotsignals angeben. Befindet sich in einem Bereich kein Infrarotsignal wird der Wert 0 zurückgegeben. Bei dem Roboter wird der Infrarotsensor für das auffinden des Balls genutzt. Er ist in der Fangvorrichtung und auf Höhe des Balls montiert.
Touchsensor
Der Tastsensor sitzt bei diesem Roboter in der Fangvorrichtung für den Ball. Dieser soll registrieren ob der Ball gefangen wurde und steuert damit den Programmablauf.
Kompasssensor
Der Kompasssensor liefert Richtungsinformationen in elektronischer Form. Dabei Orientiert sich dieser am Erdmagnetfeld. Der von uns genutzte Kompasssensor von der Firma HiTechnic-Sensors hat eine Winkelauslösung von 0° bis 359°. Im Programm wird diese Information genutzt, um den Ball ins Richtige Tor zu schießen, also sich auf dem Spielfeld zu orientieren. Der Kompass ist möglichst weit entfernt von den Motoren montiert, damit das Magnetfeld nicht gestört und verfälscht wird.
Aktuatoren
Bei diesem Roboter werden drei Elektromotoren genutzt. Zwei für den Antrieb der Räder sowie einen weiteren für die Fangvorrichtung. Bei den Motoren handelt es sich um LEGO-Servomotoren, die einen Elektromotor sowie einen Rotationssensor integriert haben. Die Servomotoren können mit verschiedenen Geschwindigkeiten betrieben werden sowie mithilfe des Sensors genau ausgerichtet werden.
Das Herzstück des Roboters ist der NXT-Baustein mit Display. Hier sind alle Sensoren und Motoren angeschlossen. Auf dem NXT werden die Programme geladen und ausgeführt.
Fahrzeugparameter
Parameter | Wert |
---|---|
Länge in mm | 310 |
Breite in mm | 148 |
Höhe in mm | 247 |
Spurweite in mm | 125 |
Breite Fangvorichtung in mm | 70 |
Breite Fangarm in mm | 56 |
Software
Zu Beginn des Praktikums haben wir den Roboter mit NXT-G programmiert, um uns mit den Möglichkeiten des Systems vertraut zu machen. NXT-G ist eine grafische Programmierumgebung mit der man, mithilfe von vorgefertigten Elementen, Programme einfach entwerfen kann.
Im weiteren Verlauf des Praktikums sind wir auf NXC umgestiegen. NXC ist eine an C angelegte Programmiersprache. Als Programmierumgebung haben wir das Programm BricxCC genutzt. Das Bricx Command Center sieht aus wie ein gewöhnlicher Texteditor, beinhaltet aber Funktionen zum Kompilieren und Debuggen.
Funktion
Der Roboter muss, um Fussball spielen zu können, einige Funktionen abarbeiten, um ein Tor zu erzielen.
Ballsuche: In dieser Funktion sucht der Roboter den Ball, fährt auf den Ball zu und fängt ihn mithilfe der Fangvorrichtung.
Zielen: In dieser Funktion richtet sich der Roboter mit dem gefangenen Ball auf das Tor aus, indem er sich so lange dreht, bis die Richtung des Roboters mit der Richtung des Tores überein stimmt.
Schießen: In dieser Funktion wird der Motor der Fangvorrichtung invertiert und mit maximaler Kraft rotiert, um den Ball in die Richtung des Tores zu befördern.