ArduMower: Mähstrategie: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
→ zurück zum Hauptartikel: [[Projekt_ArduMower| | → zurück zum Hauptartikel: [[Projekt_ArduMower|Projekt ArduMower]] | ||
---- | ---- | ||
Zeile 34: | Zeile 34: | ||
- Ist-Position aus Karte lesen | - Ist-Position aus Karte lesen | ||
- Sollrichtung ausgeben | - Sollrichtung ausgeben | ||
- Anhand | - Anhand Ist Position Sollkurve in Karte planen | ||
- Fahrt zur Ladestation | - Fahrt zur Ladestation | ||
|} | |} | ||
= Herangehensweise = | = Herangehensweise = | ||
* Strategie planen | * Strategie planen | ||
* Schnittstellen festlegen | * Schnittstellen festlegen | ||
* Programmierung | * Programmierung | ||
- Programm planen | - Programm planen | ||
- Chaos Strategie implementieren damit andere Teilprojekte | - Chaos Strategie implementieren damit andere Teilprojekte weiterkommen | ||
- Chaosstrategie testen | - Chaosstrategie testen | ||
- Fahrt zur Ladestation implementieren | - Fahrt zur Ladestation implementieren | ||
- Fahrt zur Ladestation testen | - Fahrt zur Ladestation testen | ||
- Mähstrategie in | - Mähstrategie in parallelen Bahnen umsetzen | ||
* Mähstrategie testen | * Mähstrategie testen | ||
* Mähstrategie optimieren | * Mähstrategie optimieren | ||
= Strategie planen= | = Strategie planen= | ||
Zeile 55: | Zeile 55: | ||
Die Mähstrategie arbeitet mit den Informationen, die in der Karte Abb.1 des Roboters hinterlegt sind. Um die Drift bei der Fahrt zu minimieren verlaufen die Bahnen des Roboters beim Mähvorgang von Westen nach Osten bzw. von Osten nach Westen. In dieser Richtung ist der Weg Kürzer als wen der ArduMower von Norden nach Süden mäht. Die Ladestation und somit der Startpunkt des ArduMowers ist im Süd-Westen der Karte platziert. | Die Mähstrategie arbeitet mit den Informationen, die in der Karte Abb.1 des Roboters hinterlegt sind. Um die Drift bei der Fahrt zu minimieren verlaufen die Bahnen des Roboters beim Mähvorgang von Westen nach Osten bzw. von Osten nach Westen. In dieser Richtung ist der Weg Kürzer als wen der ArduMower von Norden nach Süden mäht. Die Ladestation und somit der Startpunkt des ArduMowers ist im Süd-Westen der Karte platziert. | ||
Der Ardumowers soll die gegebene Rasenfläche in Parallelen | Der Ardumowers soll die gegebene Rasenfläche in Parallelen Bahnen abfahren. Hierfür bekommt er von der Karte seine Ist Position übergeben. Von hier aus fährt er eine gerade Bahn bis zur Perimeterschleife. Dort angekommen dreht er um 90 Grad fährt eine Mähwerkbreite und dreht nochmals um 90 Grad. Danach fährt der Ardumower wieder bis er die Perimeterschleife erreicht. Dort angekommen dreht wieder um die nächste Bahn zu mähen. Diese Strategie verfolgt der Ardumower solange bis die komplette Fläche gemäht ist oder das Energiemanagement einen zu geringen Ladestand meldet. In diesem Fall fährt der Ardumower entlang der Perimeterschleife zur Ladestation. | ||
Bekommt der ArduMower von der | Bekommt der ArduMower von der Hinderniserkennung ein Hindernis im Fahrweg signalisiert, wird eine Umfahr Strategie gestartet. Der ArduMower dreht hierfür auf der Stelle um 90° fährt 30 cm und dreht sich wieder in Fahrtrichtung. Stellt die Hinderniserkennung kein Hindernis fest wird von dieser Position der Mähweg fortgesetzt. Wird nach dem ersten ausweichen erneut ein Hindernis festgestellt, dreht der Roboter wieder um 90° zurück und fährt weitere 30 cm. dort angekommen dreht er sich in Fahrtrichtung und überprüft den Fahrweg erneut. | ||
= Schnittstellen festlegen = | = Schnittstellen festlegen = | ||
Zeile 74: | Zeile 74: | ||
Die Mähstrategie besteht aus drei Unterprogrammen, die über einen Zustandsautomaten (Abb. 2) angewählt werden. | Die Mähstrategie besteht aus drei Unterprogrammen, die über einen Zustandsautomaten (Abb. 2) angewählt werden. | ||
Steht der Rasenmäher in der Ladestation wird er im ersten Schritt auf die Rasenfläche gefahren. Danach wird überprüft ob eine Karte vorhanden ist. Sollte das nicht der Fall sein fährt der ArduMower entlang der Perimeterschleife, damit die Kartierung eine neue Karte erzeugen kann. Ist dies geschehen, oder bereits eine Karte | Steht der Rasenmäher in der Ladestation wird er im ersten Schritt auf die Rasenfläche gefahren. Danach wird überprüft ob eine Karte vorhanden ist. Sollte das nicht der Fall sein fährt der ArduMower entlang der Perimeterschleife, damit die Kartierung eine neue Karte erzeugen kann. Ist dies geschehen, oder bereits eine Karte hinterlegt, wird abgefragt welche Strategie der ArduMower fahren soll bzw. ob ein Hindernis umfahren werden muss. | ||
Zur Auswahl stehen Chaos Strategie, geordnete Strategie und Hindernis umfahren. | Zur Auswahl stehen Chaos Strategie, geordnete Strategie und Hindernis umfahren. | ||
Zeile 84: | Zeile 84: | ||
Anhand dieser Planungen entsteht ein Modell in Matlab Simulink (Abb.3) dieses ist im SVN Ordner des ArduMower-Projektes unter Software/libaries/Strategie.xls zu finden und beinhaltet auch den Quellcode der einzelnen Elemente. | Anhand dieser Planungen entsteht ein Modell in Matlab Simulink (Abb.3) dieses ist im SVN Ordner des ArduMower-Projektes unter Software/libaries/Strategie.xls zu finden und beinhaltet auch den Quellcode der einzelnen Elemente. | ||
= Mähstrategie testen = | |||
Um die Mähstrategie zu testen steht neben dem ArduMower auch die [[ArduMower: Simulation|Offline-Simmulationsumgebung]] zur Verfügung. In dieser werden die nötigen Parameter für die Mähstrategie simuliert und der Fahrweg des ArduMowers wird in die Karte geplottet. So erhält man eine Visualisierung des Mähvorganges und kann diesen optimieren ohne mit dem ArdoMower arbeiten zu müssen. | |||
Die Simulation wurde erst zum Ende des Praktikums in einen lauffähigen Zustand gebracht wodurch die Mähstrategie nicht ordentlich getestet werden konnte. | |||
Da bis zum Ende des Praktikums Probleme mit der Initialnavigation auftreten kann die Mähstrategie im Onlinemodus nicht getestet werden. | |||
= Mähstrategie optimieren = | |||
Da weder online noch offline Test mit der Mähstrategie durchgeführt werden konnten können zur Optimierung der Mähstrategie keine Angaben gemacht werden. | |||
= Zusammenfassung = | = Zusammenfassung = | ||
Zusammenfassend ist zu sagen, dass anhand der Anforderungen eine kompilierfähige Mähstrategie umgesetzt wurde. Hierfür wurden die nötigen Schnittstellen mit anderen Software-Komponenten abgesprochen. Am | Zusammenfassend ist zu sagen, dass anhand der Anforderungen eine kompilierfähige Mähstrategie umgesetzt wurde. Hierfür wurden die nötigen Schnittstellen mit anderen Software-Komponenten abgesprochen. Am Ende wurde die Mähstrategie in das Framework des ArduMowers eingefügt, und mit den nötigen Ein- und Ausgängen versehen. | ||
Im ersten Semester des Praktikums wurden folgende Arbeiten abgeschlossen: | Im ersten Semester des Praktikums wurden folgende Arbeiten abgeschlossen: | ||
Zeile 94: | Zeile 102: | ||
* Die Mähsrategie bekommt von der Kartierung die Ist-Position des Ardumowers. Diese wird für die Berechnung des Fahrweges benötigt | * Die Mähsrategie bekommt von der Kartierung die Ist-Position des Ardumowers. Diese wird für die Berechnung des Fahrweges benötigt | ||
* Der PID-Regler bekommt von der Mähstrategie den Soll-Winkel des Ardumowers übergeben. Hierdurch wird der Fahrweg des Ardumowers gesteuert | * Der PID-Regler bekommt von der Mähstrategie den Soll-Winkel des Ardumowers übergeben. Hierdurch wird der Fahrweg des Ardumowers gesteuert | ||
* Das Energie Management übergibt der Mähstrategie den Ladestand. Hierdurch kann die Mähstrategie entscheiden | * Das Energie Management übergibt der Mähstrategie den Ladestand. Hierdurch kann die Mähstrategie entscheiden wann es Zeit ist die Ladestation an zu fahren | ||
* Grobe Strategie festgelegt (Entwurf Mähstrategie) | * Grobe Strategie festgelegt (Entwurf Mähstrategie) | ||
Zeile 104: | Zeile 112: | ||
* Konzept der Mähstrategie wird überarbeitet | * Konzept der Mähstrategie wird überarbeitet | ||
* Geordnete Mähstrategie wird implementiert | * Geordnete Mähstrategie wird implementiert | ||
* Ausweichen | * Ausweichen Hindrnise wird implementiert | ||
* Test der Strategie in dem Offline-Modell | * Test der Strategie in dem Offline-Modell | ||
Zeile 112: | Zeile 120: | ||
= Ausblick = | = Ausblick = | ||
Um die Mähstrategie in Betrieb zu nehmen, sollte diese zunächst mit der überarbeiteten Offline-Simmulation getestet werden. Läuft die Verarbeitung hier ohne Probleme kann die Software | Um die Mähstrategie in Betrieb zu nehmen, sollte diese zunächst mit der überarbeiteten Offline-Simmulation getestet werden. Diese lief am Ende des Praktikumstermin nach den Optimierungen von [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]. Läuft die Verarbeitung hier ohne Probleme kann die Software online übertragen werden und auf der Rasenfläche getestet werden. | ||
= Links = | = Links = | ||
Zeile 123: | Zeile 130: | ||
---- | ---- | ||
→ zurück zum Hauptartikel: [[Projekt_ArduMower| | → zurück zum Hauptartikel: [[Projekt_ArduMower|Projekt ArduMower]] |
Aktuelle Version vom 1. März 2018, 15:07 Uhr
→ zurück zum Hauptartikel: Projekt ArduMower
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom Fachpraktikum Elektrotechnik im 6. 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.
Autor: Florian Müller
Betreuer: Prof. Dr.-Ing. Schneider, Prof. Dr.-Ing. Mirek Göbel
Einleitung
In diesem Artikel wird die Entwicklung einer Mähstrategie für einen autonomen Rasenmäh-Roboter dargestellt. Der Grund für die Entwicklung dieser Strategie ist das Projekt "ArduMower" welches der Autor mit den anderen Studenten des Studienganges im sechsten und siebten Semester seines Mechatronikstudiums im Rahmen eines Praktikums bearbeitet hat, siehe [[1]].
Anforderungen
Spezifikations-ID | anforderungs-ID | Anforderungs-Titel | Beschreibung | Teilaufgaben |
---|---|---|---|---|
0070 | REQ10.2060 | Verarbeitungszeit | Die Anlage muss ein Flächenelement innerhalb von 30 Minuten autonom mähen können. |
- Integrationstest, ggf. Optimierungsschleifen |
0110 | REQ10.2230 | Mähstrategie | Als Mähstrategie sollen parallele Bahnen gemäht werden (vgl. Indego Logicut) |
- Ist-Position aus Karte lesen - Sollrichtung ausgeben - Anhand Ist Position Sollkurve in Karte planen - Fahrt zur Ladestation |
Herangehensweise
* Strategie planen * Schnittstellen festlegen * Programmierung - Programm planen - Chaos Strategie implementieren damit andere Teilprojekte weiterkommen - Chaosstrategie testen - Fahrt zur Ladestation implementieren - Fahrt zur Ladestation testen - Mähstrategie in parallelen Bahnen umsetzen * Mähstrategie testen * Mähstrategie optimieren
Strategie planen
Die Mähstrategie arbeitet mit den Informationen, die in der Karte Abb.1 des Roboters hinterlegt sind. Um die Drift bei der Fahrt zu minimieren verlaufen die Bahnen des Roboters beim Mähvorgang von Westen nach Osten bzw. von Osten nach Westen. In dieser Richtung ist der Weg Kürzer als wen der ArduMower von Norden nach Süden mäht. Die Ladestation und somit der Startpunkt des ArduMowers ist im Süd-Westen der Karte platziert.
Der Ardumowers soll die gegebene Rasenfläche in Parallelen Bahnen abfahren. Hierfür bekommt er von der Karte seine Ist Position übergeben. Von hier aus fährt er eine gerade Bahn bis zur Perimeterschleife. Dort angekommen dreht er um 90 Grad fährt eine Mähwerkbreite und dreht nochmals um 90 Grad. Danach fährt der Ardumower wieder bis er die Perimeterschleife erreicht. Dort angekommen dreht wieder um die nächste Bahn zu mähen. Diese Strategie verfolgt der Ardumower solange bis die komplette Fläche gemäht ist oder das Energiemanagement einen zu geringen Ladestand meldet. In diesem Fall fährt der Ardumower entlang der Perimeterschleife zur Ladestation.
Bekommt der ArduMower von der Hinderniserkennung ein Hindernis im Fahrweg signalisiert, wird eine Umfahr Strategie gestartet. Der ArduMower dreht hierfür auf der Stelle um 90° fährt 30 cm und dreht sich wieder in Fahrtrichtung. Stellt die Hinderniserkennung kein Hindernis fest wird von dieser Position der Mähweg fortgesetzt. Wird nach dem ersten ausweichen erneut ein Hindernis festgestellt, dreht der Roboter wieder um 90° zurück und fährt weitere 30 cm. dort angekommen dreht er sich in Fahrtrichtung und überprüft den Fahrweg erneut.
Schnittstellen festlegen
Folgende Schnittstellen wurden mit den Teilteams des ArduMowers festgelegt:
- Kartierung (Ist-Position)
- PID-Regler (Soll-Winkel, Soll-Geschwindigkeit)
- Energie Management (Ladestand)
- Perimeterschleife (Abstand zur Schleife)
- Ultraschallsensor (Objekt in Fahrweg)
- Bumper (Objekt angefahren)
Programmierung
Die Mähstrategie besteht aus drei Unterprogrammen, die über einen Zustandsautomaten (Abb. 2) angewählt werden. Steht der Rasenmäher in der Ladestation wird er im ersten Schritt auf die Rasenfläche gefahren. Danach wird überprüft ob eine Karte vorhanden ist. Sollte das nicht der Fall sein fährt der ArduMower entlang der Perimeterschleife, damit die Kartierung eine neue Karte erzeugen kann. Ist dies geschehen, oder bereits eine Karte hinterlegt, wird abgefragt welche Strategie der ArduMower fahren soll bzw. ob ein Hindernis umfahren werden muss. Zur Auswahl stehen Chaos Strategie, geordnete Strategie und Hindernis umfahren.
Die Chaos Strategie Datei:Chaos Strategie.pdf ist nur für die Inbetriebnahme und Tests der einzelnen Komponenten gedacht. Hierbei fährt der ArduMower solange geradeaus bis die Perimeterschleife 20cm vor ihm liegt. Ist die Perimeterschleife in der Nähe, bleibt der ArduMower stehen, auf den aktuellen Ausrichtungswinkel wird ein Zufallswinkel addiert und dem ArduMower als Zielwinkel vorgegeben. Dies hat zur Folge, dass der ArduMower auf der Stelle dreht und wieder gerade aus fährt, biss die Perimeterschleife wieder 20cm vor ihm liegt.
Wird die geordnete Strategie Datei:Geordnete Strategie.pdf aufgerufen, fährt der ArduMower auf das erste nicht gemähte Element der Karte. Hier angekommen richtet er sich Richtung Westen aus und mäht bis zum letzten Element vor der Perimeterschleife. Dort angekommen richtet er sich nach Norden aus und fährt auf das erste Element der nächsten Reihe. Dort angekommen Richtet er sich nach Osten aus und mäht bis zum letzten Element vor der Perimeterschleife. Dort angekommen richtet sich der ArduMower wieder nach Norden aus und überprüft ob die Karte komplett abgearbeitet wurde. Ist er am Ende der Karte angekommen, fährt der ArduMower auf der Perimeterschleife zurück zur Ladestation. Ist die Karte noch nicht fertig abgearbeitet, richtet er sich wieder Richtung Westen aus und beginnt den Ablauf von vorn.
Erkennen die Sensoren des ArduMowers ein Hindernis in mindestens 50cm Entfernung im Fahrweg wird die Geschwindigkeit um 50% gedrosselt. Ist das Hindernis in mindestens 10cm abstand so wird die Ausweichstrategie gestartet Datei:Hindernis umfahren.pdf. Hier bleibt der ArduMower stehen, dreht auf der Stelle um 90° fährt 30cm vor und dreht sich wieder um 90° zurück. Ist das Hindernis danach immer noch im Fahrweg, wird dieser Vorgang wiederholt. Ist das Hindernis nicht mehr im Fahrweg kann zur Vorherigen Strategie zurückgekehrt werden.
Anhand dieser Planungen entsteht ein Modell in Matlab Simulink (Abb.3) dieses ist im SVN Ordner des ArduMower-Projektes unter Software/libaries/Strategie.xls zu finden und beinhaltet auch den Quellcode der einzelnen Elemente.
Mähstrategie testen
Um die Mähstrategie zu testen steht neben dem ArduMower auch die Offline-Simmulationsumgebung zur Verfügung. In dieser werden die nötigen Parameter für die Mähstrategie simuliert und der Fahrweg des ArduMowers wird in die Karte geplottet. So erhält man eine Visualisierung des Mähvorganges und kann diesen optimieren ohne mit dem ArdoMower arbeiten zu müssen. Die Simulation wurde erst zum Ende des Praktikums in einen lauffähigen Zustand gebracht wodurch die Mähstrategie nicht ordentlich getestet werden konnte. Da bis zum Ende des Praktikums Probleme mit der Initialnavigation auftreten kann die Mähstrategie im Onlinemodus nicht getestet werden.
Mähstrategie optimieren
Da weder online noch offline Test mit der Mähstrategie durchgeführt werden konnten können zur Optimierung der Mähstrategie keine Angaben gemacht werden.
Zusammenfassung
Zusammenfassend ist zu sagen, dass anhand der Anforderungen eine kompilierfähige Mähstrategie umgesetzt wurde. Hierfür wurden die nötigen Schnittstellen mit anderen Software-Komponenten abgesprochen. Am Ende wurde die Mähstrategie in das Framework des ArduMowers eingefügt, und mit den nötigen Ein- und Ausgängen versehen.
Im ersten Semester des Praktikums wurden folgende Arbeiten abgeschlossen:
- Für die Erstinbetriebnahme des Ardumowers im 6. Semester wird festgelegt, dass noch keine Mähstrategie benötigt wird.
- Schnittstellen werden mit Kartierung, PID-Regler, und dem Energie Management abgesprochen.
- Die Mähsrategie bekommt von der Kartierung die Ist-Position des Ardumowers. Diese wird für die Berechnung des Fahrweges benötigt
- Der PID-Regler bekommt von der Mähstrategie den Soll-Winkel des Ardumowers übergeben. Hierdurch wird der Fahrweg des Ardumowers gesteuert
- Das Energie Management übergibt der Mähstrategie den Ladestand. Hierdurch kann die Mähstrategie entscheiden wann es Zeit ist die Ladestation an zu fahren
- Grobe Strategie festgelegt (Entwurf Mähstrategie)
Im Sommersemester 17 wurden alle zu Anfang festgelegten Ziele erreicht. Nach der Einarbeitung in das Thema wurden die Schnittstellen mit den anderen Gruppen besprochen und ein Entwurf einer Mähstrategie entwickelt. Im darauffolgenden Semester wurden die Hier aufgeführten Arbeiten erledigt:
- Zu Testzwecken der einzelnen Komponenten wird eine Chaos-Strategie im Hauptprogramm implementiert
- Die Fahrt auf der Perimeterschleife wird integriert
- Konzept der Mähstrategie wird überarbeitet
- Geordnete Mähstrategie wird implementiert
- Ausweichen Hindrnise wird implementiert
- Test der Strategie in dem Offline-Modell
Die Software der Mähstrategie wurde in Matlab Simulink umgesetzt und lässt sich fehlerfrei kompilieren. Die Abschließenden Tests konnten online aufgrund eines nicht lauffähigen ArduMowers nicht durchgeführt werden. Auf Grund von Performance Problemen der Simulation die erst kurz vor Ende des Praktikums gelöst werden konnten, konnte die Mähstrategie auch nicht komplett im Offlinemodell getestet werden.
Ausblick
Um die Mähstrategie in Betrieb zu nehmen, sollte diese zunächst mit der überarbeiteten Offline-Simmulation getestet werden. Diese lief am Ende des Praktikumstermin nach den Optimierungen von Prof. Dr.-Ing. Schneider. Läuft die Verarbeitung hier ohne Probleme kann die Software online übertragen werden und auf der Rasenfläche getestet werden.
Links
→ zurück zum Hauptartikel: Projekt ArduMower