Hallo,
danke für die Antworten.
@Dayzz
Ich lasse den Roboter sehr langsam beschleunigen, bremsen und fahren - um Schlupf zu vermeiden. Der Robot hat Gummieräder und fährt auf Laminat. Eigentlich sollte es kaum Schlupf geben. Für Asphalt ist er nicht geeignet. Es ist ein Turtle Bot mit einem kleinen caster wheel (als Ball in einem Gehäuse).
Schlupf könnte es aber wirklich sein, da er immer leicht nach links zieht, was vom Regler dann ausgeglichen wird. Dieses Manöver könnte ihn dann schon Seitwärts ziehen, was beim Differentialantrieb ja eigentlich nicht möglich ist.
@WL
Ich nutze zwei Fahrtenregler (RPM li und RPM re) mit für das Getriebe angepassten Werten. Zusätzlich noch einen Regler, der Soll und Zielwinkel (bei der Geradeausfahrt also genau die Differenz der Encoderpulse) anpasst.
Ich hab schon viel rumprobiert. Leider bekomme ich die Abweichungen nicht kleiner. Mein Ansatz ist jetzt, dass er sich nach ein paar Metern Fahrtstrecke zum Ausgangspunkt zurückbegibt und an Landmarken ausrichtet. Mal sehen ...
Gruß
Robert
Du bist ja mächtig großzügig mit floats. Auf was für einem Prozessor läuft denn der Code?
MfG Klebwax
Strom fließt auch durch krumme Drähte !
Der läuft auf einem ATmega2560.
Ohne Floats ist die Genauigkeit aber auch direkt dahin. Oder übersehe ich da was?
Gruß
Robert
Wie ist eigentlich die Anzahl der Gesamtimpulse Links/Rechts nach 1m? Und wie sind diese auf den ersten 10cm? Es genügt ein kleiner Unterschied beim Anfahren, und schon macht er eine kleine Kurve und fährt dann den Rest der Strecke gerade weiter.
Die Berechnungen könnte man etwas aufräumen, zB einmal am Anfang right_minus_left / AXLE_LENGTH berechnen, und nicht in jedem Schritt einzeln.
Ich hab auf meiner Homepage eine ähnliche Berechnung für Odometrie angeben, vielleicht kannst diese mal vergleichen http://members.aon.at/wstocke6/Positionsbestimmung2.pdf
LG!
alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)
Der fährt unter Garantie nicht komplett gerade an. Das macht aber auch nichts, solange er das weiß/berechnet. Mein Problem ist ja, dass es eine Abweichung gibt, die nicht in die Positionsschätzung eingeht.
Das Aufräumen habe ich direkt auf meine ToDo Liste gesetzt. Danke für den Hinweis!
Gruß
Robert
Es wäre halt interessant zu wissen ob er eine Abweichung erkennt und später ausgleicht oder nicht.
Andere mögliche Ursachen für die Drift:
Haben die Antriebsräder die gleiche Radlast? Mal mit der Küchenwaage überprüfen.
Ist das Caster Wheel genau mittig? Ist der Ball wirklich leicht beweglich? Vielleicht durch ein Rad ersetzen?
LG!
alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)
Lesezeichen