Can Kosar

Kategorie: Ropi (Seite 2 von 2)

Prinzip und Anwendung des bewegten Koordinatensystems

Wie im vorherigen Teil erwähnt, kann die Bewegung eines Mehrkörpersystems, in diesem Fall Roboter, mit Hilfe der bewegten Koordinaten Systeme leichter beschreiben. In dem Sonderfall der Starrkörper, lässt sich auch die Bewegung eines Körpers vollständig mit einem bewegten Koordinatensystem beschrieben.

Ein bewegtes Koordinatensystems K(t) bezüglich des Inertialsystems I wird mit einem 3\times1 Ortsvektor und einem 3\times3 Drehtensor beschrieben. Hierzu gelten die Transformationsgesetze der Vektoren und Matrizen. Für die Transformation eines Vektors w(t) gilt

(1)   \begin{equation*} _I\mathbf{w}(t)=_I\mathbf{r}_{IK}(t)+\mathbf{D}_{IK}(t) _K\mathbf{w}(t) \end{equation*}

wobei \mathbf{D}_{IK} der Drehtensor, der die Drehung des Koordinatensystems K(t) bezüglich des Koordinatensystems I beschreibt und der Vektor _I\mathbf{r}_{IK}(t) der Ortsvektor des Ursprungspunkts des Koordinatensystems K bezüglich des Koordinatensystems I ist.

Im allgemeinen Fall kann die Deformation eines flexiblen Körpers bezüglich eines bewegten Koordinatensystems beschrieben werden. Die Bewegung des diskreten Punktes _B\zeta eines Körpers mit körperfestem Bezugssystem B kann bezüglich des Inertialsystems als

(2)   \begin{equation*} _I\mathbf{r}(\zeta,t)=_I\mathbf{r}_{IK}(t)+\mathbf{D}_{IK}(t) [_K\mathbf{r}_{KB}(t)+\mathbf{D}_{KB}(t) _B \mathbf{\zeta}] \end{equation*}

formuliert werden. Hierbei ist \mathbf{D}_{KB}(t) der Drehtensor des Koordinatensystems B bezüglich K. Die zeitabhängigen und -unabhängigen Koordinatensysteme können prinzipiell beliebig verschachtelt werden. Die Prinzip der bewegten Koordinatensysteme bzw. mehrere verschachtelte Koordinatensysteme können sowohl für die Beschreibung der kontinuumsmechanischen Phänomene wie flexibler Körper als auch für die Beschreibung mehrerer geketteter Starrkörper, wie z.B. mehrgelenkige Roboter verwendet werden. Zwischen den Koordinatensystemen kann vorwärts- und rücktransformiert werden. Ausführliche Beschreibungen und viele Praxisbeispiele darüber sind u.a. in Weber09 und LenarcicBajdStanisic13 zu finden.

In unserem konkreten Fall werden die bewegten Koordinatensysteme für die Bewegung des Roboters bezüglich eines Körperfesten Koordinatensystems und für den Sollpfad verwendet. Die Sensorik, die hierzu verwendet wird, misst Bewegung nach einer relativen Messprinzip, siehe BorensteinFeng94 und BorensteinFeng96. Das heißt die Bewegung und Orientierung des Roboters wird inkrementell, bezüglich des letzten Zustands eines bewegten Koordinatensystems gemessen.

Rendered by QuickLaTeX.com

Abbildung 1: Beschreibung der Kinematik mit Hilfe des bewegten KOS
Gemessen und konstruiert wird die differentielle Bewegung des Roboters. Diese wird bezüglich des bewegten Koordinatensystems G in der Abbildung 1 als _G\mathbf{r}^B gekennzeichnet. So kann der Lagevektor des Roboters bezüglich des Inertialsystems _I\mathbf{r}^B als

(3)   \begin{equation*} _I\mathbf{r}^B(t)=_I\mathbf{r}_{IG}(t)+\mathbf{D}_{IG}(t) _K\mathbf{r}^G(t) \end{equation*}

berechnet werden, wobei der Drehtensor \mathbf{D}_{IG}(t) als

(4)   \begin{equation*} \mathbf{D}_{IG}(t)=\begin{bmatrix} \cos(_I\gamma^G)(t) & -\sin(_I\gamma^G)(t) &0 \\ \sin(_I\gamma^G)(t) & \cos(_I\gamma^G)(t) & 0 \\ 0&0&1 \end{bmatrix} \end{equation*}

formuliert werden kann. Nach der Zeitdiskretisierung kann die Bewegung des Koordinatensystems G als

(5)   \begin{equation*} G(t+\Delta t):= B(t) = _I\tilde{\mathbf{r}}^B(t) \end{equation*}

beschrieben und programmiert werden, wobei

(6)   \begin{equation*} _I\tilde{\mathbf{r}}^B(t)=\begin{bmatrix} _I{\mathbf{r}}^B(t)\\ _I\mathbf{\omega}^B(t) \end{bmatrix} \end{equation*}

mit der Drehung des Koordinatensystems _I\mathbf{\omega}^B(t).

Somit hat man die Lage und die Orientierung des Roboters als die Bewegung eines Koordinatensystems wiedergegeben. Für den Sonderfall der Starrkörper, kann dies aber ein Hilfsmittel verwendet werden, siehe EberhardSchiehlen04.

Beschreibung der Kinematik des nicht-holonomen Roboters Ropi

Roboter Raspberry Pi, (Ropi) ist ein mobiler Indoor-Roboter, der für den Einsatz auf planaren Flächen ausgelegt ist. Seine Bauform ist in der Abbildung 1 beschrieben.

Beschreibung der Kinematik

Der Ropi wird mit zwei rollenden, unabhängigen Rädern angetrieben und einem dritten, frei drehenden Stützrad abgestützt. Um eine Drehung um eigene Achse zu ermöglichen, befinden sich alle Räder tangential in einem Kreis. Damit sich der Roboter an jeder Stelle um sich drehen kann, ist sein Gehäuse kreisförmig konstruiert, siehe Abbildung 1.

Rendered by QuickLaTeX.com

Abbildung 1: Ropi Bauform

Im Folgenden möchte ich die Kinematik des Roboters beschreiben. Erst betrachte man die freien Körper unter Vernachlässigung der kontinuummechanischen Phänomene wie Deformation als Starrkörper. Die einzelnen freien Körper eines Mehrkörpersystems haben jeweils 6 Freiheitsgrade, die mit kartesischen Raumkoordinaten beschrieben werden können. D.h. die Lagevektoren der einzelnen freien Körper lassen sich als

    \begin{align*} \mathbf{x}^G &=\begin{bmatrix}r_1^G & r_2^G & r_3^G & \alpha^G & \beta^G & \gamma^G\end{bmatrix}\text{,}\\ \mathbf{x}^{RL} &=\begin{bmatrix}r_1^{RL} & r_2^{RL} & r_3^{RL} & \alpha^{RL} & \beta^{RL} & \gamma^{RL}\end{bmatrix}\text{ und}\\ \mathbf{x}^{RR} &=\begin{bmatrix}r_1^{RR} & r_2^{RR} & r_3^{RR} & \alpha^{RR} & \beta^{RR} & \gamma^{RR}\end{bmatrix} \end{align*}

formulieren, wobei die Hochindexen G für Gehäuse, RR für das rechte Rad, RL für das linke Rad; die r_{1,2,3} die Komponenten des translatorischen Lagevektors in den orthogonalen raumfesten Einheitsvektoren e_{1,2,3} und die \alpha, \beta, \gamma die Drehungen um die e_{1,2,3} sind, siehe Abbildung 2.

Rendered by QuickLaTeX.com

Abbildung 2: Das ungebundene System

Nun können wir die Zwangsbedingungen stellen, die die Bindungen des Systems beschreiben. Bei den Zwangsbedingungen unterscheidet man zwischen den holonomen und nichtholonomen Zwangsbedingungen. Die holonomen Zwangsbedingungen beschränken die Lagegrößen und dadurch direkt Geschwindigkeits- und Beschleunigungsgrößen. Die nichtholonomen Zwangsbedingungen hingegen beschränken primär die Geschwindigkeitsgrößen. Die q \times 1 Matrix der holonomen Zwangsbedingungen lassen sich in impliziter Form als

(1)   \begin{equation*} \mathbf{\phi}=0=\begin{bmatrix} r_3^G\\ r_3^{RL}\\ r_3^{RR}\\ \alpha^G\\ \alpha^{RL}\\ \alpha^{RR}\\ \beta^G\\ \beta^{RL}\\ \beta^{RR}\\ \gamma^G-\gamma^{RR}\\ \gamma^G-\gamma^{RL}\\ r_1^G-r_1^{RL}-a \cos(\gamma^G)\\ r_1^{RR}-r_1^G-a \cos(\gamma^G)\\ r_2^G-r_2^{RL}-a \sin(\gamma^G)\\ r_2^{RR}-r_2^G-a \sin(\gamma^G) \end{bmatrix} \end{equation*}

formulieren, wobei R der Radius des Kreises ist, auf dessen Tangente sich die Räder bewegen. Die Freiheitsgrade der Lagegrößen berechnet sich bei Mehrkörpersystemen durch

(2)   \begin{equation*} f=6p-q \end{equation*}

mit p Körpern und q Zwangsbedingungen. Somit ergeben sich f=3 \cdot 6-15=3 Freiheitsgrade der Lagegrößen. Der Vektor der Lagegrößen ergibt sich als

(3)   \begin{equation*} \mathbf{y}=\begin{bmatrix} r_1^G\\r_2^G\\\gamma^G \end{bmatrix}\text{,} \end{equation*}

d.H. die Lage des Roboters in der Ebene lässt sich mit zwei translatorischen Größen in der Ebene r^G_{1,2} und eine Drehung um die r_3 eines raumfesten Koordinatensystems beschreiben.

Zusätzlich zu den holonomen Bindungen und hat das Mehrkörpersystem eine nichtholonome Bindung bzw. Zwangsbedingung, die aus der Rollbedingung der Räder hervorgeht. Die Lage des Roboters kann man zwar stets mit dem Lagevektor y beschreiben, allerdings der Roboter kann nicht zu allen möglichen Lagen direkt gesteuert werden. Sondern er muss gegebenenfalls einen indirekten und unbeliebigen Pfad zur erwünschten Lage folgen. Der r \times 1 Vektor der nichtholonomen Zwangsbedingungen lässt sich in impliziter Form als

(4)   \begin{equation*} \chi=0=\begin{bmatrix} \dot{r}_1^G\cos(\gamma^G)-\dot{r}_2^G\sin(\gamma)^G \end{bmatrix} \end{equation*}

beschreiben. Das bedeutet, die resultierende \glqq Quergeschwindigkeit\grqq\ muss stets 0 betragen. Somit erhält man eine zusätzliche Reduktion beim Vektor der Geschwindigkeit, siehe EberhardSchiehlen04.

Der Vektor der Geschwindigkeit lautet demnach

(5)   \begin{equation*} \mathbf{z}(t)\begin{bmatrix} v_V&\dot{\gamma^G} \end{bmatrix} \end{equation*}

mit der Vorwärtsgeschwindigkeit

(6)   \begin{equation*} v_V=\begin{bmatrix} \dot{r}_2^G\cos(\gamma^G)+\dot{r}_1^G\sin(\gamma^G) \end{bmatrix} \end{equation*}

Bisher wird die Kinematik des Roboters im Bezug eines raumfesten kartesischen Koordinatensystems beschrieben. Um die Bewegungen des Roboters zu beschreiben, bietet es sich an, mindestens ein zusätzliches körperfestes und bewegtes Koordinatensystem zu benutzen, z.B. als Sollpfad bei der Regelungsaufgabe. Als Sonderfall für Starrkörpersysteme lässt sich die Bewegung des Mehrkörpersystems vollständig mit bewegten Koordinatensystem beschreiben, wenn die kontinuumsmechanischen Phänomene vernachlässigt werden. Da der Roboter zunächst als ein starres Mehrkörpersystem betrachtet wird, kann dies gewagt werden. Auf die Formulierung der bewegten Koordinatensysteme wird im nächsten Teil eingegangen.

Die Theorie und die Notation basieren in diesem Text größtenteils auf den Skripten und Büchern des Prof. Peter Eberhard und Prof. Werner Schiehlen

Zustandsbestimmung durch 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*}

neuestenBeiträge

Rechte © 2021 Can Kosar

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