RoboSoccer Gruppe B5 - WS 18/19: Unterschied zwischen den Versionen
(22 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Einleitung == | == Einleitung == | ||
In diesem Wiki-Arktikel wird näher auf unseren Roboter, die Realisierung der Aufgaben und Lösungsansätze für Probleme eingagangen. | |||
Das Ziel des Informatikpraktikums ist es einen Lego Mindstorms NXT mit BricksCC so zu programmieren, dass er ein Fußballturnier, nach dem Regelwerk des RoboSoccer, gegen die Roboter der anderen Gruppen spielen, und bestenfalls auch gewinnen kann. | |||
== Regeln == | |||
Die Regeln nach denen der Roboter zu spielen hat, sind klar definiert. | |||
Spielablauf | |||
Die | Es treten alle Gruppen im Robo-Soccer gegeneinander an. Gespielt wird nach dem KO-System. | ||
Gegner werden zu Beginn ausgelost. | |||
Es ergeben sich 4x Achtelfinale, 2x Halbfinale und 1x Finale, d.h. 7 Matches. | |||
Spielzeit pro Match fasst insgesamt 10 Minuten. Es werden 2 Runden mit jeweils 5 Minuten gespielt. Die Halbzeitpause dazwischen dauert 1 Minuten. | |||
Es gibt eine Verlängerung bei "unentschieden" bis das erste Tor gefallen ist. | |||
Anstoß | |||
Ausgangsposition der Roboter beim Anstoß ist die eigene Torlinie mit gleichem Abstand zur Mitte. Der Ball befindet sich in der Mitte. | |||
Nach einem Tor starten die Roboter in der Ausgangsposition, doch der Gegner erhält den Ball. Der Ball wird direkt vor den gegnerischen Roboter gelegt. | |||
Nach Halbzeit werden die Torseiten gewechselt. Ausgangsposition der Roboter beim Anstoß ist die eigene Torlinie mit gleichem Abstand zur Mitte. | |||
Der Ball befindet sich in der Mitte. | |||
Ballbesitz | |||
Der Ballbesitz ist auf 5 Sekunden begrenzt. Im Ballbesitz dar sich der Roboter zum Schuss ausrichten. | |||
Das Fahren beim Ballbesitz ist nicht erlaubt. | |||
Torschüsse gelten nur, wenn der Roboter den Ball geschossen hat. Den Ball in das Tor fahren ist nicht erlaubt. Der Roboter darf beim Torschuss nicht | |||
hinter die gegnerische Torlinie fahren. | |||
Wenn sich ein Roboter, der im Ballbesitz ist, "festgefahren" hat, d.h. länger als 5 Sekunden keine Bewegung ausführen kann, bekommt der Gegner den Ball. | |||
Siegbedingung | |||
Sieger ist, wer nach Ende der Spielzeit des Matches die meisten Tore geschossen hat. | |||
Wenn es nach Ablauf der Spielzeit unentschieden steht, wird so lange weitergespielt, bis das erste Tor gefallen ist. Dieses Team ist Sieger des Matches. | |||
Fouls | |||
Wenn sich die Roboter ineinander verhaken oder sich umwerfen, werden die Gegner getrennt und in die Ausgangsposition gestellt und der Ball in die Mitte | |||
gelegt (gemeinsames Foul). | |||
Wenn ein Roboter ohne gegnerischen Einfluss umkippt oder sich verhakt, werden die Roboter in die Ausgangsposition gestellt und der Gegner bekommt den | |||
Ball (einseitiges Foul). | |||
Als Foul zählt, wenn der Roboter beim Torschuss hinter die gegnerische Torlinie fährt (einseitiges Foul). | |||
Als Foul zählt wenn sich ein Roboter, der im Ballbesitz ist, "festgefahren" hat, d.h. länger als 5 Sekunden keine Bewegung ausführen kann (einseitiges | |||
Foul). | |||
Wenn ein Roboter 3 Fouls angesammelt hat, bekommt er eine Auszeit von 10 Sekunden. In der Zeit darf der andere Roboter sich allein auf dem Spielfeld | |||
bewegen und Tore schießen. | |||
== Gruppenmittglieder == | |||
Die Mitglieder der Gruppe haben sich unterschiedlichen Themen bei der Gestaltung des Roboters zugewandt. | |||
#Tobias Schupp | |||
# | #*Programmierung | ||
#* | #*Gestaltung des Plakats | ||
#* und | #Berta Nissen | ||
# | #*Programmierung | ||
#* | #*Fotos und Dokumentation | ||
#Aaron Pälmke | |||
#*Programmierung | |||
#*Wiki-Artikel | |||
== Software == | |||
Der Roboter wurde, für das Turnier, mit dem Bricx Command Center, kurz BricxCC oder BCC, programmiert. Im Laufe des Informatikpraktikums wurde die Programmiersprache in der Gruppe erarbeitet, sodass jedes Mitglied der Gruppe über die nötigen Kenntnisse verfügt, um den Roboter selbst zu Programmieren, oder an ihm weiter zu arbeiten. Es wurden jedoch auch andere Sprachen im Laufe des Praktikums verwendet. | |||
=== Verwendete Programmiersprachen === | |||
*BricxCC (zur Programmierung ab dem dritten Praktikumstermin) | |||
*LEGO Mindstorms EV3 (zur Programmierung bis zum dritten Praktikumstermin) | |||
*LEGO Mindstorms NXT 2.0-Software (zur Programmierung bis zum dritten Praktikumstermin) | |||
*HiTechnic Add-Ons (Add-Ons für HiTechnic Produkte in NXT 2.0) | |||
*LEGO Digital Designer (zur Erstellung der Bauanleitung) | |||
== Hardware == | |||
Der Roboter wurde mit einem Satz Lego Mindstorms education gebaut. Außerdem wurden Sensoren verwendet, um dem Ball folgen zu können. | |||
*LEGO MINDSTORMS EDUCATION (Nr. 9797) | |||
*LEGO MINDSTORMS EDUCATION (Nr. 9695) | |||
Diese beiden Mindstorms Sets zusammen mit den Sensoren bilden den gesamten Aufbau des Roboters. | |||
=== Verwendete Sensoren === | |||
#Infrarot Sensor | |||
#Kompasssensor | |||
#Tastsensor | |||
==== Infrarot Sensor ==== | |||
Der Infrarot Sensor sucht nach dem Ball. Die Lokalisierung des Balls erfolgt, indem der Sensor die ausgehenden Infrarot Signale die der Ball aussendet ortet. Je nachdem in welchem Erfassungsbereich des Sensors sich der Ball befindet, lenkt der Roboter, oder fährt gerade auf den Ball zu. | |||
==== Kompasssensor ==== | |||
Der Kompasssensor kann über das Erdmagnetfeld die Himmelsrichtungen bestimmen. Dies hilft dabei, die Richtung des gegnerischen Tores zu erfassen und den Ball in ebendiese Richtung zu schießen. | |||
==== Tastsensor ==== | |||
Über den Tastsensor wird abgefragt, ob der Roboter den Ball gefangen hat. Falls der Tastsensor nicht auslöst, fährt der Roboter weiter in Richtung des Balls und versucht ihn zu fangen. | |||
== Dokumentation == | |||
=== Bilder === | === Bilder === | ||
[[Datei:NXeTerminaaate_O.jpg|300px|thumb|right|]] | |||
[[Datei: | |||
Hier ist der Roboter in der Frontansicht dargestellt. Man hat freie Sicht auf den Rotor, der dazu dient den Ball zu fangen, gegen den Tastsensor zu drücken und dann auch wieder in Richtung des gegnerischen Tores zu schießen. | |||
=== | === Bauanleitung === | ||
[[Medium:Bauanleitung-compressed.pdf|Bauanleitung-compressed.pdf]] | |||
. | |||
== Fazit == | |||
Die Aufgaben die im Informatikpraktikum gestellt wurden konnten immer bearbeitet werden. Es mussten zwar für einige Aufgaben das Tutorium besucht werden, aber insgesamt konnte ein deutlicher Lernerfolg festgestellt werden. Das einzige was jetzt noch bleibt ist das Roboterturnier, das hoffentlich erfolgreich abgeschlossen werden kann. | |||
. | |||
== Ausblick == | == Ausblick == | ||
Bei dem Roboter kann man natürlich noch einiges verbessern, zum Beispiel: | |||
Konstruktiv: | |||
*die Lagerung des hinteren, beweglihen Rads. Diese ist noch etwas wackelig und schleift manchmal über den Boden. | |||
Programm: | |||
*Implementierung der Ortung, wo befinde ich mich auf dem Spielfeld. | |||
*Agieren wenn Festgefahren | |||
*Anpssung der Geschwindigkeit | |||
. | |||
== Literaturverzeichnis == | == Literaturverzeichnis == | ||
<references /> | <references /> | ||
*Bricx Command Center - http://bricxcc.sourceforge.net/ | |||
*LEGO MINDSTORMS Education EV3 - https://education.lego.com/de-de/downloads/mindstorms-ev3 | |||
*LEGO® MINDSTORMS® NXT 2.0 - https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download | |||
*LEGO Digital Designer 4.3 - http://ldd.lego.com/de-de | |||
*Hilfeseite des Wikimedia-Projekts - http://meta.wikimedia.org/wiki/Help:Editing/de | |||
*HiTechnic NXT Compass Sensor - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/ | |||
*HiTechnic NXT IRSeeker - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/ | |||
*Infrared Electronic Ball - http://modernroboticsinc.com/infrared-electronic-ball/ | |||
*Einführung in die Programmierung mit NXC - http://www.brgkepler.at/~robotik/home/documents/BRG_Kepler_Tutorial_NXC.pdf | |||
*Buch "Roboter programmieren mit NXC für LEGO Mindstorms NXT" - https://www.daniel-braun.com/buch/roboter-programmieren-mit-nxc/ | |||
*Buch "Programmierung LEGO NXT Roboter mit NXC" von Daniele Benedettelli - https://gym-leibnitz.lima-city.de/robotik/wp-content/uploads/2016/01/NXC_Tutorial_DE.pdf | |||
== == | |||
→ zurück zum Hauptartikel: [[RoboSoccer_WS_18/19|Informatikpraktikum WS 18/19]] |
Aktuelle Version vom 4. Februar 2019, 10:53 Uhr
Einleitung
In diesem Wiki-Arktikel wird näher auf unseren Roboter, die Realisierung der Aufgaben und Lösungsansätze für Probleme eingagangen. Das Ziel des Informatikpraktikums ist es einen Lego Mindstorms NXT mit BricksCC so zu programmieren, dass er ein Fußballturnier, nach dem Regelwerk des RoboSoccer, gegen die Roboter der anderen Gruppen spielen, und bestenfalls auch gewinnen kann.
Regeln
Die Regeln nach denen der Roboter zu spielen hat, sind klar definiert.
Spielablauf Es treten alle Gruppen im Robo-Soccer gegeneinander an. Gespielt wird nach dem KO-System. Gegner werden zu Beginn ausgelost. Es ergeben sich 4x Achtelfinale, 2x Halbfinale und 1x Finale, d.h. 7 Matches. Spielzeit pro Match fasst insgesamt 10 Minuten. Es werden 2 Runden mit jeweils 5 Minuten gespielt. Die Halbzeitpause dazwischen dauert 1 Minuten. Es gibt eine Verlängerung bei "unentschieden" bis das erste Tor gefallen ist. Anstoß Ausgangsposition der Roboter beim Anstoß ist die eigene Torlinie mit gleichem Abstand zur Mitte. Der Ball befindet sich in der Mitte. Nach einem Tor starten die Roboter in der Ausgangsposition, doch der Gegner erhält den Ball. Der Ball wird direkt vor den gegnerischen Roboter gelegt. Nach Halbzeit werden die Torseiten gewechselt. Ausgangsposition der Roboter beim Anstoß ist die eigene Torlinie mit gleichem Abstand zur Mitte. Der Ball befindet sich in der Mitte. Ballbesitz Der Ballbesitz ist auf 5 Sekunden begrenzt. Im Ballbesitz dar sich der Roboter zum Schuss ausrichten. Das Fahren beim Ballbesitz ist nicht erlaubt. Torschüsse gelten nur, wenn der Roboter den Ball geschossen hat. Den Ball in das Tor fahren ist nicht erlaubt. Der Roboter darf beim Torschuss nicht hinter die gegnerische Torlinie fahren. Wenn sich ein Roboter, der im Ballbesitz ist, "festgefahren" hat, d.h. länger als 5 Sekunden keine Bewegung ausführen kann, bekommt der Gegner den Ball. Siegbedingung Sieger ist, wer nach Ende der Spielzeit des Matches die meisten Tore geschossen hat. Wenn es nach Ablauf der Spielzeit unentschieden steht, wird so lange weitergespielt, bis das erste Tor gefallen ist. Dieses Team ist Sieger des Matches. Fouls Wenn sich die Roboter ineinander verhaken oder sich umwerfen, werden die Gegner getrennt und in die Ausgangsposition gestellt und der Ball in die Mitte gelegt (gemeinsames Foul). Wenn ein Roboter ohne gegnerischen Einfluss umkippt oder sich verhakt, werden die Roboter in die Ausgangsposition gestellt und der Gegner bekommt den Ball (einseitiges Foul). Als Foul zählt, wenn der Roboter beim Torschuss hinter die gegnerische Torlinie fährt (einseitiges Foul). Als Foul zählt wenn sich ein Roboter, der im Ballbesitz ist, "festgefahren" hat, d.h. länger als 5 Sekunden keine Bewegung ausführen kann (einseitiges Foul). Wenn ein Roboter 3 Fouls angesammelt hat, bekommt er eine Auszeit von 10 Sekunden. In der Zeit darf der andere Roboter sich allein auf dem Spielfeld bewegen und Tore schießen.
Gruppenmittglieder
Die Mitglieder der Gruppe haben sich unterschiedlichen Themen bei der Gestaltung des Roboters zugewandt.
- Tobias Schupp
- Programmierung
- Gestaltung des Plakats
- Berta Nissen
- Programmierung
- Fotos und Dokumentation
- Aaron Pälmke
- Programmierung
- Wiki-Artikel
Software
Der Roboter wurde, für das Turnier, mit dem Bricx Command Center, kurz BricxCC oder BCC, programmiert. Im Laufe des Informatikpraktikums wurde die Programmiersprache in der Gruppe erarbeitet, sodass jedes Mitglied der Gruppe über die nötigen Kenntnisse verfügt, um den Roboter selbst zu Programmieren, oder an ihm weiter zu arbeiten. Es wurden jedoch auch andere Sprachen im Laufe des Praktikums verwendet.
Verwendete Programmiersprachen
- BricxCC (zur Programmierung ab dem dritten Praktikumstermin)
- LEGO Mindstorms EV3 (zur Programmierung bis zum dritten Praktikumstermin)
- LEGO Mindstorms NXT 2.0-Software (zur Programmierung bis zum dritten Praktikumstermin)
- HiTechnic Add-Ons (Add-Ons für HiTechnic Produkte in NXT 2.0)
- LEGO Digital Designer (zur Erstellung der Bauanleitung)
Hardware
Der Roboter wurde mit einem Satz Lego Mindstorms education gebaut. Außerdem wurden Sensoren verwendet, um dem Ball folgen zu können.
- LEGO MINDSTORMS EDUCATION (Nr. 9797)
- LEGO MINDSTORMS EDUCATION (Nr. 9695)
Diese beiden Mindstorms Sets zusammen mit den Sensoren bilden den gesamten Aufbau des Roboters.
Verwendete Sensoren
- Infrarot Sensor
- Kompasssensor
- Tastsensor
Infrarot Sensor
Der Infrarot Sensor sucht nach dem Ball. Die Lokalisierung des Balls erfolgt, indem der Sensor die ausgehenden Infrarot Signale die der Ball aussendet ortet. Je nachdem in welchem Erfassungsbereich des Sensors sich der Ball befindet, lenkt der Roboter, oder fährt gerade auf den Ball zu.
Kompasssensor
Der Kompasssensor kann über das Erdmagnetfeld die Himmelsrichtungen bestimmen. Dies hilft dabei, die Richtung des gegnerischen Tores zu erfassen und den Ball in ebendiese Richtung zu schießen.
Tastsensor
Über den Tastsensor wird abgefragt, ob der Roboter den Ball gefangen hat. Falls der Tastsensor nicht auslöst, fährt der Roboter weiter in Richtung des Balls und versucht ihn zu fangen.
Dokumentation
Bilder
Hier ist der Roboter in der Frontansicht dargestellt. Man hat freie Sicht auf den Rotor, der dazu dient den Ball zu fangen, gegen den Tastsensor zu drücken und dann auch wieder in Richtung des gegnerischen Tores zu schießen.
Bauanleitung
.
Fazit
Die Aufgaben die im Informatikpraktikum gestellt wurden konnten immer bearbeitet werden. Es mussten zwar für einige Aufgaben das Tutorium besucht werden, aber insgesamt konnte ein deutlicher Lernerfolg festgestellt werden. Das einzige was jetzt noch bleibt ist das Roboterturnier, das hoffentlich erfolgreich abgeschlossen werden kann.
.
Ausblick
Bei dem Roboter kann man natürlich noch einiges verbessern, zum Beispiel:
Konstruktiv:
- die Lagerung des hinteren, beweglihen Rads. Diese ist noch etwas wackelig und schleift manchmal über den Boden.
Programm:
- Implementierung der Ortung, wo befinde ich mich auf dem Spielfeld.
- Agieren wenn Festgefahren
- Anpssung der Geschwindigkeit
.
Literaturverzeichnis
- Bricx Command Center - http://bricxcc.sourceforge.net/
- LEGO MINDSTORMS Education EV3 - https://education.lego.com/de-de/downloads/mindstorms-ev3
- LEGO® MINDSTORMS® NXT 2.0 - https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download
- LEGO Digital Designer 4.3 - http://ldd.lego.com/de-de
- Hilfeseite des Wikimedia-Projekts - http://meta.wikimedia.org/wiki/Help:Editing/de
- HiTechnic NXT Compass Sensor - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/
- HiTechnic NXT IRSeeker - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/
- Infrared Electronic Ball - http://modernroboticsinc.com/infrared-electronic-ball/
- Einführung in die Programmierung mit NXC - http://www.brgkepler.at/~robotik/home/documents/BRG_Kepler_Tutorial_NXC.pdf
- Buch "Roboter programmieren mit NXC für LEGO Mindstorms NXT" - https://www.daniel-braun.com/buch/roboter-programmieren-mit-nxc/
- Buch "Programmierung LEGO NXT Roboter mit NXC" von Daniele Benedettelli - https://gym-leibnitz.lima-city.de/robotik/wp-content/uploads/2016/01/NXC_Tutorial_DE.pdf
→ zurück zum Hauptartikel: Informatikpraktikum WS 18/19