AM 07: Kartierung und Navigation: Unterschied zwischen den Versionen
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom [[Fachpraktikum_Elektrotechnik_(WS_16/17)|Fachpraktikum Elektrotechnik]] im 5. Semester [http://www.hshl.de/mechatronik-bachelorstudiengang/ Mechatronik] absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht. | Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom [[Fachpraktikum_Elektrotechnik_(WS_16/17)|Fachpraktikum Elektrotechnik]] im 5. Semester [http://www.hshl.de/mechatronik-bachelorstudiengang/ Mechatronik] absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht. | ||
Autoren: | Autoren: Busemann Nils, Schmotz Maik | ||
Betreuer: [[Benutzer:Ulrich_Schneider| Prof. Schneider]] | Betreuer: [[Benutzer:Ulrich_Schneider| Prof. Schneider]] | ||
Zeile 58: | Zeile 58: | ||
Diese Funktion sammelt die Position des Roboters, während dieser an der Perimeterschleife entlang fährt. Die Position wird durch Längen- und Breitengrade bestimmt und in einer Matrix gespeichert. Ist der Roboter komplett um die Perimeterschleife gefahren, werden Feldpunkt in der Fläche gesetzt. | Diese Funktion sammelt die Position des Roboters, während dieser an der Perimeterschleife entlang fährt. Die Position wird durch Längen- und Breitengrade bestimmt und in einer Matrix gespeichert. Ist der Roboter komplett um die Perimeterschleife gefahren, werden Feldpunkt in der Fläche gesetzt. | ||
In der Funktion werden die zwei Funktionen ''leseBreitengrad()'' und ''leseLaengengrad()'' aufgerufen. Diese geben jeweils die aktuelle Position durch das GPS-Modul zurück. In der jetzigen Version werden diese Funktionen simuliert. | |||
function [karte, karte_fertig ] = karte_aufzeichnen() | function [karte, karte_fertig ] = karte_aufzeichnen() | ||
Zeile 69: | Zeile 70: | ||
4...aktueller Standpunkt auf Rasen | 4...aktueller Standpunkt auf Rasen | ||
karte_fertig ... ist 1 wenn die Karte fertig erzeugt ist | karte_fertig ... ist 1 wenn die Karte fertig erzeugt ist | ||
Diese Funktion gibt die Karte aus. Dabei werden die verschiedenen Zustände grafisch visioniert. | |||
function karte_anzeigen(karte) | |||
karte ... Matrix der Felder: [x Koordinate, y Koordinate, Zustand] | |||
Die erste Koordinate ist die Ladestation | |||
Zustand: 0...ungemäht | |||
1...gemäht | |||
2...Perimeterschleife | |||
3...aktueller Standpunkt auf Perimeterschleifer | |||
4...aktueller Standpunkt auf Rasen | |||
= Zusammenfassung = | = Zusammenfassung = | ||
Zeile 77: | Zeile 92: | ||
Zur Verbesserung der Kartierung und Navigation können GPS bzw. DGPS-Signale in das Programm eingearbeitet und somit die genauere Positionierung des Roboters auf der Mähfläche angepasst werden. Des Weiteren kann die Software so abgeändert werden, dass der Roboter nicht zu Beginn einmal die Fläche umfahren haben muss, sondern eine beliebige Strategie verfolgt werden kann. | Zur Verbesserung der Kartierung und Navigation können GPS bzw. DGPS-Signale in das Programm eingearbeitet und somit die genauere Positionierung des Roboters auf der Mähfläche angepasst werden. Des Weiteren kann die Software so abgeändert werden, dass der Roboter nicht zu Beginn einmal die Fläche umfahren haben muss, sondern eine beliebige Strategie verfolgt werden kann. | ||
Das Programm setzt voraus, dass die DGPS-Daten vollkommen korrekt sind. Da dies in der Realität nicht unbedingt umsetzbar ist, sollten die Fehler mit Odemetrie- und Gyrodaten verringert werden. | |||
= Weiterführende Links = | = Weiterführende Links = | ||
Zeile 87: | Zeile 103: | ||
Simulierte Karte | Simulierte Karte | ||
[[Datei:Karte mit Legende.jpg]] | [[Datei:Karte mit Legende.jpg]] | ||
[[Datei:Quellcode karte-aufzeichnen.pdf]] | |||
[[Datei:Quellcode karte-anzeigen.pdf]] | |||
= YouTube-Video = | = YouTube-Video = | ||
Link | Link Video: https://www.youtube.com/watch?v=qTI-WY9CGws&feature=youtu.be | ||
[https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/ArduMower/Fachbereich 5 Software/5.1 Kartierung und Navigation/Video/ | [https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/ArduMower/ ArduMower] -> Fachbereich 5 Software/5.1 Kartierung und Navigation/Video/ | ||
---- | ---- | ||
→ zurück zum Hauptartikel: [[Fachpraktikum_Elektrotechnik_(WS_16/17)|Fachpraktikum Elektrotechnik (WS 16/17)]] | → zurück zum Hauptartikel: [[Fachpraktikum_Elektrotechnik_(WS_16/17)|Fachpraktikum Elektrotechnik (WS 16/17)]] |
Aktuelle Version vom 10. Januar 2017, 14:49 Uhr
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom Fachpraktikum Elektrotechnik im 5. Semester Mechatronik absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht.
Autoren: Busemann Nils, Schmotz Maik
Betreuer: Prof. Schneider
Aufgabe
Kartierung der Objekte und des Gartens sowie Navigation anhand der Karte
Erwartungen an die Projektlösung
- Einarbeitung in die bestehenden Ardumowers-Unterlagen
- Erstellung einer selbstlernenden Karte
- Bestimmung der Roboterposition
- Navigation anhand dieser Karte und der Daten der Sensoren
- Abfahren der geplanten Trajektorien
- Mitwirkung bei der Inbetriebnahme und an den Schnittstellen zu Aktoren und Sensoren
- Darstellung der Ergebnisse im Vergleich zur Referenz
- Erstellen Sie ein faszinierendes Video, welches die Funktion visualisiert.
- Test und wiss. Dokumentation
Schwierigkeitsgrad
- Mechanik:
- Elektrotechnik:
- Informatik: ***
Einleitung
Eine Software zur Kartierung und Navigation des Ardumower ist derzeit nicht erhältlich und soll zur Positionierung des Mähroboters und Darstellung des Mähweges dienen. Dazu muss auf das im Roboter verbaute GPS-Modul zugegriffen werden. Zum Realisieren des Projektes wurde die Programmiersoftware Matlab verwendet.
Projektdurchführung
Zur Realisierung des Teilprojektes wurde ein Projektplan erstellt. Dieser wurde anschließend Schritt für Schritt abgearbeitet und realisiert.
Projektplan
1. Festlegen der Projektziele
2. Erstellen einer Grundsoftware
3. Simulieren der Software anhand von Beispieldaten
4. Ausführung der Software mit GPS-Daten
Verwendete Bauteile
Da das Thema Kartierung und Navigation überwiegend softwarelastig ist, wurden zur Realisierung lediglich die mathematische Software Matlab verwendet. Dazu kommt die Verbindung zum GPS-Modul, um die aktuelle Position zu bestimmen.
Ergebnis
Für die Kartierung und Navigation des Ardumower wird ein DGPS-Signal benötigt, welches Koordinaten in Metern bereitstellt. Zu Testzwecken wurde ein Testgebiet mit entsprechenden Koordinaten simuliert und dargestellt. Dieses Gebiet wird systematisch durchlaufen, makiert und die gafahrene Strecke bzw. Abschnitte farblich gekennzeichnet. Diese gekennzeichneten Felder bzw. Bereiche können an die Fahrstrategie übermittelt und genutzt werden. In der aktuellen Version der Kartierung und Navigation ist dem Roboter ausschließliche eine mit dem Uhrzeigersinn läufige Fahrtrichtung bei der Umfahrung der Mähfläche gewährt.
Funktionen
Diese Funktion sammelt die Position des Roboters, während dieser an der Perimeterschleife entlang fährt. Die Position wird durch Längen- und Breitengrade bestimmt und in einer Matrix gespeichert. Ist der Roboter komplett um die Perimeterschleife gefahren, werden Feldpunkt in der Fläche gesetzt. In der Funktion werden die zwei Funktionen leseBreitengrad() und leseLaengengrad() aufgerufen. Diese geben jeweils die aktuelle Position durch das GPS-Modul zurück. In der jetzigen Version werden diese Funktionen simuliert.
function [karte, karte_fertig ] = karte_aufzeichnen() karte ... Matrix der Felder: [x Koordinate, y Koordinate, Zustand] Die erste Koordinate ist die Ladestation Zustand: 0...ungemäht 1...gemäht 2...Perimeterschleife 3...aktueller Standpunkt auf Perimeterschleifer 4...aktueller Standpunkt auf Rasen karte_fertig ... ist 1 wenn die Karte fertig erzeugt ist
Diese Funktion gibt die Karte aus. Dabei werden die verschiedenen Zustände grafisch visioniert.
function karte_anzeigen(karte) karte ... Matrix der Felder: [x Koordinate, y Koordinate, Zustand] Die erste Koordinate ist die Ladestation Zustand: 0...ungemäht 1...gemäht 2...Perimeterschleife 3...aktueller Standpunkt auf Perimeterschleifer 4...aktueller Standpunkt auf Rasen
Zusammenfassung
Durch die Kartierung und Navigation ist es möglich mit Hilfe eines DGPS-Signals eine genaue Standortbestimmung bzw. eine Fahrwegdarstellung anzeigen zu lassen. Dadurch kann eine optimierte Fahrstrategie entwickelt werden und ein effizientes Fahrverhalten zu realisieren.
Ausblick
Zur Verbesserung der Kartierung und Navigation können GPS bzw. DGPS-Signale in das Programm eingearbeitet und somit die genauere Positionierung des Roboters auf der Mähfläche angepasst werden. Des Weiteren kann die Software so abgeändert werden, dass der Roboter nicht zu Beginn einmal die Fläche umfahren haben muss, sondern eine beliebige Strategie verfolgt werden kann. Das Programm setzt voraus, dass die DGPS-Daten vollkommen korrekt sind. Da dies in der Realität nicht unbedingt umsetzbar ist, sollten die Fehler mit Odemetrie- und Gyrodaten verringert werden.
Weiterführende Links
Unterlagen
Datei:Quellcode karte-aufzeichnen.pdf
Datei:Quellcode karte-anzeigen.pdf
YouTube-Video
Link Video: https://www.youtube.com/watch?v=qTI-WY9CGws&feature=youtu.be
ArduMower -> Fachbereich 5 Software/5.1 Kartierung und Navigation/Video/
→ zurück zum Hauptartikel: Fachpraktikum Elektrotechnik (WS 16/17)