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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(71 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Das Modul Informatik 1 im WS 17/18 Studiengang [https://www.hshl.de/studieren/studiengaenge/bachelorstudiengaenge/mechatronik/ Mechatronik] an der [https://www.hshl.de/ HSHL] beeinhaltet ein Praktikum, federführend geleitet von [https://www.hshl.de/personen/prof-dr-ing-ulrich-schneider Prof.Schneider.] Zielsetzung dieses Praktikums ist es, einen fussballspielenden Roboter zu entwickeln, zu konstruieren und zu programmieren. Dabei soll der Roboter in der Lage sein ein bewegliches Objekt (Ball) auf einem Spielfeld autonom zu identifizieren und in das gegnerische Tor zu schiessen. Es gillt auch Hindernisse wie den gegnerischen Roboter zu umgehen.
Das Modul Informatik 1 im WS 17/18 Studiengang [https://www.hshl.de/studieren/studiengaenge/bachelorstudiengaenge/mechatronik/ Mechatronik] an der [https://www.hshl.de/ HSHL] beeinhaltet ein Praktikum, federführend geleitet von [https://www.hshl.de/personen/prof-dr-ing-ulrich-schneider Prof.Schneider.] Zielsetzung dieses Praktikums ist es, einen fussballspielenden Roboter zu entwickeln, zu konstruieren und zu programmieren. Dabei soll der Roboter in der Lage sein, ein bewegliches Objekt (Ball) auf einem Spielfeld autonom zu identifizieren und in ein gegnerisches Tor zu schiessen.


Als Hilfsmittel zur Umsetzung steht das [https://de.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms<sup>TM</sup>] Baukastensystem des Spielzeugherstellers Lego<sup>TM</sup> zur Verfügung. Programmiert wird der Roboter zunächst über die [https://de.wikipedia.org/wiki/Grafische_Benutzeroberfl%C3%A4che GUI] Plattform [https://www.debacher.de/wiki/NXT-G NXT G] des Herstellers, später mit der Programmiersprache [https://de.wikipedia.org/wiki/Not_eXactly_C "NXC"] und dem frei zugänglichem Windowstool [http://bricxcc.sourceforge.net/ "Brixc Command Center".] So werden auch komplexere Manöver möglich.
Als Hilfsmittel zur Umsetzung steht das [https://de.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms<sup>TM</sup>] Baukastensystem des Spielzeugherstellers Lego<sup>TM</sup> zur Verfügung. Programmiert wird der Roboter zunächst über die [https://de.wikipedia.org/wiki/Grafische_Benutzeroberfl%C3%A4che GUI] Plattform [https://www.debacher.de/wiki/NXT-G NXT G] des Herstellers, später mit der Programmiersprache [https://de.wikipedia.org/wiki/Not_eXactly_C "NXC"] und dem frei zugänglichem Windowstool [http://bricxcc.sourceforge.net/ "Brixc Command Center".] So werden auch komplexere Manöver möglich. NXT G gibt es [https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download hier als Download] vom Hersteller.


Dabei ist jeder Gruppe, im Sinne der [http://193.175.248.52/wiki/index.php/Regelwerk_RoboSoccer Regeln], freigestellt, wie die Konstruktion und ihre Parameter, die [https://brickrobots.com/mindstorms-nxt-sensors-list/ Mindstorms-Sensoren] sowie formale und inhaltliche Ausgestaltung ihrer Problemlösungstrategien aussehen.
Es ist jeder Gruppe, im Sinne der [http://193.175.248.52/wiki/index.php/Regelwerk_RoboSoccer Regeln], freigestellt, wie die Konstruktion und ihre Parameter, die [https://brickrobots.com/mindstorms-nxt-sensors-list/ Mindstorms-Sensoren] sowie formale und inhaltliche Ausgestaltung ihrer Problemlösungstrategien aussehen.




Zeile 15: Zeile 15:
• Kennenlernen von [https://de.wikipedia.org/wiki/Roboter Roboter], [https://de.wikipedia.org/wiki/Sensor Sensoren] und [https://de.wikipedia.org/wiki/Aktor Aktoren] <br/>
• Kennenlernen von [https://de.wikipedia.org/wiki/Roboter Roboter], [https://de.wikipedia.org/wiki/Sensor Sensoren] und [https://de.wikipedia.org/wiki/Aktor Aktoren] <br/>
• Darstellen von Kennwerten in Grafen mit NXT G <br/>
• Darstellen von Kennwerten in Grafen mit NXT G <br/>
•      Ausarbeiten eine [http://friedrich-folkmann.de/papdesigner/Hauptseite.html Programmablaufplans]  <br/>
•      Ausarbeiten eine [http://friedrich-folkmann.de/papdesigner/Hauptseite.html Programmablaufplans] mit der entsprechenden Software zum freien Download <br/>
• Erstellen eines übersichtlichen Quellcodes <br/>
• Erstellen eines übersichtlichen Quellcodes <br/>
• Präsentation der Eigenarbeit <br/>
• Präsentation der Eigenarbeit <br/>
• Konzeptentwicklung und Planung einzelner Aufgaben und verteilung dieser auf einzelne Gruppenmitglieder <br/>
• Konzeptentwicklung und Planung einzelner Aufgaben und Verteilung dieser auf einzelne Gruppenmitglieder <br/>
• Arbeiten im team <br/>
• Arbeiten im Team <br/>


==  Teammitglieder der Gruppe B3 ==
==  Teammitglieder der Gruppe B3 ==


[[ Ramo Agic ]] <br/>
[http://193.175.248.52/wiki/index.php/Benutzer:Ramo_Agic Ramo Agic] <br/>
- Erstellung des PAP <br/>
- Erstellung des PAP <br/>
- Programmieren mit NXT G und C  Pflege des SVN Dateimanagmentsystems <br/>
- Programmieren mit NXT G und C  <br/>
- Erstellen des Wikiartikels <br/>
- Erstellen des Wikiartikels <br/>
-      Pflege des SVN Dateimanagmentsystems
-      Pflege des SVN Dateimanagmentsystems
<br/>
<br/>
[[ Henning ]] <br/>
 
[http://193.175.248.52/wiki/index.php/Benutzer:Henning_Hoffmeier Henning Hoffmeier] <br/>
- Konstruktion und Bau des Roboters  <br/>
- Konstruktion und Bau des Roboters  <br/>
- Programmieren mit NXT G und C <br/>
- Programmieren mit NXT G und C <br/>
Zeile 35: Zeile 36:
-      Pflege des SVN Dateimanagmentsystems
-      Pflege des SVN Dateimanagmentsystems
<br/>
<br/>
[[ Alex ]] <br/>
 
[http://193.175.248.52/wiki/index.php/Benutzer:Alexander_Thumann Alexander Thumann] <br/>
- Konstruktion und Bau des Roboters  <br/>
- Konstruktion und Bau des Roboters  <br/>
- Programmieren mit NXT G und NXT C  <br/>
- Programmieren mit NXT G und NXT C  <br/>
-      Pflege des Quellcodes
-      Pflege des Quellcodes <br/>
-      Pflege des SVN Dateimanagmentsystems
-      Pflege des SVN Dateimanagmentsystems
<br/>
<br/>
Zeile 48: Zeile 50:
Eine wichtige Rolle spielen bei dem ganzen die Sensoren. So sind an unserem Roboter ein IR-Sensor, ein Tastsensor, ein Kompasssensor und ein EOPD-Sensor zur Entfernungsmessung angebracht. Der IR-Sensor dient hierbei zur Bestimmung und Ausrichtung zum Ball. der per Dioden IR-Signale aussendet, die vom Sensor erfasst und vom [https://de.wikipedia.org/wiki/Lego_Mindstorms_NXT NXT-Baustein] in der Intensität und Richtung ausgewertet werden können.
Eine wichtige Rolle spielen bei dem ganzen die Sensoren. So sind an unserem Roboter ein IR-Sensor, ein Tastsensor, ein Kompasssensor und ein EOPD-Sensor zur Entfernungsmessung angebracht. Der IR-Sensor dient hierbei zur Bestimmung und Ausrichtung zum Ball. der per Dioden IR-Signale aussendet, die vom Sensor erfasst und vom [https://de.wikipedia.org/wiki/Lego_Mindstorms_NXT NXT-Baustein] in der Intensität und Richtung ausgewertet werden können.
Auf der folgenden [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=nsk1042 Internetseite] wird die Funktionsweise (samt Code!) des IR-Sensors exemplarisch erörtert.  
Auf der folgenden [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=nsk1042 Internetseite] wird die Funktionsweise (samt Code!) des IR-Sensors exemplarisch erörtert.  
Der Roboter richtet sich so zum Ball aus und steuert diesen an, per Verknüpfung über [https://de.wikipedia.org/wiki/Infrarotstrahlung IR-Signal] und Antriebsmotoren. Der Greifmechanismus arretiert den Ball. Per Kompasssensor (Nord-Süd Ausrichtung) wird sich zum gegnerischen Tor ausgerichtet. Zum fehlerfreieren erkennen des Balls und auslösen des Schussmechanismus, haben wir zusätzlich einen [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NEO1048 EOPD-Sensor] angebracht. Dies erhöht die Zuverlässigkeit der Erkennung des Balls, als wenn dies nur per Tastsensor geschieht.
Der Roboter richtet sich so zum Ball aus und steuert diesen an, per Verknüpfung über [https://de.wikipedia.org/wiki/Infrarotstrahlung IR-Signal] und Antriebsmotoren. Der Greifmechanismus arretiert den Ball. Per Kompasssensor (West-Ost Ausrichtung) wird sich zum gegnerischen Tor ausgerichtet. Zum fehlerfreieren erkennen des Balls und auslösen des Schussmechanismusses, haben wir zusätzlich einen [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NEO1048 EOPD-Sensor] angebracht. Dies erhöht die Zuverlässigkeit der Erkennung des Balls, als wenn dies nur per Tastsensor geschieht.


Gehirn und somit Steuerungszentrale des ganzen ist der erwähnte NXT-Baustein der per [https://de.wikipedia.org/wiki/I%C2%B2C I<sup>2</sup>C-Busprotokoll] mit den Sensoren seriell kommuniziert. Die mögliche Datenrate ist mit 1024 Knoten und 425kb/s zwar niedrig aber so wird eine zuverlässige Übertragung garantiert.
Gehirn und somit Steuerungszentrale des ganzen ist der erwähnte NXT-Baustein der per [https://de.wikipedia.org/wiki/I%C2%B2C I<sup>2</sup>C-Busprotokoll] mit den Sensoren seriell kommuniziert. Die mögliche Datenrate ist mit 1024 Knoten und 425kb/s zwar niedrig aber so wird eine zuverlässige Übertragung garantiert.
Zeile 60: Zeile 62:
! style="width:50%"| Parameter      !!  style="width:40%"|Wert
! style="width:50%"| Parameter      !!  style="width:40%"|Wert
|-
|-
| Länge                            ||style="text-align:right"| xxx
| Länge                            ||style="text-align:right"| 30cm
|-
|-
| Breite                            ||style="text-align:right"| xxx
| Breite                            ||style="text-align:right"| 15cm
|-
|-
| Spurweite (vorn)                  ||style="text-align:right"| xxx
| Spurweite (vorn)                  ||style="text-align:right"| 18cm
|-  
|-  
| Spurweite (hinten)                ||style="text-align:right"| xxx
| Spurweite (hinten)                ||style="text-align:right"| 6cm
|-
|-
| Achsabstand                      ||style="text-align:right"| xxx
| Achsabstand                      ||style="text-align:right"| 13cm
|-
|-
| Max. Lenkeinschlag                ||style="text-align:right"| xxx
| Max. Lenkeinschlag                ||style="text-align:right"| 100%
|-
|-
| Max. Geschwindigkeit              ||style="text-align:right"| xxx                    
| Max. Geschwindigkeit              ||style="text-align:right"| 0,5(m/s)                    
|}
|}


== Software ==
== Software ==
...
Hier nochmal eine Auflistung der verwendeten Programme samt Download. Alle Programme sind frei zugänglich:
* [https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download NXT G]
* [http://bricxcc.sourceforge.net/ "Brixc Command Center".]
* [https://tortoisesvn.net/index.de.html SVN Tortoise]
* [http://friedrich-folkmann.de/papdesigner/Hauptseite.html PAP-Designer]
 
Der eigentliche Kern der Gestaltung ist das erwähnte Tool Bricx Command Center, da hier die Befehle zum ansteuern der einzelnen Elemente des Roboters
geschrieben werden. Dabei ist die verwendetete Sprache "NXT C", der sehr populären und verbreiteten Sprache [https://de.wikipedia.org/wiki/C%2B%2B C++] sehr ähnlich und es lassen sich viele Übereinstimmungen finden. Zum bequemen programmieren des Roboters, sind in Bricx [https://de.wikipedia.org/wiki/Template_(C%2B%2B) Templates] vorhanden und zusätzlich verfügt das Programm über eine umfangreiche Hilfefunktion.
Selbstverständlich wird im Laufe des Praktikums auch alles notwendige an Software und Wissen darüber von Prof. Schneider zur Verfügung gestellt und dokumentiert.


== Programmablaufplan ==
== Programmablaufplan ==
[[Datei:Robosoccer.jpg|mini|ohne|x200px|]]
[[Datei:PAP Robosoccer end 001.jpg|mini|ohne|x200px|]]
 
== Bilder ==
 
<gallery widths="225" heights="180" perrow="6">
Foto 05.12.17, 13 02 55.jpg|Ein Robo ... was???
Robo2.jpg|Keep it simple
Robo3.jpg|Wir haben einen Plan
Robi8.jpg|Nach Stunden harter, nicht immer zielführender Arbeit ... So gehts!
Robo6.jpg|Tadaaa,RoboRoberto in seiner ganzen Pracht :-)
Robi7.jpg|und in seinem Element
 
 
</gallery>


== Fazit und Ausblick ==
== Fazit und Ausblick ==
...
Das Praktikum ermöglicht einen relativ spielerischen Einstieg in die Welt der Robotik und es werden Kernelemente der Mechatronik wie Sensoren, Aktoren, Microcontroller und die Programmierung dieser vorgestellt und der Umgang damit geübt.
Es wird einem ebenfalls der Umgang mit einigen wichtigen Softwaretools beigebracht, wobei die Komplexität  mit fortschreiten des Praktikums natürlich immer weiter zunimmt aber es auch nie zuviel wurde und die Lernkurve genau den richtigen Anstieg findet. <br/>
Somit bietet das Praktikum eine sehr gute Grundlage für spätere, höhersemestrige Aufgaben und kann späteren Studenten nur empfohlen werden vor allen Dingen auch gerade deswegen, weil das arbeiten im Team ein Kernelement darstellt und so von Anfang an den Studenten Nahe gebracht wird, was in der Form wohl nicht an jeder Hochschule zu finden ist.
 
== Video und weiterführende Links ==
Alle auf diesem Wiki verlinkten Internetseiten sind frei zugänglich und offen. Alle Software ist ebenfalls frei zugänglich und Urheberrechtsfrei.


== Video und Links ==
Weitere hilfreiche Seiten sind:
...
*[https://www.youtube.com/watch?v=gdUxKmkZSq8 unser youtubevideo ]
*[https://www.mediawiki.org/wiki/Help:Contents/de Wikimedia:help]
*[https://prezi.com/q-rjynv5-rim/inf1p_einfuehrung-ws-1516/?utm_campaign=share&utm_medium=copy Prezi Präsentation von Prof. Schneider zum Info1 Praktikum]
*[http://www.mindstorms.rwth-aachen.de/trac/wiki/Documentation RWTH Mindstorms: Eine ausführliche Seite der Uni Achen]
*[http://www.mindstormsforum.de/index.php?sid=b5a87c30435a15ae0911a30582eb6f31 Offenes deutsches Mindstormsforum]

Aktuelle Version vom 25. Januar 2018, 00:41 Uhr

Das Modul Informatik 1 im WS 17/18 Studiengang Mechatronik an der HSHL beeinhaltet ein Praktikum, federführend geleitet von Prof.Schneider. Zielsetzung dieses Praktikums ist es, einen fussballspielenden Roboter zu entwickeln, zu konstruieren und zu programmieren. Dabei soll der Roboter in der Lage sein, ein bewegliches Objekt (Ball) auf einem Spielfeld autonom zu identifizieren und in ein gegnerisches Tor zu schiessen.

Als Hilfsmittel zur Umsetzung steht das Lego MindstormsTM Baukastensystem des Spielzeugherstellers LegoTM zur Verfügung. Programmiert wird der Roboter zunächst über die GUI Plattform NXT G des Herstellers, später mit der Programmiersprache "NXC" und dem frei zugänglichem Windowstool "Brixc Command Center". So werden auch komplexere Manöver möglich. NXT G gibt es hier als Download vom Hersteller.

Es ist jeder Gruppe, im Sinne der Regeln, freigestellt, wie die Konstruktion und ihre Parameter, die Mindstorms-Sensoren sowie formale und inhaltliche Ausgestaltung ihrer Problemlösungstrategien aussehen.



Vermittelte Lernziele des Praktikums

• Konstruieren eines Roboters mit Hilfe von Lego Mindstorms
• Einarbeiten in die Programme NXT G und Brixc Windows Commander
• Einarbeiten in das Dateimanagmentsystem SVN Tortoise
• Kennenlernen von Roboter, Sensoren und Aktoren
• Darstellen von Kennwerten in Grafen mit NXT G
• Ausarbeiten eine Programmablaufplans mit der entsprechenden Software zum freien Download
• Erstellen eines übersichtlichen Quellcodes
• Präsentation der Eigenarbeit
• Konzeptentwicklung und Planung einzelner Aufgaben und Verteilung dieser auf einzelne Gruppenmitglieder
• Arbeiten im Team

Teammitglieder der Gruppe B3

Ramo Agic
- Erstellung des PAP
- Programmieren mit NXT G und C
- Erstellen des Wikiartikels
- Pflege des SVN Dateimanagmentsystems

Henning Hoffmeier
- Konstruktion und Bau des Roboters
- Programmieren mit NXT G und C
- Erstellung des Konstruktionsplans
- Pflege des SVN Dateimanagmentsystems

Alexander Thumann
- Konstruktion und Bau des Roboters
- Programmieren mit NXT G und NXT C
- Pflege des Quellcodes
- Pflege des SVN Dateimanagmentsystems

Hardware

Der erste Schritt war die Planung und Konstruktion des Roboters. Wichtige Faktoren hierbei sind die Fähigkeit den Ball richtig zu orten, die Mobilität um den Ball zu erreichen und die Fähigkeit denselbigen per Schussmechanismus ins gegnerische Tor zu befördern. Gelenkt wird der Roboter in unserem Fall über eine als Hinterrad montierte, frei rotierende Kugel. Dies ermöglicht einen geringen Wendekreis und hohe Mobilität.

Eine wichtige Rolle spielen bei dem ganzen die Sensoren. So sind an unserem Roboter ein IR-Sensor, ein Tastsensor, ein Kompasssensor und ein EOPD-Sensor zur Entfernungsmessung angebracht. Der IR-Sensor dient hierbei zur Bestimmung und Ausrichtung zum Ball. der per Dioden IR-Signale aussendet, die vom Sensor erfasst und vom NXT-Baustein in der Intensität und Richtung ausgewertet werden können. Auf der folgenden Internetseite wird die Funktionsweise (samt Code!) des IR-Sensors exemplarisch erörtert. Der Roboter richtet sich so zum Ball aus und steuert diesen an, per Verknüpfung über IR-Signal und Antriebsmotoren. Der Greifmechanismus arretiert den Ball. Per Kompasssensor (West-Ost Ausrichtung) wird sich zum gegnerischen Tor ausgerichtet. Zum fehlerfreieren erkennen des Balls und auslösen des Schussmechanismusses, haben wir zusätzlich einen EOPD-Sensor angebracht. Dies erhöht die Zuverlässigkeit der Erkennung des Balls, als wenn dies nur per Tastsensor geschieht.

Gehirn und somit Steuerungszentrale des ganzen ist der erwähnte NXT-Baustein der per I2C-Busprotokoll mit den Sensoren seriell kommuniziert. Die mögliche Datenrate ist mit 1024 Knoten und 425kb/s zwar niedrig aber so wird eine zuverlässige Übertragung garantiert.

Ein A/D-Wandler, wandelt schliesslich die analogen Input-Signale der Sensoren, in digitale für den Microcontroller des NXT.

Fahrzeugparameter

Parameter Wert
Länge 30cm
Breite 15cm
Spurweite (vorn) 18cm
Spurweite (hinten) 6cm
Achsabstand 13cm
Max. Lenkeinschlag 100%
Max. Geschwindigkeit 0,5(m/s)

Software

Hier nochmal eine Auflistung der verwendeten Programme samt Download. Alle Programme sind frei zugänglich:

Der eigentliche Kern der Gestaltung ist das erwähnte Tool Bricx Command Center, da hier die Befehle zum ansteuern der einzelnen Elemente des Roboters geschrieben werden. Dabei ist die verwendetete Sprache "NXT C", der sehr populären und verbreiteten Sprache C++ sehr ähnlich und es lassen sich viele Übereinstimmungen finden. Zum bequemen programmieren des Roboters, sind in Bricx Templates vorhanden und zusätzlich verfügt das Programm über eine umfangreiche Hilfefunktion. Selbstverständlich wird im Laufe des Praktikums auch alles notwendige an Software und Wissen darüber von Prof. Schneider zur Verfügung gestellt und dokumentiert.

Programmablaufplan

Bilder

Fazit und Ausblick

Das Praktikum ermöglicht einen relativ spielerischen Einstieg in die Welt der Robotik und es werden Kernelemente der Mechatronik wie Sensoren, Aktoren, Microcontroller und die Programmierung dieser vorgestellt und der Umgang damit geübt. Es wird einem ebenfalls der Umgang mit einigen wichtigen Softwaretools beigebracht, wobei die Komplexität mit fortschreiten des Praktikums natürlich immer weiter zunimmt aber es auch nie zuviel wurde und die Lernkurve genau den richtigen Anstieg findet.
Somit bietet das Praktikum eine sehr gute Grundlage für spätere, höhersemestrige Aufgaben und kann späteren Studenten nur empfohlen werden vor allen Dingen auch gerade deswegen, weil das arbeiten im Team ein Kernelement darstellt und so von Anfang an den Studenten Nahe gebracht wird, was in der Form wohl nicht an jeder Hochschule zu finden ist.

Video und weiterführende Links

Alle auf diesem Wiki verlinkten Internetseiten sind frei zugänglich und offen. Alle Software ist ebenfalls frei zugänglich und Urheberrechtsfrei.

Weitere hilfreiche Seiten sind: