0 Daumen
352 Aufrufe

Moin Leute,

zu der Aufgabestellung befindet sich noch eine Abbildung im Anhang. Die Transformationsmatrix in a) habe ich gelöst bekommen. Ab b) mit den Indizes weiß ich leider nicht mehr genau was gemeint ist.

Aufgabe:

a) Stellen Sie die Transformationsmatrix  T von B ->W des Handgelenk-Frames {W} relativ zum Base-Frame {B} in
Abhängigkeit der Translation (X,Y) und der Rotation des Effektors theta auf.

b) Drücken Sie die Matrix T von B ->W durch die Achswinkel phi_i und die Gelenklängen L_i aus.

c) Lösen Sie die nichtlineare Funktion und ermitteln Sie somit die beiden möglichen
Gelenkwinkelkonfigurationen phi_i.
zum Erreichen der Zielpose.

Abbildung:Abbildung.png


a) Transformationsmatrix T von B ->W

cos(theta)-sin(theta)0X
sin(theta)cos(theta)0Y
0010
0001


Danke euch schonmal im voraus!

VG Payot

Avatar von

1 Antwort

0 Daumen
 
Beste Antwort

Hallo Payot,

Den Teil a) hast Du richtig gelöst$${}^BT_{W}=\begin{pmatrix} \cos(\Theta) & -\sin(\Theta)& 0& X \\ \sin(\Theta) & \cos(\Theta) & 0& Y \\ 0& 0& 1& 0 \\ 0& 0& 0& 1\end{pmatrix}$$

Für den Teil b) sind zunächst die einzelnen Transformationsmatrizen aufzustellen. Ich benutze dazu die Syntax aus dem Wikipedia-Artikel über die Denativ-Hartenberg Transformation. Es ist:$${}^BT_{1}=\begin{pmatrix} \cos(\vartheta_1) & -\sin(\vartheta_1)& 0& 0 \\ \sin(\vartheta_1) & \cos(\vartheta_1) & 0& 0 \\ 0& 0& 1& 0 \\ 0& 0& 0& 1\end{pmatrix} \\{}^1T_2 = \begin{pmatrix} \cos(\vartheta_2) & \sin(\vartheta_2)& 0& L_1 \\ -\sin(\vartheta_2) & \cos(\vartheta_2) & 0& 0 \\ 0& 0& 1& 0 \\ 0& 0& 0& 1\end{pmatrix} \\ {}^2T_W = \begin{pmatrix} \cos(\vartheta_3) & -\sin(\vartheta_3)& 0& L_2 \\ \sin(\vartheta_3) & \cos(\vartheta_3) & 0& 0 \\ 0& 0& 1& 0 \\ 0& 0& 0& 1\end{pmatrix}$$Beachte bitte, dass \(\vartheta_2\) links herum positiv definiert ist. Daher wandert dort das Vorzeichen.

Um nun die Matrix \({}^{B}T_{W}\) in Abhängigkeit der Gelenkwinkel und Längen aufzustellen, werden diese Matrizen miteinander multipliziert. $${}^{B}T_{W} = {}^{B}T_{1} \cdot {}^{1}T_{2} \cdot {}^{2}T_{W}$$Hier müsen die Indizes rechts und links vom Punkt immer identisch sein! Bei der Multiplikation mache ich noch von den Additionstheoremen Gebrauch$$\cos(a)\cos(b) \mp \sin(a)\sin(b) = \cos(a\pm b)\\ \sin(a)\cos(b) \pm \cos(a)\sin(b) = \sin(a\pm b)$$Dann ist das Resulttat der Multiplikation$${}^BT_W = \begin{pmatrix} \cos(\vartheta_1-\vartheta_2+\vartheta_3) & -\sin(\vartheta_1-\vartheta_2+\vartheta_3)& 0& L_1\cos(\vartheta_1) +L_2\cos(\vartheta_1-\vartheta_2)\\ \sin(\vartheta_1-\vartheta_2+\vartheta_3) & \cos(\vartheta_1-\vartheta_2+\vartheta_3)& 0& L_1\sin(\vartheta_1) +L_2\sin(\vartheta_1-\vartheta_2)\\ 0& 0& 1& 0\\ 0& 0& 0& 1\end{pmatrix}$$Gleichsetzen dieser Matrizen liefert ein Gleichungssystem mit den drei unbekannten Winkeln$$\vartheta_1-\vartheta_2+\vartheta_3 = \Theta \\ L_1\cos(\vartheta_1) +L_2\cos(\vartheta_1-\vartheta_2) = X\\ L_1\sin(\vartheta_1) +L_2\sin(\vartheta_1-\vartheta_2) = Y$$Die letzten beiden sind nicht von \(\vartheta_3\) abhängig und könnte man mit 'Schulmitteln' lösen. Das mache ich jetzt aber nicht, sondern erinnere mich an den Kosinussatz ;-)

Die beiden Längen \(L_1\) und \(L_2\) sowie der Abstand des Handgelenks von der Basis \(\sqrt{X^2+Y^2}\) bilden ein Dreieck, bei dem sich die Winkel berechnen lassen:$$\vartheta_1= \arctan\left(\frac{Y}{X}\right) \pm \arccos\left(\frac{L_{1}^{2}+\left(X^2+Y^2\right)-L_{2}^{2}}{2L_{1}\cdot \sqrt{X^2+Y^2}}\right)\\ \vartheta_2 = \pm\arccos\left(\frac{\left(X^2+Y^2\right)-L_{1}^{2}-L_{2}^{2}}{2L_{1}L_{2}}\right)$$und \(\vartheta_3\) ist jetzt kein Problem mehr:$$\vartheta_3= \Theta - \vartheta_1 + \vartheta_2$$Das Desmos-Applet zeigt eines der beiden Ergebnise

https://www.desmos.com/calculator/uq1hf9ypug

Die Position des Greifers und sein Winkel lassen sich mit der Maus verschieben (die roten Punkte). Ebenso kann man links im Bild die Längen \(L_{1,2}\) durch vertkales Verschieben ändern. Die Gelenkwinkel \(\vartheta_{1,2,3}\)werden angezeigt. Wandert der Greifer aus dem Bereich des Roboters, so verschwindet das Knickgelenk.

Gruß Werner

Avatar von 48 k

Erstmal vielen Dank für die Antwort.

Genau so war mein Ansatz auch. Ich kam bloß mit den Indizes ins schwimmen. Hätten Sie mal anstatt phi_i einfach phi_1,… geschrieben. Dann hätte ich sofort gewusst was zutun ist. So ist das mit der Lieben Mathematik ;)

Grüße Payot

Hätten Sie mal anstatt phi_i einfach phi_1,… geschrieben.

wobei die Gelenkwinkel doch mit Theta_i (\(\vartheta_{i}\)) benannt worden sind ;-)

Bem.: bei der Berechnung von \(\vartheta_{1}\) sollte in der Praxis statt des \(\arctan\) besser der arctan2 verwendet werden. Dann sollte es auch für \(X\le 0\) funktionieren.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community