(6) Drehdynamik Vorlesung „Animation und Simulation“ S. Müller UNIVERSITÄT KOBLENZ · LANDAU Interpolation von Quaternionen Quaternionen eignen sich speziell zur Interpolation für Animationen etc. Verschiedene Arten der Interpolation: linear: lerp(t, q1, q2) sphärisch-linear: slerp(t, q1, q2) sphärisch-quadratische: squad(t, q1, q2, a, b) UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 2 - Lineare Interpolation (lerp) Lineare Interpolation: Wichtig: lerpt , q1 , q2 1 t q1 t q2 Norm verändert sich Daher muss nach jedem Schritt renormalisiert werden. q q q * w2 x 2 y 2 z 2 q q q UNIVERSITÄT KOBLENZ · LANDAU Oben: mit Renormalisierung Unten: ohne Renormalisierung S. Müller - 3 - Beispiele: lerp Kein Gimbal Lock! (animiertes GIF: Gesamtbewegung) (animiertes GIF: Gesamtbewegung) UNIVERSITÄT KOBLENZ · LANDAU Nachteil: keine konstante Winkelgeschwindigkeit S. Müller - 4 - Sphärisch-lineare Interpolation (slerp) qt Hilfreiche Betrachtung: ein Einheits-Quaternion beschreibt eine „HyperEinheitskugel“ im 4D-Raum mit: q1 x 2 y 2 z 2 w2 1 qt c1 t q1 c2 t q2 … wobei co und c1 zu bestimmen sind … UNIVERSITÄT KOBLENZ · LANDAU 1 t q2 0 Gesucht ist eine Interpolation … t … mit gleichen Winkeln bzw. Bogenlängen, wobei: cos q1 q2 qt , q1 , q2 4 ; 0 t 1; 0 S. Müller - 5 - cos q1 q2 qt Slerp q1 Es gilt: cost q1 qt q1 c1 t q1 c2 t q2 c1 t cos c2 t t 1 t 0 cos1 t cos c1 t c2 t Auflösen ergibt: cost cos cos1 t sin 1 t c1 t 2 1 cos sin c2 t cos1 t cos cost sin t 2 1 cos sin UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 6 - q2 Slerp Sphärisch-lineare Interpolation: slerpt , q1 , q2 Man kann zeigen, dass… slerp0, q1 , q2 q1 slerp1, q1 , q2 q2 slerpt , q1 , q2 1 slerp' t , q1 , q2 sin 1 t q1 sin t q2 sin Vorteile: Nachteile: UNIVERSITÄT KOBLENZ · LANDAU Norm verändert sich nicht, daher ist keine Renormalisierung nötig. Konstante Winkelgeschwindigkeit Nur für zwei „Keyframes“ geeignet squad Numerisch instabil durch Quotient Sonderfälle S. Müller - 7 - Unterschiedliche Interpolationen Euler-Winkel UNIVERSITÄT KOBLENZ · LANDAU Angle-Axis Quaternionen S. Müller - 8 - Sphärisch-Quadratische Interpolation slerp interpoliert nur zwischen zwei Quaternionen Lösung: Spline-Interpolation zwischen Quaternionen: squad t , q0 , q1 , q2 , q3 slerp2t 1 t ; slerpt , q0 , q3 , slerpt , q1 , q2 Vorteile: Interpolation zwischen mehreren Quaternionen Algorithmus auf slerp basierend Man kann zeigen, dass squad 0, q0 , q1 , q2 , q3 q0 squad 1, q0 , q1 , q2 , q3 q3 UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 9 - Kinematik der Drehbewegung UNIVERSITÄT KOBLENZ · LANDAU Vektorielle Drehbewegung d t d t nt n Durch die Axis-Angle-Repräsentation haben wir eine Darstellung für die gesuchte, vektorielle Drehbewegung gefunden. Ein starrer Körper drehe sich um einen sehr kleinen Winkel d um eine (normierte) Achse n. d t d t nt d d Dann definieren wir: Man beachte: damit haben wir die Orientierung durch 3 Komponenten festgelegt (3DOF) UNIVERSITÄT KOBLENZ · LANDAU r' r O Die infinitesimale Betrachtung ist nötig, da es sich um eine „Momentaufnahme“ handelt, da sich auch die Lage der Achse zeitlich verändern kann. S. Müller - 11 - Winkelgeschwindigkeit und -beschleunigung Die Winkelgeschwindigkeit kann ebenfalls als Vektor dargestellt werden: d t t t dt sie zeigt ebenfalls in Richtung der Drehachse der Betrag entspricht der Winkelgeschwindigkeit, mit der um die Achse gedreht wird. d d r' r O d t t t dt 2 t d d t d t t t t 2 dt dt dt UNIVERSITÄT KOBLENZ · LANDAU Analog: Winkelbeschleunigung S. Müller - 12 - d Verschiebung Was noch fehlt, ist der Zusammenhang zwischen der Rotation und der Translation. Ein Punkt, dessen Lage durch den Ortsvektor r mit dem Ursprung irgendwo auf der Drehachse gegeben ist, verschiebt sich nach: dr t d t r t Dieser Vektor zeigt tangential zur Drehbewegung UNIVERSITÄT KOBLENZ · LANDAU A d r O Damit haben wir den wichtigen Zusammenhang zwischen einer Drehbewegung (Winkel, Winkelgeschw. und –beschleunigung) und der Verschiebung (Weg, Geschwindigkeit, Beschleunigung) S. Müller - 13 - Winkelgeschwindigkeit da v t t r t Für die Geschwindigkeit gilt: vO dr d v r r r dt dt Für einen gegebenen Zeitpunkt t ist die Achse bestimmt. Für den betrachteten Punkt ist damit auch der (richtungsändernde !) Geschwindigkeitsvektor bekannt. UNIVERSITÄT KOBLENZ · LANDAU r r O Wenn der Ursprung sich selbst mit vO(t) bewegt. So hat der Punkt r(t) die Geschwindigkeit: v t vO t t r t Translation und Rotation können also unabhängig voneinander berechnet werden. S. Müller - 14 - Ableitung einer Rotationsmatrix Man nehme einen Startpunkt r0 (konstant !), eine Rotationsformel R(t) und kennt den Ort r(t) für jeden Zeitpunkt t r t Rt r0 Die erste Ableitung liefert uns die Geschwindigkeit, bzw. Winkelgeschwindigkeit r t R t r0 t r t Einsetzen der ersten Gleichung liefert R t r0 D t Rt r0 und damit R t D t Rt … das bedarf einer Interpretation… R t r0 D t r t In Matrixschreibweise UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 15 - Interpretation: Ableitung einer Matrix R t D t Rt Gegeben ist eine Orientierung R(t) des lokalen Koordinatensystems zum Zeitpunkt t Damit ist auch die (bislang konstante) Drehachse n bekannt (also um welche Achse man das Weltkoordinatensystem in das Koordinaten R(t) dreht). Der D-Operator liefert dann das Kreuzprodukt der Drehachse n auf die 3 Koordinatenachsen von R(t) … und damit den Geschwindigkeitsvektor der Achse 0 Rt D t Rt nz n y UNIVERSITÄT KOBLENZ · LANDAU nz 0 nx n y nx a b c n a n b n c 0 S. Müller - 16 - Bsp 1: Rotation um z-Achse (Vektor) Die x-Achse r0=(1,0,0)T wird mit konstanter Winkelgeschwindigkeit 0 um die zAchse gedreht. Bestimmen sie den Geschwindigkeitsvektor zum Zeitpunkt t. y v r r r0 UNIVERSITÄT KOBLENZ · LANDAU x 0 0 0 1 1 r0 0 0 r t Rt r0 cz sz 0 sz cz 0 0 1 cz 0 0 sz 1 0 0 v t r t 0 cz sz 0 0 s z 0 c z 1 0 0 S. Müller - 17 - Bsp. 2: Rotation um z-Achse (Matrix) =(1,0,0)T Die x-Achse r0 wird mit konstanter Winkelgeschwindigkeit 0 um die zAchse gedreht. Bestimmen sie den Geschwindigkeitsvektor zum Zeitpunkt t. 1 r0 0 0 0 0 0 1 UNIVERSITÄT KOBLENZ · LANDAU r t R t r0 D t Rt r0 0 1 0 cz r t 0 1 0 0 s z 0 0 0 0 0 1 0 cz r t 0 1 0 0 s z 0 0 0 0 sz 0 c z 0 sz cz 0 0 1 0 0 1 0 S. Müller - 18 - Alternative Herleitung … aus der Rotationsformel r t n n T cos t E n n T sin t Dn r0 Die Ableitung nach der Zeit liefert: r t t sin t E n n T t cos t Dn r0 Die Behauptung ist: R t D t Rt Einsetzen liefert: D t n n T t n n n T Term 1 0 Annahme: Drehachse ist konstant, also n nicht von der Zeit abhängig. cos t D t E n n T cos t D t D t n n T cos t D t Term 2 sin t D t Dn t sin t D 2 n t sin t n n T E Term 3 (wir hätten also auch über die Rotationsformel die Winkelgeschwindigkeit herleiten können) UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 19 - y Fazit z rw t r0 Weltkoord. x n b r t Rt r0 a O c Weltkoordinate von einem Punkt zum Zeitpunkt t: rw t Ot r t Ot Rt r0 Geschwindigkeit mit Angle-Axis-Darstellung v t vO t t r t vO t D t r t Geschwindigkeit mit Matrixdarstellung v t vO t R t r0 vO t D t Rt r0 UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 20 - Winkelgeschwindigkeit Für Quaternionen berechnet sich die Winkelgeschwindigkeit mit: dqt 1 wt qt dt 2 wobei w(t) eine Quaternionenrepräsentation der Winkelgeschwindigkeit ist mit: 0, x , y , z Der Betrag von w(t) ist nicht notwendigerweise 1 (ist ok!). Herleitung/Begründung s. Eberly Kap. 10.6 UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 21 - (7) Rigid Bodies - Starrkörper Vorlesung „Animation und Simulation“ S. Müller UNIVERSITÄT KOBLENZ · LANDAU Impuls Für einen Massepunkt mit Masse m und Geschwindigkeit v(t) lässt sich der Impuls p(t) (engl. linear momentum) als weitere Zustandgröße definieren pt m v t Annahme hierbei: die Masse verändert sich nicht (Starrkörper) dpt d (mv t ) F t pt m v t ma t dt dt Eine Kraft lässt sich also auch als Impulsänderung pro Zeit interpretieren. UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 23 - Impulssatz Für ein abgeschlossenes System (keine externen Kräfte) lässt sich aus dem 3. Newtonschen Axiom der Impulssatz herleiten. Betrachtet man 2 Massepunkte A und B: mA mB F mA mB mA F mB vA A übt Kraft F auf B aus Der Gesamtimpuls des Systems ist: p(t ) mA v A t mB vB t UNIVERSITÄT KOBLENZ · LANDAU 3. Newton Axiom B übt Kraft -F auf A aus S. Müller - 24 - Impulssatz Der Gesamtimpuls ist konstant, denn p(t ) mAv A t mB vB t mA a A t mB aB t F t F t 0 Allgemein gilt: der Gesamtimpuls N pt mi ri (t ) i 1 eines abgeschlossenen Systems aus N Massepunkten ins zeitlich konstant UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 25 - Kollisionsbehandlung Es gibt eine Kollisionserkennung und eine –behandlung. Für eine Kollisionsbehandlung brauchen wir (vom bewegten Objekt aus gesehen): Kontaktpunkt P Die Kontaktnormale n (Oberflächennormale des Kontaktpunktes vom Kollisionsobjekt) Zeitpunkt t Kollisionsobjekt UNIVERSITÄT KOBLENZ · LANDAU n P vA vB Wichtig für die Kollisionsbehandlung ist die Realtivgeschwindigkeit projiziert auf die Normale. d v AB n v A vB n S. Müller - 26 - d v AB n v A vB n Kollisionsbehandlung Es gibt 3 Arten von Kollisionen vA vA n vA P vB vB n vB vA P n P vB vA d 0 d 0 Coliding contact Resting contact Separation Kollisionsbehandlung Nicht in dieser Vorlesung Nichts zu tun UNIVERSITÄT KOBLENZ · LANDAU vA vB d 0 Kontaktart: vB S. Müller - 27 - Elastischer/Inelastischer Stoß Eigentlich ergibt sich eine Kraft aus der Impusländerung pro Zeit Annahme beim idealen Stoß: der Impuls ändert sich sofort Der Impuls ändert sich in Richtung der Normalen, da keine Reibung berücksichtigt wird. Gemäß „actio gleich Reactio“ erhält der andere Körper den entgegengesetzten Impuls p A p A p n pB pB p n n P UNIVERSITÄT KOBLENZ · LANDAU p A p B pn pn „-“: vor dem Stoß „+“: nach dem Stoß Eine Unbekannte: p (Skalar!) S. Müller - 28 - Elastischer/Inelastischer Stoß v AB Die Relativgeschwindigkeit der beiden Objekte läßt sich in 2 Komponenten zerlegen v AB In Richtung der Normalen Entlang der Oberfläche Die Geschwindigkeit entlang der Oberfläche bleibt unverändert (außer bei Reibung) Die Geschwindigkeit entlang der Normalen wird reflektiert und mit der Elastizität e des Materials skaliert. UNIVERSITÄT KOBLENZ · LANDAU e 1 0 e 1 e 0 Stoßgesetz v AB n e v AB n S. Müller - 29 - Kollisionsbehandlung Aus folgt p A p A p n pB pB p n p n v A v A mA p n vB vB mB n e v AB n v AB Einsetzen liefert: und schließlich Subtraktion liefert 1 1 v A vB v A vB p n m m A B 1 1 v AB p v AB n m m A B UNIVERSITÄT KOBLENZ · LANDAU Bestimmung von p mit Hilfe des (In-)elastischen Stoßes: 1 1 n p n v AB e v AB m A mB 1 1 n p 1 e v AB m A mB 1 e v A vB n p mA1 mB1 S. Müller - 30 - Kollisionsbehandlung (nur Translation) Resultat ist ein neuer Geschwindigkeitsvektor (bzw. Impulsvektor) p p 1 e v A vB n vA vA n n vB vB p mA mB mA1 mB1 Behandelt wird hier nur ein Kontaktpunkt (mehrere Kontaktpunkte s. Eberly) Relevant für alle Berechnungen ist nur die inverse Masse (gleich m-1 in die Datenstruktur aufnehmen!) Ein unbeweglicher Körper (Fußboden, Wand) kann durch eine inverse Masse von 0 definiert werden. UNIVERSITÄT KOBLENZ · LANDAU S. Müller - 31 - mA Beispiel e 1 e 0 vA 1 vB 0 mB 0 1 e v A vB n p m A1 mB1 2 v A n m A1 p n v A v A mA v A 2 v A n n 1 e v A vB n p m A1 mB1 v A n m A1 p v A v A n mA v A v A n n UNIVERSITÄT KOBLENZ · LANDAU v A pn v A (Reflexion) p n vA v A (Kontakt) S. Müller - 32 -