RoboSoccer Gruppe B3 - WS 17/18
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
- 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!
-
Ich habe 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: