Projekt 70a:Bau eines Labyrinths für EV3-Roboter: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 17: | Zeile 17: | ||
In diesem Artikel wird das Projekt 70a: Bau eines Labyrinths für EV3-Roboter erklärt. | In diesem Artikel wird das Projekt 70a: Bau eines Labyrinths für EV3-Roboter erklärt. | ||
In diesem Projekt soll ein EV3 Roboter den Ausgang aus einem Labyrinth finden und dabei den Weg aufzeichnen. | In diesem Projekt soll ein EV3 Roboter den Ausgang aus einem Labyrinth finden und dabei den Weg aufzeichnen. | ||
Erarbeitet wurde dieses Projekt von Michael Menke und Sebastian Trybel im Rahmen des Elektrotechnik Fachpraktikums im Wintersemester 2017/18. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglich, deswegen befinden sich weitere Dateien, wie die Bauanleitung für den Roboter, ebenso wie die technische Zeichnungen für das Labyrinth, die Flussdiagramme und ein Programmcode in Subversion(SVN). Der Link für die Unterlagen befinden sich | Erarbeitet wurde dieses Projekt von Michael Menke und Sebastian Trybel im Rahmen des Elektrotechnik Fachpraktikums im Wintersemester 2017/18. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglich, deswegen befinden sich weitere Dateien, wie die Bauanleitung für den Roboter, ebenso wie die technische Zeichnungen für das Labyrinth, die Flussdiagramme und ein Programmcode in Subversion(SVN). Der Link für die Unterlagen befinden sich unter der Überschrift '''[http://193.175.248.52/wiki/index.php/Projekt_70a:Bau_eines_Labyrinths_f%C3%BCr_EV3-Roboter#Projektunterlagen Projektunterlagen]'''. Für eine kurze Präsentation des Projekts wurde ein '''[https://www.youtube.com/watch?v=FbP6DBTZcNk Youtube-Video]''' erstellt. | ||
== Aufgabe == | == Aufgabe == | ||
Ein EV3 Roboter soll den Ausgang aus einem Labyrinth finden und dabei einen SLAM-Algorithmus anwenden. | Ein EV3 Roboter soll den Ausgang aus einem Labyrinth finden und dabei einen SLAM-Algorithmus anwenden. | ||
Das SLAM-Verfahren (englisch Simultaneous Localization and Mapping; | Das SLAM-Verfahren (englisch Simultaneous Localization and Mapping; Deutsch: Simultane Lokalisierung und Kartenerstellung) ist eine Methode, mit der ein mobiler Roboter gleichzeitig eine Karte seiner Umgebung erstellen und seine Pose innerhalb dieser Karte schätzen kann. | ||
Eine der grundlegenden Fähigkeiten eines mobilen Roboters besteht darin, zu wissen, wie seine Umgebung aussieht und wo er sich befindet. Ist eine Karte der Umgebung vorhanden, kann sich ein Roboter mit Hilfe seiner Sensoren wie Ultraschall oder Lidar darin positionieren. Ist die absolute Position des Roboters bekannt, kann eine Karte aufgebaut werden. Dabei misst der Roboter die relative Position möglicher Hindernisse zu ihm und kann mit seiner bekannten Position dann die absolute Position der Hindernisse bestimmen, die dann in die Karte eingetragen wird. | Eine der grundlegenden Fähigkeiten eines mobilen Roboters besteht darin, zu wissen, wie seine Umgebung aussieht und wo er sich befindet. Ist eine Karte der Umgebung vorhanden, kann sich ein Roboter mit Hilfe seiner Sensoren wie Ultraschall oder Lidar darin positionieren. Ist die absolute Position des Roboters bekannt, kann eine Karte aufgebaut werden. Dabei misst der Roboter die relative Position möglicher Hindernisse zu ihm und kann mit seiner bekannten Position dann die absolute Position der Hindernisse bestimmen, die dann in die Karte eingetragen wird. | ||
Zeile 47: | Zeile 47: | ||
== Verwendete Materialien und Werkzeuge == | == Verwendete Materialien und Werkzeuge == | ||
[[Datei:BestellungProjekt70a.PNG |500px| | [[Datei:BestellungProjekt70a.PNG |500px| Bestellung für das Projekt 70a]] | ||
== Planung == | == Planung == | ||
Zeile 53: | Zeile 53: | ||
[[Datei:Ghant-Chart.PNG |600px| | [[Datei:Ghant-Chart.PNG |600px| Gannt-Chart für das Projekt 70a]] | ||
Zeile 83: | Zeile 83: | ||
Unsere Wahl ist durch die Messreihe auf den Ultraschallsensor gefallen. Durch die Messreihe wird deutlich | Unsere Wahl ist durch die Messreihe auf den Ultraschallsensor gefallen. Durch die Messreihe wird deutlich, dass die Genauigkeit des Ultraschallsensors bei geringen und größeren Abständen im Vergleich zum Infrarotdetektor genauer ist. | ||
Um die Drehbewegung festzustellen wurde noch ein Gyro-Sensor verwendet. Dieser reagiert auf die kleinsten Beschleunigungen, Drehbewegungen oder Lageänderungen. Sobald der Roboter während der Fahrt lenkt, erfasst der Sensor diese Bewegungen und liefert ein Signal, welches eine Spannungsänderung bezogen auf die Drehgeschwindigkeit an den EV3 liefert. | Um die Drehbewegung festzustellen wurde noch ein Gyro-Sensor verwendet. Dieser reagiert auf die kleinsten Beschleunigungen, Drehbewegungen oder Lageänderungen. Sobald der Roboter während der Fahrt lenkt, erfasst der Sensor diese Bewegungen und liefert ein Signal, welches eine Spannungsänderung bezogen auf die Drehgeschwindigkeit an den EV3 liefert. | ||
Zeile 183: | Zeile 183: | ||
In diesem Projekt gab es Schwierigkeiten hinsichtlich der Programmierung. Durch den wenigen Kontakt mit der Simulink-Software waren wichtige Programmierfähigkeiten in der Software nicht vorhanden. Diese mussten noch zunächst angelernt werden. Dadurch mussten am Anfang viele Tests und Versuche stattfinden. Diese haben viel Zeit gekostet. Zusätzlich waren noch Softwarefehler vorhanden, die nicht schnell gelöst werden konnten. Auch nicht nach längeren Recherchen. | In diesem Projekt gab es Schwierigkeiten hinsichtlich der Programmierung. Durch den wenigen Kontakt mit der Simulink-Software waren wichtige Programmierfähigkeiten in der Software nicht vorhanden. Diese mussten noch zunächst angelernt werden. Dadurch mussten am Anfang viele Tests und Versuche stattfinden. Diese haben viel Zeit gekostet. Zusätzlich waren noch Softwarefehler vorhanden, die nicht schnell gelöst werden konnten. Auch nicht nach längeren Recherchen. | ||
Bei den ersten Versuchen die Software auf die Hardware zu übertragen, entstand beim | Bei den ersten Versuchen die Software auf die Hardware zu übertragen, entstand beim Kompilieren ein Fehler. | ||
Welcher auch nicht mit Hilfe vom technischen Support von Matlab / Simulink nicht gelöst werden konnte. | Welcher auch nicht mit Hilfe vom technischen Support von Matlab / Simulink nicht gelöst werden konnte. | ||
== Fazit == | == Fazit == | ||
Es war ein hochinteressantes Projekt in dem verschiedene Erlernte Fähigkeiten aus vorherigen Vorlesungen und Übungen verwendet werden konnten. | |||
Für die Planung und die Einteilung der Aufgaben sind die Fähigkeiten aus dem Fach „Projektmanagement und Teamarbeit“ verwendet worden. | |||
Für die technischen Zeichnungen für das Labyrinth sind die Kontakte mit der SolidWorks-Software aus dem „CAD-Praktikum“ aus dem 1. Semester sehr hilfreich gewesen. | |||
Für die eigentliche Kernaufgabe des Projektes, das Programmieren des Lego Mindstorms EV3 sind die Vorlesungen und die dazugehörigen Praktika aus der „Informatik I“ und „Informatik II“, sowie die Vorlesungen aus der „Mess- und Regelungstechnik“ hilfreich gewesen. | |||
Zusätzlich mussten für das Projekt noch eigenständig Informationen gesammelt werden, um das gewünschte Ergebnis zu erreichen. Dazu gehörte das auseinandersetzten mit der SLAM-Darstellung und mit der Simulink-Software. | |||
Bei der Programmierung sind viele Erkenntnisse im Bereich von Matlab und Simulink entstanden, die im Weiteren Studiumverlauf eventuell Hilfreich sein können. Jedoch konnte die Komplexität der Aufgabe nicht durch das reine Wissen aus vorherigen Vorlesungen und Übungen kompensiert werden. Und durch technische Probleme mit der Simulink-Software nicht beendet werden. | |||
Zeile 196: | Zeile 202: | ||
== Ausblick == | == Ausblick == | ||
Durch die technischen Probleme mit der Simulink-Software konnten die vorhandenen Programme simuliert, aber nicht auf den Roboter übertragen werden. Die Hardware wurde für das Projekt komplett angefertigt. Somit wäre eine erneute Aufnahme des Projektes mit anschließender fehlerfreien Übertragung der Software auf die Hardware eine Möglichkeit. Des Weiteren können auch andere Varianten eines Slam-Algorithmus in dem Labyrinth entwickelt und ausprobiert werden. | Durch die technischen Probleme mit der Simulink-Software konnten die vorhandenen Programme simuliert, aber nicht auf den Roboter übertragen werden. Die Hardware wurde für das Projekt komplett angefertigt. Somit wäre eine erneute Aufnahme des Projektes mit anschließender fehlerfreien Übertragung der Software auf die Hardware eine Möglichkeit. Des Weiteren können auch andere Varianten eines Slam-Algorithmus in dem Labyrinth entwickelt und ausprobiert werden. | ||
Version vom 16. Januar 2018, 20:13 Uhr
IN BEARBEITUNG
Autoren: Michael Menke und Sebastian Trybel
Betreuer: Prof. Dr.-Ing. Schneider
Einleitung
In diesem Artikel wird das Projekt 70a: Bau eines Labyrinths für EV3-Roboter erklärt. In diesem Projekt soll ein EV3 Roboter den Ausgang aus einem Labyrinth finden und dabei den Weg aufzeichnen. Erarbeitet wurde dieses Projekt von Michael Menke und Sebastian Trybel im Rahmen des Elektrotechnik Fachpraktikums im Wintersemester 2017/18. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglich, deswegen befinden sich weitere Dateien, wie die Bauanleitung für den Roboter, ebenso wie die technische Zeichnungen für das Labyrinth, die Flussdiagramme und ein Programmcode in Subversion(SVN). Der Link für die Unterlagen befinden sich unter der Überschrift Projektunterlagen. Für eine kurze Präsentation des Projekts wurde ein Youtube-Video erstellt.
Aufgabe
Ein EV3 Roboter soll den Ausgang aus einem Labyrinth finden und dabei einen SLAM-Algorithmus anwenden.
Das SLAM-Verfahren (englisch Simultaneous Localization and Mapping; Deutsch: Simultane Lokalisierung und Kartenerstellung) ist eine Methode, mit der ein mobiler Roboter gleichzeitig eine Karte seiner Umgebung erstellen und seine Pose innerhalb dieser Karte schätzen kann.
Eine der grundlegenden Fähigkeiten eines mobilen Roboters besteht darin, zu wissen, wie seine Umgebung aussieht und wo er sich befindet. Ist eine Karte der Umgebung vorhanden, kann sich ein Roboter mit Hilfe seiner Sensoren wie Ultraschall oder Lidar darin positionieren. Ist die absolute Position des Roboters bekannt, kann eine Karte aufgebaut werden. Dabei misst der Roboter die relative Position möglicher Hindernisse zu ihm und kann mit seiner bekannten Position dann die absolute Position der Hindernisse bestimmen, die dann in die Karte eingetragen wird.
SLAM ist somit ein Henne-Ei-Problem, da weder die Karte noch die Position bekannt ist, sondern gleichzeitig geschätzt werden sollen.
Erwartungen an die Projektlösung
- Aufbau und Planung eines flexiblen Labyrinths (z.B. Styrodur)
- Robotervorschlag wurde bereits aufgebaut
- Recherche SLAM
- SLAM Ortung und Navigation via US oder IR Sensor(en)
- Inbetriebnahme mit Matlab/Simulink
- Realisierung der Flucht aus dem Labyrinth durch SLAM.
- Machen Sie spektakuläre Videos, welche die Funktion visualisieren.
- Test und wiss. Dokumentation
- Live Vorführung während der Abschlusspräsentation
Stimmen Sie sich mit Projekt 70b bezüglich Roboterdesign und Labyrinth ab, so dass die Labyrinthteile kompatibel sind.
Schwierigkeitsgrad
Mittel (***)
Verwendete Materialien und Werkzeuge
Planung
Von der Themenauswahl bis hin zur Abschlusspräsentation umfasst das Projekt rund vier Monate. Zunächst wurde eine zeitliche Gliederung für das Projekt erarbeitet. Anschließend folgt die Konstruktion vom Labyrinth und des Roboters, damit die Bestellungsliste bis zum 22.10.2017 fertiggestellt werden konnte.
Konstruktionsphase
Labyrinth
Dadurch, dass das Labyrinth variabel sein soll, wurde eine Rasterung für die Grundplatte entwickelt, die es ermöglich das Labyrinth auf einem 4x4 Feld flexibel aufzubauen. Die Feldgröße wurde dabei auf 300x300 mm dimensioniert. Die Wahl für die Wände und Eckverbinder ist auf Styruoduo gefallen, da dieses Material nicht so schwer wie Holz ist, es sich leicht verarbeiten lässt und auch kostenmäßig sparsam ist. Für die Grundplatte wurde eine Holzplatte benutzt, damit die Konstruktion auch eine gewisse Stabilität besitzt und auch Transporte übersteht. Zur Verbindung der Wände mit der Holzplatte wurden Holzdübel verwendet. Diese Art der Verbindung ist deutlich kostengünstiger und im Vergleich zum verschrauben, eine zeitliche Ersparnis beim individuellen Umbauen des Labyrinths. Dadurch, dass der finanzielle Rahmen von 20 € nicht überschritten werden sollte, wurde nicht als zu hohes Styruoduo verwendet um die Kosten niedrig zu halten. Demgemäß war die Konstruktion des Roboters eingeschränkt. Dementsprechend dürfte der Sensor zur Überprüfung des Daseins der Wand nicht höher als 150mm vom Boden entfernt sein.
Roboter
Der Roboter musste aus Kostengründen und nach Absprache mit den Studenten aus dem Masterstudiengang BSE (Business and Systems Engineering) umgebaut werden. Des Weiteren mussten Entscheidungen über die Arten der Sensoren getroffen werden.
Auswahl der Sensoren Zunächst findet eine Recherche über den Ultraschall- und Infrarotsensor statt. Da einer dieser Sensorarten zur Überprüfung der Wände genutzt werden soll. Die Sensorfunktionen werden kurz und allgemein erläutert, um daraufhin die Vor- und Nachteile der beiden Sensorarten in tabellarischer Form darzustellen. Zusätzlich wurde eine Messreihe mit den beiden Varianten der Sensoren durchgeführt.
EV3 Ultraschallsensor
Der Ultraschallsensor erzeugt Schallwellen und ermittelt darüber Objekte und zusätzlich die entsprechende Entfernung in cm. Das Prinzip beruht sich darauf wie sich Fledermäuse orientieren. Die Entfernungsmessung mit Ultraschallsensoren beruht auf der Messung der Zeit, die eine für den Menschen unhörbare Schallwelle braucht, bis sie zurückgeworfen wird.
EV3 Infrarotdetektor
Der EV3 Infrarotdetektor detektiert Infrarotlicht (IR). Diese Quellen können Sonnenlicht oder IR-Licht beispielsweise aus TV-Fernbedienungen sein, aber auch den Infrarot-Ball von HiTechnic mit dem der Roboter Fußball spielen kann wird erkannt. Dabei erkennt er die Richtung und den Abstand der Quelle.
Für die Messreihe wurden verschiedene Abstände eingestellt und durch die Sensoren ermittelt. Die Tabelle besteht aus dem eingestellten Abstand, den ermittelten Abstand durch den EV3 Ultraschallsensor und den EV3 Infrarotdetektor, sowie die Resultierende Abweichung vom Ist- zum Sollwert. Die Tabelle ist hier hinterlegt.
Unsere Wahl ist durch die Messreihe auf den Ultraschallsensor gefallen. Durch die Messreihe wird deutlich, dass die Genauigkeit des Ultraschallsensors bei geringen und größeren Abständen im Vergleich zum Infrarotdetektor genauer ist.
Um die Drehbewegung festzustellen wurde noch ein Gyro-Sensor verwendet. Dieser reagiert auf die kleinsten Beschleunigungen, Drehbewegungen oder Lageänderungen. Sobald der Roboter während der Fahrt lenkt, erfasst der Sensor diese Bewegungen und liefert ein Signal, welches eine Spannungsänderung bezogen auf die Drehgeschwindigkeit an den EV3 liefert.
- Genauigkeit der Winkelmessung: +/- 3 Grad
- Maximale Ausgabe: 440 Grad/Sekunde
- Anzahl der Messzeiten: 1000-mal / Sekunde
Parallel zu den Konstruktionsaufgaben, wurden die Flussdiagramme und somit die ersten Ideen zur späteren Programmierung festgehalten. Diese befinden sich ebenso im SVN.
Bauphase
Durch die Lieferzeiten für die Bauelemente die für die Herstellung des Labyrinthes benötigt werden, beginnt die Bauphase in dem Projekt mit dem Bau des Roboters. Hierzu befindet sich die Bauanleitung im SVN.
Nach der Lieferung der Bauelemente beginnt der Bau des Labyrinths. Die Technischen Zeichnungen für den Aufbau des Labyrinths befinden sich im SVN. Dazu gehören die Zeichnungen für die Wände, die Eckverbinder und die Grundplatte. Zunächst werden die Bohrungen nach diesen Zeichnungen auf der Grundplatte angezeichnet und anschließend mit der Bohrmaschine und dem Bohrer angefertigt. Ebenso werden die Bohrungen in den Styrodurplatten hergestellt. Diese müssen jedoch vorher auf die gewünschten Maße zugeschnitten werden. Insgesamt müssen bei einer Grundplattengröße von 1,3 m x 1,3 m 25 Eckverbinder und 42 Wände hergestellt werden um alle vorhandenen Bohrungen abzudecken.
Programmcode
Schwierigkeiten
In diesem Projekt gab es Schwierigkeiten hinsichtlich der Programmierung. Durch den wenigen Kontakt mit der Simulink-Software waren wichtige Programmierfähigkeiten in der Software nicht vorhanden. Diese mussten noch zunächst angelernt werden. Dadurch mussten am Anfang viele Tests und Versuche stattfinden. Diese haben viel Zeit gekostet. Zusätzlich waren noch Softwarefehler vorhanden, die nicht schnell gelöst werden konnten. Auch nicht nach längeren Recherchen.
Bei den ersten Versuchen die Software auf die Hardware zu übertragen, entstand beim Kompilieren ein Fehler. Welcher auch nicht mit Hilfe vom technischen Support von Matlab / Simulink nicht gelöst werden konnte.
Fazit
Es war ein hochinteressantes Projekt in dem verschiedene Erlernte Fähigkeiten aus vorherigen Vorlesungen und Übungen verwendet werden konnten. Für die Planung und die Einteilung der Aufgaben sind die Fähigkeiten aus dem Fach „Projektmanagement und Teamarbeit“ verwendet worden. Für die technischen Zeichnungen für das Labyrinth sind die Kontakte mit der SolidWorks-Software aus dem „CAD-Praktikum“ aus dem 1. Semester sehr hilfreich gewesen. Für die eigentliche Kernaufgabe des Projektes, das Programmieren des Lego Mindstorms EV3 sind die Vorlesungen und die dazugehörigen Praktika aus der „Informatik I“ und „Informatik II“, sowie die Vorlesungen aus der „Mess- und Regelungstechnik“ hilfreich gewesen. Zusätzlich mussten für das Projekt noch eigenständig Informationen gesammelt werden, um das gewünschte Ergebnis zu erreichen. Dazu gehörte das auseinandersetzten mit der SLAM-Darstellung und mit der Simulink-Software. Bei der Programmierung sind viele Erkenntnisse im Bereich von Matlab und Simulink entstanden, die im Weiteren Studiumverlauf eventuell Hilfreich sein können. Jedoch konnte die Komplexität der Aufgabe nicht durch das reine Wissen aus vorherigen Vorlesungen und Übungen kompensiert werden. Und durch technische Probleme mit der Simulink-Software nicht beendet werden.
Projektunterlagen
Die gewünschten Projektunterlagen befinden sich im SVN. Diese sind unter diesem Link erreichbar: ""
Ausblick
Durch die technischen Probleme mit der Simulink-Software konnten die vorhandenen Programme simuliert, aber nicht auf den Roboter übertragen werden. Die Hardware wurde für das Projekt komplett angefertigt. Somit wäre eine erneute Aufnahme des Projektes mit anschließender fehlerfreien Übertragung der Software auf die Hardware eine Möglichkeit. Des Weiteren können auch andere Varianten eines Slam-Algorithmus in dem Labyrinth entwickelt und ausprobiert werden.
Literatur
- Monjazeb, A.: Autonomous Robot Navigation Based on Simultaneous Localization and Mapping. Carleton University (Canada), 2008. ISBN 978-049-4368-29-9
- Nüchter, A.: 3D Robotic Mapping: The Simultaneous Localization and Mapping Problem. Heidelberg: Springer, 2009. ISBN 978-354-0898-83-2
- Stachniss, C.: Robot Mapping. Uni Freiburg: Vorlesung, WS 13/14. URL: http://www2.informatik.uni-freiburg.de/~stachnis/. Stand: 01.01.15
- Thrun, S.; u.A.: Probabilistic Robotics. Cambridge: MIT Press, 2005. ISBN 978-026-2201-62-9.
- Thrun, S.; u.A.: FastSLAM: A Scalable Method for the Simultaneous Localization and Mapping Problem in Robotics. New York: Springer, 2007. ISBN 978-354-0463-99-3
- Wang, Z. u.A.: Simultaneous Localization and Mapping: Exactly Sparse Information Filters. Singapore: 2011. ISBN 978-981-4350-31-0
Weblinks
- Martin Berysztak: Self Localization and Mapping mit Lidar- oder Kamera
- Wiki: Simultaneous Localization and Mapping
- CeBIT 2012: Roboter erkundet neues Terrain
- TU-Chemnitz: Kartenerstellung - Umgebungsmodellierung
- TU Dortmund: Simultane Lokalisierung und Kartenerstellung eines autonomen Roboters in einer dynamischen Umgebung bei Anwesenheit von Personen
- TU Dortmund: Simultane Lokalisierung und Kartierung spurgeführter Systeme
- EV3 SLAM
- LEGO MINDSTORMS EV3 Programming Using Simulink
- Obstacle Avoidance using LEGO Mindstorms EV3 and Simulink
- EKF SLAM using LIDAR sensor and Corner Extraction
- ATLAS: SLAM with Lego Mindstorms NXT
- Autonomous Arduino Car Maze Solving with 3 Ultrasonic Sensors
- Maze solving robot Lego Mindstorms
- Particle Filter based SLAM
- NXT Maze Solver that Remembers the Shortest Path
- Monte Carlo Localization with LEGO NXT & MATLAB
YouTube Video
Projekt 70a:Bau eines Labyrinths für EV3-Roboter
→ zurück zum Hauptartikel: WS 17/18: Fachpraktikum Elektrotechnik (MTR) und Angewandte Elektrotechnik (BSE)