Sunray Software kompatibel zu eigens entwickeltem Rasenroboter mit Allradlenkung?

Lukas F.

New member
Guten Tag,
ich habe nun über die letzten Monate hinweg einen Rasenroboter mit Allradantrieb sowie Allrad Lenkung entwickelt, damit auch unsere steilsten Stücke gemäht werden können. Da die Hardware nun so gut wie fertig ist stellt sich mir die Frage, welche Software ich nehmen kann. Ursprünglich wollte ich die Software selbst schreiben, aber ich habe den Aufwand unterschätzt. Ich bin dann auf Ardumower gestoßen, was mich echt begeistert hat, weil es über GPS RTK funktioniert. Jetzt aber zu meiner Frage: Ist es möglich, die Software auf einem Roboter zum laufen zu bringen, der eine Allradlenkung besitzt? Oder ist dann quasi der Wenderadius zu hoch und er bricht den Vorgang ab?
Ich würde dann wenn es geht das Elektronik Set für den DIY Rasenroboter verbauen.
Vielen Dank schonmal im Voraus!
MfG
Lukas

im Anhang befindet sich noch ein etwas älteres Bild zum besseren Verständnis
IMG_9720.jpeg
 
Hallo, die Sunray-Firmware unterstützt (bislang) nur Roboter welche auf der Stelle drehen können. Der Roboter wird vereinfachend als Kreis angenommen (und wenn man mal von dem geringen "Überhang" vorn und hinten absieht ist der Ardumower ein Kreis). Damit steuert der Ardumower Punkt für Punkt an (Drehen, Fahren, Drehen, Fahren, ...). Die Punkte hat der Planer in der App zuvor generiert. Du könntest Dir eigene Fahrmanöver in der Firmware ergänzen womit Du (basierend auf Deinem Fahrmodell) beliebige Punkte ansteuern kannst (Stichwort: Kinematik-Modell mit Ackermann-Lenkung: https://www.xarg.org/book/kinematics/ackerman-steering/), Dubins Path (https://en.wikipedia.org/wiki/Dubins_path) oder Reeds-Shepp Curves (http://planning.cs.uiuc.edu/node822.html), d.h. Du entwickelst Dir eine "Hilfsfunktion" welche ein Manöver vom aktuellen Punkt für beliebige Zielpunkte berechnet ... ( https://www.youtube.com/results?search_query=dubins+curve , man findet auch fertigen Code dafür : https://github.com/search?q=dubins+planner )
 
Zuletzt bearbeitet:
Vielen Dank👍
ist eine solche Hilfsfunktion relativ einfach einbaubar oder ist das eher komplex?
Mit freundlichen Grüßen
 
Ich denke eher komplex, ich finde das aber sehr spannend und man könnte zumindest diskutieren wie man es machen könnte.
Ungefährer Ablauf:
1. Die Funktion "trackLine" regelt den Roboter auf der nächsten Geraden entlang, definiert durch letzen Punkt
(lastTarget) und nächsten Zielpunkt (target) - Das kann im Prinzip so bleiben.
2. Der Winkel zum nächsten Zielpunkt (targetDelta - https://github.com/Ardumower/Sunray/issues/3 ) gibt an wie weit der Roboter drehen müsste um zum Ziel zu gelangen - wenn dieser Winkel zu groß wird müsste das neue Fahrmanöver (Dubins Planner) zum Einsatz kommen.
3. Dubins Planner Code in C (und Javascript):
https://codeload.github.com/barrabinfc/js-dubinscurves/zip/refs/heads/master
Damit würde man sich die Punkte+Lenkwinkel berechnen lassen um am nächsten Zielpunkt das Fahrzeug so zu manövrieren dass die Ausgangsposition für die Geraden stimmt...
Beispiel: das Manöver in blau wäre das was der Dubins Planner berechnet um die Ausgangsposition (Winkel) am Zielpunkt herzustellen (Kurve vorwärts und Kurve rückwärts fahren)

dubins_planner.png
 
Zuletzt bearbeitet:
Hallo,
ich kenne Sunray nicht, aber aus meiner Sicht müsste das „recht„ einfach sein.
Aus dem Antriebssignal (PWM) des Standard-Antriebs berechnet man auf Grundlage der Fahrzeuggeometrie ( Radstand und Spurweite) den Lenkwinkel. Das Antriebssignal für den Allrad muß aus den Einzelradsignalen gemittelt werden (weil Dein Allrad über die Differenziale die Radgeschwindigkeit anpaßt . Hier muß man eh noch sehen, wie das Antriebssignal zum Motor kommt).
Den Kurvenradius beeinflusst man , soweit ich das richtig verstehe, durch die Aufnahme der Wegstrecke selbst. Wenn bei der Standardlösung der Mäher nicht die Kurve kriegt (weil da gerade eine tote Katze liegt) muß er auch reagieren - das sollte dann eigentlich die Software heute schon können und auch dann eingreifen, wenn die ursprünglich vorgesehene Strecke nicht realisiert werden kann.
Gruß Fürst Ruprecht
 
Vielen Danke für die sehr ausführliche Antwort👍 Es hört sich ja relativ gut machbar an und ich bin wirklich froh darüber wahrscheinlich eine funktionierende Lösung gefunden zu haben! Allerdings werde ich mich wahrscheinlich erst in 2 Wochen ausführlicher damit beschäftigen können, weil ich zur Zeit leider keinen vernünftigen Rechner zur Verfügung habe, mit dem ich auch mal etwas programmieren kann🙁 . Ich werde mich dann nochmal melden, wenn ich wieder einen Rechner habe!
Mit freundlichen Grüßen
Lukas
 
Oben