Wie berechnet oder aktualisiert man die Position eines Differentialantriebsroboters mit Inkrementalsensoren?
An jedem der beiden Differenzialräder ist ein Inkrementalsensor angebracht. Beide Sensoren ermitteln den Abstand resp. ihr Rad hat während einer bekannten Zeit gerollt .Δ t
Nehmen wir zunächst an, dass die Mitte zwischen beiden Rädern die Position des Roboters markiert. In diesem Fall könnte man die Position berechnen als:
"Ableiten" dieser Gleichungen unter der Annahme, dass beide Räder in einer geraden Linie rollten (was für kleine Entfernungen ungefähr korrekt sein sollte), erhalte ich:
Wobei der Orientierungswinkel des Roboters ist. Für die Änderung dieses Winkels habe ich die Gleichung gefunden
Wobei der Abstand zwischen beiden Rädern ist.
Da und von abhängen , frage ich mich, ob ich zuerst das neue durch Hinzufügen von berechnen oder lieber das "alte" . Gibt es einen Grund, eins übereinander zu verwenden?
Nehmen wir nun an, dass die Mitte zwischen beiden Rädern nicht die Position des Roboters markiert. Stattdessen möchte ich einen Punkt verwenden, der die geometrische Mitte des Begrenzungsrahmens des Roboters markiert. Dann ändern sich und zu:
"Ableiten" des ersten gibt:
Jetzt besteht eine Abhängigkeit von . Ist dies ein Grund, das "neue" ?
Gibt es eine bessere Methode zur gleichzeitigen Aktualisierung von Position und Orientierung? Verwenden Sie möglicherweise komplexe Zahlen (der gleiche Ansatz wie bei Quaternionen in 3D?) Oder homogene Koordinaten?
quelle
quelle