t - userpages

Werbung
(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:
lerpt , 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)

qt 
Hilfreiche Betrachtung: ein
Einheits-Quaternion
beschreibt eine „HyperEinheitskugel“ im 4D-Raum
mit:
q1
x 2  y 2  z 2  w2  1

qt   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
qt , q1 , q2  4 ; 0  t  1; 0    
S. Müller - 5 -
cos   q1  q2
qt 
Slerp

q1
Es gilt:
cost   q1  qt 
 q1  c1 t   q1  c2 t   q2 
 c1 t   cos   c2 t 
t

1  t 
0
cos1  t    cos   c1 t   c2 t 

Auflösen ergibt:
cost   cos   cos1  t   sin 1  t  
c1 t  

2
1  cos  
sin  
c2 t  
cos1  t    cos   cost  sin t 

2
1  cos  
sin  
UNIVERSITÄT
KOBLENZ · LANDAU
S. Müller - 6 -
q2
Slerp


Sphärisch-lineare
Interpolation:
slerpt , q1 , q2  
Man kann zeigen, dass…
slerp0, q1 , q2   q1

slerp1, q1 , q2   q2
slerpt , 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 
 slerp2t 1  t ; slerpt , q0 , q3 , slerpt , 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   nt 


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   nt 
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   Rt   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   Rt   r0
und damit

R t   D t   Rt 
… 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   Rt 
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



Rt   D t   Rt    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   Rt   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   Rt   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   Dn  r0
Die Ableitung nach der Zeit liefert:

 
 
r t     t   sin  t   E  n  n T    t  cos  t   Dn  r0
Die Behauptung ist:

R t   D t   Rt 
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   Dn 

  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   Rt   r0

a
O

c
Weltkoordinate von einem Punkt zum Zeitpunkt t:



rw t   Ot   r t   Ot   Rt   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   Rt   r0
UNIVERSITÄT
KOBLENZ · LANDAU
S. Müller - 20 -
Winkelgeschwindigkeit




Für Quaternionen berechnet sich die Winkelgeschwindigkeit mit:
dqt  1
 wt qt 
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


pt   m  v t 
Annahme hierbei: die Masse verändert sich nicht
(Starrkörper)



dpt  d (mv t )



F t   pt  

 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


pt    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

pn

 pn
„-“: 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
mA1  mB1
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
mA1  mB1
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 A1  mB1
 
 2  v A  n

m A1
p 


n
v A  v A 
mA

  
 v A  2  v A  n  n
 

 1  e   v A  vB  n
p
m A1  mB1
 
 v A  n

m A1
p 


v A  v A 
n
mA
   
 v A  v A  n  n
UNIVERSITÄT
KOBLENZ · LANDAU

v A
 
pn

v A
(Reflexion)
 
 p  n
vA

v A
(Kontakt)
S. Müller - 32 -
Herunterladen