Sunray-Firmware - Ideensammlung / ideas for improvement

Was ich immer noch vermisse ist eine Möglichkeit den Mäher von vorne starten zu lassen wenn man etwa in der Mitte der Karte aufhört. Momentan kann man ja nur wieder bei 0 anfangen wenn man die Karte wieder neu hoch lädt
 
Mein Mähroboter (ein umgebauter Matrix MOW800) hat scheinbar nicht genau ausgerichtete Räder oder die Räder haben verschiedene Größe, daher hat er eine Abweichung bei Geradeausfahrt nach Odometrie+IMU (ohne GPS), es sind ca. 7cm. auf 3m. Das merke ich auch dann, wenn er in Kreisen gemäht, dann verschiebt er sich immer zu einer Seite und lässt auf der anderen Seite einen ungemähten Streifen.
Es wehre daher nicht schlecht, wenn man in config.h eine Korrekturwert eingeben könnte.
 
7cm auf 3m ist schon verdammt gut, musst du mal beim nassen Rasen probieren, da sind 10cm auf 1m durchaus realistisch
Gruss
 
Das ist auf einem glatten Boden gemessen, die Räder sind gummiert und angefahren wird per RPM-Rampe, da hätte ich schon etwas weniger erwartet. Vor allem ist die Abweichung immer nur in eine Richtung.

Insgesamt bin ich von dem wie es in Verbindung mit IMU implementiert ist begeistert, dass es so gut funktioniert hätte ich nicht erwartet.
 
Der Durchmesser passt eigentlich ganz gut. Aber genau deswegen mein Vorschlag mit dem Korrekturwert.
Sorry, wollte kein Offtopic verursachen, hätte eventuell doch neuen Thread eröffnen sollen.
 
Ich verstehe ja deine Idee, aber tenisch erscheint mir das unlogisch.
Wenn pro Umdrehung der gleiche Raddurchmesser und die gleichen Anzahl Impulse kommen, dann kann die Erklärung für das Problem nur Schlupf sein. Und Schlupf kann nicht konstant sein. Also bringt auch kein Korrekturwert bessere Ergebnisse. Das Problem muss woanders liegen.

Bock den Mower doch mal auf, Markiere beide Räder mit einem Strich oben und wiederhole den Test.
Am Ende des Tests muss die Markierung von beiden Rädern immernoch symmetrisch liegen.
Tut sie das, haben deine Räder unterschiedliche Wirkdurchmesser.
Tut sie das nicht, liefern deine Motoren nicht die gleiche Anzahl Impulse.
 
Tut sie das nicht, liefern deine Motoren nicht die gleiche Anzahl Impulse.
tatsächlich habe ich bei den DC-Motoren das gleiche Problem. Impulse li & re identisch; Umdrehung aber nicht. Der eine Motor macht bei gleicher Impulszahl weniger Umdrehung. Im normalen Betrieb fällt das aber nicht wirklich auf da über IMU & GPS korrigiert wird. lediglich bei höchster Geschwindikeit fängt er leicht an zu "tänzeln". In der Praxis aber egal weil das keine zum mähen geeignete Geschwindigkeit ist
 
Die Getriebemotoren drehen meisstens nicht 100% gleich, merkt man gut beim Motortest, zumindest bei den DC Motoren, ist bei mir auch so, macht aber keine Probleme.
Für 100% müsste man wahrscheinlich x Motoren durchtesten.
 
Die Getriebemotoren drehen meisstens nicht 100% gleich, merkt man gut beim Motortest, zumindest bei den DC Motoren, ist bei mir auch so, macht aber keine Probleme.
Für 100% müsste man wahrscheinlich x Motoren durchtesten.
???
Ich kenne jetzt nicht die Ardumower Getriebemotoren, aber wenn das DC Motoren mit Encoder und Getriebe sind. Und die Motoren mit einem Regelkreis (Controller -> Treiber -> Motor -> Encoder -> Controller) angesteuert werden, dann müssen sie doch exakt gleich drehen?! (mit der maximalen Abweichung von <±1 Impuls)
 
Ich kenne jetzt nicht die Ardumower Getriebemotoren, aber wenn das DC Motoren mit Encoder und Getriebe sind. Und die Motoren mit einem Regelkreis (Controller -> Treiber -> Motor -> Encoder -> Controller) angesteuert werden, dann müssen sie doch exakt gleich drehen?! (mit der maximalen Abweichung von <±1 Impuls)
in der Theroie ja, in der Praxis kommen differenzen durch 2 Dinge:

- Differenzen in der Fertigung der Encoderscheibe
- Encoderscheibe ist am Motorausgang und nicht am Getriebeausgang. Duch die mehrfache Untersetzung führt ein minimaler Verschleiß der Zahnräder schon zu ungenauigkeiten.

In der Praxis aber zu vernachlässigen da ja im Betrieb eine kontinuirliche Korrektur durch IMU & GPS erfolgt. Im normalen Mähbetrieb entstehen dadurch eigentlich keine Nachteile
 
Verschleiß im Getriebe führt nur zu mehr Spiel, aber nicht zu größeren Ungenauigkeiten in der Anzahl der Umdrehungen. Größere Abweichungen in den Umdrehungen liegen wohl eher darin begründet, das bei hohen Geschwindigkeiten Impulse vom Encoder verloren gehen.
 
in der Theroie ja, in der Praxis kommen differenzen durch 2 Dinge:

- Differenzen in der Fertigung der Encoderscheibe
- Encoderscheibe ist am Motorausgang und nicht am Getriebeausgang. Duch die mehrfache Untersetzung führt ein minimaler Verschleiß der Zahnräder schon zu ungenauigkeiten.

In der Praxis aber zu vernachlässigen da ja im Betrieb eine kontinuirliche Korrektur durch IMU & GPS erfolgt. Im normalen Mähbetrieb entstehen dadurch eigentlich keine Nachteile
Das glaube ich beides nicht.
Auf der Encoderscheibe können nicht mal 3 oder 4 Impulse sein (oder mal 200 oder 201) Impulse. Die Anzahl der Impulse pro Umdrehung muss gleich sein.
Das gleiche gilt für das Getriebe. Da gibt's ja nicht Zahnräder, die mal mehr oder weniger Zähne haben.

Das einzige was maximal möglich ist, dass ein Motor gerade erst den Impuls ausgelöst hat, und der andere ganz kurz vor dem nächsten Impuls steht.
So kam ich auf meine oben genannte Toleranz.
Der Fehler ist also immer gleich groß.
Der relative Fehler wird bezigen auf die Anzahl der Gesamtumdrehungen immer kleiner.
Und wenn man den Raddurchmesser, die Getriebeübersetzung, die Impulse pro Motorumdrehung sowie die Spurweite der Räder kennt man den Fehler doch ausrechnen und Prüfen ob das plausibel ist.
 
man könnte auch mal 2 Getriebe ohne Motor von Hand drehen. 1 Umdrehung jeweils an der Ausgangsseite müsste ja ein identisches Ergebnis von 246 Umdrehungen an der Eingangsseite ergeben. Sind bei einem Getriebe die Zahnräder etwas abgenutzt oder nicht so genau produziert, könnte ich mir vorstellen das es da zu ungenauigkeiten kommt. Da der Encoder am Motor sitzt und nicht am Getriebe, würde das Encodersignal zwar passen aber eben nicht die Umdrehung am Ausgang. Im Getriebe sind auch nur ein Teil der Zahnräder aus Metall; der rest der Zahnräder ist aus Kunststoff.
 
An dem Impulsgeber und am Getriebe scheint es bei mir nicht zu liegen, hab mal Motor-Plot mit Strichen auf den Rädern laufen lassen, die Räder machen fast exakt den gleichen Weg, erst beim Bremsen am Schluss entsteht kleine Abweichung. Ich glaube auch nicht, dass es davon kommen kann. Der Hal-Sensor sitzt auf der Motor-Welle und die Getriebeübersetzung ist bei beiden Motoren gleich, d.h. die 192 Impulse / Rad-Umdrehung müssen auch immer bei beiden Motoren gleich sein. Auch wenn ein Zahnrad in einem Getriebe um 1mm kleiner ist als in dem anderen, werden sie sich immer gleich drehen, es sollte höchstens etwas am Rad-Spiel ausmachen.
Ich glaube die Abweichung kommt tatsächlich von dem Schiefstand der Räder, ist mehr oder weniger wie Lenkung bei einem Auto.
Hab mal die Strecke jetzt ohne IMU abgefahren, hier zieht es den Rover immer nach rechts. Sobald ich aber den IMU einschalte, zieht es den immer nach links, sogar etwas mehr als ohne IMU, wie es aussieht versucht der Rover anhand von IMU eine Korrektur zu machen und die ist scheinbar zu groß.

Für den Test mit IMU habe ich einfach eine Karte angelegt
Code:
{
        "perimeter": [],
        "exclusions": [],
        "waypoints": [
            {
                "X": 0,
                "Y": 0,
                "delta": 0,
                "timestamp": "2022-07-17T16:06:35.126Z"
            },
            {
                "X": 3.3,
                "Y": 0,
                "delta": 0,
                "timestamp": "2022-07-17T16:10:26.501Z"
            }
        ],
        "dockpoints": []
    }

Für den Test ohne IMU habe ich meine PS4-Kontroller-Erweiterung verwendet, da kann ich exakt gerade Strecken fahren.
 
Ich verstehe ja deine Idee, aber tenisch erscheint mir das unlogisch.
Wenn pro Umdrehung der gleiche Raddurchmesser und die gleichen Anzahl Impulse kommen, dann kann die Erklärung für das Problem nur Schlupf sein. Und Schlupf kann nicht konstant sein. Also bringt auch kein Korrekturwert bessere Ergebnisse. Das Problem muss woanders liegen.

Bock den Mower doch mal auf, Markiere beide Räder mit einem Strich oben und wiederhole den Test.
Am Ende des Tests muss die Markierung von beiden Rädern immernoch symmetrisch liegen.
Tut sie das, haben deine Räder unterschiedliche Wirkdurchmesser.
Tut sie das nicht, liefern deine Motoren nicht die gleiche Anzahl Impulse.
Die Motore werden die gleiche Anzahl an Impulsen pro Radumdrehung liefern, allerdings werden diese unter Umständen von der Auswerteelektronik nicht immer korrekt erfasst, wodurch minimale Unterschiede zwischen beiden Antrieben entstehen können.
Hier gibt es dazu eine detaillierte Abhandlung.

Gruß Sven
 
Oben