Can Koşar

Zustandsbestimmung durch reine Odometrie

Die Odometrie hat sich bei der relativen Lagemessung als eine der zuverlässigsten Methoden erwiesen, siehe BorensteinFeng94 und BorensteinFeng96. Bei simultaner Zustandsermittlung durch die Odometrie stehen uns ausschliesslich die Daten der Drehung beider Räder zur Verfügung. Die besondere Herausforderung hierbei ist, dass die Orientierung bzw. die Lenkung des Roboters durch die differentielle Drehung der beiden Antriebsräder erzeugt wird. Die genaue Bestimmung der Orientierung ist daher eine der Kernaufgaben der Regelungsalgorithmus. Hinzu kommt, dass sich der Roboter im Raum nicht absolut orientiert. Das führt dazu, dass die Fehler bei der Ermittlung der Lage und Orientierung immer addiert werden und es keine Sensorik zur Verfügung steht, die inkrementellen Fehler zu kompensieren.

Die Prinzip der Positionsermittlung hierbei ist die differentielle Konstruktion und Addition der Bewegung, die durch die Drehung beider Räder ermittelt wird. Dazu wird die Drehung beider Räder seit dem letzten Zeitinkrement gemessen und die Positions- und Orientierungsänderung inkrementell berechnet.

Bogenmodell

Der Ansatz bei der Konstruktion der Bewegung ist, dass der Roboter in einem diskreten Zeitintervall durch die unterschiedliche Bewegung der Räder eine Bogenbewegung um einen virtuellen Punkt O(t) macht, siehe Abbildung 1. In der Abbildung sind die Drehungen in die lineare Bewegung, in dem Fall Kreisbogen, übersetzt und in differentieller Schreibweise als \Delta a_l(t) und \Delta a_r(t) gekennzeichnet. Dabei ist \Delta a(t) die Bewegung des Roboters.

Rendered by QuickLaTeX.com

Abbildung 1: Konstruktion der differentiellen Bewegung

Durch die geometrischen Verhältnisse der beiden Kreisbogen gilt

(1)   \begin{equation*} \frac{r_{c,t}-r_R}{r_{c,t}+r_R}\sim\frac{\Delta a_{r,t}}{\Delta a_{l,t}}\text{.} \end{equation*}

Daraus ergibt sich

(2)   \begin{equation*} \Delta a_{l,t}(r_{c,t}-r_R)=\Delta a_{r,t}(r_{c,t}+r_R)\text{.} \end{equation*}

Wenn man die Gleichung \eqref{rel1} nach dem Radius des virtuellen Bogenkreises r_{c,t} löst, erhält man

(3)   \begin{equation*} r_{c,t}=r_R\frac{\Delta a_{l,t}+\Delta a_{r,t}}{\Delta a_{l,t}-\Delta a_{r,t}} \end{equation*}

Nun wird auch der Winkel des Bogens \Delta \gamma_{a,t} benötigt. Wenn die Längen beider Bögen \Delta a_{r,t} und \Delta a_{l,t} bekannt sind, kann für den mittleren Bogen geschrieben werden, dass

(4)   \begin{equation*} \Delta a_{m,t}=\frac{{\Delta a_{l,t}+\Delta a_{r,t}}}{2}\text{.} \end{equation*}

Daraus ergibt sich der Winkel als

(5)   \begin{equation*} \Delta\gamma_{a,t}=\frac{\Delta a_{m,t}}{r_{c,t}}=\frac{\frac{{\Delta a_{l,t}+\Delta a_{r,t}}}{2}}{r_R\frac{\Delta a_{l,t}+\Delta a_{r,t}}{\Delta a_{l,t}-\Delta a_{r,t}}}=\frac{\Delta a_{l,t}-\Delta a_{r,t}}{2 r_R}\text{.} \end{equation*}

Wenn der Kreisbogen bekannt ist, kann nun die Lage- und Orientierungsänderung im bewegten Koordinatensystem G als

(6)   \begin{equation*} _Gr_{1,t}=r_{c,t}(1-\cos(\Delta\gamma_{a,t})) \end{equation*}

für die erste translatorische Komponente,

(7)   \begin{equation*} _Gr_{2,t}=r_{c,t}\sin(\Delta\gamma_{a,t}) \end{equation*}

für die zweite translatorische Komponente und

(8)   \begin{equation*} _G\gamma_{t}=\Delta\gamma_{a,t} \end{equation*}

für die Rotation berechnet werden. Daraus ergibt sich die Bewegung der bewegten Koordinatensystems, bzw. des Starrkörpersystems G als

(9)   \begin{equation*} _G\mathbf{r}_{t}^B=\begin{bmatrix} r_{c,t}(1-\cos(\Delta\gamma_{a,t}))\\ r_{c,t}\sin(\Delta\gamma_{a,t})\\ \Delta\gamma_{a,t} \end{bmatrix} \end{equation*}

beschrieben werden.

Der Fall der Geradeausfahrt, wo beide Räder exakt den gleichen Weg zurücklegen, also \Delta a_{l,t}-\Delta a_{r,t}\rightarrow0 führt in den obigen Formeln zu einer Nulldivision. Im Prinzip ist dieser Fall durch

(10)   \begin{equation*} r_{c,t}\rightarrow\pm\inf \end{equation*}

miteingeschlossen und führt nach den Regeln der Limitrechnung zu

(11)   \begin{equation*} _G\bar{r}_{t}^B=\begin{bmatrix} 0\\ \Delta a_{l,t}\\ 0 \end{bmatrix}\text{.} \end{equation*}

Kategorie(n): Allgemein, Ropi

Zustandsbestimmung durch Odometrie und Gyrometrie » « Konstruktion der differentiellen Bewegung aus den Messdaten (IMU)

2 Kommentare

  1. Der Winkel in Gleichung (5) müsste eigentlich (a_l – a_r)/(2r) sein.

Schreib einen Kommentar

Ihre Email-Adresse wird nicht veröffentlicht.

*

Rechte © 2017 Can Koşar

Mit Unterstützung von Wordpress, QuickLaTeX und Design von Anders NorenSeitenanfang ↑