RoboSoccer Gruppe A5 - WS 17/18: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(216 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:


'''Autoren und Gruppenmitglieder:''' [[Benutzer:Rina_Mucaj|Rina Muçaj]], [[Benutzer:Jan_Pinter|Jan Pinter]] und [[Benutzer:Levin_Baumeister|Levin Baumeister]]  
'''Autoren und Gruppenmitglieder:''' [[Benutzer:Rina_Mucaj|Rina Muçaj]], [[Benutzer:Jan_Pinter|Jan Pinter]] und [[Benutzer:Levin_Baumeister|Levin Baumeister]]  
[[Datei:A5 Schrift.png|700px|right|thumb|Name des Roboters]]


== Einleitung ==
== Einleitung ==
Konstruieren und Programmierung eines Lego Mindstorms NXT Robosoccers, Informatikpraktikum I, WS 17/18 von Jan Pinter, Levin Baumeister und Rina Muçaj.
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 [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]] (hier ist auch die genaue Aufgabenstellung zu finden) und [[Regelwerk_RoboSoccer_2018|Regelwerk RoboSoccer 2018]].
 
== Gruppenmitglieder und ihre Aufgaben ==
 
=== [[Benutzer:Rina_Mucaj|Rina Muçaj]] ===
* Konstruktion des Roboters
* Bearbeitung der inhaltlichen Fragen der jeweiligen Praktikumstermine
* Entwurf des Werbeplakats
* Verfassen des HSHL-Wiki-Artikels
 
=== [[Benutzer:Jan_Pinter|Jan Pinter]] ===
* Konstruktion des Roboters
* Entwicklung der Spielstrategie
* Umsetzung der Spielstrategie in Quellcode 
* Entwurf des Werbeplakats
* Erstellung des Videos
=== [[Benutzer:Levin_Baumeister|Levin Baumeister]] ===
* Konstruktion des Roboters
* Erstellung des Bauplans
* Entwurf des Werbeplakats
* Verfassen des HSHL-Wiki-Artikels
 
== Verwendete Softwaretools ==
* [http://bricxcc.sourceforge.net/ Bricx Command Center<ref> Bricx Command Center - http://bricxcc.sourceforge.net/ </ref>] mit der Programmiersprache [https://de.wikipedia.org/wiki/Not_eXactly_C NXC<ref> NXC - https://de.wikipedia.org/wiki/Not_eXactly_C </ref>] (Not eXactly C, für die Programmierung der Spielstrategie)
* [https://education.lego.com/de-de/downloads/mindstorms-ev3 LEGO MINDSTORMS Education EV3<ref> LEGO MINDSTORMS Education EV3 - https://education.lego.com/de-de/downloads/mindstorms-ev3</ref>] (für die Programmierung zu Beginn des Praktikums)
* [https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download LEGO® MINDSTORMS® NXT 2.0<ref> LEGO® MINDSTORMS® NXT 2.0 - https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download</ref>] (für die Programmierung zu Beginn des Praktikums)
* [http://ldd.lego.com/de-de LEGO Digital Designer 4.3<ref> LEGO Digital Designer 4.3 - http://ldd.lego.com/de-de </ref>] (zur Erstellung des Bauplans des Roboters)
* [http://friedrich-folkmann.de/papdesigner/Hauptseite.html PapDesigner<ref> PapDesigner - http://friedrich-folkmann.de/papdesigner/Hauptseite.html/</ref>] (zur Erstellung des Programmablaufplans nach DIN 66001)
* [https://www.gimp.org/ GIMP<ref> GIMP - https://www.gimp.org/</ref>] (zur Erstellung des Werbeplakats)
* [https://www.muvee.com/ muvee Reveal Encore 2018<ref> muvee Reveal Encore 2018 - https://www.muvee.com/</ref>] (zur Erstellung des YouTube-Videos)
* [http://mathewsachin.github.io/ Captura Version 6.0.1<ref> Captura Version 6.0.1 - http://mathewsachin.github.io//</ref>] (zur Erstellung des YouTube-Videos)
* [http://meta.wikimedia.org/wiki/Help:Editing/de Hilfeseite des Wikimedia-Projekts<ref> Hilfeseite des Wikimedia-Projekts - http://meta.wikimedia.org/wiki/Help:Editing/de</ref>] (Hilfe bei der Erstellung des Wiki-Artikels)
 
== Verwendete Hardware ==
* LEGO MINDSTORMS NXT Education (Set 9797)<ref> http://robotsquare.com/2012/02/18/understanding-nxt-versions/</ref>
* LEGO Education Resource Set (Set 9695)<ref> http://www.nxtprograms.com/help/parts/9797.html</ref>
* [http://modernroboticsinc.com/hitechnic-nxt-compass-sensor HiTechnic NXT Compass Sensor<ref> HiTechnic NXT Compass Sensor - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/</ref>]
* [http://modernroboticsinc.com/hitechnic-nxt-compass-sensor HiTechnic NXT IRSeeker<ref> HiTechnic NXT IRSeeker - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/</ref>]
* [http://modernroboticsinc.com/infrared-electronic-ball HiTechnic Infrared Electronic Ball<ref> Infrared Electronic Ball  - http://modernroboticsinc.com/infrared-electronic-ball/</ref>]
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 und dem Modell (öffnen mit LEGO Digital Designer 4.3) zu entnehmen: [[Datei:A5_Bauanleitung.pdf|Bauanleitung]], [[Datei:A5 Modell.zip|Modell]].<br /> <br />
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


Die Aufgabe besteht darin, den Roboter so zu programmieren, dass er nach dem gegebenen Regelwerk Fußball spielen kann.


[[Datei:A5_Aufbau.gif|right|Animation des Zusammenbaus]]
<gallery widths="250" heights="150" perrow="3" class="float-right">
Datei:A5 11.jpg|Erste Version des Roboters
Datei:A5 1.jpg|Detailansicht des HiTechnic NXT IRSeekers im Einbau
Datei:A5 2.jpg|Seitenansicht
Datei:A5 3.jpg|Seitenansicht im Detail
Datei:A5 4.jpg|Greifarme
</gallery>


<br />
<br />
<br />
[[Datei:A5 Textbild.JPG|center|800px|thumb|Übersicht der Position der Sensoren und der Aktoren]]


== Inhalt ==
== Spielstrategie ==
Die Gliederung des Inhalts hängt stark von Ihrem individuellen Projekt ab. Benutzen Sie einen leicht nachvollziehbaren roten Faden und gliedern Sie nach gesundem Menschenverstand!
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 <br />
Motor C: Fang- und Schussmotor
<gallery widths="450" heights="350" perrow="3" class="float-right">
Datei:A5 6.jpg|Hauptprogramm
Datei:A5 7.jpg|Unterprogramm Suchen
Datei:A5 8.jpg|Unterprogramm Ballfang
Datei:A5 9.jpg|Unterprogramm Zuruecksetzen
Datei:A5 10.jpg|Unterprogramm Torschuss
</gallery>


=== Unterabschnitt ===
=== Umsetzung in NXC ===  
# Nutzen Sie Aufzählungen
NXC-Befehle siehe [http://www.brgkepler.at/~robotik/home/documents/BRG_Kepler_Tutorial_NXC.pdf Einführung in die Programmierung mit NXC<ref> Einführung in die Programmierung mit NXC - http://www.brgkepler.at/~robotik/home/documents/BRG_Kepler_Tutorial_NXC.pdf </ref>], [https://www.daniel-braun.com/buch/roboter-programmieren-mit-nxc/ Buch „Roboter programmieren mit NXC für LEGO Mindstorms NXT“<ref> Buch "Roboter programmieren mit NXC für LEGO Mindstorms NXT" - https://www.daniel-braun.com/buch/roboter-programmieren-mit-nxc/ </ref>],
#* mit verschiedenen Schachtelungen
[https://gym-leibnitz.lima-city.de/robotik/wp-content/uploads/2016/01/NXC_Tutorial_DE.pdf Programmierung LEGO NXT Roboter mit NXC <ref> Programmierung LEGO NXT Roboter mit NXC - https://gym-leibnitz.lima-city.de/robotik/wp-content/uploads/2016/01/NXC_Tutorial_DE.pdf </ref>] und [http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/index.html NXC Programmer's Guide <ref> NXC Programmer's Guide  - http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/index.html </ref>]. (In diesen Dokumenten befindet sich auch eine Übersicht der Sensoren und Aktoren). <br />
#* und so weiter
# zweite Ebene
#* mit erneuter Unterebene


=== Bilder ===
Main-Funktion aus dem Quellcode:
Bauen Sie Bilder ein, am besten mit darin gekennzeichneten Stellen, die Sie dann im Text erklären.
[[Datei:RetroGameStation_HSHL_Messe.jpg|rechts|mini|Beispielbild mit Quelle <ref> Eigenes Foto </ref>]]


=== Tabellen ===
<pre> task main()
Eine tolle Tabelle ist hier dargestellt.
{
{| class="mw-datatable"
  SetSensorLowspeed(IN_4);
! style="font-weight: bold;" | Spalte 1
  SetSensorLowspeed(IN_2);
! style="font-weight: bold;" | Spalte 2
  SetSensorTouch(S1);
! style="font-weight: bold;" | Spalte 3
  TextOut(0, LCD_LINE1, "Links  - Osten");
|-
  TextOut(0, LCD_LINE2, "Rechts - Westen");
| blabla
  do{                                        //Linker oder Rechter Kopf zur Torwahl
| sowieso
    if(ButtonPressed(BTNLEFT, true))
| sowieso
    {tor=0; starten=true;}
|-
    if(ButtonPressed(BTNRIGHT, true))
| test
    {tor=1; starten=true;}
| sowieso
  }while(starten==false)
| test1
  while(true)                                //Endlosschleife
|}
  {
    Suchen();
  }
} </pre>


=== Formatierung ===
== Werbeplakat ==
Nutzen Sie zur Formatierung Beispiele, z. B. aus dem weltbekannten Wikipedia selbst (das ist die gleiche Syntax!) oder anderer Hilfeseiten wie z. B. <ref> [http://meta.wikimedia.org/wiki/Help:Editing/de Hilfeseite des Wikimedia-Projekts] </ref>.


== Zusammenfassung ==
Das Werbeplakat des Roboters "ROBO FIGHTER": [[Datei:Robo Fighter.jpg|600px|thumb|center|Werbeplakat des Robo Fighters ]]
Bla


== YouTube-Video ==


== Ausblick ==
<gallery widths="350" heights="200">
Was kann/muss noch verbessert werden?
A5 V.jpg | verweis=https://youtu.be/ayIwBw-KpMo
</gallery>
Video zum Roboter "Robo Fighter"
<br />


'''Video-Beschreibung:'''<br />
''Herausgeber:'' Rina Muçaj, Levin Baumeister und Jan Pinter <br />
''Hochschule:'' Hochschule Hamm-Lippstadt <br />
''Studiengang:'' Mechatronik 1. Semester <br />
''Projektkurs:'' Informatikpraktikum I (Gruppe A5) <br />
''Betreuer:'' Prof. Dr. Ing.-Schneider <br />
''Musik:'' [https://www.bensound.com/royalty-free-music/track/epic Epic - Royalty Free Music<ref> Epic - Royalty Free Music - https://www.bensound.com/royalty-free-music/track/epic</ref>]                                                                                                                  <br />
''Praktikumsziel:'' Konstruktion und Programmierung eines LEGO-Mindstorm zum Fußballspielen mit einem Infrarot-Ball in der Programmiersprache NXC


== Literaturverzeichnis ==
== Zusammenfassung ==
<references />
=== Lerneffekt ===
* Programmierung eines mechatronischen Systems
* Vertiefung der Programmierkenntnisse mit der Sprache C
* Zusammenhänge zwischen den Bauteilen (Sensoren, Aktoren) verstehen
* Erfahrung mit Bild- und Videobearbeitungsprogrammen


== Ausblick ==
Der Roboter "Robo Fighter" wird das RoboSoccer WS 17/18 - Tunier gewinnen.


== Korrektur/Rückmeldungen ==
== Literaturverzeichnis ==
<references /><br />
Alle verwendeten Bildmaterialien auf dieser Seite wurden eigenständig erstellt.


Bla




→ zurück zum Hauptartikel: [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]]
→ zurück zum Hauptartikel: [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]]

Aktuelle Version vom 25. Januar 2018, 13:05 Uhr

Autoren und Gruppenmitglieder: Rina Muçaj, Jan Pinter und Levin Baumeister

Name des Roboters

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

Verwendete Hardware

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 und dem Modell (öffnen mit LEGO Digital Designer 4.3) zu entnehmen: Datei:A5 Bauanleitung.pdf, Datei:A5 Modell.zip.

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


Animation des Zusammenbaus
Animation des Zusammenbaus




Übersicht der Position der Sensoren und der Aktoren

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

Umsetzung in NXC

NXC-Befehle siehe Einführung in die Programmierung mit NXC[16], Buch „Roboter programmieren mit NXC für LEGO Mindstorms NXT“[17], Programmierung LEGO NXT Roboter mit NXC [18] und NXC Programmer's Guide [19]. (In diesen Dokumenten befindet sich auch eine Übersicht der Sensoren und Aktoren).

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":

Werbeplakat des Robo Fighters

YouTube-Video

Video zum Roboter "Robo Fighter"

Video-Beschreibung:
Herausgeber: Rina Muçaj, Levin Baumeister und Jan Pinter
Hochschule: Hochschule Hamm-Lippstadt
Studiengang: Mechatronik 1. Semester
Projektkurs: Informatikpraktikum I (Gruppe A5)
Betreuer: Prof. Dr. Ing.-Schneider
Musik: Epic - Royalty Free Music[20]
Praktikumsziel: Konstruktion und Programmierung eines LEGO-Mindstorm zum Fußballspielen mit einem Infrarot-Ball in der Programmiersprache NXC

Zusammenfassung

Lerneffekt

  • Programmierung eines mechatronischen Systems
  • Vertiefung der Programmierkenntnisse mit der Sprache C
  • Zusammenhänge zwischen den Bauteilen (Sensoren, Aktoren) verstehen
  • Erfahrung mit Bild- und Videobearbeitungsprogrammen

Ausblick

Der Roboter "Robo Fighter" wird das RoboSoccer WS 17/18 - Tunier gewinnen.

Literaturverzeichnis

  1. Bricx Command Center - http://bricxcc.sourceforge.net/
  2. NXC - https://de.wikipedia.org/wiki/Not_eXactly_C
  3. LEGO MINDSTORMS Education EV3 - https://education.lego.com/de-de/downloads/mindstorms-ev3
  4. LEGO® MINDSTORMS® NXT 2.0 - https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download
  5. LEGO Digital Designer 4.3 - http://ldd.lego.com/de-de
  6. PapDesigner - http://friedrich-folkmann.de/papdesigner/Hauptseite.html/
  7. GIMP - https://www.gimp.org/
  8. muvee Reveal Encore 2018 - https://www.muvee.com/
  9. Captura Version 6.0.1 - http://mathewsachin.github.io//
  10. Hilfeseite des Wikimedia-Projekts - http://meta.wikimedia.org/wiki/Help:Editing/de
  11. http://robotsquare.com/2012/02/18/understanding-nxt-versions/
  12. http://www.nxtprograms.com/help/parts/9797.html
  13. HiTechnic NXT Compass Sensor - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/
  14. HiTechnic NXT IRSeeker - http://modernroboticsinc.com/hitechnic-nxt-compass-sensor/
  15. Infrared Electronic Ball - http://modernroboticsinc.com/infrared-electronic-ball/
  16. Einführung in die Programmierung mit NXC - http://www.brgkepler.at/~robotik/home/documents/BRG_Kepler_Tutorial_NXC.pdf
  17. Buch "Roboter programmieren mit NXC für LEGO Mindstorms NXT" - https://www.daniel-braun.com/buch/roboter-programmieren-mit-nxc/
  18. Programmierung LEGO NXT Roboter mit NXC - https://gym-leibnitz.lima-city.de/robotik/wp-content/uploads/2016/01/NXC_Tutorial_DE.pdf
  19. NXC Programmer's Guide - http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/index.html
  20. Epic - Royalty Free Music - https://www.bensound.com/royalty-free-music/track/epic


Alle verwendeten Bildmaterialien auf dieser Seite wurden eigenständig erstellt.


→ zurück zum Hauptartikel: Informatikpraktikum WS 17/18