Projekt 70b: Bau eines Labyrinths für EV3-Roboter
Autoren: Hinners Eileen, Klauke Patrick
Betreuer: Prof. Schneider
Einleitung
Im Rahmen des Praktikums der angewandten Elektrotechnik im Modul ingenieurwissenschaftliche Vertiefung II des Masterstudienganges Business and Systems Engineering, soll ein Mindstorm EV3 Roboter durch ein selbst gebautes Labyrinth finden. Ziel des Artikels ist es, nachfolgenden Gruppen eine nachhaltige Dokumentation zum leichteren Einstieg zu hinterlassen.
Aufgabe
Im einfachsten Sinne soll der Roboter den Ausgang aus einem Labyrinth finden.
Das Projekt teilt sich in 3 Schritte auf. Im 1. Schritt (Kartographie) wird der Roboter willkürlich im Labyrinth ausgesetzt, von seiner zufälligen Startposition aus fährt der Roboter solange gerade aus bis er rechts eine Kreuzung vorfindet. Der Roboter biegt rechts ab und folgt weiter diesem Weg bis sich rechts wieder eine Kreuzung vorfindet(Rechte-Hand-Prinzip). Kreuzungen die sich links vom Roboter ergeben merkt er sich und erkundet diese unbekannten Wege nach dem Last in-first out Prinzip( nach dem der Roboter mit der rechten Hand Regel nicht mehr weiterkommt).
Im Zweiten Schritt der Ortung wird der Roboter willkürlich im Labyrinth positioniert. Von dieser Startposition aus folgt der Roboter der rechten Hand Regel, bis seine Position eindeutig innerhalb des Labyrinths bestimmt ist. Nach erfolgreicher Ortung sucht der Roboter wieder seine Startposition auf.
Im 3. und letzten Schritt „Schnellster Weg“ soll der Roboter den schnellsten Weg aus dem Labyrinth finden. Den Weg den der Roboter fahren soll wird durch die „Tiefensuche“ vorher errechnet. Von seiner eingenommen Position aus Schritt 2 aus, fährt der Roboter den schnellsten (kürzesten Weg) hinaus.
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 70a bezüglich Roboterdesign und Labyrinth ab, so dass die Labyrinthteile kompatibel sind.
Schwierigkeitsgrad
Mittel (***)
Verwendete Bauteile
- EV3 Medium Motor 1x
- EV3 Large Motor 2x
- EV3 Ultraschallsensor 1x
- EV3 Gyrosensor 1x
- EV3 Brick 1x
- Diverses Zubehör von Lego
- Styrodur 15cm x 30 cm x 5cm 30x
- Styrodur 15cm x5cm x 5cm 15X
- Holzdübel Ø6cm x 30mm ^ 50x
- Holzplatten
Projekt
Projektplan
Für die Umsetzung des Projekts bis hin zur Abschlusspräsentation sind 4 Monate innerhalb des Semesters eingeplant. Der Arbeitsaufwand sollte laut Modulplan bei 17 Stunden pro Student liegen (wurde deutlich überschritten). Um möglichst effizient über das Semester arbeiten zu können, wurde das Projekt in verschiedene Arbeitsvorgänge unterteilt. Als erstes musste bis zum 22.10.2017 innerhalb von 1,5 Wochen eine Bestellliste erstellt werden, da die HSHL viel Zeit für die Bearbeitung der Bestellvorgänge benötigt. Bauteile die am Anfang bei der Projektplanung nicht berücksichtigt wurden, können nachträglich nicht bestellt werden. Daher ist eine Vorabplanung äußerst wichtig. Für die Projektplanung wurde ein Gantt-chart erstellt um einen groben Überblick über einzelne Arbeitsvorgänge und eingeplante Zeit zu erhalten.
Labyrinth
Das Labyrinth für den Roboter ist modular aufgebaut d.h. die Position der Wände und die Größe des Labyrinths kann verändert werden. Die Modularität des Labyrinth wurde dadurch erreicht, dass die Wände aus Styrodur eine feste Bohrungsrasterung zu den Bodenplatten aufweisen. In den Wänden stecken Holzdübel und in den Bodenplatten sind die passenden Bohrungen.
Die Bodenplatte besteht aus mehreren einzelnen Platten, die wie ein Puzzel miteinander verbunden sind. Je nach Anwendung kann die Bodenplatte rechteckig oder quadratisch aufgebaut werden.
Roboter
Der EV3-Roboter wurde fertig zusammengebaut übernommen und darf nicht umgebaut werden, da der Roboter in seiner Form noch in anderen Praktika verwendet wird.
BILD EV3 Roboter
Ultraschallsensor
Die Abstandsreglung zur Wand wird mit einem Ultraschallsensor realisiert. Eigenschaften des EV3 Ultraschallsensors:
- Misst Entfernungen zwischen 3 und 250 cm (1 bis 100 Zoll)
- Messgenauigkeit: +/- 1 cm (0,394 Zoll)
Der digitale EV3 Ultraschallsensor erzeugt Schallwellen und „liest“ deren Echos, um Objekte zu erkennen und deren Entfernung zu messen Ultraschallsensoren als Abstandssensoren sind in der Lage, Objekte berührungslos zu erkennen und ihre Entfernung zum Sensor zu messen. Die Abstandserfassung von Ultraschallsensoren arbeiten nach dem Prinzip der Laufzeitmessung von hochfrequenten Schallimpulsen. Der Ultraschallsensor strahlt zyklisch einen kurzen, hochfrequenten Schallimpuls aus. Dieser pflanzt sich mit Schallgeschwindigkeit in der Luft fort. Trifft der Ultraschallimpuls auf einen Gegenstand, wird er reflektiert. Das so entstehende Echo wird vom Sensor wieder aufgenommen und aus der Zeitspanne zwischen dem Senden und dem Empfangen des Schallimpulses, wird der Abstand zum Objekt berechnet. Dieses Prinzip der Abstandmessung mithilfe von Ultraschallwellen verwenden im Tierreich Fledermäuse. Ultraschallsensoren sind unempfindlich gegenüber Lichteinstrahlung
BILD
Gyrosensor
Zur Kartographierung des Labyrinths und um genau 90 Grad Kurven zufahren wird ein Gyrosensor verwendet. Ein Gyrosensor ist ein Beschleunigungs- oder Lagesensor, der auf kleinste Beschleunigungen, Drehbewegungen oder Lageänderungen reagiert. Das Prinzip des Gyrosensors basiert auf der Massenträgheit.
- Genauigkeit der Winkelmessung: +/- 3 Grad
- Maximale Ausgabe: 440 Grad/Sekunde
- Erfassungsrate: 1 kHz
Bilder Drift. Wird der Gyrosensor mit der EV3-Programiersofware verwendet, muss keine Drift Kompensation ausgeführt werden. Untenstehende Graphik stellt den Drift eines EV3 Gyrosensors außerhalb der EV3-Programiersoftware dar. Der Gyrosensor wurde auf einem mittleren EV3-Motor montiert und anschließend 90° nach links und 90° nach rechts (von der Ausgangsposition aus) geschwenkt.
Bauphase
Nach der Lieferung des Styrodurs beginnt die Fertigung des Labyrinths. Das Styrodur wird mit dem Messer in MAßE Platten und in Eckverbinder mit den MAßEN zugeschnitten. Zudem besitzen die Seitenwände Bohrungen für Dübel.
FOTOS
Programmierung
EINFÜGEN des PAP- Der Programmcode wurde mit dem PAP-Designer erstellt und anschließend im Matlab/Simulink umgesetzt.
Partikel Filter
Ein Partikelfilter ist ein rekursiver Zustandsschätzer, der Partikel verwendet, um die Verteilung des geschätzten Zustands zu abzubilden.
Damit der Partikel Filter optimal funktioniert, müssen Parameter wie Anzahl der Partikel, die Anfangs Partikelposition und die Methode zur Schätzung des Zustandes richtig gewählt werden.
Kalman Filter
Das Kalman-Filter dient dazu, Fehler in realen Messwerten zu reduzieren und Schätzungen für nicht messbare Systemgrößen zu liefern.
Die Funktion des Partikel-Filters unterscheidet sich im wesentlichen von der des Kalman-Filters, dass beim Parikel-Filter die Schätzung durch eine Wahrscheinlichkeitsverteilung modelliert wird. Beim Kalman-Filter wird dieses durch die Koavarianzmatrix beschrieben. Das Kalman Filter wird durch die Zustandsraummatrix beschrieben.
Tiefensuche
Obwohl die Tiefensuche ein Verfahren aus der Informatik, zum Suchen von Knoten in einem Graphen oder im unseren Fall Labyrinth ist, ist die Idee dahinter einfach. Bei der Tiefensuche wird zunächst ein Pfad vollständig in die Tiefe erkundet, bevor ein abzweigender Pfad erkundet wird. Welche Knoten zuerst durchlaufen werden, hängt von der Realisierung des Graphs ab. Dieser kann bspw. als verkettete Liste, inzidenzmatrix oder als Adjazenzmatrix implentiert werden.
Link State nach Dijkstra
Link State nach Dijkstra-Algorithmus ("Teile der Welt mit, wer deine Nachbarn sind") Der Link-State-Algorithmus arbeitet gewissermaßen "introvertiert". Auch hier führt jeder Router eine eigene Routing-Tabelle, in der die gesamte Topologie des Netwerks abgebildet ist. Änderungen in einer Verbindung werden jedoch als so genanntes Link State Announcement den benachbarten Routern mitgeteilt, die diese Information wiederum an ihre Nachbar weitergeben und so weiter. Da mit diesem Algorithmus eventuelle Routing-Tabellenänderung sehr moderat und zielgerichtet weitergegeben werden, eignet er sich für sehr froße Netzwerke und Routing-Tabellen.
Ergebnis
Im Verlauf des Projektes sind einige Probleme aufgetreten. Das Simulink EV3 Support Package ist nicht lauffähig, da wie bei der anderen Gruppe Projekt 70a, Error 1 angezeigt wird. Das Matlab Support Package ist nicht ausimplentiert, d.h. es ist nur eine begrenzte Anzahl an Grundbefehlen vorhanden z.B. kann man den Motoren nicht wie im NXT Package eine Umdrehungszahl vorgeben, sondern nur ein Speed.level welches der Kraft des Motors entspricht. Bei gleichzeitigen ansteuern zweiter Motoren sind diese nicht miteinander gekoppelt, sodass bei gleichem Speed.level ein Motor schneller dreht als der andere.
Zudem gab es Probleme mit dem EV3 Wifi Dongel. Der Wifi Dongel stellt eigentlich eine Drahtlose Komunikation zwischen dem Host-Rechner und EV3 Roboter ein. Leider arbeitet der EV3 Roboter nicht zuverlässig mit diesen Wifi Dongel, es kam vermehrt zum nicht erkennen des Hostes und Fehlern beim einwählen in das Netzwerk.
Bild FEHLER
Fazit
Das Projekt einen EV3 Roboter auf kürzesten Weg aus einen Labyrinth entkommen zu lassen, war sehr interessant obwohl es einige Probleme mit Simulink und EV3 Firmware gibt. Gleichermaßen wurde klar, das Teamarbeit ein wichtiger Bestandteil des Projektes ist und jeder einzelne seine Stärken mit einbringt. Zudem konnten weitere Erfahrungen im programmieren in Matlab gesammelt werden.
Als Abschluss lässt sich sagen, dass das Projekt noch mehr Zeit benötigt hätte, da die Kommunikation zwischen Matlab und EV3 Firmware nicht optimal ist. Die Dokumentation in SVN oder im WIKI ,ist eine sehr Gute Basis und ermöglicht es nachfolgenden Studenten das Projekt weiterzuführen,
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
Projektunterlagen
YouTube Video
https://www.youtube.com/watch?v=UxXRxLCuVwM&feature=youtu.be
→ zurück zum Hauptartikel: Angewandte Elektrotechnik (WS 17/18)