--- tags: 6.Semester --- # Robotik 1 by Richter ![](https://i.imgur.com/BhmX7aH.png) Nicht relevanter Stoff: ~~durchgestrichen~~ ## Vorlesung 1 ### ~~Einführung, Übersicht~~ nicht klausurrelevant ## Vorlesung 2 ### Gelenktypen und deren Bezeichnung #### Rotationsgelenk \(R\) Symbol: ![](https://i.imgur.com/RtmCvEj.png =200x) * Drehachse bildet einen rechten Winkel mit den Achsen der beiden angeschlossenen Glieder * Beispiel: Ellbogengelenk #### Torsionsgelenk (T) Symbol: ![](https://i.imgur.com/2OaPvh6.png =200x) * Drehachse verläuft parallel zu den Achsen der beiden Glieder * Beispiel: Unterarmdrehung #### Revolvergelenk (V) Symbol: ![](https://i.imgur.com/0EtBGxu.png =150x) * Eingangsglied verläuft parallel zur Drehachse * Ausgangsglied steht im rechten Winkel zur Drehachse * Beispiel: Schultergelenk #### Lineargelenk (L) Symbol: ![](https://i.imgur.com/mBkCG9k.png =200x) * gleitende/fortschreitende Bewegung entlang der Achse * (auch Translationsgelenk, Schubgelenk, prismatisches Gelenk) * Beispiel: Pneumatikzylinder ### Arbeitsräume * besteht aus den Punkten im 3D Raum, die von der Roboterhand angefahren werden können * 3 Freiheitsgrade, also mind. 3 Gelenke nötig * Grundform * würde sich ergeben, wenn sich die Arme des Roboters und die Begrenzung der Gelenkwinkel nicht blockieren würden ### Koordinatensysteme (-> Formen) #### Räumliche Koordinatensysteme |Kartesisches Koordinatensystem|Kugelkoordinaten|Zylinderkoordinaten| |-|-|-| |![](https://i.imgur.com/n1oucvz.png)|![](https://i.imgur.com/YNrUmHJ.png)|![](https://i.imgur.com/bCigQQ9.png)| ### Beispiele ![](https://i.imgur.com/2saMoXD.png =450x) ![](https://i.imgur.com/N3ufrND.png =450x) ## Vorlesung 3 ### Koordinatensysteme am Roboter * Weltkoordinatensystem * fest mit der Welt verbunden * Basiskoordinatensystem (base frame) * fest mit dem Sockel des Roboters verbunden * relativ zu Weltkoordinaten * (Koordinatensysteme der einzelnen Gelenke) * Handflanschkoordinaten (tool0) * mit Handflansch verbunden * mitbewegt und über Kinematische Kette relativ zu den Basiskoordinaten festgelegt * Tool-/Werkzeugkoordinatensystem (tool frame) * relativ zu den Handflanschkoordinaten * TCP (tool center point) * z in Stoßrichtung * Anwender-Koordinaten (user frame) * mit einer Aufnahmevorrichtung für Werkstücke verbunden * relativ zu Weltkoordinaten * Werkobjekt-Koordinaten (object frame) * mit einem Werkstück verbunden * relativ zu Anwenderkoordinaten ### Programmierung Sprache: Rapid #### Bewegungsbefehle * MoveJ (MoveJoint) * Achsenbewegung * `MoveJ ToPoint, Speed, Zone,Too1 [\WObj] [\TLoad]` * Bsp: `MoveJ pHome, v1000, z50, tKuli;` * MoveL (MoveLinear) * Lineare Bewegung (im 3D Raum) * `MoveL ToPoint, Speed, Zone,Too1 [\WObj] [\TLoad]` * Bsp: `MoveL pHome, v1000, z50, tKuli;` * MoveC (MoveCirc) * Kreisbewegung * `MoveC CirPoint ToPoint speed Zone Tool [\WObj]` #### Datenstruktur ``` CONST robtarget pHome:= pos: [[x,y,z], rot: [ql ,q2,q3,q4], robconf: [cfl ,cf4,cf6,cfx], extax: [eax_a, eax_b, eax c, eax_d, eax e, eax_f]]; ``` ### ~~Programmerstellung, Praxis~~ nicht klausurrelevant ## Vorlesung 4 ### Kinematik **Kinematik** ist die Lehre der geom. und analyt. Beschreibung der Bewegungszustände mechanischer Systeme. Das **kinematische Modell** eines Roboters beschreibt die Zusammenhänge zwischen * dem Raum der **Gelenkwinkel** (Roboterkoordinaten, Konfigurationsraum) und * dem Raum der **Lage des Endeffektors** in Weltkoordinaten (Arbeitsraum, Kartesischer Raum) Problem 1: Lokalisierung des TCP (Kinematisches Problem) Problem 2: Positionierung des TCP (Inverses Kinematisches Problem, Bahnplanung) ### Objekte und Objektlagen * Basiskoordinatensystem -> Objektkoordinatensystem * Unterscheidung zwischen rechtsdrehenden und linksdrehenden Koordinatensystemen (wir verwenden rechtsdrehende, siehe Rechte-Hand-Regel) * Lage eines Objekts im 3-dim. euklidischen Raum kann durch Tupel von sechs reellen Zahlen beschrieben werden $\vec{v}=(x,y,z,α,β,γ)$ $x,y,z$ sind Koordinaten $α,β,γ$ sind die Drehwinkel ### Freiheitsgrad / Bewegungsfreiheitsgrad **Freiheitsgrad f** eines Objekts ist die Anzahl möglicher unabhängiger Bewegungen in Bezug auf das BKS. Für 3-dim. Raum frei bewegliche Objkete gilt f=6 (3 Translationen und 3 Rotationen) **Bewegungsfreiheitsgrad F** eines Roboters ist die Anzahl der Bewegungsachsen der Gelenke, um die sich der Roboter bewegen kann. * Freiheitsgrad eines Rotationsgelenks: $F_R\leq 3$ * Freiheitsgrad eines Translationsgelenks: $F_T=1$ * Anzahl der Gelenke eines Roboters: n, i.d.R. $n \geq 6$ * $F\geq f$ ### Orientierungsbeschreibung mit 3x3 Matrizen Jede beliebige Orientierung eines starren Körpers im 3-dim. Raum ist erreichbar durch 3 Rotationen um geeignete Achsen. Jede Rotation um eine Achse kann durch eine 3x3 Rotationsmatrix dargestellt werden. ### Drehung um x/y/z Matrix inkl. Herleitung #### Rotation um x Achse $R_x(α)=\left( \begin{array}{rrr}1 & 0 & 0 \\0 & \cos(α) & -\sin(α) \\0 & \sin(α) & \cos(α) \\\end{array}\right)$ #### Rotation um y Achse $R_y(α)=\left( \begin{array}{rrr}\cos(α) & 0 & \sin(α) \\ 0 & 1 & 0 \\ -\sin(α) & 0 & \cos(α) \\\end{array}\right)$ #### Rotation um z Achse $R_z(α)=\left( \begin{array}{rrr}cos(α) & -\sin(α) & 0 \\ \sin(α) & \cos(α) & 0 \\ 0 & 0 & 1 \\\end{array}\right)$ #### Herleitung für Drehung um x Achse > Additionstheorem > $\sin(Φ+α)=\sin(Φ)\cdot \cos(α)+\cos(Φ)\cdot \sin(α)$ > $\cos(Φ+α)=\cos(Φ)\cdot \cos(α)-\sin(Φ)\cdot \sin(α)$ ![](https://i.imgur.com/XZ6rcQx.png =350x) 1. Schritt $y=l\cdot \cos(Φ)$ $z=l\cdot \sin(Φ)$ 2. Schritt $l=y/\cos(Φ)$ $l=z/\sin(Φ)$ 3. Schritt $y'=l\cdot \cos(Φ+α)$ $z'=l\cdot \sin(Φ+α)$ 4. Schritt Additionstheoreme anwenden $y'=l\cdot (\cos(Φ)\cdot \cos(α)-\sin(Φ)\cdot \sin(α))$ $z'=l\cdot (\sin(Φ)\cdot \cos(α)+\cos(Φ)\cdot \sin(α))$ 5. Schritt Ausmultiplizieren $y'=l\cdot \cos(Φ)\cdot \cos(α) - l\cdot \sin(Φ)\cdot \sin(α))$ $z'=l\cdot \sin(Φ)\cdot \cos(α) + l\cdot \cos(Φ)\cdot \sin(α)$ 6. Schritt Einsetzen der Formeln aus dem 2. Schritt $y'=(y/\cos(Φ))\cdot \cos(Φ)\cdot \cos(α) - (z/\sin(Φ))\cdot \sin(Φ)\cdot \sin(α)) = y\cdot \cos(α) - z\cdot \sin(α)$ $z'=(z/\sin(Φ))\cdot \sin(Φ)\cdot \cos(α) + (y/\cos(Φ))\cdot \cos(Φ)\cdot \sin(α) = z\cdot \cos(α) + y\cdot \sin(α)$ 7. Schritt Als Matrix schreiben $R_x(α)=\left( \begin{array}{rrr}1 & 0 & 0 \\0 & \cos(α) & -\sin(α) \\0 & \sin(α) & \cos(α) \\\end{array}\right)$ ### ~~Programmierung, Praxis, Strukturierung von Programmen~~ nicht klausurrelevant ## Vorlesung 5 ### Verkettung von Rotationen, Interpretation Rotationen können durch Matrixmultiplikation verkettet werden ($R=R_nR_{n-1}\dots R_2R_1$) Unterscheidung zwischen: * Vormultiplikation * $R=(R_n(R_{n-1}\dots (R_2R_1)))$ * Interpretation: Drehung des momentanen Koordinatensystems um feste Achsen des Ursprungskoordinatensystems * Nachmultiplikation * $R=(((R_nR_{n-1})\dots R_2)R_1)$ * Interpretation: Drehung um momentanes Koordinatensystem ### Euler/Roll-Pitch-Yaw -> Vergleich, Vorgehen #### Euler Winkel * Multiplikation von links nach rechts * Jede Drehung bezieht sich auf das neue Koordinatensystem * Drehung um jeweils veränderte Achsen! Vorgehen 1. Drehung $\alpha$ um die $z$-Achse des BKS: $R_z$ 2. Drehung $\beta$ um die neue $y$-Achse $y'$: $R_{y'}$ 3. Drehung $\gamma$ um die neue $z$-Achse $z''$: $R_{z''}$ $R_s=R_z\cdot R_{y'} \cdot R_{z''}$ #### Roll-Pitch-Yaw * Multiplikation von rechts nach links * Jede Drehung bezieht sich auf das BKS * Drehung um unveränderte Achsen! Vorgehen 1. Drehung α um die x-Achse des BKS: $R_x$ 2. Drehung β um die y-Achse des BKS: $R_y$ 3. Drehung γ um die z-Achse des BKS: $R_z$ $R_s=R_z\cdot R_y \cdot R_x$ ### Homogene 4x4 Matrizen #### Aufbau der Matrix $T=\left(\begin{array}{rr}R_{3\times 3} & p_{3\times 1} \\ f_{1\times 3} & 1\times 1 \end{array}\right)$ #### Homogene Basisrotationmatrizen $T_{x,α}=\left(\begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & \cosα & -\sinα & 0 \\ 0 & \sinα & \cosα & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}\right)$ $T_{y,Φ}=\left(\begin{array}{rrrr} \cosΦ & 0 & \sinΦ & 0 \\ 0 & 1 & 0 & 0 \\ -\sinΦ & 0 & \cosΦ & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}\right)$ $T_{z,θ}=\left(\begin{array}{rrrr} \cosθ & -\sinθ & 0 & 0 \\ \sinθ & \cosθ & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}\right)$ #### Homogene Basistranslationsmatrix $T_{z,θ}=\left(\begin{array}{rrrr} 1 & 0 & 0 & dx \\ 0 & 1 & 0 & dy \\ 0 & 0 & 1 & dz \\ 0 & 0 & 0 & 1 \\ \end{array}\right)$ Verschiebung des OKS nach $(dx, dy, dz)^T$ im BKS #### homogene Koordinaten #### wie werden die Einheitsmatrizen abgebildet #### Invertierung $R^{-1}=R^T$ $T^{-1}=\left(\begin{array}{rrrr} n_x & n_y & n_z & -n^Tu \\ o_x & o_y & o_z & -o^Tu \\ a_x & a_y & a_z & -a^Tu \\ 0 & 0 & 0 & 1 \\ \end{array}\right)=\left(\begin{array}{rrrr} & & & -n^Tu \\ & R_{3x3}^T & & -o^Tu \\ & & & -a^Tu \\ 0 & 0 & 0 & 1 \\ \end{array}\right)$ ## Vorlesung 6 war eine Übung, keine neuen Themen ## Vorlesung 7 ### Rotation und Translation von Punkten In kartesischen Koordinaten ![](https://i.imgur.com/XGqEU1g.png) In homogenen Koordinaten ![](https://i.imgur.com/pA6boNh.png) ### Lagebeschreibung $^A H_B$ Beschreibt die Lage des Koordinatensystems B relativ zu A Transformationsabbildung $^A H_B = ^B P \rightarrow ^A P$ Transformationsoperator $H = ^B P_1 \rightarrow ^A P_2$ ### Verkettete Lagebeschreibung Lagebeschreibung relativ auf ein als geeignet erscheinendes Koordinatensystem Umrechnung von Koordinaten notwendig Vorteile: * Verringerung des Nachführaufwands bei Objektbewegung (Nur Arm bewegen, nicht Platform) * Einzelne Koordinatenangaben beschränken sich auf kürzere Distanzen Es gilt: $^{BKS}H_B = ^{BKS}H_A * ^AH_B$ Bsp: ![](https://i.imgur.com/MGtRq81.png) -> Viele Parameter, Hohe Redundanz, Interpolation schwierig => deswegen ### Quaternionen (Rechenregeln) Definition: * Auffassung als hyperkomplexe Zahl * Mit $a,b,c,d$ $\epsilon$ Quaternion $q$ wie folgt beschrieben: $q=a+b*i+c*j+d*k$ * Mit $i^2 = j^2 = k^2 = ijk = -1$ $ij = -ji = k$ $jk = -kj = i$ $ki = -ik = j$ a ist der **Realteil**, $u = (b,c,d)^T$ der **Imaginärteil** $q = (a,b,c,d)^T$ oder auch $q=(a,u)^T$ #### Rechenregeln ![](https://i.imgur.com/9GmPK56.png) ### Rotationen mit Quaternionen ![](https://i.imgur.com/HwtvfOI.png) ![](https://i.imgur.com/UXbCkSY.png) Bewertung: * Intuitive Darstellung von Rotationen * Kompakte Darstellung (4 Werte) * Rotation direkt um gewünschte Achse ## Vorlesung 8 ### ~~Geometrisches Modell~~ nicht klausurrelevant ### Kinematisches Modell beschreibt die Zusammenhänge zwischen Raum der Gelenkwinkel und Raum des Lage Endeffektors Einsatzbereich * Bestimmung des Zusammenhangs zwischen Gelenkwerten und Stellungen * Erreichbarkeitsanalyse * Relation zwischen Körper des Roboters (Selbstkollision) * Relation zur Umgebung (Kollisionserkennung) ### Kinematische Kette Bildung von mehreren Körpern, die durch Gelenke kinematisch verbunden sind Konventionen * Jedes Armelement entspricht einem starren Körper * Armelemente sind durch ein Schub- oder Rotationsgelenk verbunden * Pro Gelenk nur ein Freiheitsgrad Beschreibung der Kinematik, Lage jedes Elements auf ein Referenzsystem zu definieren Vorgehen * Jedes Element festes lokales Koordinatensystem * Ursprung des KS liegt im Armgelenk, welches das Element bewegt * Für jedes Element muss eine Transformationsmatrix bestimmt werden, die das lokale KS auf BKS umwandelt * Umwandlung von lokalem KS in BKS durch Beschreibungsvektor oder 4x4 homogene Transformationsmatrix ### Denavit-Hartenberg Konvention (Vorteile?) Ziel: Reduktion der Parameter zur Beschreibung eines Armelementes mit Gelenk Eigenschaften: * Systematische Beschreibung der Beziehung zwischen benachbarten Gelenken * Reduktion Anzahl Parameter von 6 auf 4 Transformation vom OKS des i-ten Armelements auf das OKS des (i-1)-ten Elements * Koordinatensysteme liegen in den Bewegungachsen * z~i~-Achse liegt entlang der Drehachse des i+1-ten Gelenks * x~i~-Achse steht senkrecht zur z~i-1~-Achse und zeigt von ihr weg * Die y~i~-Achse bildet mit den anderen ein rechtshändiges KS ![](https://i.imgur.com/IMFNA3B.png) > [War des ne Beispiel Rechnung oder ist das relevant?-> relevant, wird auch in einer Rechenaufgabe zur Klausurvorbereitung verwendet] ![](https://i.imgur.com/QSC65BA.png) ### Direktes Kinematisches Problem Aus den DH-Parametern und den Gelenkwinkeln soll die Stellung des Greifers ermittelt werden Stellung des Greifers bezogen auf BKS Beispiel: ![](https://i.imgur.com/60V8xgQ.png) ![](https://i.imgur.com/ZvbDqQm.png) Zusammenfassung: 1. Skizze des Manipulators 1. Identifiziere und nummeriere die Gelenke (1, Letztes Glied = n) 1. Zeichne die Achsen z~i-1~ für jedes Gelenk i 1. Bestimme die Parameter ai zwischen z~i-1~ und z~i~ 1. Zeichne die x~i~ –Achsen 1. Bestimme die Parameter α~i~ (Verwindung um die x~i~-Achsen) 1. Bestimme die Parameter d~i~ (Gelenkabstand) 1. Bestimme die Winkel θ~i~ um z~i-1~-Achsen 1. Gelenk-Transformation-Matrizen A~i-1,i~ - verknüpfe sie ### ~~Inverse Kinematik~~ nicht klausurrelevant