ArduMower: Mähstrategie
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 |
Aufgaben Sommersemester 17
- Einarbeitung Mähstrategie
- Absprechen der Schnittstellen
- grobe Strategie festgelegen
Aufgaben Wintersemester 17/18
- Erstellen der Software
- testen der Software
- Software in Ardumower integrieren
Herangehensweise
- Strategie planen
- Schnittstellen absprechen
- Programm planen
- Chaos Strategie implementieren damit andere Teilprojekte weiter kommen
- Chaosstrategie testen
- Fahrt zur Ladestation implementeieren
- Fahrt zur Ladestation testen
- Mähstrategie in paralelen Bahnen umsetzen
- Mähstrategie testen
- Mähstrategie optimieren
Entwurf Mähstrategie
Die Mähstrategie arbeitet mit den Informationen, die in der Karte Abb.2 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.
Programmierung
Schnittstellen
- Kartierung (Ist-Position)
- PID-Regler (Soll-Winkel, Soll-Geschwindigkeit)
- Energie Management (Ladestand)
- Perimeterschleife (Abstand zur Schleife)
- Ultraschallsensor (Objekt in Fahrweg)
- Bumper (Objekt angefahren)
Stand des Teilprojektes
Sommersemester 17
- 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)
Wintersemester 17/18
- 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
Bewertung des Fortschritts
Sommersemester 17
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.
Wintersemester 17/18
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.
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.
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