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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(216 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:HowTo]]
'''Autoren:''' [[Benutzer:Patrick Schumann|Patrick Schumann]], [[Benutzer:Martin Theine|Martin Theine]] und [[Benutzer:Julin-Frederik Horstkoetter|Julin Horstkötter]]


'''Autoren:''' [[Benutzer:Patrick Schumann|Patrick Schumann]] [[Benutzer:Martin Theine|Martin Theine]] [[Benutzer:Julin-Frederik Horstkoetter|Julin Horstkötter]]
In dem Informatikpraktikum des ersten Semesters im Studiengang Mechatronik ist der Roboter "Nr. 27" konstruiert worden. Dessen Software ist darauf ausgelegt, autonom Fußball zu spielen.<br/><br/>


== Einleitung ==
[[Datei:20180123_171217-min.jpeg|200px|thumb|right|"Nr.27"]]
Dieser Artikel ist eine Vorlage für einen Wiki-Artikel. Tipp: Kopieren Sie den gesamten Quelltext und ändern Sie ihn so, dass er Ihr Projekt beschreibt.


Dieser Artikel ist aus der Kategorie [[:Kategorie:HowTo|"How-To"]].
== Zielsetzung ==
"Die Zielsetzung besteht in der Entwicklung und Programmierung eines fußballspielenden Roboters, der in der Lage ist, ein bewegliches Objekt (Ball) auf einem Spielfeld autonom zu identifizieren und schnellstmöglich in das gegnerische Tor zu schießen. <br/>
Analog zu realen Fußballspielen ist es notwendig, bestehende Hindernisse, wie beispielsweise einen gegnerischen Roboter, zu überwinden."<ref>[http://prezi.com/p913dwm4ykdz/?utm_campaign=share&utm_medium=copy%7C Prof. Schneider: Einleitung 2017, abgerufen am 18. Januar 2018.]</ref>


== Teammitglieder und ihre Aufgaben ==
* [[Benutzer:Patrick Schumann|Patrick Schumann]] <br/>
:• Konstruktion des Fahrzeuges <br/>
:• Programmentwicklung mit Matlab und NXC <br/>
:• Entwicklung und Visualisierung des Konzeptplans mit PapDesigner <br/>
:• Visualisierung des Fahrzeuges mit LegoDesigner <br/>
<br/>
* [[Benutzer:Martin Theine|Martin Theine]] <br/>
:• Konstruktion des Fahrzeuges <br/>
:• Programmentwicklung mit Matlab und NXC <br/>
:• Entwicklung und Visualisierung des Konzeptplans mit PapDesigner <br/>
:• Videoaufnahme und  Bearbeitung <br/>
<br/>
* [[Benutzer:Julin-Frederik Horstkoetter|Julin Horstkötter]] <br/>
:• Programmentwicklung mit Matlab und NXC <br/>
:• Entwicklung und Visualisierung des Konzeptplans mit PapDesigner <br/>
:• Verfassen des Wiki-Beitrages <br/>
:• Videoaufnahme und  Bearbeitung <br/>


== Inhalt ==
== Konstruktionsplan im Lego Designer ==
Die Gliederung des Inhalts hängt stark von Ihrem individuellen Projekt ab. Benutzen Sie einen leicht nachvollziehbaren roten Faden und gliedern Sie nach gesundem Menschenverstand!


== Statische Disziplin ==
[[Datei:IPK1-Modell.JPG|links|mini|Schrägansicht rechts]]
Bei der statischen Disziplin geht es darum, dass Sie nachhaltig dokumentieren. Ein nachfolgender Studierender soll anhand Ihrer Projektunterlagen Ihr Projekt nachbauen und nachvollziehen können.
[[Datei:IPK1-Modell01.JPG|links|mini|Schrägansicht links]]


Hierzu gehört, dass Sie in SVN die nachfolgenden Unterlagen hinterlegen:
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
* '''Konstruktionsplan im Lego Designer'''
** Liegt ein Bauplan in Lego Designer oder als kommentierte Fotostrecke vor??
** Ist der Bauplan vollständig und korrekt?
** Bewertung der mechanischen konstruktion
* '''Einparkkonzept als Programm-Ablauf-Plan''' (PAP)
** Strategie der Geradeausfahrt/Spurführung
** Strategie der Lückenerkennung+Einparken/Kurvenfahrt
** Regelstrategie
* '''Implementierung''' des PAP in den entsprechenden Sprachen (Matlab, Simulink und/oder NXC)
** Wurden Formalien eingehalten (Header, Kommentare, Coding-Guidelines,...)
** Wurde modular programmiert?
** Umsetzung der Strategie der Geradeausfahrt/Spurführung
** Umsetzung der Lückenerkennung+Einparken/Kurvenfahrt
** Umsetzung der Regelstrategie
* '''Fahrzeugkennwerte'''
** Fahrzeuglänge in mm
** Fahrzeugbreite in mm
** Spurweite vorn in mm
** Spurweite hinten in mm
** Achsabstand in mm
** Max. Radeinschlagswinkel Linkseinschlag in Deg
** Max. Radeinschlagswinkel Rechtseinschlag in Deg


* '''Video''' als Beleg der Funktion Ihres Roboters. Beachten Sie die [[Autonomes_Fahren_SoSe17#Hinweise_zum_Video | Hinweise]].
<i>Bemerkung:</i> Da sich programmbedingt nicht alle Zahnräder korrekt platzieren ließen, fehlen im Konstruktionsplan in der Schussmotorik 2 Zahnräder pro Seite.
* Beschreiben Sie Ihr Projekt als '''wissenschaftlichen Artikel im HSHL Wiki''' und verlinken Sie Ihre Dateien in SVN.  


Bewertet wird die '''Qualität Ihrer Projektdokumentation'''. Kriterien könnten sein:
== Fahrzeugkennwerte ==
* Wurde eine Autorenseite im Wiki angelegt?
Abmessungen des Fahrzeugs
* Ist erkennbar, wer im Projektteam welche Leistung erbracht hat?
{| class="mw-datatable"
* Wurde plausibe erläutert, wieso diese Lösung (Matlab, Simulink oder NXC) gewählt wurde?
! style="font-weight: bold;" | Parameter
* Ist die Projektdokumentation vollständig?
! style="font-weight: bold;" | Maße in mm
* Qualität der Dokumentation
|-
| Fahrzeuglänge
| 270 mm
|-
| Fahrzeugbreite
| 170 mm
|-
| Fahrzeughöhe
| 300 mm
|-
| Spurweite vorne
| 120 mm
|-
| Spurweite hinten
| 60 mm
|-
| Achsabstand
| 90 mm
|-
| Wendekreis
| ca. 0 mm
|-
|}
 
<i>Bemerkung:</i> Der Roboter ist kompakt gebaut und hat eine Einzelradaufhängung. Aus diesen Gründen ist er sehr wendig und kann sogar auf der Stelle drehen. Der Wendekreis beträgt daher 0 mm.


== Sensorik und deren Anwendungsgebiete ==
* Infrarotsensor: Ballsuche
* Kompasssensor: Ausrichtung zum Tor
* Mechanischer Tastsensor 1: Ballerkennung
* Mechanischer Tastsensor 2: Hinderniserkennung


=== Unterabschnitt ===
== Softwarekonzept als Programm-Ablauf-Plan (PAP) ==
# Nutzen Sie Aufzählungen
#* mit verschiedenen Schachtelungen
#* und so weiter
# zweite Ebene
#* mit erneuter Unterebene


=== Bilder ===
[[Datei:RoboSoccer - Gruppe B4 PAP-komprimiert5.png|links|mini|Programmablaufplan (PAP)]]
Bauen Sie Bilder ein, am besten mit darin gekennzeichneten Stellen, die Sie dann im Text erklären.
PAP als PDF-Dokument: [[Datei:RoboSoccer - Gruppe B4 PAP.pdf|links|mini|Programmablaufplan (PAP)]]<br/><br/>
[[Datei:RetroGameStation_HSHL_Messe.jpg|rechts|mini|Beispielbild mit Quelle <ref> Eigenes Foto </ref>]]


=== Tabellen ===
Die Software des Roboters teilt sich, wie im PAP ersichtlich, in folgende Unterprogramme auf:
Eine tolle Tabelle ist hier dargestellt.
* Buttonabfrage: Ermöglicht die Eingabe des Zieltors
{| class="mw-datatable"
* Ballsuche: Auffinden und Fangen des Balls
! style="font-weight: bold;" | Spalte 1
* Ausrichtung: Ausrichtung zum Tor und Schuss
! style="font-weight: bold;" | Spalte 2
* Warten: Spiel pausieren
! style="font-weight: bold;" | Spalte 3
 
|-
<br/><br/><br/><br/><br/><br/><br/>
| blabla
 
| sowieso
== Bildmaterial ==
| sowieso
[[Datei:IPK1_Soccerroboter Plakat.jpeg|200px|thumb|left|Werbeplakat von "Nr.27"]]<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
|-
 
| test
=== Fotos ===
| sowieso
[[Datei:20180123_155728-min.jpg|links|mini|"Nr.27" auf dem Spielfeld während eines Torschusses]]
| test1
[[Datei:20180125_110809-min.jpg|links|mini|Schrägansicht rechts]]
|}
[[Datei:20180125_110814-min.jpg|links|mini|Seitenansicht rechts]]
[[Datei:20180125_110819-min.jpg|links|mini|Vorderansicht]]
[[Datei:20180125_110834-min.jpg|links|mini|Seitenansicht links]]
 
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
 
=== Video ===
 
<gallery widths="350" heights="200">
20180125_110814-min.jpg | verweis=https://youtu.be/kRBV0gnYMOI
</gallery>
Video zum Roboter "Robo Fighter"
<br/><br/>


=== Formatierung ===
'''Video-Beschreibung:'''<br />
Nutzen Sie zur Formatierung Beispiele, z. B. aus dem weltbekannten Wikipedia selbst (das ist die gleiche Syntax!) oder anderer Hilfeseiten wie z. B. <ref> [http://meta.wikimedia.org/wiki/Help:Editing/de Hilfeseite des Wikimedia-Projekts] </ref>.
''Herausgeber:'' Patrick Schumann, Martin Theine und Julin Horstkötter<br/>
''Hochschule:'' Hochschule Hamm-Lippstadt<br/>
''Studiengang:'' Mechatronik 1. Semester <br/>
''Projektkurs:'' Informatikpraktikum I (Gruppe B4)<br/>
''Betreuer:'' Prof. Dr. Ing.-Schneider<br/>
''Musikquelle:'' iMovie<br/>
''Praktikumsziel:'' Konstruktion und Programmierung eines LEGO-Mindstorm-Roboters, der Fußball spielen kann. Anhand eines Infrarotlicht aussendenden Balls und des Infrarotsensors des Roboters kann dieser den Ball "sehen". Die Ausrichtung erfolgt mittels Kompasssensors. Programmiert wurde in der Programmiersprache NXC, welche C-Basiert ist.


== Zusammenfassung ==
== Zusammenfassung ==
Was ist das Ergbnis?
Zum Ende des Wintersemesters ist es geschafft. Der Roboter "Nr. 27" spielt Fußball. Somit ist das Ziel zur Zufriedenstellung der Teammitglieder erreicht. (Weitere Verbesserungen siehe "Ausblick") <br/>
Das Ergebnis dieses Artikels ist eine Vorlage, mit der Nutzer des Wikis schnell und leicht eigene Artikel verwirklichen können. Diese Vorlage ist Bestandteil der Anleitungen aus [http://193.175.248.171/wiki/index.php/Kategorie:HowTo den How-To's].
Der Erfolg lag in einer gelungenen Absprache des kompletten Teams. Die Mitglieder haben sich bei Problemen gegenseitig geholfen, Aufgaben abgesprochen und gemeinsam an Lösungen gearbeitet und nach Optimierungsmöglichkeiten gesucht. <br/> So ist ein Roboter entstanden, der ohne menschliches Eingreifen, alleine durch Sensoren, einen Mikrokontroller und eine intelligente Software sogar gegen einen gegenerischen Roboter Fußball spielen und gewinnen kann.
 
== Verwendete Softwaretools ==
* Bricx Command Center 3.3 [http://bricxcc.sourceforge.net/] (für die Programmierung)
* Microsoft Office: PowerPoint [https://www.microsoft.com/de-de/store/b/powerpoint-2016] (zur Erstellung des Werbeplakats)
* LEGO Digital Designer [http://ldd.lego.com/de-de] (zur Erstellung des Bauplans des Roboters)
* Matlab [https://de.mathworks.com/] (zur Analyse von Daten aus Sensortests)
* NXT 2.0 [https://www.lego.com/de-de/mindstorms/downloads/nxt-software-download] (zur Programmierung der Software)
* EV3 Lobby [https://education.lego.com/de-de/downloads/mindstorms-ev3] (zur Programmierung der Software)
* TortoiseSVN [https://tortoisesvn.net/index.de.html] (Datensicherung und -austausch zwischen den Teammitgliedern)


== Unterlagen in TortoiseSVN ==
Die Unterlagen der Teammitglieder sind für autorisierte Personen unter folgender URL erreichbar [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/Gruppen_WS1718/B4].


== Ausblick ==
== Ausblick ==
Was kann/muss noch verbessert werden?
* Der Tastsensor zur Hinderniserkennung ist derzeit instabil, da er nicht mechanisch geführt ist. Dies führt dazu, dass dieser beim schrägen Anfahren eines Hindernisses nicht auslöst.
 
* Die Ausrichtung zum Tor ist aufgrund des Kompasssensors nur begrenzt möglich. Der Roboter kann sich lediglich nach einer Himmelsrichtung ausrichten. Befindet er sich am Spielfeldrand, kann er das Tor nicht treffen, obwohl er sich korrekt ausgerichtet hat. Für die Lösung dieses Problems müsste der Roboter noch über eine Positionsinformation verfügen. Alternativ könnte man die Tore verbreitern.


== Literaturverzeichnis ==
== Literaturverzeichnis ==
Zeile 93: Zeile 140:




→ zurück zum Hauptartikel: [[Autonomes Fahren SoSe17|Informatikpraktikum 2 SoSe17]]</pre>
 
 
→ zurück zum Hauptartikel: [[RoboSoccer WS 17/18|RoboSoccer WS 17/18]]

Aktuelle Version vom 25. Januar 2018, 18:39 Uhr

Autoren: Patrick Schumann, Martin Theine und Julin Horstkötter

In dem Informatikpraktikum des ersten Semesters im Studiengang Mechatronik ist der Roboter "Nr. 27" konstruiert worden. Dessen Software ist darauf ausgelegt, autonom Fußball zu spielen.

"Nr.27"

Zielsetzung

"Die Zielsetzung besteht in der Entwicklung und Programmierung eines fußballspielenden Roboters, der in der Lage ist, ein bewegliches Objekt (Ball) auf einem Spielfeld autonom zu identifizieren und schnellstmöglich in das gegnerische Tor zu schießen.
Analog zu realen Fußballspielen ist es notwendig, bestehende Hindernisse, wie beispielsweise einen gegnerischen Roboter, zu überwinden."[1]

Teammitglieder und ihre Aufgaben

• Konstruktion des Fahrzeuges
• Programmentwicklung mit Matlab und NXC
• Entwicklung und Visualisierung des Konzeptplans mit PapDesigner
• Visualisierung des Fahrzeuges mit LegoDesigner


• Konstruktion des Fahrzeuges
• Programmentwicklung mit Matlab und NXC
• Entwicklung und Visualisierung des Konzeptplans mit PapDesigner
• Videoaufnahme und Bearbeitung


• Programmentwicklung mit Matlab und NXC
• Entwicklung und Visualisierung des Konzeptplans mit PapDesigner
• Verfassen des Wiki-Beitrages
• Videoaufnahme und Bearbeitung

Konstruktionsplan im Lego Designer

Schrägansicht rechts
Schrägansicht links



















Bemerkung: Da sich programmbedingt nicht alle Zahnräder korrekt platzieren ließen, fehlen im Konstruktionsplan in der Schussmotorik 2 Zahnräder pro Seite.

Fahrzeugkennwerte

Abmessungen des Fahrzeugs

Parameter Maße in mm
Fahrzeuglänge 270 mm
Fahrzeugbreite 170 mm
Fahrzeughöhe 300 mm
Spurweite vorne 120 mm
Spurweite hinten 60 mm
Achsabstand 90 mm
Wendekreis ca. 0 mm

Bemerkung: Der Roboter ist kompakt gebaut und hat eine Einzelradaufhängung. Aus diesen Gründen ist er sehr wendig und kann sogar auf der Stelle drehen. Der Wendekreis beträgt daher 0 mm.

Sensorik und deren Anwendungsgebiete

  • Infrarotsensor: Ballsuche
  • Kompasssensor: Ausrichtung zum Tor
  • Mechanischer Tastsensor 1: Ballerkennung
  • Mechanischer Tastsensor 2: Hinderniserkennung

Softwarekonzept als Programm-Ablauf-Plan (PAP)

Programmablaufplan (PAP)

PAP als PDF-Dokument: Datei:RoboSoccer - Gruppe B4 PAP.pdf

Die Software des Roboters teilt sich, wie im PAP ersichtlich, in folgende Unterprogramme auf:

  • Buttonabfrage: Ermöglicht die Eingabe des Zieltors
  • Ballsuche: Auffinden und Fangen des Balls
  • Ausrichtung: Ausrichtung zum Tor und Schuss
  • Warten: Spiel pausieren








Bildmaterial

Werbeplakat von "Nr.27"



















Fotos

"Nr.27" auf dem Spielfeld während eines Torschusses
Schrägansicht rechts
Seitenansicht rechts
Vorderansicht
Seitenansicht links

























































Video

Video zum Roboter "Robo Fighter"

Video-Beschreibung:
Herausgeber: Patrick Schumann, Martin Theine und Julin Horstkötter
Hochschule: Hochschule Hamm-Lippstadt
Studiengang: Mechatronik 1. Semester
Projektkurs: Informatikpraktikum I (Gruppe B4)
Betreuer: Prof. Dr. Ing.-Schneider
Musikquelle: iMovie
Praktikumsziel: Konstruktion und Programmierung eines LEGO-Mindstorm-Roboters, der Fußball spielen kann. Anhand eines Infrarotlicht aussendenden Balls und des Infrarotsensors des Roboters kann dieser den Ball "sehen". Die Ausrichtung erfolgt mittels Kompasssensors. Programmiert wurde in der Programmiersprache NXC, welche C-Basiert ist.

Zusammenfassung

Zum Ende des Wintersemesters ist es geschafft. Der Roboter "Nr. 27" spielt Fußball. Somit ist das Ziel zur Zufriedenstellung der Teammitglieder erreicht. (Weitere Verbesserungen siehe "Ausblick")
Der Erfolg lag in einer gelungenen Absprache des kompletten Teams. Die Mitglieder haben sich bei Problemen gegenseitig geholfen, Aufgaben abgesprochen und gemeinsam an Lösungen gearbeitet und nach Optimierungsmöglichkeiten gesucht.
So ist ein Roboter entstanden, der ohne menschliches Eingreifen, alleine durch Sensoren, einen Mikrokontroller und eine intelligente Software sogar gegen einen gegenerischen Roboter Fußball spielen und gewinnen kann.

Verwendete Softwaretools

  • Bricx Command Center 3.3 [1] (für die Programmierung)
  • Microsoft Office: PowerPoint [2] (zur Erstellung des Werbeplakats)
  • LEGO Digital Designer [3] (zur Erstellung des Bauplans des Roboters)
  • Matlab [4] (zur Analyse von Daten aus Sensortests)
  • NXT 2.0 [5] (zur Programmierung der Software)
  • EV3 Lobby [6] (zur Programmierung der Software)
  • TortoiseSVN [7] (Datensicherung und -austausch zwischen den Teammitgliedern)

Unterlagen in TortoiseSVN

Die Unterlagen der Teammitglieder sind für autorisierte Personen unter folgender URL erreichbar [8].

Ausblick

  • Der Tastsensor zur Hinderniserkennung ist derzeit instabil, da er nicht mechanisch geführt ist. Dies führt dazu, dass dieser beim schrägen Anfahren eines Hindernisses nicht auslöst.
  • Die Ausrichtung zum Tor ist aufgrund des Kompasssensors nur begrenzt möglich. Der Roboter kann sich lediglich nach einer Himmelsrichtung ausrichten. Befindet er sich am Spielfeldrand, kann er das Tor nicht treffen, obwohl er sich korrekt ausgerichtet hat. Für die Lösung dieses Problems müsste der Roboter noch über eine Positionsinformation verfügen. Alternativ könnte man die Tore verbreitern.

Literaturverzeichnis



→ zurück zum Hauptartikel: RoboSoccer WS 17/18