RoboSoccer Gruppe A5 - WS 17/18
Autoren und Gruppenmitglieder: Rina Muçaj, Jan Pinter und Levin Baumeister
Einleitung
Die Aufgabe bestand darin einen Lego Mindstorms NXT Robosoccer zu konstruieren und zu programmieren,sodass er nach den gegebenen Regelwerk Fußball spielen kann. Dies geschieht im Rahmen des Informatikpraktikum I, WS 17/18 mit Professor Ulrich Schneider. Weitere Informationen unter Informatikpraktikum WS 17/18 (hier ist auch die genaue Aufgabenstellung zu finden) und Regelwerk RoboSoccer 2018.
Gruppenmitglieder und ihre Aufgaben
Rina Muçaj
- Konstruktion des Roboters
- Bearbeitung der inhaltlichen Fragen der jeweiligen Praktikumstermine
- Entwurf des Werbeplakats
- Verfassen des HSHL-Wiki-Artikels
Jan Pinter
- Konstruktion des Roboters
- Entwicklung der Spielstrategie
- Umsetzung der Spielstrategie in Quellcode
- Entwurf des Werbeplakats
- Erstellung des Videos
Levin Baumeister
- Konstruktion des Roboters
- Erstellung des Bauplans
- Entwurf des Werbeplakats
- Verfassen des HSHL-Wiki-Artikels
Verwendete Softwaretools
- Bricx Command Center[1] mit der Programmiersprache NXC[2] (Not eXactly C, für die Programmierung der Spielstrategie)
- LEGO MINDSTORMS Education EV3[3] (für die Programmierung zu Beginn des Praktikums)
- LEGO® MINDSTORMS® NXT 2.0[4] (für die Programmierung zu Beginn des Praktikums)
- LEGO Digital Designer 4.3[5] (zur Erstellung des Bauplans des Roboters)
- PapDesigner[6] (zur Erstellung des Programmablaufplans nach DIN 66001)
- GIMP[7] (zur Erstellung des Werbeplakats)
- muvee Reveal Encore 2018[8] (zur Erstellung des YouTube-Videos)
- Captura Version 6.0.1[9] (zur Erstellung des YouTube-Videos)
- Hilfeseite des Wikimedia-Projekts[10] (Hilfe bei der Erstellung des Wiki-Artikels)
Verwendete Hardware
- LEGO MINDSTORMS NXT Education (Set 9797)[11]
- LEGO Education Resource Set (Set 9695)[12]
- HiTechnic NXT Compass Sensor[13]
- HiTechnic NXT IRSeeker[14]
- HiTechnic Infrared Electronic Ball[15]
Das Lego Set 9797 bildet zusammen mit dem Lego Set 9695 die Grundlage des Roboters, inklusive der Motoren, der Steuerungseinheit (NXT Brick) und der Basis-Sensoren (Tastsensor, Ultraschallsensor, Farbsensor und Tonsensor). Damit der Roboter jedoch in der Lage ist Fußball spielen zu können, werden der HiTechnic NXT Compass Sensor (Erkennung der Torrichtung) und der HiTechnic NXT IRSeeker (Erkennung des IR-Balls) verwendet.
Die genaue Zusammensetzung der Hardware ist der Bauanleitung zu entnehmen: Datei:A5 Bauanleitung.pdf.
Bei der Entwicklung der Hardwarezusammensetzung standen folgende Punkte im Vordergrund:
- Kompakte und solide Bauweise
- Kleiner Wendekreis durch mittlere Position der Antriebsräder
- Niedriger Schwerpunkt (in Achsennähe)
- Intelligente Greif- und Schussvorrichtung
-
Erste Version des Roboters
-
Detailansicht des HiTechnic NXT IRSeekers im Einbau
-
Seitenansicht
-
Seitenansicht im Detail
-
Greifarme
Spielstrategie
Bei der Entwicklung der Spielstrategie standen folgende Punkte in Vordergrund:
- Dynamische Fahrt zum Ball
- Schnellst mögliches Erkennen der unmittelbaren Ballnähe
- Sicheres Greifen des Balls, mit mehrmaliger Überprüfung und Absicherung
- Kürzester Ausrichtungsweg zum gegnerischen Tor
- Sicherer und schneller Schuss in Richtung des gegnerischen Tors
- Erkennung einer Blockade
PAP Diagramme
Motor A, Motor B: Antriebsmotoren
Motor C: Fang- und Schussmotor
-
Hauptprogramm
-
Unterprogramm Suchen
-
Unterprogramm Ballfang
-
Unterprogramm Zuruecksetzen
-
Unterprogramm Torschuss
Umsetzung in NXC
Befehle siehe Einführung in die Programmierung mit NXC[16],Programmierung LEGO NXT Roboter mit NXC [17] und NXC Programmer's Guide [18].
Main-Funktion aus dem Quellcode:
task main() { SetSensorLowspeed(IN_4); SetSensorLowspeed(IN_2); SetSensorTouch(S1); TextOut(0, LCD_LINE1, "Links - Osten"); TextOut(0, LCD_LINE2, "Rechts - Westen"); do{ //Linker oder Rechter Kopf zur Torwahl if(ButtonPressed(BTNLEFT, true)) {tor=0; starten=true;} if(ButtonPressed(BTNRIGHT, true)) {tor=1; starten=true;} }while(starten==false) while(true) //Endlosschleife { Suchen(); } }
Werbeplakat
Das Werbeplakat des Roboters "ROBO FIGHTER":
YouTube-Video
-
Video zum Roboter Robo Fighter
Zusammenfassung
Lerneffekt
- Programmierung eines mechatronischen Systems
- Vertiefung der Programmierkenntnisse mit der Sprache C
- Zusammenhänge zwischen den Bauteilen (Sensoren, Aktoren) verstehen
Ausblick
Der Roboter "Robo Fighter" wird beim RoboSoccer WS 17/18 - Tunier gewinnen.
Literaturverzeichnis
- ↑ Bricx Command Center - http://bricxcc.sourceforge.net/
- ↑ NXC - https://de.wikipedia.org/wiki/Not_eXactly_C
- ↑ 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
- ↑ PapDesigner - http://friedrich-folkmann.de/papdesigner/Hauptseite.html/
- ↑ GIMP - https://www.gimp.org/
- ↑ muvee Reveal Encore 2018 - https://www.muvee.com/
- ↑ Captura Version 6.0.1 - http://mathewsachin.github.io//
- ↑ Hilfeseite des Wikimedia-Projekts - http://meta.wikimedia.org/wiki/Help:Editing/de
- ↑ http://robotsquare.com/2012/02/18/understanding-nxt-versions/
- ↑ http://www.nxtprograms.com/help/parts/9797.html
- ↑ 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
- ↑ Programmierung LEGO NXT Roboter mit NXC - https://gym-leibnitz.lima-city.de/robotik/wp-content/uploads/2016/01/NXC_Tutorial_DE.pdf
- ↑ NXC Programmer's Guide - http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/index.html
→ zurück zum Hauptartikel: Informatikpraktikum WS 17/18