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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 87: Zeile 87:
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.
== Bilder ==


== Programmablaufplan ==
== Programmablaufplan ==
[[Datei:PAP Robosoccer end 001.jpg|mini|ohne|x200px|]]
[[Datei:PAP Robosoccer end 001.jpg|mini|ohne|x200px|]]
== Bilder ==


== Fazit und Ausblick ==
== Fazit und Ausblick ==

Version vom 20. Januar 2018, 03:50 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 das gegnerische Tor zu schiessen. Es gillt auch Hindernisse wie den gegnerischen Roboter zu umgehen.

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

Alex
- 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 (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 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 xxx
Breite xxx
Spurweite (vorn) xxx
Spurweite (hinten) xxx
Achsabstand xxx
Max. Lenkeinschlag xxx
Max. Geschwindigkeit xxx

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 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. 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 Kernelemnt darstellt und so von Anfang an den Studenten Nahe gebracht wird.

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. Weiterhin hilfreiche Seiten sind: