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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(26 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:HowTo]]
'''Autor:''' [[Benutzer:Marie Henning| Marie Henning]] [[Benutzer:Hagen Heuer| Hagen Heuer]] [[Benutzer:Kristina Kokojew| Kristina Kokojew]]
 
'''Autor:''' [[Marie Henning, Hagen Heuer, Kristina Kokojew]]  


== Einleitung ==
== Einleitung ==
In der Lehrveranstaltung Informatik, welches ein Informatikpraktikum beinhaltet, haben wir als Gruppen von jeweils 3 Personen, folgende Aufgabenstellung bekommen:                       
In der Lehrveranstaltung Informatik, welches ein Informatikpraktikum beinhaltet, haben wir als Gruppen von jeweils 3 Personen, folgende Aufgabenstellung bekommen:                       
Es soll ein NXT Lego Roboter zusammengebaut werden und programmiert werden. Die Hauptaufgabe des Roboters ist Fußball mit Gegnern zu spielen.
Es soll ein NXT Lego Roboter zusammengebaut und programmiert werden. Der Roboter soll am Ende des Semesters an einem RoboSoccer Turnier teilnehmen und gegen andere Roboter in einer 1 gegen 1 Situation spielen.
   
   


Dieser Artikel ist aus der Kategorie [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]]
→ zurück zum Hauptartikel: [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]]




Zeile 16: Zeile 14:
:*Quelltext verfasst
:*Quelltext verfasst
:*Fotos erstellt
:*Fotos erstellt


:'''Marie Henning'''
:'''Marie Henning'''
Zeile 23: Zeile 20:
:*Quelltext verfasst
:*Quelltext verfasst
:*Video erstellt
:*Video erstellt


:'''Hagen Heuer'''
:'''Hagen Heuer'''
Zeile 29: Zeile 25:
:*Roboter als 3D Modell konstruiert
:*Roboter als 3D Modell konstruiert
:*Quelltext verfasst
:*Quelltext verfasst


'''→ Alle Teammitglieder haben zu gleichen Teilen an dem Projekt mitgewirkt.'''
'''→ Alle Teammitglieder haben zu gleichen Teilen an dem Projekt mitgewirkt.'''
Zeile 36: Zeile 31:
===Erkenntnisse===
===Erkenntnisse===


In diesem Praktikum werden folgende Fähigkeiten beigebracht:
In diesem Praktikum werden folgende Inhalte erlernt:
:Mit folgenden Programmen zu programmieren:
:Mit folgenden Programmen zu programmieren:
:Lego Mindstorms EV3
:Lego Mindstorms EV3
Zeile 43: Zeile 38:


Die Sensorwerte grafisch in einem mechatronischen System zu programmieren und dort auswerten zu lassen.
Die Sensorwerte grafisch in einem mechatronischen System zu programmieren und dort auswerten zu lassen.
Die Ergebnisse der Einzelpraktika werden durch kleine Präsentationen dem Professor im Team vorstellen zu lasen.
Die Ergebnisse der Einzelpraktika werden durch kleine Präsentationen dem Professor im Team vorgestellt.
Jedes Einzelpraktikum muss nachhaltig dokumentiert werden. Das jeweilige Praktikum hat eine Deadline bis zu der die Aufgaben komplett bearbeitet werden müssen. Dafür muss ein gutes Projektmanagement und eine gute Zeiteinteilung herrschen.
Jedes Einzelpraktikum muss nachhaltig dokumentiert werden. Das jeweilige Praktikum hat eine Deadline bis zu der die Aufgaben komplett bearbeitet werden müssen. Dafür muss ein gutes Projektmanagement und eine gute Zeiteinteilung herrschen.
Am Ende wird das ganze Praktikum in einen Wiki-Artikel bzw. wissenschaftliche Arbeit zusammengefasst. Diese wird noch mit einem Imagefilm und einem Werbeposter beschmückt. Darüber hinaus lernt in einer Versionsverwaltungssoftware SVN zu arbeiten, da dort alle Ergebnisse und Zwischenarbeiten geladen werden.
Am Ende wird das ganze Praktikum in einen Wiki-Artikel bzw. wissenschaftliche Arbeit zusammengefasst. Diese wird noch mit einem Imagefilm und einem Werbeposter beschmückt. Darüber hinaus lernt man mit einer Versionsverwaltungssoftware SVN zu arbeiten, da dort alle Ergebnisse und Zwischenarbeiten hochgeladen werden können, besteht die Möglichkeit das alle Teammitglieder gleichzeitig drauf zu greifen können und bearbeiten können.
 


== Roberry ==
== Roberry ==
Zeile 53: Zeile 47:




===Poster===
===Plakat===
 
[[Datei:Ultraschall-Sensor.jpg|links|mini|Ultraschall Sensor <ref> Eigenes Foto </ref>]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 


[[Datei:PlakatRoberry.pdf|links|mini|Plakat <ref> Eigenes Foto </ref>]]


===Video von Roberry===
===Video von Roberry===


*Link...
https://www.youtube.com/watch?v=r7_JxQZtLIs&t=5s
 
 
 


===Schritt-für-Schritt-Anleitung===
===Schritt-für-Schritt-Anleitung===
Zeile 83: Zeile 59:
*'''Aufbau des Roboters'''
*'''Aufbau des Roboters'''
:[[Datei:Bauanleitung_Roberry.pdf|Bauanleitung]]
:[[Datei:Bauanleitung_Roberry.pdf|Bauanleitung]]


*'''Spielkonzept'''
*'''Spielkonzept'''
Zeile 90: Zeile 65:
[[Datei:Ballgreifen.png|links|mini|Ball greifen <ref> Eigenes Foto </ref>]] [[Datei:Ausrichten.png|rechts|mini|Ausrichten <ref> Eigenes Foto </ref>]]
[[Datei:Ballgreifen.png|links|mini|Ball greifen <ref> Eigenes Foto </ref>]] [[Datei:Ausrichten.png|rechts|mini|Ausrichten <ref> Eigenes Foto </ref>]]
[[Datei:Schiessen.png|links|mini|Schießen <ref> Eigenes Foto </ref>]]
[[Datei:Schiessen.png|links|mini|Schießen <ref> Eigenes Foto </ref>]]




Zeile 271: Zeile 244:


*'''Tastsensor:'''
*'''Tastsensor:'''


:Der Tastsensor ist der einfachste aller NXT-Sensoren, weil er nur zwei verschiedene Werte liefert: gedrückt oder nicht gedrückt bzw. 1 oder 0. Der Taster wird mithilfe einer Feder geöffnet. An dem Taster wird eine Versorgungsspannung von 4,3V angelegt und der Ausgang des Tasters wird zu dem Kontroller zurückgeführt. Er zählt zu den wichtigsten Sensoren für Wettbewerbe, da er sehr leicht und effektiv eingesetzt werden kann, Hindernisse zu erkennen und diesen auszuweichen.
:Der Tastsensor ist der einfachste aller NXT-Sensoren, weil er nur zwei verschiedene Werte liefert: gedrückt oder nicht gedrückt bzw. 1 oder 0. Der Taster wird mithilfe einer Feder geöffnet. An dem Taster wird eine Versorgungsspannung von 4,3V angelegt und der Ausgang des Tasters wird zu dem Kontroller zurückgeführt. Er zählt zu den wichtigsten Sensoren für Wettbewerbe, da er sehr leicht und effektiv eingesetzt werden kann, Hindernisse zu erkennen und diesen auszuweichen.
Zeile 313: Zeile 284:
:Der NXT-Roboter besitzt 3 Servomotoren. Zwei Motoren sind für die Steuerung des Roboters zuständig und ein weiterer für die Roboterarme.
:Der NXT-Roboter besitzt 3 Servomotoren. Zwei Motoren sind für die Steuerung des Roboters zuständig und ein weiterer für die Roboterarme.
:Servomotoren sind spezielle Elektromotoren, die durch die Kontrolle der Winkelposition ihrer Motorwelle sowie der Drehgeschwindigkeit und der Beschleunigung arbeiten. Solche Motoren haben einen zusätzlichen Sensor zur Bestimmung ihrer Position. Dieser Soll-Winkelpositionswert wird dem Servoregler übermittelt. Dieser Regler regelt den Motor dann mit dem entsprechendem Reglerkreis an. Dies bezeichnet man als Servoantrieb. Durch die zwei Servoantriebe wird der Roboter gesteuert.
:Servomotoren sind spezielle Elektromotoren, die durch die Kontrolle der Winkelposition ihrer Motorwelle sowie der Drehgeschwindigkeit und der Beschleunigung arbeiten. Solche Motoren haben einen zusätzlichen Sensor zur Bestimmung ihrer Position. Dieser Soll-Winkelpositionswert wird dem Servoregler übermittelt. Dieser Regler regelt den Motor dann mit dem entsprechendem Reglerkreis an. Dies bezeichnet man als Servoantrieb. Durch die zwei Servoantriebe wird der Roboter gesteuert.
:Der kleine Servomotor wurde speziell für die Roboterarme, Greifer und Riemenscheiben entwickelt. Er verfügt über ein Rotatiossensor, mit dem kann man die Drehzahl und die Geschwindigkeit präzise im Griff steuern.  
:Der kleine Servomotor wurde speziell für die Roboterarme, Greifer und Riemenscheiben entwickelt. Er verfügt über ein Rotationssensor, mit dem man die Drehzahl und die Geschwindigkeit präzise steuern kann.
 
 
 


====Der Brick====
====Der Brick====
Zeile 325: Zeile 293:
== Zusammenfassung ==
== Zusammenfassung ==


:Das Projekt wurde entwickelt um einen ersten Einblick in die C-Programmierung zu geben. Man kann damit gut, erste Erfahrungen in der Roboterprogrammierung sammeln. Die Gestaltung des Roboters sind keine Grenzen gesetzt, man kann sich kreativ austoben. Dadurch sammelt man auch erste Erfahrungen in der Konstruktionstechnik. Beim Zusammenarbeiten werden die organisatorischen Fähigkeiten und die die Teamfähigkeit der Studenten unter die Probe gestellt.  
:Das Projekt wurde entwickelt um einen ersten Einblick in die C-Programmierung zu geben. Man kann damit gut, erste Erfahrungen in der Roboterprogrammierung sammeln. Der Gestaltung des Roboters sind keine Grenzen gesetzt, man kann sich kreativ austoben. Dadurch sammelt man auch erste Erfahrungen in der Konstruktionstechnik. Beim Zusammenarbeiten werden die organisatorischen Fähigkeiten und die Teamfähigkeit der Studenten auf die Probe gestellt.




Zeile 331: Zeile 299:


Was wir verbessern würden:
Was wir verbessern würden:
:Die Zeiteinteilung. Das Projekt ist sehr Zeitaufwendig, vor allem um sich in die Programme einzuarbeiten.  
Die Zeiteinteilung:
:Aufgabenstellungen. Oftmals wurden die Aufgaben nicht genug konkret gestellt oder die waren nicht erfüllbar, da die Hardware nicht funktionierte.
:Das Projekt ist sehr Zeitaufwendig, vor allem um sich in die vielen unterschiedlichen Programme einzuarbeiten.
:Lösungsvorschlag: Vielleicht nur mit NXT 2.1 und Bricx Command Center arbeiten.
Aufgabenstellung: Wünschenswert wäre, wenn die Aufgaben, speziell bei den theoretischen Fragen, genauer gestellt werden.


== Literaturverzeichnis ==
== Literaturverzeichnis ==
Zeile 360: Zeile 331:
Hier können Nutzer oder kritische Leser (meist Professoren) Verbesserungen fordern/vorschlagen.
Hier können Nutzer oder kritische Leser (meist Professoren) Verbesserungen fordern/vorschlagen.


→ zum SVN: [[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/Gruppen_WS1718/A6| SVN A6]]


→ zurück zum Hauptartikel: [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]]
→ zurück zum Hauptartikel: [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]]

Aktuelle Version vom 3. Januar 2020, 15:08 Uhr

Autor: Marie Henning Hagen Heuer Kristina Kokojew

Einleitung

In der Lehrveranstaltung Informatik, welches ein Informatikpraktikum beinhaltet, haben wir als Gruppen von jeweils 3 Personen, folgende Aufgabenstellung bekommen: Es soll ein NXT Lego Roboter zusammengebaut und programmiert werden. Der Roboter soll am Ende des Semesters an einem RoboSoccer Turnier teilnehmen und gegen andere Roboter in einer 1 gegen 1 Situation spielen.


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


Teammitglieder

Kristina Kokojew
  • Wiki-Artikel
  • Quelltext verfasst
  • Fotos erstellt
Marie Henning
  • Programmablaufplan
  • Plakat erstellt
  • Quelltext verfasst
  • Video erstellt
Hagen Heuer
  • Roboter konstruiert
  • Roboter als 3D Modell konstruiert
  • Quelltext verfasst

→ Alle Teammitglieder haben zu gleichen Teilen an dem Projekt mitgewirkt.


Erkenntnisse

In diesem Praktikum werden folgende Inhalte erlernt:

Mit folgenden Programmen zu programmieren:
Lego Mindstorms EV3
Lego Mindstorms NXT 2.0
Bricx Command Center.

Die Sensorwerte grafisch in einem mechatronischen System zu programmieren und dort auswerten zu lassen. Die Ergebnisse der Einzelpraktika werden durch kleine Präsentationen dem Professor im Team vorgestellt. Jedes Einzelpraktikum muss nachhaltig dokumentiert werden. Das jeweilige Praktikum hat eine Deadline bis zu der die Aufgaben komplett bearbeitet werden müssen. Dafür muss ein gutes Projektmanagement und eine gute Zeiteinteilung herrschen. Am Ende wird das ganze Praktikum in einen Wiki-Artikel bzw. wissenschaftliche Arbeit zusammengefasst. Diese wird noch mit einem Imagefilm und einem Werbeposter beschmückt. Darüber hinaus lernt man mit einer Versionsverwaltungssoftware SVN zu arbeiten, da dort alle Ergebnisse und Zwischenarbeiten hochgeladen werden können, besteht die Möglichkeit das alle Teammitglieder gleichzeitig drauf zu greifen können und bearbeiten können.

Roberry

Plakat

Datei:PlakatRoberry.pdf

Video von Roberry

https://www.youtube.com/watch?v=r7_JxQZtLIs&t=5s

Schritt-für-Schritt-Anleitung

  • Aufbau des Roboters
Datei:Bauanleitung Roberry.pdf
  • Spielkonzept
Task Main [2]
Ball suchen [3]
Ball greifen [4]
Ausrichten [5]
Schießen [6]



























































Hardware

Die Sensoren

  • Ultraschallsensor:
Ultraschall Sensor [7]
Der Ultraschallsensor ist der modernste und komplexeste Sensor des NXT Kits. Dazu sendet der Sensor Schallwellen aus mit einer Frequenz (in der Regel etwa 40 kHz), diese werden reflektiert und von dem Empfänger wahrgenommen. Mithilfe des gemessenen Zeitversatzes kann die Entfernung berechnet werden. Es können keine Messungen unter 3 cm durchgeführt werden. Dies ist auf das Problem der Laufzeit der Schallwelle zurückzuführen.
Messungen bis 20 cm in einem Winkel von -8° bis +30° sind relativ genau, da der Empfänger auf der linken Seite und der Sender auf der rechten Seite angebracht ist, sind die Messungen links weniger genau als rechts.
Der Messbereich liegt zwischen 20 und 80 cm. Die Abweichung liegt unter 8 %, ein zufriedenstellender Wert für einen Sensor dieser Art.
Messbeispiele [8]








  • Infrarotsensor:
Infrarot Sensor [9]
Dieser Sensor ist in der Lage, Infrarot-Lichtquellen aufzuspüren. Er ist auch zudem in der Lage Sonnenlicht oder IR-Licht, welches beispielsweise aus TV-Fernsteuerungen zu empfangen, aber auch den Infrarot-Ball von HiTechnic mit dem der Roboter Fußball spielen kann. Was für unser Fußballspiel sehr wichtig ist.
Dieser Lichtsensor basiert auf zwei Erkennungsmodi:
Modulierter Modus (AC Mode) – Erkennt moduliertes Infrarotlicht, d.h. aus künstlichen Quellen wie Fernsteuerungen bzw. dem IR-Ball. Der Sensor kann nur Rechtecksignale mit 1200 Hz erkennen.
Nicht modulierter Modus (DC Mode) – Erkennt nicht modulierte Infrarot-Lichtquellen, z. B. Umgebungslicht oder Feuer.
Dieser Sensor ist in der Lage Beeinträchtigungen durch Störsignale zu reduzieren, dabei ist seine spezifische Formgebung sehr hilfreich. Die integrierte Signalverarbeitung versetzt ihn in die Lage, lediglich das gewünschte Signal zu empfangen.
Die Signalstärken werden in verschiedenen Richtungen rund um den Sensor zugeordnet. So erhält der Roboter genaue Richtungsanweisungen:
Richtungsanweisungen [10]









Tastsensor [11]



  • Tastsensor:
Der Tastsensor ist der einfachste aller NXT-Sensoren, weil er nur zwei verschiedene Werte liefert: gedrückt oder nicht gedrückt bzw. 1 oder 0. Der Taster wird mithilfe einer Feder geöffnet. An dem Taster wird eine Versorgungsspannung von 4,3V angelegt und der Ausgang des Tasters wird zu dem Kontroller zurückgeführt. Er zählt zu den wichtigsten Sensoren für Wettbewerbe, da er sehr leicht und effektiv eingesetzt werden kann, Hindernisse zu erkennen und diesen auszuweichen.









  • Kompasssensor:
Kompass Sensor [12]
Dieser Sensor misst das Erdmagnetfeld und berechnet damit einen Steuerkurs für den Roboter.
Der Sensor führt 100 Messungen pro Sekunde durch und übermittelt eine Zahl zwischen 0 und 359, die den Winkel zum Nordpol ausdrückt.
Der Sensor verfügt über zwei Modi:
Im Lesemodus übermittelt der Sensor jedes Mal einen Wert, wenn er vom intelligenten Lego Mindstorms NXT-Stein einen Lesebefehl erhält.
Im Kalibriermodus kann der Sensor so eingestellt werden, dass er störende Magnetfelder des Roboter-Elektromotors, der Batterien usw. neutralisiert
Die Werte können als relative oder absolute Werte angezeigt werden. Das erleichtert die Programmierung, wenn der Roboter einer bestimmten Richtung folgen soll.





Die Motoren

Der NXT-Roboter besitzt 3 Servomotoren. Zwei Motoren sind für die Steuerung des Roboters zuständig und ein weiterer für die Roboterarme.
Servomotoren sind spezielle Elektromotoren, die durch die Kontrolle der Winkelposition ihrer Motorwelle sowie der Drehgeschwindigkeit und der Beschleunigung arbeiten. Solche Motoren haben einen zusätzlichen Sensor zur Bestimmung ihrer Position. Dieser Soll-Winkelpositionswert wird dem Servoregler übermittelt. Dieser Regler regelt den Motor dann mit dem entsprechendem Reglerkreis an. Dies bezeichnet man als Servoantrieb. Durch die zwei Servoantriebe wird der Roboter gesteuert.
Der kleine Servomotor wurde speziell für die Roboterarme, Greifer und Riemenscheiben entwickelt. Er verfügt über ein Rotationssensor, mit dem man die Drehzahl und die Geschwindigkeit präzise steuern kann.

Der Brick

Der Brick ist das Steuerungszentrum (das Gehirn) des Roboters. Dieser ist in der Lage Informationen mit Ihrem PC, Mac oder PDA auszutauschen, sowie mit anderen NXT-Robotern über USB oder Bluetooth zu kommunizieren. Dieser enthält einen 32-Bit-Mikroprozessor ARM7, 1 USB 2.0 Anschluss, 4 Sensoreingänge, 3 Ausgangsports für Aktoren, 4 Steuerungstasten, ein integrierten Lautsprecher mit 8Khz und ein Matrix-Bildschirm mit 60x100 Pixel N & B. Das Steuerungszentrum benötigt 6 R06-Batterien oder eine wiederaufladbare NXT-Batterie um zu funktionieren.


Zusammenfassung

Das Projekt wurde entwickelt um einen ersten Einblick in die C-Programmierung zu geben. Man kann damit gut, erste Erfahrungen in der Roboterprogrammierung sammeln. Der Gestaltung des Roboters sind keine Grenzen gesetzt, man kann sich kreativ austoben. Dadurch sammelt man auch erste Erfahrungen in der Konstruktionstechnik. Beim Zusammenarbeiten werden die organisatorischen Fähigkeiten und die Teamfähigkeit der Studenten auf die Probe gestellt.


Ausblick

Was wir verbessern würden: Die Zeiteinteilung:

Das Projekt ist sehr Zeitaufwendig, vor allem um sich in die vielen unterschiedlichen Programme einzuarbeiten.
Lösungsvorschlag: Vielleicht nur mit NXT 2.1 und Bricx Command Center arbeiten.

Aufgabenstellung: Wünschenswert wäre, wenn die Aufgaben, speziell bei den theoretischen Fragen, genauer gestellt werden.

Literaturverzeichnis

https://www.generationrobots.com/blog/de/2017/03/ultraschallsensoren-fur-kollisionvermeidung/
https://www.generationrobots.com/de/401172-nxt-irseeker-v2-infrarot-sensor-für-nxt-und-ev3-mindstorms-.html
https://www.generationrobots.com/de/401186-kompasssensor-für-lego-mindstorms-nxt.html
BRG_Kepler_Tutorial_NXC.pdf
https://www.generationrobots.com/de/401186-kompasssensor-für-lego-mindstorms-nxt.html
https://de.wikipedia.org/wiki/Lego_Mindstorms_NXT
https://de.wikipedia.org/wiki/Servomotor
https://www.generationrobots.com/de/401342-lego-mindstorms-nxt-servomotor-mit-integriertem-rotationssensor.html
https://www.generationrobots.com/en/401259-lego-mindstorms-nxt-intelligent-brick.html


Korrektur/Rückmeldungen

Hier können Nutzer oder kritische Leser (meist Professoren) Verbesserungen fordern/vorschlagen.

→ zum SVN: [SVN A6]

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