Lawn Mower AWD Mähroboter Allrad Automower All wheel drive 4WD von Fürst Ruprecht

Wie genau schafft Ihr die Winkelbestimmung über den Rotationssensor - also mit welcher Genaugkeit?
 
Zuletzt bearbeitet:
Ich hab mir das fertige Modul bei amazon besorgt. SV01A103AEA01R00-40. Ist nicht viel teurer aber einbaufreundlicher.

Was sagt Eure Erfahrung, wäre es möglich den 4WD nur mit den 4 Antriebsmotoren ohne aktive Lenkung zu steuern ? Also laufend das Ziel überprüfen und mit Hilfe der 4 Radencoder und des Drehwinkelsensors am Knick die Radgeschwindigkeiten anpassen(PID). Wenn man das Ziel laufend kontrolliert, wäre theoretisch der Drehwinkelsensor auch nicht notwendig ?
In meinen Versuchen ist das auch gelungen. Sobald aber ein größeres Hindernis auftritt, hilft die Drehzahl zum steuern nicht mehr aus, sondern die Achse muß aktiv in die richtige Stellung gebracht werden.
Bisher brauchte ich nur überschaubare Winkelberechnungen. Das 3D-Knickgelenk liegt bei mir genau in der Mitte. Ich gehe immer davon aus, dass die beiden Räder einer Seite die gleiche Zieldrehzahl haben.
Meine aktiven Lenkungen haben alle auf Dauer nicht funktioniert. Der Mäher ist zu schwer, daher gehen die Antriebe kaputt, oder sie sind zu langsam.
Außerdem sind die Lenkantriebe schwer, brauchen viel Strom etc..
Der Winkelgeber ist günstig und sehr einfach. Man kann damit auch den Radeinschlag begrenzen und den Geradeauslauf einstellen.
Ich würde aber nicht behaupten, daß es ohne nicht geht. Mit allerdings viel einfacher. Der genannte Geber hat 1 Mio Zyklen, er hält bei mir ca.1 Jahr.
 
Ich hab mir das fertige Modul bei amazon besorgt. SV01A103AEA01R00-40. Ist nicht viel teurer aber einbaufreundlicher.

Was sagt Eure Erfahrung, wäre es möglich den 4WD nur mit den 4 Antriebsmotoren ohne aktive Lenkung zu steuern ? Also laufend das Ziel überprüfen und mit Hilfe der 4 Radencoder und des Drehwinkelsensors am Knick die Radgeschwindigkeiten anpassen(PID). Wenn man das Ziel laufend kontrolliert, wäre theoretisch der Drehwinkelsensor auch nicht notwendig ?
In meinen Versuchen ist das auch gelungen. Sobald aber ein größeres Hindernis auftritt, hilft die Drehzahl zum steuern nicht mehr aus, sondern die Achse muß aktiv in die richtige Stellung gebracht werden.
Bisher brauchte ich nur überschaubare Winkelberechnungen. Das 3D-Knickgelenk liegt bei mir genau in der Mitte. Ich gehe immer davon aus, dass die beiden Räder einer Seite die gleiche Zieldrehzahl haben.
Zieldrehzahl: ich überlagere der Radgeschwindigkeit ein zusätzliche Stellmoment. Das ist abhängig von der Winkelabweichung und bringt ein besseres Ansprechverhalten und Geradeauslauf. Interessant bei Verwendung Winkelgeber ist auch folgende Frage: Entspricht die Raddrehzahl dem Soll- oder dem Ist-Lenkwinkel. Beides hat seine Vor- und Nachteile.
 
Ich hatte gestern Abend etwas Zeit und mal testweise eine Positionsberechnung implementiert (Xpos, Ypos, Drrehwinkel). Dann bin ich in meinem Zimmer etwas umhergefahren und wieder zum Ursprungspunkt zurück. Das Ergebnis war vielversprechend.
Ich habe einen relativ glatten Boden und die Ardumower Räder rutschen da sehr leicht durch. Trotzdem war die Abweichung nur wenige Zentimeter. Zumindest werde ich den Weg noch weiter verfolgen.
Zumindest der GCM4 hat floating point support, die Rechenleistung sehe ich nicht als Problem.

Natürlich wird die Positionsbestimmung nur durch die Odometrie nicht genügen, aber mich stört, dass der Alfred unter Bäumen immer wieder stehen bleibt und auf einen Fix wartet. Mein Ansatz ist, diese Funkschatten mit anderen Sensoren (Odometrie, IMU) überbrücken zu können.

Azurit und Azuritber scheinen ja nicht den GCM4 zu unterstützen, deshalb bin ich von Sunray aus gestartet.
Ich habe auch den GCM4 hier liegen. Er hat aber einen Fehler bei der Analog/Digitalwandlung. Deshalb habe ich ihn nicht ins PCB1.3 gebaut.
Der Due war bei azurit bei mir ausreichend und der Mäher mußte trotz der vielen Probleme auch mähen. Daher ist die GCM4 Lösung hinten runter gefallen.
Diese Fix-Ding habe ich zwar schon oft gelesen, aber noch nicht richtig verstanden.
Bei meiner Pixhawk-Teensy Lösung kommt vom RTK-Modul fortlaufend auch eine Genauigkeitsangabe zum Positionssignal.
Der geringste Abstand zwischen den Mähbahnen, den der Mission Planner berechnet sind 30cm. Mein kleiner Mäher Eve hat 30cm Schnittbreite. Es gibt da noch die Möglichkeit Überlappung einzustellen, aber unterm Strich ist das aber schon sehr knapp.
Wenn also Bahnabstand/Mähbreite nicht zu ehrgeizig gewählt wird, dann kann man wahrscheinlich auch noch mit schlechterem Signal unterm Baum mähen.
 
Diese Themen stehen bei mir noch hinten an. Zunächst werde ich wohl neue Räder konstruieren, die "Ardumower-Kreissägeblätter" (ist jetzt nicht abwertend gemeint :)) sind vor allem bei meinen Indoor-Tests auf glattem Boden nicht sehr hilfreich.

Ich lasse jetzt bei meinem Ardumower RPI4 und GCM4 über UART (BLE) kommunizieren. Wie verbindest Du die Controller miteinander?
Im Moment habe ich ja nur den Teensy. (bei der Aktivlenkung habe ich due und esp32 per pwm-signal für das Lenkwinkelsignal gekoppelt - nur ein Port!).
Beim Teensy würde ich bei Bedarf i2c nutzen, davon hat er viele.
Ansonsten hängt am Teensy immer ein esp32 als wlan Schnittstelle und html-Server für die Parametrierung und Analyse. Das 900Mhz Radio Modul ist aber deutlich stabiler und einfacher.
 
Meine Erfahrung sagt: Keine Ahnung! ;)

Fürst Rupprecht hat hier mehr Erfahrung, und meines Wissens rät er auch ab davon (steht hier irgendwo im Forum). Wegen des benötigten Drehmoments bräuchte man einen sehr kräftigen Motor, oder einen mit Getriebe, der dann wiederum langsam wäre. Er hat seinen 4WD auch erfolgreich nur mit 4 aktiv gesteuerten Motoren realisiert.

Ich möchte die Achse nicht aktiv steuern, sondern nur mit den 4 Rädern. Ich hoffe, dass das gelingt. Evtl. muss man hier der Vorderachse etwas mehr Antrieb geben, solange man nicht alle 4 Räder braucht.
Wenn das Knickgelenk genau in der Mitte steht, ist die Algorithmik sicher einfacher. Man ist dafür aber beim Knickwinkel eingeschränkt, irgendwann kippt der Mower dann ja um. Ich möchte hintere Achse näher Richtung +/-90° drehen, ähnlich wie ein Vorderlenker im Rückwärtsgang (oder Mähdrescher). Dann ist die Vorderachse immer dominant.
Ich würde wahrscheinlich die beiden Achsen noch mechanisch koppeln, damit die Verstellung der „Lenkung“ durch alle 4 Räder erfolgt. Bei meinem Mäher habe ich auch Versuche gemacht mit schiebenden Hinterrädern oder ziehenden Vorderrädern. Wenn ich mich richtig erinnere, dann sind auch die Hinterräder mit zusätzlichem Moment übersteuert. (macht man ja beim Auto inzwischen auch so).
Auf alle Fälle reichen die Räder zum Lenken!!! (die aktive Lenkung ist aber steifer - logisch)
 
Meine Erfahrung sagt: Keine Ahnung! ;)

Fürst Rupprecht hat hier mehr Erfahrung, und meines Wissens rät er auch ab davon (steht hier irgendwo im Forum). Wegen des benötigten Drehmoments bräuchte man einen sehr kräftigen Motor, oder einen mit Getriebe, der dann wiederum langsam wäre. Er hat seinen 4WD auch erfolgreich nur mit 4 aktiv gesteuerten Motoren realisiert.

Ich möchte die Achse nicht aktiv steuern, sondern nur mit den 4 Rädern. Ich hoffe, dass das gelingt. Evtl. muss man hier der Vorderachse etwas mehr Antrieb geben, solange man nicht alle 4 Räder braucht.
Wenn das Knickgelenk genau in der Mitte steht, ist die Algorithmik sicher einfacher. Man ist dafür aber beim Knickwinkel eingeschränkt, irgendwann kippt der Mower dann ja um. Ich möchte hintere Achse näher Richtung +/-90° drehen, ähnlich wie ein Vorderlenker im Rückwärtsgang (oder Mähdrescher). Dann ist die Vorderachse immer dominant.
Da muß man aber folgendes bedenken: Nähert sich der Mäher dem Streckenpunkt (Koordinate) und verfehlt die erforderliche Genauigkeit bzgl. y, dann kann die „Lenkung“ evtl. wilde Bewegungen machen, weil der Mäher versucht das Ziel zu erreichen (was er aber nicht kann). Der Zweiradantrieb dreht hier auf der Stelle, mein Mäher Eve ebenso. Das wird sicher interessant bei den Lenkungsvarianten.
 
Wie genau schafft Ihr die Winkelbestimmung über den Rotationssensor - also mit welcher Genaugkeit?
Habe ich nicht untersucht. Habe aber auch kein Problem feststellen können. Die Mechanik ist da der dominierende Einflußfaktor. Schlaglöcher spielen auch eine Rolle. Im Trockenzustand werden die Räder schon recht genau ausgerichtet - hier spielt dann das Signal für die Winkelabweichung eine große Rolle.
 
Anhang anzeigen 7092
Vorderachse und Hinterachse getrennt steuerbar, Schrittmotorantrieb.
Am Ende hatte ich mich dann für feststehende Räder entschieden.

@Fürst Ruprecht : Beeindruckend, Respekt!


Allerdings sieht es für mich so aus, als ob deine Lenkgeometrie nicht korrekt ist. Die Räder stehen immer parallel, egal bei welchem Einschlagwinkel.
Ziel der Lenkgeometrie ist es, dass alle Räder ->einen<- gemeinsamen Kreismittelpunkt haben.

Um es abzukürzen, das sieht man hier ganz gut bei den Vorderrädern, dass sie NICHT den gleichen Einschlagwinkel haben dürfen:

https://de.wikipedia.org/wiki/Lenkung
220px-Ackermann_radius_M.svg.png


Beste Grüße,
Chris
 
Hallo Chris,
ja, da hast Du Recht.
Wenn Du in Deinem Bild das Rad weiter einschlägst, dann bekommst du am voll eingeschlagenen Rad eine Unbestimmtheit - dh. es ist nicht mehr sichergestellt, daß das Rad wieder zurück dreht. Das zeigt sich auch in der digitalen Simulation.
Ich habe das in Kauf genommen, weil ich unbedingt den Volleinschlag und auch die Mechanik sehr einfach halten will. Im Fahrbetrieb fällt das insbesondere bei griffigem Boden auf - unschön.
Ich habe für den nächsten Mäher wieder eine Verbindung der beiden Räder über Zahnriemen vorgesehen, weil der leise ist und nahezu kein Spiel hat. Einfach ist es auch. Da fällt mir gar nichts ein, wie man das mit dem Winkel hinbekommen sollte.
Da denke ich nochmal drüber nach.

Gruß Fürst Ruprecht
 
Wo willst du einen Zahnriemen einsetzen?

Es ist immer alles eine Frage des Aufwandes, aber du könntest natürlich vier Lenkservos einsetzen, und alle individuell ansteuern, dann gibt es keine mechanische Unbestimmtheit.

Wie groß soll denn dein maximaler Radeinschlag sein?
180°? (das geht dann natürlich nicht mit einem einfachen Hebel....aber ich hätte da ne verrückte Idee...sogar zwei:unsure:)

Wenn ich so drüber nachdenke willst du doch vermutlich gar nicht alle Räder einzeln anlenken können, sondern immer nur alle gemeinsam (also ein Lenkservo steuert alle Räder, die dann idealerweise immer um einen gemeinsamen Drehpunkt drehen), richtig?

Schaut man sich das an, kommt man zu dem Schluss, dass man keine Knicklenkung aufgrund des sich verlagernden Schwerpunkts haben möchte:
https://www.hkl-baumaschinen.at/hkl-mietpark-magazin/ausgabe-8/der-hkl-bautipp-radlader

D.h. eine Allradlenkung mit Allradantrieb ist die beste Wahl.
Differentiale sind vermutlich auch schlecht, weil man damit zwar Kurvenfahrt gut hinbekommt, aber bei Radschlupf nützt es auch wieder nix.

Beste Grüße,
Chris
 
Zuletzt bearbeitet:
ja, 180°.
Lenkservo nein. Der letzte hat 180€ gekostet, der stärkste im Modell(flieger)bereich, den ich gefunden hatte, und gehalten hat er wenige Stunden. Alles andere hat auch nicht funktioniert.
Das Radladerkonzept ist einleuchtend. Allerdings kann man bei kurzem Radstand das/die Messer nicht so anordnen, daß es bis zur Außenseite des Mähers reicht.
Mein große Mäher „kratzt“ an der Wand entlang, da bleibt nix stehen. Vom Schnitt her geht es nicht besser.
Da kommt der Riemen hin. Im Bild ist noch eine glatte Riemenscheibe (Hat auch nicht funktioniert, wollte einen Rollladengurt nehmen), jetzt ist es eine Aluriemenscheibe mit einem Gurt 5mm Zahnung 20mm breit.

IMG_8165.png

Für Differenzial braucht man stärkere (schwerere) Motoren. Das regelt auch nur die Radgeschwindigkeit aber nicht die Winkel und man braucht dann einen Lenkservo.
 
Sehr zugänglicher Beitrag zur Achsgeometrie:

 
Zwischenbericht:
Ich habe mich die letzten Wochen mit dem mavlink-Protokoll beschäftigt.
Mein Teensy hat ein von Grund auf neues Programm bekommen und kann jetzt vom Mission Planner aus parametriert und gesteuert werden. Damit ist der Pixhawk überflüssig geworden. Aktuell kann ich mit Mission Planner Missionen beliebig erstellen und auf den Teensy herunterladen/oder auch wieder hoch auf den PC. Virtuell fährt der Rover dann autark auf der Satellitenkarte von Mission Planner. Die beiden einfachen Standard-Regler für das Ansteuern der RTK-Punkte sind umgesetzt und zeigen auch das „bekannte“ Verhalten. Alle Möglichkeiten von Mission Planner werde ich wohl nicht umsetzen, weil nicht alle Kommandos (für mich) nachvollziehbar dokumentiert sind.
Steuerungstechnisch kann man hier noch sehr viel machen. Sehr gut finde ich, daß man bereits bei der Festlegung der Mission Geschwindigkeiten und andere Aktionen festlegen kann. Damit kann man sehr gut auf die individuellen Gegebenheiten reagieren, zB. kann man auch festlegen, daß an beliebigen Punkten der Mäher Rückwärts fährt. (Ich lege alle Daten und Parameter auf SD-Karte ab. Man kann sie auch am PC erstellen/editieren und beim Booten vom Teensy automatisch einlesen lassen.)
Aktuell löte ich an der Platine. Sie bekommt neben dem Teensy4.1 2x16 Kanal PWM-Controller, 8-Kanal Digital I/O-Baustein. 8-Kanal AD-Wandler, 3x Levelshifter, 1xBeschleunigungs- und Magnetfeldsensor.
Anschließen kann man dann 6 Motortreiber, 3 Stoßstangen, 3 Ultraschallsensoren, und die üblichen Busteilnehmer, Reserve gibt es auch noch.
Dann dachte ich mir, es ist noch Platz auf der Lochrasterplatine, also packe ich noch 2x esp32 als „Coprozessor“ mit drauf. Ursprünglich war einer davon angedacht, die Rechenleistung des Teensy zu ergänzen, was sich inzwischen aber als völlig unnötig heraus gestellt hat.
Ich werde sie wohl nutzen für die wlan-Anbindung ans Netz oder für die Fernprogrammierung des Teensy- mal sehen.
Sobald die Platine gelötet ist und funktioniert, werde ich mich mit dem Antrieb - also den China Brushless Controllern und den Hoverboard-Antriebsräder auseinandersetzen - für mich Neuland.
Offen ist zur Zeit, ob ich noch den guten Perimeterdraht berücksichtigen werde.
Details folgen.

Gruß aus der Winter-„pause“
Fürst Ruprecht
 
Hört sich gut an, dann kann das Frühjahr ja kommen :)

Ich bin noch groß am Umstellen. RPI4 mit ROS2 läuft prinzipiell, jetzt bin ich dabei, Sunray soweit abzuspecken, dass der GCM4 nur noch als Treiber eingebunden wird und der RPI die Kontrolle übernimmt. Ich verspreche mir damit mehr Möglichkeiten bei zukünftigen Erweiterungen.
Dazu habe ich noch ein LIDAR bestellt (Bei Voelkner für 60€, da konnte ich nicht widerstehen).

4WD muss bis dahin leider warten.

Du hattest mal folgendes erwähnt:
Ich habe auch den GCM4 hier liegen. Er hat aber einen Fehler bei der Analog/Digitalwandlung. Deshalb habe ich ihn nicht ins PCB1.3 gebaut.
Der Due war bei azurit bei mir ausreichend und der Mäher mußte trotz der vielen Probleme auch mähen. Daher ist die GCM4 Lösung hinten runter gefallen.
Diese Fix-Ding habe ich zwar schon oft gelesen, aber noch nicht richtig verstanden.
Da ich den GCM4 einsetze, beunruhigt mich das natürlich. Ich habe dazu bisher nirgends irgendwelche weiteren Infos gefunden. Um was für einen Fehler handelt es sich hier?
 
Zum AD-Wandler hatte ich mal folgendes geschrieben:
Beitrag im Thema 'Azurit auf Adafruit Grand Central M4 Express oder Teensy4.1'
https://forum.ardumower.de/threads/...al-m4-express-oder-teensy4-1.24196/post-46204

“Grand-Central: ist Pin-compatible (bis auf Pullup-Widerstände) hat aber einen anderen AD-Wandler der völlig anders programmiert wird als der DUE. Außerdem hat der AD-Wandler einen Fehler und löst nicht mit der angegebenen Genauigkeit auf. Sicherlich auf Azurit anpassbar. Ich denke nur, warum die Arbeit in den Grand-Central reinstecken und nicht gleich den Teensy nehmen.“

Wie hast Du Ros auf Pi umgesetzt?
Ich hatte Ros2 auf Pi3 im Dockercontainer, Zugriff über Remote mit VisualStudioCode. Da war die Performance kurz vor Null, lief licht stabil.
Dann habe ich den Ros-Ansatz aufgegeben (weil ich für mich auch keinen Mehrwert darin sehe).

Da mein nächster Mäher sehr schwer wird, muß ich insbesondere darauf achten, wie ich größere Änderungen an der Software umsetze (also wie kommen die in den Mäher rein). Bisher habe ich den Mäher aus dem Garten in den ersten Stock getragen, an den PC gekoppelt und Programmiert/Überprüft , das war schon eine Zumutung. Das muß eigentlich in Zukunft OTA gehen.
 
OK verstehe. Wegen der fehlenden Unterstützung des GCM4 bei Azurit bin ich ja dann auch von Sunray aus gestartet. Die Wandler scheinen aber einigermaßen zu funktionieren, die Strom- und Spannungsmessungen sind ok.

Ich habe native auf dem RPI4 Ubuntu 22.04 (Jammy) und ROS2 (Humble) installiert. Über die Performance kann ich noch nicht viel sagen (außer dass der RPI mind. 4GB RAM haben sollte), ich muss jetzt erst das Interface zum GCM4 schaffen. Die bestehenden Lösungen sind auf ASCII-Basis und nicht für den Ardumower optimiert, ich werde ein Binärprotokoll verwenden und nicht jeden Sensor einzeln abfragen.
Allgemein sehe ich für komplexere Middleware (SLAM, MAP, CAM, LIDAR) den ROS2-Ansatz vor, ich denke, das ist anders nicht alleine von mir lösbar.
Die kleineren Sachen wie Motorensteuerung, diverse Sensoren, usw. möchte ich aber auf dem GCM4 belassen.

Bei ROS2 kann man ja sogar seinen Rechner im Netzwerk aktiv mit einbinden. Da macht die Entwicklung natürlich schon Spaß.

Grüße
Siegmund
 
Zuletzt bearbeitet:
@Siegmund vielleicht Interessant für Dich?
 
Danke für den Hinweis, aber das kenne ich schon ;).
Die Arbeit von Paddy ist auch Vorbild für mich für die ersten Schritte beim 2WD.
 
Oben