EinEinfach
Well-known member
Hallo zusammen,
stört es euch auch, dass die Sunray App nicht auf dem Rover läuft? Dass Ihr nicht wisst welche Karte im Rover geladen ist? Dass Ihr umständlich die Geräte untereinander synchronisieren müsst, damit überall die aktuelle Karte/Aufgabe gespeichert ist?
Da ich nicht nur ein Gerät zum Bedienen des Rovers nutze, haben mich die oberen Punkte immer wieder gestört. Um wiederkehrende Sachen zu vereinfachen schreibt man bekannterweise diverse Skripte und lagert diese Aufgaben aus. So ging es bei mir los und wurde immer mehr. Mittlerweile sieht es sogar gut aus, dass ich es euch vorstellen kann.
CaSSAndRA (Cascaded Sunray Server And Rover Application) ist eine Server Anwendung, die in Python geschrieben ist und soll die Sunray FW unterstützen. Im ersten Schritt habe ich geplant, die Anwendung auf einem kleinen Rechner im Netzwerk laufen zu lassen, die dann über MQTT mit dem Rover kommuniziert. Mittlerweile läuft die Anwendung auf dem Paspberry Pi, der im Rover verbaut ist und dieser kommuniziert über UART mit dem AGM4 (DUE)
Das heißt (historisch gewachsen) kann die Anwendung über 3 Wege mit der Sunray FW kommunizieren:
1. HTTP (klassische Verbindung wie das die Sunray App tut), mit oder ohne „ENABLEPASS“. Für diejenigen, die keinen MQTT Server haben, keinen Raspberry Pi im Rover, oder einfach mal CaSSAndRA ausprobieren möchten. Evtl. geht es auch mit Alfred. Verbindung sehr selten von mir genutzt, also sehr wenig getestet.
2. MQTT, für diejenigen, die sowieso alles über MQTT machen. Lange bei mir im Einsatz gewesen.
3. UART, für diejenigen, die einen Einplatinencomputer durch die Gegend spazieren fahren und dieser über USB mit dem AGM oder DUE verbunden ist.
Nach der Installation kann UI über den Webbrowser eurer Wahl aufgerufen werden. Da die Daten auf dem Server (Radpberry Pi, oder sonstiger Computer in eurem Netzwerk) sind, entfällt die Synchronisierung zwischen den Geräten. Als Frontend arbeitet Dash und dieser bringt relativ mächtiges Plot Werkzeug Plotly mit sich.
Was kann CaSSAndRA? Aktuell nicht viel, aber was es kann, kann es schon ziemlich gut und die Liste mit den geplanten Features ist lang.
So sieht die Startseite aus:
Über die Buttons kann gewünschte Aktion gewählt werden und mit Play Button gestartet oder mit Stop Button gestoppt werden.
1. Häusschen -> ist selbsterklärend
2. Mähe alles. Mit der Aktion wird ein Vorschau des Musters erzeugt und angezeigt. Mit anschließenden drücken des Play Buttons startet die Routenberechnung, danach wird die Karte in den Mower geladen und dieser legt los.
3. Mähe ausgewählten Bereich. Mit der Aktion wird mitgeteilt, dass nur ausgewählter Bereich gemäht werden soll. Danach oben im Plot mit Lasso-Werkzeug oder Box-Select den Bereich auswählen und mit Play die Aktion starten, danach wird die Routenberechnung gestartet, die Karte in den Mower geladen und dieser legt wieder los.
4. Gehe zum Punkt. Aktion auswählen, einen beliebigen Punkt auf der Karte auswählen und mit Play die Aktion starten. Danach startet die Routenberechnung, die Karte wird in den Mower geladen. Der Mower fährt mit ausgeschaltetem Mähwerk zu dem Punkt. Ist ganz praktisch, man muss ihn nicht durch den Garten schleppen, wenn man das Ding irgendwo braucht.
5. Temporäre Einstellungen für kommenden Mähvorgang. Mähbreite, Mähwinkel, Muster(Linien, Karo, Kreise(sind noch nicht produktiv))
6. Aktion abbrechen
Ihr merkt schon, wie das ganze gedacht ist. Zu keinem Zeitpunkt sollen Mähwege irgendwo in irgendeiner Form gespeichert werden. Diese werden immer kurz vor dem Start berechnet und hochgeladen. Da in die Plannung auch die aktuelle Position des Mähers mit eingeht. Das ganze dauert nur wenige Sekunde (Das längste an der Geschichte ist die Berechnung des Musters)
Außerdem gibt es Remote Control mit diversen Aktionen(Aus, Reboot, GPS Reboot, Mähwerk an/aus, Setzen der Geschwindigkeit, Überspringe den aktuellen Zielpunkt)
Weitere Funktionen in Plannung
Man kann sich auch ein Paar Messwerte anschauen.
Ausserdem schreibt der Server die Messwerte in mehrere Dateien weg. Haltetdauer ist auf 30 Tage begrenzt, wird aber konfigurierbar sein. Damit plane ich später eine Statistik Seite mit diversen Plots zu realisieren, was wie (Bar Chart, Pie Chart…) Gerne Vorschläge von euch, alles noch offen.
Hier noch ein paar Bilder, wie so ein selektirter Berech aussehen kann:
Jetzt seid Ihr dran, habt Ihr Interesse an der App, dann fange ich langsam alles auzuräumen und anschließend den Code zu veröffentlichen.
Solltet Ihr kein Interesse haben, dann ist das auch Ok und ich konzentriere mich nur auf die Sachen, die ich brauche.
Edit (ein kurzes Vorstellungsvideo):
Edit 28.04.2023:
Der Code sowie die Installationsanleitung ist auf Github zu finden:
CaSSAndRA
An der Bedienungsanleitung arbeite ich noch, aber Ihr könnt schon mal schauen, ob bei euch die Installation klapt.
Edit 3.11.2023
Aktuelle Themen:
Planed Features:
Alexander
stört es euch auch, dass die Sunray App nicht auf dem Rover läuft? Dass Ihr nicht wisst welche Karte im Rover geladen ist? Dass Ihr umständlich die Geräte untereinander synchronisieren müsst, damit überall die aktuelle Karte/Aufgabe gespeichert ist?
Da ich nicht nur ein Gerät zum Bedienen des Rovers nutze, haben mich die oberen Punkte immer wieder gestört. Um wiederkehrende Sachen zu vereinfachen schreibt man bekannterweise diverse Skripte und lagert diese Aufgaben aus. So ging es bei mir los und wurde immer mehr. Mittlerweile sieht es sogar gut aus, dass ich es euch vorstellen kann.
CaSSAndRA (Cascaded Sunray Server And Rover Application) ist eine Server Anwendung, die in Python geschrieben ist und soll die Sunray FW unterstützen. Im ersten Schritt habe ich geplant, die Anwendung auf einem kleinen Rechner im Netzwerk laufen zu lassen, die dann über MQTT mit dem Rover kommuniziert. Mittlerweile läuft die Anwendung auf dem Paspberry Pi, der im Rover verbaut ist und dieser kommuniziert über UART mit dem AGM4 (DUE)
Das heißt (historisch gewachsen) kann die Anwendung über 3 Wege mit der Sunray FW kommunizieren:
1. HTTP (klassische Verbindung wie das die Sunray App tut), mit oder ohne „ENABLEPASS“. Für diejenigen, die keinen MQTT Server haben, keinen Raspberry Pi im Rover, oder einfach mal CaSSAndRA ausprobieren möchten. Evtl. geht es auch mit Alfred. Verbindung sehr selten von mir genutzt, also sehr wenig getestet.
2. MQTT, für diejenigen, die sowieso alles über MQTT machen. Lange bei mir im Einsatz gewesen.
3. UART, für diejenigen, die einen Einplatinencomputer durch die Gegend spazieren fahren und dieser über USB mit dem AGM oder DUE verbunden ist.
Nach der Installation kann UI über den Webbrowser eurer Wahl aufgerufen werden. Da die Daten auf dem Server (Radpberry Pi, oder sonstiger Computer in eurem Netzwerk) sind, entfällt die Synchronisierung zwischen den Geräten. Als Frontend arbeitet Dash und dieser bringt relativ mächtiges Plot Werkzeug Plotly mit sich.
Was kann CaSSAndRA? Aktuell nicht viel, aber was es kann, kann es schon ziemlich gut und die Liste mit den geplanten Features ist lang.
So sieht die Startseite aus:
Über die Buttons kann gewünschte Aktion gewählt werden und mit Play Button gestartet oder mit Stop Button gestoppt werden.
1. Häusschen -> ist selbsterklärend
2. Mähe alles. Mit der Aktion wird ein Vorschau des Musters erzeugt und angezeigt. Mit anschließenden drücken des Play Buttons startet die Routenberechnung, danach wird die Karte in den Mower geladen und dieser legt los.
3. Mähe ausgewählten Bereich. Mit der Aktion wird mitgeteilt, dass nur ausgewählter Bereich gemäht werden soll. Danach oben im Plot mit Lasso-Werkzeug oder Box-Select den Bereich auswählen und mit Play die Aktion starten, danach wird die Routenberechnung gestartet, die Karte in den Mower geladen und dieser legt wieder los.
4. Gehe zum Punkt. Aktion auswählen, einen beliebigen Punkt auf der Karte auswählen und mit Play die Aktion starten. Danach startet die Routenberechnung, die Karte wird in den Mower geladen. Der Mower fährt mit ausgeschaltetem Mähwerk zu dem Punkt. Ist ganz praktisch, man muss ihn nicht durch den Garten schleppen, wenn man das Ding irgendwo braucht.
5. Temporäre Einstellungen für kommenden Mähvorgang. Mähbreite, Mähwinkel, Muster(Linien, Karo, Kreise(sind noch nicht produktiv))
6. Aktion abbrechen
Ihr merkt schon, wie das ganze gedacht ist. Zu keinem Zeitpunkt sollen Mähwege irgendwo in irgendeiner Form gespeichert werden. Diese werden immer kurz vor dem Start berechnet und hochgeladen. Da in die Plannung auch die aktuelle Position des Mähers mit eingeht. Das ganze dauert nur wenige Sekunde (Das längste an der Geschichte ist die Berechnung des Musters)
Außerdem gibt es Remote Control mit diversen Aktionen(Aus, Reboot, GPS Reboot, Mähwerk an/aus, Setzen der Geschwindigkeit, Überspringe den aktuellen Zielpunkt)
Man kann sich auch ein Paar Messwerte anschauen.
Ausserdem schreibt der Server die Messwerte in mehrere Dateien weg. Haltetdauer ist auf 30 Tage begrenzt, wird aber konfigurierbar sein. Damit plane ich später eine Statistik Seite mit diversen Plots zu realisieren, was wie (Bar Chart, Pie Chart…) Gerne Vorschläge von euch, alles noch offen.
Hier noch ein paar Bilder, wie so ein selektirter Berech aussehen kann:
Jetzt seid Ihr dran, habt Ihr Interesse an der App, dann fange ich langsam alles auzuräumen und anschließend den Code zu veröffentlichen.
Solltet Ihr kein Interesse haben, dann ist das auch Ok und ich konzentriere mich nur auf die Sachen, die ich brauche.
Edit (ein kurzes Vorstellungsvideo):
Edit 28.04.2023:
Der Code sowie die Installationsanleitung ist auf Github zu finden:
CaSSAndRA
An der Bedienungsanleitung arbeite ich noch, aber Ihr könnt schon mal schauen, ob bei euch die Installation klapt.
Edit 3.11.2023
Aktuelle Themen:
Planed Features:
Replace Mower sign through direction based picture- GPS based speed
Telegramm messages in case of error- Router Service to remove ESP32
MappingComplex taskplanner incl timecontrol (Define, save, combine, automaticly start different tasks)- Statistic page
Showing virtual obstacle (AT+S2)Speed set point for transit and mowSkip to nextpointSkip to progress- Heatmap (Wifi signal strength)
- Different mow speeds for border cut an mow area
- Turn map in defined angle for better using of box-select
Make points moveable in mapping section- Use mower size to improve planned route
Debug page with log informations and possibility to set every AT command (like in Arduino IDE)Replace Zone Select Button through reload button. Zone Select should be just triggered by using Lasso or box select. Reload button will trigger path planning once again, it is useful if mow settings are changed but zone stays the same
Exclusion mowpath wird entweder unvollständig abgefahren oder verletzt die GrenzeMögliche Beschädigung der messdateien beim stoppen des Services- Reset mow path after finish the task
Shutdown and Reset in UART mode not possible- Dead man switch in UART Mode
Server crashed in case of empty string in http mode- Not saved changes stays as message after saving perimeter
- No warnings in case of the same map name when saving new map (save will be ignore)
App doesn’t work with python 3.11 due to changes in python dataclasses library- Mow speed didn’t save after changing in remote control
Umstellung auf Shapely V2.X- Umstellung auf Python dataclasses
Alexander
Anhänge
Zuletzt bearbeitet: