Mein Projekt CaSSAndRA zur Steuerung des Ardumowers

@EinEifnach, also bei meiner Karte sieht das jetzt wesentlich besser aus. Mit viel weniger Querwegen und ich habe auch das Gefühl, die Berechnung geht schneller. Danke!
Im Moment wächst der Rasen wegen der Trockenheit kaum, ich werde aber zum WE hin testen.
Ich habe nur immer noch das Problem, das der Mower während des Mähens plötzlich stehen bleibt und dann nur noch auf den Notaus-Taster reagiert. Wenn ich dann den Mower neu starte, kann ich weiter mähen.
Im Cassandra-Log steht dann folgendes:

Code:
Jul 01 16:26:24 mowerraspi python3[740]: 2023-07-01 16:26:24 DEBUG Content:
Jul 01 16:26:24 mowerraspi python3[740]: 2023-07-01 16:26:24 WARNING Backend: HTTP request for state delivered implausible string
Jul 01 16:26:24 mowerraspi python3[740]: 2023-07-01 16:26:24 INFO Backend: Try initial HTTP request
Jul 01 16:26:24 mowerraspi python3[740]: 2023-07-01 16:26:24 DEBUG Calced checksumme: 0x16
Jul 01 16:26:24 mowerraspi python3[740]: 2023-07-01 16:26:24 DEBUG Data to be send: AT+V,0x16
Jul 01 16:26:24 mowerraspi python3[740]: 2023-07-01 16:26:24 DEBUG Starting new HTTP connection (1): 192.168.1.29:80
Jul 01 16:26:25 mowerraspi python3[740]: 2023-07-01 16:26:25 DEBUG http://192.168.1.29:80 "POST / HTTP/1.1" 200 0
Jul 01 16:26:25 mowerraspi python3[740]: 2023-07-01 16:26:25 DEBUG Status code: 200
Jul 01 16:26:25 mowerraspi python3[740]: 2023-07-01 16:26:25 DEBUG Content:
Jul 01 16:26:25 mowerraspi python3[740]: 2023-07-01 16:26:25 WARNING Backend: Http request for props delivered implausible string
Jul 01 16:26:26 mowerraspi python3[740]: 2023-07-01 16:26:26 INFO Backend: Try initial HTTP request
Jul 01 16:26:26 mowerraspi python3[740]: 2023-07-01 16:26:26 DEBUG Calced checksumme: 0x16
Jul 01 16:26:26 mowerraspi python3[740]: 2023-07-01 16:26:26 DEBUG Data to be send: AT+V,0x16
Jul 01 16:26:26 mowerraspi python3[740]: 2023-07-01 16:26:26 DEBUG Starting new HTTP connection (1): 192.168.1.29:80
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 DEBUG http://192.168.1.29:80 "POST / HTTP/1.1" 200 0
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 DEBUG Status code: 200
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 DEBUG Content:
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 WARNING Backend: Http request for props delivered implausible string
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 INFO Backend: Try initial HTTP request
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 DEBUG Calced checksumme: 0x16
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 DEBUG Data to be send: AT+V,0x16
Jul 01 16:26:27 mowerraspi python3[740]: 2023-07-01 16:26:27 DEBUG Starting new HTTP connection (1): 192.168.1.29:80
Jul 01 16:26:28 mowerraspi python3[740]: 2023-07-01 16:26:28 DEBUG http://192.168.1.29:80 "POST / HTTP/1.1" 200 0
Jul 01 16:26:28 mowerraspi python3[740]: 2023-07-01 16:26:28 DEBUG Status code: 200
Jul 01 16:26:28 mowerraspi python3[740]: 2023-07-01 16:26:28 DEBUG Content:
Jul 01 16:26:28 mowerraspi python3[740]: 2023-07-01 16:26:28 WARNING Backend: Http request for props delivered implausible string
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 INFO Backend: Try initial HTTP request
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 DEBUG Calced checksumme: 0x16
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 DEBUG Data to be send: AT+V,0x16
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 DEBUG Starting new HTTP connection (1): 192.168.1.29:80
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 DEBUG http://192.168.1.29:80 "POST / HTTP/1.1" 200 3
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 DEBUG Status code: 200
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 DEBUG Content: û×ÿ
Jul 01 16:26:29 mowerraspi python3[740]: 2023-07-01 16:26:29 WARNING Backend: Http request for props delivered implausible string
Jul 01 16:26:30 mowerraspi python3[740]: 2023-07-01 16:26:30 INFO Backend: Try initial HTTP request
Jul 01 16:26:30 mowerraspi python3[740]: 2023-07-01 16:26:30 DEBUG Calced checksumme: 0x16
Jul 01 16:26:30 mowerraspi python3[740]: 2023-07-01 16:26:30 DEBUG Data to be send: AT+V,0x16
Jul 01 16:26:30 mowerraspi python3[740]: 2023-07-01 16:26:30 DEBUG Starting new HTTP connection (1): 192.168.1.29:80
Jul 01 16:26:30 mowerraspi python3[740]: 2023-07-01 16:26:30 DEBUG http://192.168.1.29:80 "POST / HTTP/1.1" 200 10
Jul 01 16:26:30 mowerraspi python3[740]: 2023-07-01 16:26:30 DEBUG Status code: 200
Jul 01 16:26:30 mowerraspi python3[740]: 2023-07-01 16:26:30 DEBUG Content: AT+V,0x16
Jul 01 16:26:30 mowerraspi python3[740]: Exception in thread Thread-407:
Jul 01 16:26:30 mowerraspi python3[740]: Traceback (most recent call last):
Jul 01 16:26:30 mowerraspi python3[740]:   File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
Jul 01 16:26:30 mowerraspi python3[740]:     self.run()
Jul 01 16:26:30 mowerraspi python3[740]:   File "/usr/lib/python3.9/threading.py", line 892, in run
Jul 01 16:26:30 mowerraspi python3[740]:     self._target(*self._args, **self._kwargs)
Jul 01 16:26:30 mowerraspi python3[740]:   File "/home/ardumower/CaSSAndRA/CaSSAndRA/src/backend/backendserver.py", line 28, in connect_http
Jul 01 16:26:30 mowerraspi python3[740]:     connection = httpcomm.connect_http(connect_data)
Jul 01 16:26:30 mowerraspi python3[740]:   File "/home/ardumower/CaSSAndRA/CaSSAndRA/src/backend/comm/httpcomm.py", line 86, in connect_http
Jul 01 16:26:30 mowerraspi python3[740]:     encrypt = int(reslist[3])
Jul 01 16:26:30 mowerraspi python3[740]: IndexError: list index out of range

Jetzt habe ich das Log auf SD-Karte aktiviert, um das Problem zu finden.
Wird das Logging von Cassandra auch irgendwo in eine Datei geschrieben oder kann ich das in eine Datei schreiben lassen?
 
@EinEifnach, also bei meiner Karte sieht das jetzt wesentlich besser aus. Mit viel weniger Querwegen und ich habe auch das Gefühl, die Berechnung geht schneller. Danke!
Im Moment wächst der Rasen wegen der Trockenheit kaum, ich werde aber zum WE hin testen.
Ich habe nur immer noch das Problem, das der Mower während des Mähens plötzlich stehen bleibt und dann nur noch auf den Notaus-Taster reagiert. Wenn ich dann den Mower neu starte, kann ich weiter mähen.
Im Cassandra-Log steht dann folgendes:



Jetzt habe ich das Log auf SD-Karte aktiviert, um das Problem zu finden.
Wird das Logging von Cassandra auch irgendwo in eine Datei geschrieben oder kann ich das in eine Datei schreiben lassen?
das mit dem Watchdog Reset der Sunrayfirmware, also das Thema hier https://forum.ardumower.de/threads/reset-cause-watchdog.25127/page-3#post-60487
hast Du schon "behoben"?!
 
@EinEifnach Seit dieser Version dockt Alfred nicht mehr korrekt. Ich hatte schon beim rausfahren aus dem Dock das Gefühl, dass er das abkürzt und nicht den gesamten Dockpfad benutzt, sondern direkt den Punkt zum Mähstart anfährt. Beim reinfahren das gleiche: Er versucht den direkten Weg in die Box, was nicht klappt, da er nicht den richtigen Winkel hat. Das ließ sich gerade reproduzieren.
 
Seit dieser Version dockt Alfred nicht mehr korrekt. Ich hatte schon beim rausfahren aus dem Dock das Gefühl, dass er das abkürzt und nicht den gesamten Dockpfad benutzt, sondern direkt den Punkt zum Mähstart anfährt. Beim reinfahren das gleiche: Er versucht den direkten Weg in die Box, was nicht klappt, da er nicht den richtigen Winkel hat. Das ließ sich gerade reproduzieren.
Kannst du mal beobachten, was als Target Point beim Andocken oder Abdocken markiert ist
 
Kannst du mal beobachten, was als Target Point beim Andocken oder Abdocken markiert ist
Mache ich.

Was anderes: Ich nutze die alternative Firmware von @disaster123 . In einer älteren Version aus Juni funktioniert das mit Cassandra einwandfrei. Ich hatte heute mal den aktuellen Stand kompiliert, da bekommt Cassandra keine Verbindung (Offline) und im Log steht folgendes:

Code:
2023-07-11 10:30:15 ERROR Backend: Failed to write state data to data frame
2023-07-11 10:30:15 DEBUG Length mismatch: Expected axis has 20 elements, new values have 18 elements

Hast du eine Idee, wo man da ansetzen müsste?
 
Ja, ich habe eine Idee, um welche FW Version geht es? Oder auf welcher Sunray Version basiert deine Custom FW
 
Kannst du mal beobachten, was als Target Point beim Andocken oder Abdocken markiert ist
Natürlich (!) konnte ich das nun nicht mehr reproduzieren. Ich hatte aber auch Sunray zwischenzeitlich neu gestartet und vermute nun, dass das Problem ggf. gar nicht Cassandra war.

Kann es denn sein, dass die Berechnung der Mähpfade und das Senden an den Mäher wieder länger dauert, als vor dieser Version? Im Vergleich zu gestern, kommt mir das heute wie eine Ewigkeit vor.
 
Kann es denn sein, dass die Berechnung der Mähpfade und das Senden an den Mäher wieder länger dauert, als vor dieser Version? Im Vergleich zu gestern, kommt mir das heute wie eine Ewigkeit vor.
Ich habe nicht nachgemessen, ich wollte mal ein Vergleich machen... aber irgendwie komme ich nicht dazu.
Generell anzumerken, die Berechnung dauert deutlich länger je mehr Ränder oder je mehr Runden um eine Exclusion gedreht werden soll. Die Berechnung dauert am schnellsten wenn keine Ränder gemäht werden sollen
 
Karte und Einstellungen sind gleich geblieben. Gestern ging es ohne merkliche Verzögerung. Heute dauert es eine halbe Minute...ich beobachte auch das.
 
Sowas ist ja offenbar in Planung. Per Lasso oder Rectangle einzelne Flächen markieren, ihnen Eigenschaften zu weisen und einen Task daraus machen. Dann kann man Tasks kombinieren und in gewünschter Reihenfolge abarbeiten. Das ganze am besten dann noch von extern (HA) steuerbar. So stelle ich mir das zumindest vor und im Grunde wurde es von @EinEifnach auch schon so oder so ähnlich bestätigt.
Als Ergänzung von mir: Und dann hoffe ich, dass zwischen den Tasks kein Dockvorgang nötig ist und man eine Art "Transit"-Weg einstellen kann um die Tasks abzuarbeiten.
 
@EinEinfach Ich habe noch ein weiteres Problem mit Cassandra entdeckt: Ich habe eine Karte ohne eigenes Dock, weil der Garten noch nicht so weit ist und ich Alfred dort hin tragen muss. Dort gibt es also nur ein virtuelles Dock auf der Karte. Sowohl in Sunray, als auch in Cassandra muss man, nachdem dieser Bereich ohne Dock gemäht wurde, erst die Karte des Kartenbereichs mit echtem Dock hochladen, damit der Mäher wieder an der richtigen Stelle platziert wird (er bleibt sonst, trotzdem man ihn zum Laden im richtigen Dock platziert, in der Kartenübersicht auf dem virtuellen Dock). Das ist bei Sunray kein Problem, da man die Karte ja VOR dem Start hochlädt und die Mähwege schon vom richtigen Punkt aus berechnet sind. Bei Cassandra ist es deshalb ein Problem, weil die Mähwege dann vom falschen Ladepunkt aus berechnet werden und komplett neben der eigentlichen Karte liegen.
 
Das ist bei Sunray kein Problem, da man die Karte ja VOR dem Start hochlädt und die Mähwege schon vom richtigen Punkt aus berechnet sind. Bei Cassandra ist es deshalb ein Problem, weil die Mähwege dann vom falschen Ladepunkt aus berechnet werden und komplett neben der eigentlichen Karte liegen.
Eigentlich nimmt CaSSAndRA die aktuelle Position des Mähers als Startpunkt, dann sollte es doch passen, oder ich habe das Problem noch nicht ganz verstanden
 
das mit dem Watchdog Reset der Sunrayfirmware, also das Thema hier https://forum.ardumower.de/threads/reset-cause-watchdog.25127/page-3#post-60487
hast Du schon "behoben"?!
Meinst du das hier:

CONSOLE.print (statControlCycleTime);
//CONSOLE.print (" op=");
//CONSOLE.print(activeOp->OpChain);
//CONSOLE.print (stateOp);
#ifdef __linux__

oder das:

//#define ENABLE_SD 1 // enable SD card services (resuming, logging)? (uncomment to activate)
//#define ENABLE_SD_LOG 1 // enable SD card logging? uncomment to activate (not recommended - WARNING: may slow down system!)
//#define ENABLE_SD_RESUME 1 // enable SD card map load/resume on reset? (uncomment to activate)

?
 
Eigentlich nimmt CaSSAndRA die aktuelle Position des Mähers als Startpunkt, dann sollte es doch passen, oder ich habe das Problem noch nicht ganz verstanden
Na eben nicht. Da in Sunray im Dock immer die Position des Mähers im gerade verfügbaren Docks angenommen wird (das ist immer der letzte Punkt auf dem Dockpfad - dafür wird nicht der wirkliche GPS Standort angenommen, warum auch immer, das so ist), "denkt" Cassandra und eben, bis zum hochladen der neuen Karte auch Sunray, dass der Mäher im virtuellen Dock steht und nicht im echten Dock der anderen Karte. Wie gesagt, in Sunry behebt sich das in dem Moment, in dem man die nächste Karte hochlädt, dann positioniert sich der Mäher neu und man kann von dort starten.
 
Na eben nicht. Da in Sunray im Dock immer die Position des Mähers im gerade verfügbaren Docks angenommen wird (das ist immer der letzte Punkt auf dem Dockpfad - dafür wird nicht der wirkliche GPS Standort angenommen, warum auch immer, das so ist)
Ist mir nie aufgefallen, muss ich mal schauen, ob irgendwo die echte Position des Mähers übertragen wird
 
Oben