ArduMower: Mähstrategie: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 39: Zeile 39:


= Herangehensweise =
= Herangehensweise =
1. Strategie planen
* Strategie planen
2. Schnittstellen festlegen
* Schnittstellen festlegen
3. Programmierung
* Programmierung
* Programm planen
- Programm planen
  * Chaos Strategie implementieren damit andere Teilprojekte weiter kommen
- Chaos Strategie implementieren damit andere Teilprojekte weiter kommen
  * Chaosstrategie testen
- Chaosstrategie testen
  * Fahrt zur Ladestation implementieren
- Fahrt zur Ladestation implementieren
  * Fahrt zur Ladestation testen
- Fahrt zur Ladestation testen
  * Mähstrategie in  paralelen Bahnen umsetzen
- Mähstrategie in  paralelen Bahnen umsetzen
4. Mähstrategie testen
* Mähstrategie testen
5. Mähstrategie optimieren
* Mähstrategie optimieren


= Strategie planen=
= Strategie planen=

Version vom 28. Februar 2018, 20:45 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 Istposition Sollkurve in Karte planen
  - Fahrt zur Ladestation

Herangehensweise

  • Strategie planen
  • Schnittstellen festlegen
  • Programmierung

- Programm planen - Chaos Strategie implementieren damit andere Teilprojekte weiter kommen - Chaosstrategie testen - Fahrt zur Ladestation implementieren - Fahrt zur Ladestation testen - Mähstrategie in paralelen Bahnen umsetzen

  • Mähstrategie testen
  • Mähstrategie optimieren

Strategie planen

Abb.1 Karte mit Infos

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 Bahnhen abfahren. Hierfür bekommt er von der Karte seine Istposition übergeben. Von hier aus fährt er eine gerade Bahn bis zur Perimeterschleife. Dort angekommen dreht er um 90 Gred 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 Hindernisserkennung ein Hinderniss im Fahrweg signalisiert, wird eine Umfahrstrategie gestartet. Der ArduMower dreht hierfür auf der Stelle um 90° fährt 30 cm und dreht sich wieder in Fahrtrichtung. Stellt die Hindernisserkennung kein Hnderniss fest wird von dieser Position der Mähweg fortgesetzt. Wird nach dem ersten ausweichen erneut ein Hinderniss 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

Abb.2 PAP Strategie Framework
Abb.3 Übersicht des Simulik Modells

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.

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 wan 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 Hindrnisse 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. Läuft die Verarbeitung hier ohne Probleme kann die Software auf online übertragen werden.


Links



→ zurück zum Hauptartikel: Projekt_ArduMower