Can Kosar

Tag: nicht

Zustandsbestimmung durch Odometrie und Gyrometrie

Im Folgenden wird die Drehung des Roboters mit Hilfe eines Gyrometers gemessen. Der Gyrometer ist im Zentrum des Gehäuse angebracht und misst die Drehgeschwindigkeiten _I\dot{\omega}^B. Der Gyrometersensor MPU6050, der hierzu verwendet wird, ist ein kostengünstiger Sensor. Er misst die Drehgeschwindigkeit und lineare Beschleunigungen in allen 6 Raumrichtungen, siehe MPU6050.

Um die Lagegrößen aus den Sensordaten vom Gyrometer bzw. Accelerometer zu konstruieren, muss die Drehgeschwindigkeit einfach und die translatorische Beschleunigungen zweifach integriert werden. Das führt dazu, dass die Messfehler mitsummiert werden. Während die Messfehler bei der Ermittlung der Orientierung durch Gyrometrie linear steigen, steigen sie bei der Ermittlung der translatorischen Lagegrößen durch den Accelerometer quadratisch. Im heutigen Stand der Technik können die Accelerometerdaten zu Hilfe gezogen werden, um momentane Beschleunigungen genau zu erfassen, allerdings für die Positionsbestimmung bei mobilen Indoor-Robotern gilt sie eher als ungeeignet, siehe BorensteinFeng94.

Die Daten des Gyrometers sind allerdings in manchen Anwendungen brauchbar. Hierbei hat man hierbei den Vorteil, dass direkt die Drehgeschwindigkeit und nicht die -beschleunigung gemessen wird. Bei der Bestimmung der absoluten Rotation um alle 3 Raumrichtungen, tritt das Problem auf, dass bei der Formulierung der Rotation alle 3 Achsen in Abhängigkeit stehen. Zur Formulierung der Rotation in allen Raumrichtungen kann die Formulierung nach Eulerwinkeln oder mit Hilfe der Quaternionen erfolgen, siehe DrehJena. Dies führt dazu, dass erstens die Messfehler in allen Richtungen addiert werden, zweitens dass man die Sensoren in allen Richtungen kalibrieren muss. Das ist z.B. eine bekannte Herausforderung bei der Anwendung in Flugobjekten wie Quadrocoptern und Flugzeugen.

Ohne darauf detailliert einzugehen, kann man erwähnen, dass im Beispiel eines 2D-Roboters nur die Rotation um eine Raumachse und zwar die Normalrichtung zur Ebene gemessen werden muss. Bei einer geschickten Kalibrierung des Sensors, lässt sich die Drifting des Sensor im Bereich von < 0.01\nicefrac{^\circ}{min} halten, was für vorliegende Anwendung eine ausreichende Fehlerentwicklung darstellt. Als Vergleich: Bei der Messung der Rotation in allen 3 Raumrichtungen und Formulierung durch Quaternionen beträgt die Drifting um die obengenannte Achse deutlich über 1 \nicefrac{^\circ}{min}.

Es gilt hierbei zu erwähnen, dass obiger Ansatz nur unter der Annahme

(1)   \begin{equation*} \begin{bmatrix} \alpha^G\\ \beta^G \end{bmatrix}=0 \end{equation*}

gilt, was am Anfang bei der Formulierung der Zwangsbedingungen erfolgte. Somit werden die Drehungen um die Frontal- und die Querachse (Roll und Pitch) vollständig vernachlässigt. Das kann ggf. genauso zu Fehlern führen, wenn die Bewegung des Roboters nicht mehr auf einer Ebene betrachtet werden kann, konkret gesagt, wenn er stolpert, über Gegenstände klettern muss etc. Für einen breiten Einsatz scheint diese Annahme allerdings zu eignen, siehe BorensteinFeng94 und BorensteinFeng96.

In dem vorherigen Teil wurde die Ermittlung des Zustands nur anhand der Odometrie erläutert. In diesem Teil wird die Ermittlung des Zustands anhand der Odometrie und der Gyrometrie diskutiert.

Sensor-Fusion

Die Ermittlung des Systemzustands durch Odometrie und Gyrometrie führt zu einem überbestimmten Problem. Der Rotationswinkel _G\gamma_{t} wird hierbei sowohl aus den Odometern konstruiert als auch aus dem Gyrometer akquiriert. Da die von der Sensorik akquirierten Daten keine absoluten Wahrheiten wiedergeben, wird hierbei von der Wahrscheinlichkeit der Daten bzw. einer „Schätzung“ (Prediction) des Systemzustands gesprochen. Hierbei erhält der Algorithmus mehrere ggf. voneinander abweichende Informationen über den Systemzustand. Er muss demnach den optimalsten bzw. den wahrscheinlichsten Systemzustand schätzen. Hierzu gibt es ebenfalls zahlreiche Studien und Ansätze, wie z.B. Bayes Theorem und Kalman Filter etc. Hier ein hilfreiches Video für Sensor-Fusion auf Android Devices mit Hilfe desselben Sensors.

Im vorliegenden Fall hat die Odometrie eine deutlich schlechtere Genauigkeit als die Gyrometrie. Eine Approximation ist die Annahme, dass die Gyrometerdaten durch geringe Drifting exakte Wahrheit sind, d.h.

(2)   \begin{equation*} P_\Gamma(G)=1 \end{equation*}

Die Daten der Odometrie und Gyrometrie sind \textit{weitestgehend} nicht komplementär, d.h. die Daten aus der Gyrometrie beeinflussen nicht die Wahrscheinlichkeit der Daten aus der Odometrie. Die Wahrscheinlichkeit der Odometriedaten wird in der Abbildung 1 dargestellt.

Rendered by QuickLaTeX.com

Abbildung 1: Gausssche Verteilung der Wahrscheinlichkeit der Odometriedaten
Das Ziel ist allerdings nicht nur Winkel sondern die gesamte differentielle Bewegung _G \mathbf{r}_{t}^B abzuschätzen. Somit sieht das Kreisbogen-Modell wie in der Abbildung 2.

Rendered by QuickLaTeX.com

Abbildung 2: Konstruktion der differentiellen Bewegung durch Odometer und Gyrometer
Die einfache optische Odometriemessung hat eine Auflösung, die zwei Spaltbreiten beträgt (ein leerer + ein voller). Wenn der Sensor ein Inkrement misst, gilt es

(3)   \begin{equation*} k_{Mess,Ink}=1\Rightarrow0<l_{Ist}<2l_s \end{equation*}

wobei k_{MESS,Ink} Inkrementenanzahl, l_{IST} die IST-Verschiebung (radial oder linear) und l_s eine Spaltbreite (ebenso radialoder linear) ist. In unserem Fall handelt es sich um einen Low-Budget Drehinkrementgeber (Drehencoder) mit 20 Spalten. Eine Spaltbreite beträgt demnach 360^\circ / (20*2)=9^\circ und wir haben insgesamt eine Auflösung von \pm9^\circ. Wichtig zu beachten ist, dass es sich hier nicht um einen Fehler handelt, sondern die Auflösung. Die Abweichungen werden nicht addiert.

Aus dieser Ungenauigkeit entsteht ein mögliches Intervall für die Ist-Inkrement für jeweils das rechte und das linke Rad. Daraus lassen sich nach den bereits genannter Vorgehensweise ein minimaler und ein maximaler Wert für die hinterlegten Bogenlängen \Delta a_{min,l,t}, \Delta a_{min,r,t}, \Delta a_{max,l,t}, \Delta a_{max,r,t} und daraus Radiusintervall des Drehkreises r_{min,c,t}, r_{max,c,t} berechnet.

Bei der Annahme, dass die Gyrometerdaten eine 100\%– Wahrscheinlichkeit und eine unendlich hohe Auflösung haben, kann der Radius des Drehkreises einen beliebigen Wert zwischen

(4)   \begin{equation*} r_{min,c,t}< r_{Ist,c,t}< r_{max,c,t} \end{equation*}

betragen. Nun gilt das Schätzungsproblem zu lösen, wodurch man die Fehler minimiert. Hierzu kann das Kalman-Filter zu Hilfe gezogen werden, welches die Tendenzen im Algorithmus mitspeichert und -berücksichtigt.

Eine Vereinfachung für die Abschätzung ist die Annahme, dass der Ist-Wert dem arithmetischen Mittel entspricht, d.h. r_{Ist,c,t}=\frac{r_{min,c,t}+r_{max,c,t}}{2}. Auch dieser Ansatz erweist sich für diese Anwendung brauchbar, weil die unsystematischen Fehler hoch sind und die systematischen Fehler überdecken, siehe BorensteinFengCalib96. Trotzdem bietet das Kalman-Filter eine allgemeingültigere und präzisere Vorangehensweise an das Schätzungsproblem.

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

Konstruktion der differentiellen Bewegung aus den Messdaten (IMU)

Noch immer die größte Herausforderung bei den mobilen Indoor-Robotern ist die Ermittlung des Zustands, d.h. der Lage und der Orientierung. Bei den Messungen stehen die Möglichkeiten der absoluten Zustandsbestimmung entweder nicht oder nur mit großem Aufwand verbunden, zur Verfügung. Am Beispiel der Haushaltsroboter steht kein GPS zur Verfügung. Zudem möchte man keine Beacons im Haus installieren. Die zusätzlichen Hilfskomponenten, wie Transponder werden für die Privatanwendung sehr mühsam empfunden und gelten als ein Minuskriterium. Hinzu kommt, dass diese keine zufriedenstellenden Daten liefern. Hierzu werden zahlreiche Studien veröffentlicht, beispielsweise BorensteinFeng94 und BorensteinFeng96. Die letzten Studien führen dazu, dass im Bereich der Indoor-Robotik keine einzelne zufriedenstellende Messmethode gibt und die zuverlässige Positionsermittlung mit Hilfe mehrerer Methoden bzw. Sensoren erfolgen muss. Unterschieden wird hierbei grundsätzlich zwischen den relativen und absoluten Methoden. Eine der wichtigsten Methoden ist die Positionsmessung durch die Odometrie. Die üblichen Odometriesensoren bieten zwar eine schlechte Genauigkeit allerdings eine geringe Fehlersummierung (Drifting).

Eine andere wichtige Messmethode ist die Drehgeschwindigkeitsmessung durch die Gyrometrie. Die Prinzip beruht auf der gyroskopischen Kräfte, die bei der Drehung entstehen. Die Gyrometrie wird durch eine hohe Genauigkeit aber auch eine hohe Drifting gekennzeichnet. Für die Anwendungen, wo die Drifting irrelevant ist, wie in den Eingabegeräten reicht die Gyrometrie aus. Beim Einsatz in absoluter Positionsermittlung stellt sie ein wichtiges Hilfsmittel dar, muss aber mit den anderen Messmethoden kombiniert werden.

Im folgenden Teilen wird die Zustandsbestimmung durch die optische Odometrie und die Gyrometrie beschrieben.

  1. Zustandsbestimmung durch reine Odometrie
  2. Zustandsbestimmung durch Odometrie und Gyrometrie

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

Rechte © 2024 Can Kosar

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