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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(31 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. NXT G gibt es [https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download hier als Download] vom Hersteller.
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.
Zeile 23: Zeile 23:
==  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  <br/>
- Programmieren mit NXT G und C  <br/>
Zeile 30: Zeile 30:
<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 37: Zeile 37:
<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/>
Zeile 50: 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 62: 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)                    
|}
|}


Zeile 86: Zeile 86:
Der eigentliche Kern der Gestaltung ist das erwähnte Tool Bricx Command Center, da hier die Befehle zum ansteuern der einzelnen Elemente des Roboters
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.
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.
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 ==
Zeile 93: Zeile 93:
== Bilder ==
== Bilder ==


[[Datei:Foto 05.12.17, 13 02 55.jpg|200px|thumb|left|Aller Anfang ist schwer! Wie baut man so einen Roboter nur?]] [[Datei:Robo3.jpg|200px|thumb|left|Man hat sich darauf geeinigt das gute alte Prinzip "keep it simple" zu verwenden]]
<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 Kernelemnte der Mechatronik wie Sensoren, Aktoren, Microcontroller und die Programmierung dieser vorgestellt und der Umgang damit geübt. Dabei kommt aber auch der Tiefgang nicht zu kurz.  
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/>
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 Kernelemnt darstellt und so von Anfang an den Studenten Nahe gebracht wird.
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 ==
== 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.
Alle auf diesem Wiki verlinkten Internetseiten sind frei zugänglich und offen. Alle Software ist ebenfalls frei zugänglich und Urheberrechtsfrei.
Weiterhin hilfreiche Seiten sind:
 
Weitere hilfreiche Seiten sind:
*[https://www.youtube.com/watch?v=gdUxKmkZSq8 unser youtubevideo ]
*[https://www.mediawiki.org/wiki/Help:Contents/de Wikimedia:help]
*[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]
*[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.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]
*[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: