RoboSoccer Gruppe A6 - WS 17/18: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(74 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Autor:''' [[Benutzer:Marie Henning| Marie Henning]] [[Benutzer:Hagen Heuer| Hagen Heuer]] [[Benutzer:Kristina Kokojew| Kristina Kokojew]] | |||
'''Autor:''' [[Marie Henning | |||
== 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 | 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: [[RoboSoccer_WS_17/18|Informatikpraktikum WS 17/18]] | |||
Zeile 18: | Zeile 14: | ||
:*Quelltext verfasst | :*Quelltext verfasst | ||
:*Fotos erstellt | :*Fotos erstellt | ||
:'''Marie Henning''' | :'''Marie Henning''' | ||
Zeile 25: | Zeile 20: | ||
:*Quelltext verfasst | :*Quelltext verfasst | ||
:*Video erstellt | :*Video erstellt | ||
:'''Hagen Heuer''' | :'''Hagen Heuer''' | ||
Zeile 31: | 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.''' | ||
===Erkenntnisse=== | ===Erkenntnisse=== | ||
In diesem Praktikum werden folgende | In diesem Praktikum werden folgende Inhalte erlernt: | ||
:Mit folgenden Programmen zu programmieren: | :Mit folgenden Programmen zu programmieren: | ||
:Lego Mindstorms EV3 | :Lego Mindstorms EV3 | ||
Zeile 46: | Zeile 37: | ||
:Bricx Command Center. | :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 | 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 | 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 56: | Zeile 47: | ||
=== | ===Plakat=== | ||
[[Datei:PlakatRoberry.pdf|links|mini|Plakat <ref> Eigenes Foto </ref>]] | |||
===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|Bauanleitung]] | |||
*'''Spielkonzept''' | |||
[[Datei:task_main.png|links|mini|Task Main <ref> Eigenes Foto </ref>]] [[Datei:Ballsuchen.png|rechts|mini|Ball suchen <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>]] | |||
Zeile 75: | Zeile 170: | ||
Zeile 107: | Zeile 193: | ||
: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. | :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. | :Der Messbereich liegt zwischen 20 und 80 cm. Die Abweichung liegt unter 8 %, ein zufriedenstellender Wert für einen Sensor dieser Art. | ||
[[Datei:Messbeispiele Ultraschallsensor.PNG|rechts|mini|Messbeispiele <ref> https://www.generationrobots.com/blog/de/2017/03/ultraschallsensoren-fur-kollisionvermeidung/ </ref>]] | |||
Zeile 115: | Zeile 214: | ||
[[Datei:Infrarot-Sensor.jpg|rechts|mini|Infrarot Sensor <ref> Eigenes Foto </ref>]] | [[Datei:Infrarot-Sensor.jpg|rechts|mini|Infrarot Sensor <ref> Eigenes Foto </ref>]] | ||
: | :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: | :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 | :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. | :Nicht modulierter Modus (DC Mode) – Erkennt nicht modulierte Infrarot-Lichtquellen, z. B. Umgebungslicht oder Feuer. | ||
:Dieser Sensor ist in der Lage | :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: | :Die Signalstärken werden in verschiedenen Richtungen rund um den Sensor zugeordnet. So erhält der Roboter genaue Richtungsanweisungen: | ||
[[Datei:Infrarot.PNG|links|mini|Richtungsanweisungen <ref> https://www.generationrobots.com/de/401172-nxt-irseeker-v2-infrarot-sensor-für-nxt-und-ev3-mindstorms-.html </ref>]] | |||
[[Datei:Tastsensor.JPG|rechts|mini|Tastsensor <ref> Eigenes Foto </ref>]] | |||
Zeile 127: | Zeile 245: | ||
*'''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. | |||
Zeile 145: | Zeile 273: | ||
:Die Werte können als relative oder absolute Werte angezeigt werden. Das erleichtert die Programmierung, wenn der Roboter einer bestimmten Richtung folgen soll. | :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 == | == 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 == | == Literaturverzeichnis == | ||
Zeile 194: | Zeile 325: | ||
:https://www.generationrobots.com/en/401259-lego-mindstorms-nxt-intelligent-brick.html | :https://www.generationrobots.com/en/401259-lego-mindstorms-nxt-intelligent-brick.html | ||
Zeile 202: | 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
Video von Roberry
https://www.youtube.com/watch?v=r7_JxQZtLIs&t=5s
Schritt-für-Schritt-Anleitung
- Aufbau des Roboters
- Spielkonzept
Hardware
Die Sensoren
- Ultraschallsensor:
- 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.
- Infrarotsensor:
- 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:
- 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:
- 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
- ↑ Eigenes Foto
- ↑ Eigenes Foto
- ↑ Eigenes Foto
- ↑ Eigenes Foto
- ↑ Eigenes Foto
- ↑ Eigenes Foto
- ↑ Eigenes Foto
- ↑ https://www.generationrobots.com/blog/de/2017/03/ultraschallsensoren-fur-kollisionvermeidung/
- ↑ Eigenes Foto
- ↑ https://www.generationrobots.com/de/401172-nxt-irseeker-v2-infrarot-sensor-für-nxt-und-ev3-mindstorms-.html
- ↑ Eigenes Foto
- ↑ Eigenes Foto
- BRG_Kepler_Tutorial_NXC.pdf
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