Sunray-Firmware - Ideensammlung / ideas for improvement

Hab irgendwie das Gefühl das die Routen Planung schlechter geworden ist als früher.
Habe da z.B. aktuell so Effekte dass er am Ende nochmal quer über das ganze Grundstück will.

Wie auch immer das Zustande kommt, sieht für mich ziemlich suboptimal manchmal aus was da passiert.
Eventuell hilft es beim debuggen/entwickeln mal zu sehen was die Map Calculation auf anderen Wiesen so macht.


Zweites Bild war ein anderer Fall, da fährt er einmal komplett am Haus entlang zum nächsten Wegpunkt (da wo der Pfeil hinzeigt) und lässt am Weg alles erstmal stehen, da fährt er dann ganz am Ende nochmal hin.
Da kann ich es mir noch halbwegs erklären weil der nächste Punkt vermutlich auf Luftlinie gesucht wird und nicht auf Fahrlinie, da erkennt er nicht dass der direkte Weg einmal komplett ums Haus ist statt die 10m durch die Einfahrt die keine Mähzone ist.


Könnte da jetzt noch 10 Beispiele an meiner Map zeigen wo so seltsame Dinge entstehen.
 

Anhänge

  • 2023-05-15 14_23_28-Ardumower Sunray App.png
    2023-05-15 14_23_28-Ardumower Sunray App.png
    1,7 MB · Aufrufe: 20
  • 2023-05-03 18_26_27-Ardumower Sunray App.png
    2023-05-03 18_26_27-Ardumower Sunray App.png
    1,3 MB · Aufrufe: 20
Zuletzt bearbeitet:
Generell würde ich mir wünschen mehr Einfluss auf die Map Calculation zu haben um sowas zu verhindern.
Weiß nicht wie man das implementieren sollte aber teilweise passe ich bei mir eine Exclusion absichtlich noch 2-3x an und schaue mir danach die verschiedene Ergebnisse an. Sobald auch nur eine Mähbahn mehr oder weniger an einem Objekt entsteht ist teilweise das Ergebnis ein komplett anderes.

Teilweise hat das extreme Anpassungen zur Folge und ich suche mir das beste Ergebnis dann raus wo so wenig wie mögliche "skurrile" Wege zusammen kommen.
Da wäre es schon mal hilfreich den Start und Endpunkt setzen zu können.
 
Und Zonen. Hat man Zonen, kann man für einen großen Garten viel besser die Wege planen. Zonen sind das A und O bei so einer Wegeplanung!
 
Zonen können auch verschiedene Maps sein, besser wäre es alle Maps auf SD Karte zu haben und dann eine Reihenfolge oder eine User map sofort auf dem Mäher zu haben. Bzgl. Abarbeitung der Punkte... Ich würde es gut finden wenn der Mäher wie ein slicer eine 2dfläche behandelt. Mit der abänderung, dass keine Bahnsprünge passieren, das würde alles wesentlich berechenbarer machen.
 
Wenn es verschiedene Maps sind, müssen es deutlich mehr sein, als 10 und es muss nicht zwingend ein Dockpfad nötig sein.
Er muss auch von einer Map zur anderen fahren können (auch über Wege) und dann mit verschiedenen Winkeln, Höhen,... die Zonen nacheinander abmähen können. Meiner Ansicht nach, wären echte Zonen einfacher zu handeln.
 
Auf einer SD gehen wahrscheinlich genug Maps... Und wenn du über Verbindungen sprichst... Weil das eine weit vom anderen ohne Zusammenhang einer mähzone, brauchst du keine mähzone.. sondern sowieso ne andere map. Es ist sonst keine Zone einer map mehr.
 
Wenn man gezwungen
Ist ein Labyrinth zu bauen, dann ergibt sich ein workaround. Andernfalls lässt sich das vermeiden.
 
Nein. Wenn es Maps sind, muss klar geregelt werden können, wie der Übergang von einer zur anderen stattfindet. Ich möchte z. B. in Engstellen und einigen kleineren Bereichen andersherum mähen als auf den großen Flächen. Wenn man die Map in Zonen einteilen könnte, ließe sich das leichter realisieren (aus meiner Sicht). Workarounds sind immer schlecht. Man muss es nicht Zonen nennen, ggf. Bereiche in der Map, die man einzeichnen und dann sagen kann, mäh da anders. Aus meiner Sicht eine immens wichtige Funktionalität, wenn der Garten etwas komplizierter ist.
 
My approch is unlimited card quantity and scheduler to mow each one in the order you want .
Maybe a kind of macro can join card and freepoint to other card, but certainly complex.
 
Always back to dock is not a good solution. Zones are made for small areas in one mowing section (e.g. under a slide or trampoline). Zones are not in fact small maps. It should be simpler to manage zones in the code than to connect maps as zones. If you work around it should be effective. Maps as zones is not effecitve if you do not put a whole lot of magic in there.
 
I did not. As I said, I would wish for it in the official code. I cannot code something like this. I am approaching this from a logical point of view. I work in IT, my programming skills are not bad but this ist not my area of expertise.

Scheduler is not a good concept. There are too many variables (humidity, temperature, time since last mow, moisture ...). Absolute time ist not an important one if it comes to mowing. It should be possible to change maps and possible zones via MQTT to check the various variables in a home automation software and start mowing from there.
 
Servus Zusammen,
ich möchte hier im Forum auch meine Anregungen vom Skype Chat doklumentieren.

Ich habe nun heuer endlich den GPS-RTK-Sunray Mower am Laufen und er mäht auch fleißig meine Rasen seit März.
SAUGEIL und vielen Dank an die Entwickler - toller Job!

Trotzdem habe ich einige Probleme/Auffälligkeiten die ich hier gern teilen möchte, die Antworten im Skype stehen dazu nach "-->"
Meine HW-config:
Ardumower Chassis 2021
PCB1.4
Adafruit Grand Central M4 mit SD-Card
Bürstenmotoren
ESP32
Sunray V1.0.298

aus Config:
FREEWHEEL_IS_AT_BACKSIDE: 1
WHEEL_BASE_CM: 36
WHEEL_DIAMETER: 250
SONAR_ENABLE: 1
SONAR_TRIGGER_OBSTACLES: 1
BUMPER_ENABLE: 1

Konny

1) Fahrverhalten/Calc-Algorhytmus:
a) Mower mäht nicht die Fläche von einer zur anderen Seite komplett durch sondern fährt ständig über den Rasen hin- und her um kleinere Rasenabschnitte zu mähen:
1. Zuerst fährt er aus der Ladestation und zu einen Randpunkt
2. dann fährt er einmal den Rasenrand entlang
3. dann beginnt er die Bahnen zu mähen
4. dann fährt er auf eine andere Fläche und mäht da Bahnen
5. dann wieder zu einer anderen Fläche usw.
6. zum Schluß fährt er alle Hindernisse (Exclusions) an und rum
7. dann wieder zu Ladestation
Warum fährt er nicht von einer Seite des Rasen los und mäht alles zur anderen Seite inkl. Hindernisse???
(Siehe Datei "Konny_Sunray_Map.jpg" + "Konny_Sunray_Map_Mower mäht versch. Flächen.jpg")
--> AGrau: die pfadplanung ist total simpel: vom endpunkt der aktuellen bahn nächste bahn suchen dessen startpunkt die kleinste entfernung zum aktuellen endpunkt hat und bei dieser nächsten bahn dasselbe wiederholen - das funktioniert für einfache flächen gut und bei komplizierten flächen kommt dann halt sowas heraus ;)
es ist ein lokales optimum - kein globales, es ist aber schon welten besser als fuzzy mähen - mit globaler optimierung kann man bestimmt nochmal bis zu 20% zeitgewinn rausholen
--> ChristianW: https://forum.ardumower.de/forums/sunray-firmware.22006/
b) Lücken nach Calc der Fläche: Gras wird dort auch nicht gemäht
(Siehe Datei "Konny_Sunray_Map_Fläche wird nicht gemäht.jpg" + "Konny_RasenPhoto_Fläche wird nicht gemäht.jpg")
--> Lösung: Mähoffset mal minimal verstellen (ich würde 1-2 kleiner probieren)
dann ergeben sich andere Mähpfade
c) Der Mower dreht meist 270° anstatt nur 90°, manchmal sogar fast ganze 360°
--> It‘s Not a Bug it‘s a Feature.
Siehe: https://forum.ardumower.de/threads/merkwürdiges-wendeverhalten-am-bahnende.25106/
ABER: ich habe ja wie alle Ardumower Chassis2021 den Motor vorne, und da erhöht das ständige Drehen um 270° eher das Risiko in Exklusion zu kommen v.a. an Wäscheleinenstangen (siehe "Konny_Rasen_Stangen.jpg") - da blieb er immer hängen und ich musste den Abstand sehr groß einstellen...
Weil v.a. das Rad und der Deckel sehr weit weg vom GPS ist - ich möchte das hintere Ende jetzt eh kürzen und ein kleineres Rad nehmen, damit der Wendekreis deutlich kleiner ist (habe einen 2. Ardumower zum basteln, siehe "Konny_Mower2 mit kleinem Rad.jpg").
Werde aus den Forum link nicht schlau, gibt es denn nun eine SW in der man das "Feature" deaktivieren kann um Zeit und Akku zu sparen?
d) Sporadisch der Mower fährt nicht gerade aus sondern "Schwanzelt" = fährt immer leicht links rechts
e) Manchmal: obwohl kein Hinderniss vorhanden: Stop, 20cm Rückwärts, Mow Off, 5-6x Beep, Pause -> dann wieder Start
2) Ladestation
a) ich hatte es 2x das er in der Station war aber nicht an den Kontakten -> Akku wurde leer bis zu 21V
--> Lösung: Es hilft den letzten Andockpunkt ca. 20cm weiter in Andockrichtung zu verschieben
b) nach manuel reinschieben und Vollladen: nach START: Fehler "Mower has not been synced with Robot" --> Upload Map nötig, dann START OK
c) nach START: Fehler "GPS invalid" da GPS nicht FIX ist sondern FLOAT -> Mower manuel rausfahren bis zu FIX, dann START OK
3) Sunray-APP:
a) Fehlermeldungen gehen in der APP nicht weg selbst wenn alles wieder OK und Mower mäht
--> da kann dir nur AlexanderG helfen, er hat die Macht über dem Code
 
Ist es möglich, Alfreds Sonnenstrahl für Himbeer-/Bananen-Pi zu posten? Dies könnte die Ardumower-Plattform für mehr Roboter/Mainboards öffnen. Meine Idee ist, die Robomow RC/RS-Plattform zu verwenden. Es ist keine Änderung der Firmware erforderlich, um die Motoren zu bewegen und alle Telemetriedaten von diesem Mainboard auszulesen. Es sind nur IMU und eine RS232-Verbindung erforderlich.
 
Hi xjust,

You can also write in english.
I'm not sure if I understand you right.
Do you mean the Sunray Firmware or the Sunray App?
Unfortunately Sunray Firmware is not 100% compatible with RaspberryPi, because as the RaspberryPi was not available in bigger quantities the BananaPi has been choosen as the hardware platform. But the problem is, that the Kernel of the BananaPi is not as well maintained than the Kernel of the RaspberryPi. This means Sunray needs to be compatible with the old BananaPi Kernel.
 
Okay. It was about time to test this. I am so sorry for my missunderstaning based on and old github issue (2 years ago):

Sunray compiled on raspberry pi4 running buster.
I got this type of warnings but It compiled perfectly:
/home/pi/sunray/Sunray/alfred/src/HardwareSerial.h: In member function ‘virtual size_t HardwareSerial::write(uint8_t)’:
/home/pi/sunray/Sunray/alfred/src/HardwareSerial.h:21:36: warning: no return statement in function returning non-void [-Wreturn-type]
virtual size_t write(uint8_t) {}


It is quite interesting how a few modifications can bring sunray also to the robomow platform through either a bluetooth or a rs232 connection.
There are few APIs that can send send PWM/direction commands to each motor (will test soon), and also return live of the board.
Attached the telemetry data. This is currently read by an esp32 board (through bluetooth) that is placed near/or inside the mower.
If anyone interested in working with me on this, let me know :)

The robomow RS can do about ~3000 squre meters using random mowing pattern, 56cm mow width ( about 2h runtime ). Lets see what it can do using RTK.
There are other RTK attempts using this platform already, without a decent result. I think if my ideea works, its the easiest RTK mod you can add to an off the shelf mower :)

PS. Using the same hardware from ardumower's azurit signal generator (arduino+motor driver), I managed to recreate the robomow perimeter signal. If anyone needs this just let me know.
 
Oben