RoboSoccer Gruppe C1 - WS 17/18
Autor: Matthias Stork
Einleitung
Teammitglieder
In diesem Abschnitt werden kurz die Teammitglieder, die an diesem Projekt beteiligt waren und ihre Tätigkeiten vorgestellt.
- Sebastian Hoffmann:
- Programmierung
- Videoschnitt
- Benjamin Kran
- Bauplan Lego Designer
- Programmablaufplan
- Matthias Stork
- Wiki-Artikel
- Plakat
Ziel des Praktikums
Aufgabe und Ziel des Praktikums war es einen LEGO NXT Roboter so zu konstruieren und zu programmieren, dass er nach den Regeln Regeln ein Fussballmatch gegen einen anderen NXT Roboter spielen kann
Das Spielfeld
- Länge: 183cm
- Breite: 122cm
- Torbreite: 45cm
- Torhöhe: 14cm
Hardware
Aus der Vielfalt der zur Verfügung stehenden Sensoren verwendet unser Roboter den Tast-, Ultraschall-, Infrarot und Kompasssensor.
Insgesamt sind am Roboter drei Servomotoren verbaut. Hierzu dienen zwei der Fortbewegung und einer zum Schießen des Balls.
Spielstrategie
Werteausgabe
(Screenshot)
Zur Überprüfung der aktuellen Werte zeigt diese Funktion sie auf dem Display des NXT an.
- Bereich (Infrarotsensor)
- Entfernung zum nächsten Objekt (Ultraschallsensor)
- Taster gedrückt (ja, nein)
- Signalstärke des empfangenen Infrarotsignals
- Himmelsrichtung in Grad (Kompassensor)
Ballverfolgung
(Screenshot)
Vergleicht die Signalstärken aus den jeweiligen Bereichen und fährt schließlich in die Richtung, des stärksten Signals.
Ballschuss
(Screenshot vom Ballschuss)
Überprüft anhand des Infrarotsignals, ob der Ball in erreichbarer Nähe ist. Ist dies der Fall greift er den Ball, bleibt stehen sobald der Taster getastet wurde und richtet sich nach Westen aus. Dann schießt er den Ball.
Software
Zur Realisierung des Konzepts und Implementierung der Unterprogramme und des Hauptprogramms wurde das BrixC Command Center (kurz: BrixCCC) verwendet. Dieses benutzt die Programmiersprache NXC (Not eXactly C). Da an dieser Stelle eine vollständige Präsentation des Spielprogramms nicht vorgesehen ist, werden „nur“ die Befehle zur Ansteuerung der Motoren sowie Sensoren vorgestellt. …OnFwd(OUT_ ,75); OnRev(OUT_ ,75); OnFwdSync(OUT_ ,75, 50); OnFwdReg(OUT_ ,75,Regmode) Break(OUT_ ) Float(OUT_ )
Unterabschnitt
- Nutzen Sie Aufzählungen
- mit verschiedenen Schachtelungen
- und so weiter
- zweite Ebene
- mit erneuter Unterebene
Bilder
Bauen Sie Bilder ein, am besten mit darin gekennzeichneten Stellen, die Sie dann im Text erklären.
Tabellen
Eine tolle Tabelle ist hier dargestellt.
Spalte 1 | Spalte 2 | Spalte 3 |
---|---|---|
blabla | sowieso | sowieso |
test | sowieso | test1 |
Formatierung
Nutzen Sie zur Formatierung Beispiele, z. B. aus dem weltbekannten Wikipedia selbst (das ist die gleiche Syntax!) oder anderer Hilfeseiten wie z. B. [2].
Zusammenfassung
Ausblick
Was kann/muss noch verbessert werden?