Sunray-Firmware - Ideensammlung / ideas for improvement

Nachdem ich nun die ersten Pattern berechnen habe lassen, sind mir ein paar Punkte aufgefallen, die meiner Meinung nach optimiert werden sollten, um den Rover möglichst effizient (Zeit + Akku) und rasenschonend mähen zu lassen.

Nachtrag: Perimeter und Bahnen um Exclusions herum sind für mich völlig gleichwertig. Beide können an harten Grenzen entlang führen.
Auch wenn ich manchmal nur "Perimeter" nenne meine ich eigentlich immer die Ecxlusions mit.

1. Das Perimeter (und eben auch die Exclusionbahn) wird sehr oft genutzt um von einem Punkt an einen anderen zu gelangen:
1627916238539.jpeg so fährt der Rover manchmal drei oder vier Fahrten am Perimeter (+ Excl.) entlang. Dadurch wird genau diese Strecke, die ja sowieso immer gleich befahren werden muss, egal welches Pattern berechnet wurde, zusätzlich belastet. Fahrspuren im Rasen sind so wahrscheinlich.


2. (dieser Punkt hat sich erledigt! Danke Alexander.)
beim Linien-Pattern wird keine "Serpentine" gefahren, sondern dieses Muster, welches ich zur Verdeutlichung mal auseinandergezogen hab:

1627916454836.png
an den roten Pfeilen macht er eine 180° Kehrtwende und fährt wieder ein Stück zurück, um dann wieder in die Querfahrt abzubiegen. Dadurch wird der Rasen an dieser Stelle, die auch bei anderen Patternabständen immer ungefähr an derselben Stelle liegen, mehr belastet.
Außerdem ist das eine zusätzliche Fahrt und braucht wieder Zeit beim Drehen.

3. manche Stellen werden vielleicht gar nicht gemäht, weil bei der Berechnung wegen des Linienabstandes Stellen ausgelassen werden:
1627916701739.pngdie roten Linien zeigen ungefähr an, welche Patternlinie noch fehlen würde.

4. um an noch fehlende Stellen zu gelangen, berechnet die App manchmal recht lange Wege. Dabei berechnet die App die direkte Verbindung. Wenn diese dann auf den Perimeter trifft wird dieser so lange umfahren, bis er die direkte Verbindung auf der anderen Seite des Grundstücks wieder trifft.
1627916982974.png
Ich habe mal die Patternlinien, die über lange Strecken auf dem Perimeter lagen, auseinandergezogen und so angeordnet, wie sie eigentlich fahren wollten. Die blauen dicken Linien zeigen die direkte Verbindung der beiden Bereiche. Da der Rover so ja nicht fahren kann, wird die Verbindung am Perimeter entlang gelegt.
Die Linien, die jetzt außerhalb der Karte zu sehen sind, liegen normalerweise auf dem Perimeter. Damit entstehen dort zusätzliche Fahrten wie unter Punkt 1 oben.

5. Enge Passagen werden manchmal nicht mit berechnet:
1627917706494.pngvielleicht ein Extrembeispiel (welches aber durchaus auch auftreten kann, wenn man kein Trampolin hat)
Durch die enge Passage hindurch wird kein Pattern berechnet (schraffierte Fläche), wenn das so wie auf dem oberen Bild als Exclusion ausgenommen wird.
(die Linien entlang der Kontur habe ich zur besser Sichtbarkeit auseinandergezogen.)
Wird der Perimeter so entlang gelegt, dann erfolgt die Berechnung problemlos:
1627917866512.png

6. da derzeit der Perimeter oft für Fahrten an andere Stellen genutzt wird, gibt es folglich auch viele Stellen, an denen der Perimeter (+ Excl) wieder verlassen werden muss:
1627918386722.pngich hab die Stellen mal blau eingekreist. Da die Stellen bei jeder Berechnung anders liegen können, ist es auch nicht möglich immer genug Freiraum zum Drehen zu schaffen. Da der Perimeter oft hart an mechanischen Grenzen liegen muss, ist eine Drehung hier oft überhaupt nicht möglich.

7. Es werden manche Fahrten am Perimeter entlang unnötig gemacht:
1627918615662.pngWieder das Extrembeispiel "Trampolin": hier fährt der Rover einmal im Uhrzeigersinn um den Kreis herum um dann umzukehren und wieder gegen den Uhrzeigersinn herauszufahren. Diese Fahrt wäre eigentlich nicht nötig gewesen.

8. manchmal wird eine 180° Kehrtwende auf dem Perimeter oder einer Exclusionbahn berechnet. (siehe Bild aus #7)
Das sollte auf dem Perimeter (oder Ecxlusion) nie der Fall sein. Meist führen diese Bahnen direkt an harten Grenzen entlang und dann kann der Rover dort nicht drehen. Diese Stellen findet man auch nicht so leicht. Das merkt man dann wahrscheinlich erst, wenn er sich beim Umdrehen schon eingegraben hat.



Vorschläge:
1. eliminiert Pkte: 1, (3), 4, 6, 7:
das Perimeter sollte eigentlich nur einmal, idealerweise an einem wählbaren Punkt angefahren, idealerweise in einer wählbaren Richtung (asymmetrisches Mähwerk) befahren werden und dann an einer wählbaren Stelle ins Pattern abgebogen werden. Exclusions sollten dabei genau so behandelt werden wie der Perimeter.
Als vorübergehende Lösung, bis wählbare Übergänge programmiert sind, könnte man vielleicht nur in 45° Winkeln von den Perimeter- und Exclusionbahnen abfahren. Das schafft der Rover auch an harten Grenzen.


An Engstellen könnte genau zwischen den Perimeterlinien hindurch gefahren werden. So wird an diesen Stellen auch gemäht, wenn der Abstand eigentlich keine Patternlinien mehr berechnen ließe (Pkt. 3)

2. eliminiert Pkt. 4
wenn es geht, sollten große Bereiche erst fertig gemäht werden, bevor andere angefahren werden. So wird vermieden, dass wegen kleinen, noch fehlenden Bereichen, nochmal durch das ganze Grundstück gefahren werden muss.

3. Fahrten in die Ladestation sollten auch nicht am Perimeter entlang, sondern auf kürzestem Weg erfolgen. Dazu kann ich aber noch nichts sagen, weil ich noch keine Ladestation hab.

Vielleicht ist ja das Eine oder Andere irgendwann umsetzbar. :)
 

Anhänge

  • 1627919897416.png
    1627919897416.png
    236,6 KB · Aufrufe: 5
  • 1628320786369.png
    1628320786369.png
    150,4 KB · Aufrufe: 3
Zuletzt bearbeitet:
Ergänzung der Punkte oben. Da man "nur" 10 Bilder anhängen kann, kann ich den Post oben nicht mehr erweitern.

9. NEU (07.08.21) : Perimeterpunkte werden auf Patternpunkte "kopiert":
1628322066027.png

Durch die Erledigung des Punktes 2 oben fällt ein neuer Punkt auf.
An manchen Stellen (nicht überall) werden Eckpunkte des Perimeters auf das Pattern "kopiert". Im Bild sind die Stellen blau eingekreist. Die roten Pfeile markieren den kopierten Punkt. Diese Punkte werden dann angefahren, obwohl sie eigentlich nicht benötigt würden. D.h. auch an diesen (wenigen) Stellen macht der Rover eine Kehrtwende. Diese Punkte sind nur dann nötig, wenn die kurze Querlinie für eine neue Zeilenbahn an genau einer Ecke im Perimeter liegt. Liegt die Lücke dort sollte kein Eckpunkt projiziert werden.

10. NEU (07.08.21) evtl. ebenfalls durch den Entfall des Punktes 2 oben hervorgerufen: manche Perimeterbahnen werden nicht mehr gemäht
1628321786552.png
die blau eingekringelten Stellen werden gar nicht mehr gemäht (in der App war bei der Berechnung Perimeter mähen eingestellt)
 
Moin Raschl,
deine Fläche ist ja schon recht komplex. Ich glaube nicht, dass das mit einer automatisch generierten Karte richtig gut wird. Hier wäre evtl. ein Externes Tool zum bearbeiten und zusammenkopieren von Karten hilfreich.
ich hab z.b eine recht einfache Fläche. Allerdings stehen Tisch und Stühle drauf, in der Regel immer an der gleichen Stelle. Ich habe jetzt mehrere Karten, wo dieser Bereich mal eine Exclusion ist, und eine, wo ich explizit diese Fläche mähe. Das Laden der Karten mache ich über WLAN, das geht recht schnell und zuverlässig und lässt sich mit ein paar Programmierkenntnissen super automatisieren. (mit Node Red auf nem Raspi wird der Mäher gestartet (P10 auf ein Relais), Booten abwarten, Karte laden, warten bis Fix da ist und dann starten)
 
mit Node Red auf nem Raspi wird der Mäher gestartet (P10 auf ein Relais), Booten abwarten, Karte laden, warten bis Fix da ist und dann starten)
Das bedeutet der Raspi ist mit aufgelötet auf das PCB und dauerhaft an? Habe schon überlegt ob man nicht über ESP32 ein Relais schalten könnte und die ESP32 dauerhaft bestromen.
 
Nein, der Raspi ist Teil des SmartHome-Netzwerk. Da läuft ein u.a. ein Apache Webserver, ein Mosquitto MQTT-Server und eben auch NodeRed als Verbindung zur SPS.
Funktioniert alles schon, ist aber noch nicht ganz fertig und somit noch nicht vorzeigbar. Aber ich weiß jetzt schon, dass meine Einbindung des Ardumowers in mein Smart Home manch einen etwas neidisch macht 😎
 
Eigentlich brauchst du zum Einschalten gar kein Relais - soweit ich weiss kann man beim ESP32 mehrer Ausgänge als Open-Collektor konfigurieren. Das reicht zum Einschalten.
Mit einem Open-Collektor Schalter von Homematic schalte ich zur Zeit den Mäher an.
Genauso wäre dann auch der Dockingbefehl über den ESP32 möglich.
Da es für den ESP32 auch Sketche mit Zeitschaltuhr gibt wäre damit dann z.B. auch ein Timer für den Mäher möglich.
Der ESP32 selber verbraucht recht wenig Strom so das man ihn direkt an den Akku klemmen könnte - natürlich mit DC Wandler auf 5V.Großer Nachteil meiner Homematic - Lösung ist dass der Mäher nur in der LS erreichbar ist, ist er am Ende des Gartens kommt Homematic da nie hin.
Das wäre der große Vorteil des ESP32, WLan reicht auch bis dahin.
 
Werde es nach der Saison mal versuchen, es „allgemeiner“ zu gestalten, so dass andere ohne SPS im Haus auch davon profitieren können.
 
Eigentlich brauchst du zum Einschalten gar kein Relais - soweit ich weiss kann man beim ESP32 mehrer Ausgänge als Open-Collektor konfigurieren. Das reicht zum Einschalten.
Mit einem Open-Collektor Schalter von Homematic schalte ich zur Zeit den Mäher an.
Genauso wäre dann auch der Dockingbefehl über den ESP32 möglich.
Da es für den ESP32 auch Sketche mit Zeitschaltuhr gibt wäre damit dann z.B. auch ein Timer für den Mäher möglich.
Der ESP32 selber verbraucht recht wenig Strom so das man ihn direkt an den Akku klemmen könnte - natürlich mit DC Wandler auf 5V.Großer Nachteil meiner Homematic - Lösung ist dass der Mäher nur in der LS erreichbar ist, ist er am Ende des Gartens kommt Homematic da nie hin.
Das wäre der große Vorteil des ESP32, WLan reicht auch bis dahin.
Dafür ist aber der ESP immer an.
Ich habe die P10-Kontakte rausgeführt und mit in die Ladestation integriert. Da ich einenSPS imHaus habe, ist das Lösung mit einem Koppelrelais für mich die naheliegendste. Das Netzteil wird auch abgeschaltet, wenn der Akku voll und der Ladestrom gen 0 geht.
Wenn ich mähen will, wird der Mower gestartet, die Ladestation eingeschaltet und die Karte für den Tag geladen, kurz gewartet bis fix da ist und dann los. Wenn es fertig ist, ist das mit einem Köick über die Visu erledigt
 
naja, der ESP32 hat im Lightsleep Modus einen ungefähren Verbrauch von 1 - 2mA.
Weiss allerdings nicht ob ich ihn dann noch per WLan wecken kann.
Mit Wlan liegt der Verbrauch bei ca. 150mA.
 
Eigentlich brauchst du zum Einschalten gar kein Relais - soweit ich weiss kann man beim ESP32 mehrer Ausgänge als Open-Collektor konfigurieren. Das reicht zum Einschalten.
Mit einem Open-Collektor Schalter von Homematic schalte ich zur Zeit den Mäher an.
Genauso wäre dann auch der Dockingbefehl über den ESP32 möglich.
Da es für den ESP32 auch Sketche mit Zeitschaltuhr gibt wäre damit dann z.B. auch ein Timer für den Mäher möglich.
Der ESP32 selber verbraucht recht wenig Strom so das man ihn direkt an den Akku klemmen könnte - natürlich mit DC Wandler auf 5V.Großer Nachteil meiner Homematic - Lösung ist dass der Mäher nur in der LS erreichbar ist, ist er am Ende des Gartens kommt Homematic da nie hin.
Das wäre der große Vorteil des ESP32, WLan reicht auch bis dahin.
So ungefähr habe würde ich mir das vorstellen. Im Robomäher Forum hat einer ein Bosch Indego mit der ESP32 verbunden und kann diesen damit starten.
 
Ich würde mal versuchen mich damit zu beschäftigen ...
Zum Stromproblem: man kann definitiv den ESP32 zu einstellbaren Zeiten schlafen legen und auch wieder per Timer erwachen lassen.
Zur Timerprogrammierung: das sollte alles über http gehen und man könnte einen Link in der App hinterlegen.
Viel mehr braucht man eigentlich schon gar nicht. 2 Leitungen müssten noch parallel zum Eintaster gelegt werden und das wars.
Vielleicht kannst du im Robomäher Forum mal nach dem Sketch fragen ... man muss das Rad ja nicht jedes mal neu erfinden.

Alexander plant ja auch eine Timerintegration, ich weiss allerdings nicht wie und ob das dann mit dem ESP32 kollidieren würde.
 
Nein, der Raspi ist Teil des SmartHome-Netzwerk. Da läuft ein u.a. ein Apache Webserver, ein Mosquitto MQTT-Server und eben auch NodeRed als Verbindung zur SPS.
Funktioniert alles schon, ist aber noch nicht ganz fertig und somit noch nicht vorzeigbar. Aber ich weiß jetzt schon, dass meine Einbindung des Ardumowers in mein Smart Home manch einen etwas neidisch macht 😎
Moin,
darf man zu deiner Konfiguration mehr erfahren?
Ich nutze auch eine SPS als Haussteuerung.
Das ganze läuft auf einer Beckhoff, die über ADS mit Node Red kommuniziert. Node Red ist wiederum im ioBroker eingebunden, wo viele andere Systeme laufen, wie z. Bsp. mqtt.
ich bin auf jeden Fall daran interessiert den Ardumower dort einzubinden.
 
Nein, der Raspi ist Teil des SmartHome-Netzwerk. Da läuft ein u.a. ein Apache Webserver, ein Mosquitto MQTT-Server und eben auch NodeRed als Verbindung zur SPS.
Funktioniert alles schon, ist aber noch nicht ganz fertig und somit noch nicht vorzeigbar. Aber ich weiß jetzt schon, dass meine Einbindung des Ardumowers in mein Smart Home manch einen etwas neidisch macht 😎

Mhhh bin ich aber auch stark interessiert mehr zu erfahren... hab mal einen thread eröffnet wo wir diskutieren können :)

 
Ja, MQTT zur Steuerung und Kontrolle des Mähers wäre schön:
-Karte select
-Winkel einstellen
-Wege berechnen
-Karte hochladen
-starten, start,stop, docking
-Zustand abfragen (error usw), Abarbeitung-Prozente...
 
Moin,

hier ein paar Ideen:

1. Verschiedene Mähmuster, automatisch wechselnd, damit nicht immer in den gleichen Pfaden gemäht wird und diese nicht zu dauerhaften Spuren führen. Hier reicht ja z.B. ein sich immer wieder ändernder Mähwinkel schon aus.

2. Eilgang um zwischen verschiedenen Mähflächen schneller fahren zu können, der Mähmotor soll dabei ausgeschaltet sein.

3. Warnmodus wenn Personen- und Fahrzeugverkehr sehr wahrscheinlich ist und besonderer Aufmerksamkeit bedarf, z.B. beim passieren von Gehwegen zwischen verschiedenen Mähflächen.

4. Asymmetrisch angeordnete Mähscheibe, damit man besser an einem Rand mähen kann. Dann ist es auch wichtig, das der Routenplaner dies berücksichtigt und die Ränder immer auf der richtigen Seite anfährt, damit er weiter in die Ecken reinkommt.

5. Wenn das GPS ein 10-20 Sekunden ausfällt, dann mit Kompass und Odometrie weiterfahren. Wenn die Räder noch Gumminoppen oder so hätten, sollten diese annähernd keinen Schlupf haben. Damit dürfte der Mower ein paar Meter ohne GPS fahren können.

6. Heatmapping (Netzabdeckung) von WLAN, GPS fix, GPS float, XBEE, usw. während des Mähens erstellen, also die Netzabdeckung messen und in der Karte darstellen. So kann man blinde Bereiche herausfinden und Verbesserungsmaßnahmen einleiten.

Beste Grüße,
Chris
 
Zuletzt bearbeitet:
1. Bitte löst das Problem mit der Handsteuerung per Bluetooth oder W-LAN, das Stop and Go ist einfach nicht wirklich toll zum anlernen einer Rasenfläche oder einer Ausgrenzung. Vielleicht geht es mit den Brushed Motoren aber bei den Brushless Motoren macht es keinen Spaß.

2. Bitte in die nächste Firmware das hier als Standard definieren: #define REQUIRE_VALID_GPS true ist leider auskommentiert.
 
Ich glaube nicht das das beim ESP32 was mit den Motoren zu tun hat, ich würde da eher auf einen vollaufenden Puffer und/oder Empfangsschwierigkeiten WLan tippen.
Bei mir funktioniert die Handsteuerung bis auf kleine Aussetzer eigentlich ganz gut.
 
Wo sieht man das mit dem volllaufenden Puffer? Meinst du den Wert von 1024? Wegen W-LAN kann ich morgen nochmal testen in 10 - 20 Meter Entfernung vom W-LAN Repeater. Gibt es Probleme mit 2,4Ghz oder 5Ghz? Können beide aktiv sein? Was kann der Ardumower?
Das Stop and Go ist aber auch bei Bluetooth Verbindung. Aber auch da wurde irgendetwas gemacht, Upload der Karte ist jetzt egal ob mit Bluetooth oder W-LAN nahezu gleich schnell.
 
Also bei mir habe ich 2048 eingestellt. Der M4 hat genug RAM, mehr wie gebraucht wird.

Der ESP32 kann nur 2,4GHz. Wenn ich bei mir den Mover in den äusseren Ecken des Grundstücks mit schlechtem WLan steuern will ruckelt er auch sehr schlimm. In der Nähe von einem AP ist das ruckeln fast weg wobei ich natürlich sehr selten mit der Hand steuere, aber ich habe es gerade noch mal probiert.

Der Upload der Karte mit ca. 1k Punkten dauert bei mir keine 20sek.
 
Oben