Mein Projekt CaSSAndRA zur Steuerung des Ardumowers

Ich hab heute den PI in ne Tupperdose mit ner Powerbank gepackt und auf den Ardumower geschraubt. Ich bin begeistert, wie gut das funktioniert. Da musste ich erstmal auf den Donate Button im Github drücken ;)
Zwei Frage hab ich noch:
Das Ardumower Symbol auf der Karte ist bei mir winzig klein und kaum zu erkennen, wenn man die ganze Karte sieht. Ist dann sehr schwierig rauszufinden, wo sich der Mäher gerade auf dem Gelände befindet:
Screenshot_2024-05-27-10-18-03-14_3aea4af51f236e4932235fdada7d1643-EDIT.jpg

Als zweites habe ich mich gefragt, ob es möglich ist den verschiedenen Tasks auch separate Geschwindigkeiten zuzuweisen?
Zum einen für Ränder die beim zu schnellen Fahren Probleme machen zum andern für Flächen die sehr dicht bewachsen sind etc.
 
Das Ardumower Symbol auf der Karte ist bei mir winzig klein und kaum zu erkennen, wenn man die ganze Karte sieht.
Ok… dann hast du richtig große Karte, ich habe versucht die Größe so Maßstabgetreu wie möglich zu halten. Muss ich mal schauen ob ich es leicht lösen kann.


Als zweites habe ich mich gefragt, ob es möglich ist den verschiedenen Tasks auch separate Geschwindigkeiten zuzuweisen?
Hm… für einen Task würde es gehen, schwierig wenn man eine Taskreihenfolge macht
 
Derlei habe ich auch schon vermisst, dafür müsste aber die map.cpp der FW umgeschrieben werden. Die Punkte müssten nicht nur einen xy Parametersatz sondern auch eine weitere Information wie Exclusion oder Perimeter bekommen. Beim Upload dieser Punkte wird aber meines wissens nach lediglich ein Index der Punkte mit den zugehörigen Koordinaten erzeugt.
 
Slower speed on perimeter is pretty simple to do on Sunray FW.
Check if either a few cm to the right or the left of the mower is outside perimeter (there already is a function for this) and slow down the mower.

Here I did something similar to not trigger sonar osbtacles if the obstacle is outside the perimeter, should be pretty easy to adapt for the above mentioned purpose.

Per zone speed not so easy on Sunray FW.
 
Sooo groß ist meine Karte eigentlich nicht.
Ich könnte gut damit leben, wenn das Mäher Symbol immer gleich groß ist, so wie in der Sunray App.

Tatsächlich wäre für mich ein Speed pro Task in einer Task Reihenfolge ideal. Könnte ja auch seriell abgearbeitet werden. Erst Karte vom ersten Task mit entsprechendem Speed hochladen und starten, dann den nächste etc.

@WhatATest it is not only about the perimeter but also about different speeds per area. I have areas with fertilizer on them that grow significantly faster than others f.e.
 
Ich kann das zwar im Alfred nicht automatisch einstellen lassen aber ich weiß, dass es mit einigen Ardumowern geht: Eine Schnitthöhe pro Task wäre auch noch etwas, dass ich mir bei einem solchen System gut vorstellen könnte.
 
Da hat sich ganzschön was getan beim dem Projekt seit letzten Sommer :)
Hatte letztes jahr immer das Problem dass mein Wlan zu schlecht war zum Mower, da auch der ESP32 oft mal verreckt.
Daher hab ich jetzt beschlossen den Pi3 in den Mower zu bauen.
Hat noch jemand das Problem dass beim Kartenupload die serielle Verbindung (USB zu Due) abreisst?

2024-05-27 20:15:41 INFO TX: b'AT+W,480,-11.45,20.31,1.52,20.31,1.54,20.13,-11.5,20.13,-11.56,19.95,1.55,19.95,1.56,19.77,-11.79,19.77,-12.37,19.59,1.57,19.59,-1.79,15.99,-9.75,15.99,-9.75,15.81,-1.84,15.81,-1.88,15.63,-9.74,15.63,-9.73,15.45,-1.93,15.45,-1.95,15.27,-9.72,15.27,-9.7,15.09,-1.87,15.09,-1.85,14.91,-9.69,14.91,-9.68,14.73,-1.92,14.73,-1.92,14.55,-9.67,14.55,-9.65,14.37,-1.91,14.37,\n'
2024-05-27 20:15:41 INFO TX: b'AT+W,510,-1.91,14.19,-3.07,14.19,-2.9,14.01,-1.91,14.01,-1.91,13.83,-2.73,13.83,-2.62,13.65,-1.9,13.65,-1.9,13.47,-2.61,13.47,-2.6,13.29,-1.9,13.29,-1.9,13.11,-2.6,13.11,-2.59,12.93,-1.89,12.93,-1.89,12.75,-2.65,12.75,-2.88,12.57,-1.89,12.57,-1.88,12.39,-3.16,12.39,-3.58,12.39,-9.52,12.39,-9.51,12.21,-1.88,12.21,-1.88,12.03,-9.49,12.03,-9.48,11.85,-1.72,11.85,\n'
2024-05-27 20:15:41 INFO TX: b'AT+W,540,-3.81,12.57,-9.53,12.57,-9.54,12.75,-4.03,12.75,-4.13,12.93,-9.55,12.93,-9.57,13.11,-4.13,13.11,-4.14,13.29,-9.58,13.29,-9.59,13.47,-4.15,13.47,-4.15,13.65,-9.6,13.65,-9.62,13.83,-4.05,13.83,-3.85,14.01,-9.63,14.01,-9.64,14.19,-3.65,14.19,-3.36,13.97,-3.79,13.58,-9.88,1.19,-19.47,0.58,-
20.22,2.67,-24.99,2.67,-25.21,2.49,-20.22,2.49,-20.22,2.31,-25.3,2.31,-25.38,2.13,-20.21,2.13,-20.21,1.95,-25.47,1.95,-25.56,1.77,-20.21,1.77,-20.21,1.59,-25.7,1.59,-26.63,1.59,-30.25,1.59,-30.3,1.77,-27.52,1.77,-27.76,1.95,-30.28,1.95,\n'

2024-05-27 20:15:52 WARNING Could not send data to the rover
19.84,0.94,-20.44,7.03,-20.69,6.63,-23.77,6.63,-23.72,6.45,-20.64,6.45,\n'
2024-05-27 20:15:48 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-05-27 20:15:52 INFO TX: b'AT+W,570,-20.58,6.27,-23.67,6.27,-23.62,6.09,-20.53,6.09,-20.46,5.91,-23.57,5.91,-23.52,5.73,-20.36,5.73,-20.26,5.55,-23.49,5.55,-23.49,5.37,-20.16,5.37,-20.17,5.19,-23.5,5.19,-23.52,5.01,-20.18,5.01,-20.18,4.83,-23.58,4.83,-23.65,4.65,-20.19,4.65,-20.2,4.47,-23.71,4.47,-23.77,4.29,-20.2,4.29,-20.21,4.11,-23.83,4.11,-23.89,3.93,-20.22,3.93,-20.23,3.75,-24.0,3.75,\n'
2024-05-27 20:15:52 INFO TX: b'AT+W,600,-24.13,3.57,-20.23,3.57,-20.23,3.39,-24.26,3.39,-24.4,3.21,-20.23,3.21,-20.22,3.03,-24.53,3.03,-24.74,2.85,-20.22,2.85,-20.22,2.67,-24.99,2.67,-25.21,2.49,-20.22,2.49,-20.22,2.31,-25.3,2.31,-25.38,2.13,-20.21,2.13,-20.21,1.95,-25.47,1.95,-25.56,1.77,-20.21,1.77,-20.21,1.59,-25.7,1.59,-26.63,1.59,-30.25,1.59,-30.3,1.77,-27.52,1.77,-27.76,1.95,-30.28,1.95,\n'
2024-05-27 20:15:52 WARNING Could not send data to the rover
2024-05-27 20:15:54 INFO Connecting...
2024-05-27 20:15:54 WARNING Connection to the rover is not possible.
2024-05-27 20:15:55 INFO Connecting...
2024-05-27 20:15:55 WARNING Connection to the rover is not possible.
2024-05-27 20:15:56 INFO Connecting...
2024-05-27 20:15:56 WARNING Connection to the rover is not possible.
Danach lässt sich keine Verbindung mehr aufbaun, bis dass ich übers standard-app einsteige und den Rover neu starte.
 
Vielleicht mag der Due so viele Daten auf einmal nicht.

Magst du mal in der src/backend/comm/conections.py in der Zeile 407 die Zeit hochdrehen von 0.1 auf 0.5, was passiert dann?
 
Habs mit 0.5 und zur sicherheit mit 5.0 probiert. Der Rover startet sich während dem upload neu. Könnt ein RX-Buffer overflow vom Due sein. Es kommen ja Map-Pakete mit über 400bytes an, kann ich das zum testen mal auf die hälfte reduzieren?
 
Das Thema kenne ich auch. Bei mir hat immer die Watchdog den Mower neu gestartet, wenn zu viele Daten auf einmal kommen. Der Due ist ja etwas schwachbrüstig und hat das Watchdog-Thema damit vermutlich auch schneller als der M4. Es reicht dann ein Watchdog-reset in die Loop der Datenübernahme einzubauen. Dann ist der Spuk vorbei.
 
Habs mit 0.5 und zur sicherheit mit 5.0 probiert. Der Rover startet sich während dem upload neu. Könnt ein RX-Buffer overflow vom Due sein. Es kommen ja Map-Pakete mit über 400bytes an, kann ich das zum testen mal auf die hälfte reduzieren?
If it's a watchdog issue : You can try to reset watchdog in the setpoint process, Not tested and no warranty.
Into map.cpp
Code:
// set point
bool Map::setPoint(int idx, float x, float y){ 
  watchdogReset();
  if ((memoryCorruptions != 0) || (memoryAllocErrors != 0)){
 
Zwei Sachen sind mir aufgefallen:

Wenn ich in Dialogboxen auf "ok" klicke, schließt sich die Box nicht. Ich muss immer noch auf das Schließkreuz drücken.

Und wenn ich was in den Settings ändere und auf "Save & Reboot" klicke passiert nichts. Ich muss dann den PI per "sudo reboot" neu starten um die Settings zu übernehmen. Cassandra wird bei mir per Deamon Service gestartet.
 
Beide Dinge dauern auf langsamen Systemen einfach extrem lange. Kann es sein, dass du nicht genug Geduld hast?

Bei ersterem (das ok muss geklickt werden, damit der Vorgang überhaupt gestartet wird) wünsche ich mir schon länger, dass das Fenster kein OK mehr erwartet, sondern einfach verschwindet, wenn der Vorgang abgeschlossen ist.
 
Wenn ich in Dialogboxen auf "ok" klicke, schließt sich die Box nicht. Ich muss immer noch auf das Schließkreuz drücken.
Geduld, das schließt sich von alleine

Und wenn ich was in den Settings ändere und auf "Save & Reboot" klicke passiert nichts. Ich muss dann den PI per "sudo reboot" neu starten um die Settings zu übernehmen.
Mit reboot ist nicht reboot des Pi‘s gemeint, sondern das Backend von Cassandra. Sicher dass die Daten nicht übernommen werden? Warten bis das Fenster verschwindet und ggf. Browser refreshen
 
Hab gestern Pushover eingerichtet und es bestimmt 20 mal versucht, die Settings zu übernehmen. Erst nach Sudo Reboot waren die Settings drin und haben funktioniert.
 
Hab's jetzt noch mal mit Geduld versucht, dann geht's 😅
Ich meinte das Bestätigungsfenster nach Save & Reboot. Wenn man da ok drück dauert es recht lange und es tut sich nichts. Ich hab zu früh den Browser refreshed oder das Schliesskreuz gedrückt. Da muss ich wohl an mir arbeiten.
 
Ich meinte das Bestätigungsfenster nach Save & Reboot. Wenn man da ok drück dauert es recht lange und es tut sich nichts. Ich hab zu früh den Browser refreshed oder das Schliesskreuz gedrückt. Da muss ich wohl an mir arbeiten.
Es ist auch nicht schlimm wenn du das Fenster schließt oder den Browser refreshed, Cassandra rechnet weiter und es wird alles an Ort und Stelle sein.

Das Problem ist nach jedem backend reboot muss Cassandra einige Sschen für den Pathfinder rechnen und je nach dem wie komplex deine Karte ist, kann es etwas dauern. Es gibt elegantere Möglichkeiten es zu umgehen, ist aber bei mir aufgrund der Zeitmangel und anderen akuten Themen niedrig priorisiert.
 
Oben