RoboSoccer Gruppe B3 - WS 17/18: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(77 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 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. | ||
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 Programmablaufplans | • 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 | • Konzeptentwicklung und Planung einzelner Aufgaben und Verteilung dieser auf einzelne Gruppenmitglieder <br/> | ||
• | • Arbeiten im Team <br/> | ||
== Teammitglieder der Gruppe B3 == | == Teammitglieder der Gruppe B3 == | ||
[ | [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 | - Programmieren mit NXT G und C <br/> | ||
- Erstellen des Wikiartikels <br/> | - Erstellen des Wikiartikels <br/> | ||
- Pflege des SVN Dateimanagmentsystems | |||
<br/> | <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/> | ||
- Erstellung des Konstruktionsplans <br/> | - Erstellung des Konstruktionsplans <br/> | ||
- Pflege des SVN Dateimanagmentsystems | |||
<br/> | <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 C | - Programmieren mit NXT G und NXT C <br/> | ||
- Pflege des Quellcodes <br/> | |||
- Pflege des SVN Dateimanagmentsystems | |||
<br/> | <br/> | ||
== Hardware == | == Hardware == | ||
Der erste Schritt war die Planung und Konstruktion des Roboters. Wichtige Faktoren hierbei sind die Mobilität um den Ball zu erreichen und die Fähigkeit denselbigen per Schussmechanismus ins gegnerische Tor zu befördern. Gelenkt wird | 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 Sensoren. So sind an unserem Roboter ein IR-Sensor | 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. | ||
Der Roboter richtet sich so zum Ball aus und per Greifmechanismus | 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 (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 NXT-Baustein | 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. | ||
Ein [https://de.wikipedia.org/wiki/Analog-Digital-Umsetzer A/D-Wandler], wandelt schliesslich die analogen Input-Signale der Sensoren, in digitale für den [https://de.wikipedia.org/wiki/MikrocontrollerMicrocontroller Microcontroller] des NXT. | |||
==Fahrzeugparameter== | ==Fahrzeugparameter== | ||
Zeile 54: | Zeile 62: | ||
! style="width:50%"| Parameter !! style="width:40%"|Wert | ! style="width:50%"| Parameter !! style="width:40%"|Wert | ||
|- | |- | ||
| Länge ||style="text-align:right"| | | Länge ||style="text-align:right"| 30cm | ||
|- | |- | ||
| Breite ||style="text-align:right"| | | Breite ||style="text-align:right"| 15cm | ||
|- | |- | ||
| Spurweite (vorn) ||style="text-align:right"| | | Spurweite (vorn) ||style="text-align:right"| 18cm | ||
|- | |- | ||
| Spurweite (hinten) ||style="text-align:right"| | | Spurweite (hinten) ||style="text-align:right"| 6cm | ||
|- | |- | ||
| Achsabstand ||style="text-align:right"| | | Achsabstand ||style="text-align:right"| 13cm | ||
|- | |- | ||
| Max. Lenkeinschlag ||style="text-align:right"| | | Max. Lenkeinschlag ||style="text-align:right"| 100% | ||
|- | |- | ||
| Max. Geschwindigkeit ||style="text-align:right"| | | 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. | |||
== | 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
-
Ein Robo ... was???
-
Keep it simple
-
Wir haben einen Plan
-
Nach Stunden harter, nicht immer zielführender Arbeit ... So gehts!
-
Tadaaa,RoboRoberto in seiner ganzen Pracht :-)
-
und in seinem Element
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: