n. alberto borghese laboratory of human motion...

29
1 Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/ Animazione Digitale lezione 1 N. Alberto Borghese Laboratory of Human Motion Analysis and Virtual Reality (MAVR) Department of Computer Science University of Milano Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/ Animazione digitale (3cfu) Stanza 205 10.30-11.30 Giovedì Su appuntamento Ricevimento MAVR (Stanza T316) Orario da concordare Laboratorio Progetti Aula Delta 11.30-14.30 Mercoledì Lezioni [email protected] Tel. (02)503.6325 Fax (02)503.16373 Strumento principale di contatto: email. http://homes.dsi.unimi.it/~borghese/Teaching/DigitalAnimation/_DA.html

Upload: others

Post on 08-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

1

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Animazione Digitalelezione 1

N. Alberto BorgheseLaboratory of Human Motion Analysis and Virtual

Reality (MAVR)Department of Computer Science

University of Milano

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Animazione digitale (3cfu)

Stanza 20510.30-11.30Giovedì

Su appuntamento

Ricevimento

MAVR (Stanza T316)

Orario da concordareLaboratorio

Progetti

Aula Delta11.30-14.30Mercoledì

Lezioni

[email protected]

Tel. (02)503.6325 Fax (02)503.16373

Strumento principale di contatto: email.http://homes.dsi.unimi.it/~borghese/Teaching/DigitalAnimation/_DA.html

Page 2: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

2

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Materiale didattico • Testo di riferimento: R. Parent, Computer

Animation, Morgan Kaufman, 2002.

• Per approfondimenti sull’animazione facciale: Parkeand Waters, Computer facial animation, Wellesley.

• Per una buona introduzione sulla geometria analitica: Gasapina e Marchionna, Appunti ed esercizi di geometria, editrice CLUP.

• Per una buona introduzione sulla geometria proiettiva: M. Penna e R. Patterson, Projective Geometry and its applications to Computer Graphics, Prentice-Hall, 1986.

• La bibbia della computer graphics: Foley, VanDam,Feiner, Huges – Computer Graphics: Principles & Practice in C.

• Appunti sulle trasformazioni del prof. Marini: http://klee.usr.dsi.unimi.it/~dan/PGL/doc/slides/

I lucidi delle lezioni saranno disponibili sul web dopo la lezione alla pagina WEB:http://homes.dsi.unimi.it/~borghese/Teaching/DigitalAnimation/slides/slides.html

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Altro materiale • Precedenze vivamente consigliate: informatica grafica e fisica.

• Software di animazione: Maya; 3D studio; XSI. Si può scaricare la Personal limited edition di Maya da: http://www.aliaswavefront.com/en/products/ maya/index.shtml.

• Si consiglia il corso FSE su Maya.

Volontari per riassumere ciascuna lezione per la didattica WEB-CENTRICA.

Page 3: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

3

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Attività sperimentale

Questo corso non deve essere un corso puramente teorico. Viene quindi richiesto agli studenti lo sviluppo di applicazioni di quanto visto a lezione. Allo scopo saranno a disposizione i laboratori del dipartimento ed in particolare il Laboratorio di Motion Analysis e Virtual Reality (MAVR) e l’utilizzo di Maya.

Modalità d’esame: progetto (docente o studente) + discussione del progetto ed orale.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Programma di massima•Introduzione & breve storia dell’animazione•La rappresentazione del corpo umano per l’animazione: proprieta’delle catene cinematiche articolate. •Definizione del movimento mediante differenti sistemi di coordinate.Cinematica diretta ed inversa. •Proprieta’ spazio-temporali del movimento umano. Coordinazione. •Motion capture. •Animazione facciale. •Morphing lineare e non-lineare.•Virtual set e Camera tracking.

Page 4: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

4

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Animazione digitale.

Soffio sulla creta che dà la vita, anima (Bibbia).

Animare = dare l’anima (la vita) a qualcuno.Digitale = da digit (cifra, numero).

Dare la vita sotto forma di numeri.

Possibilità di esprimere animazioni complesse con azioni semplici. Aspetti algoritmici.

Applicazioni. Multi-media e Realtà Virtuale.

Scopo di questo corso è fornire le basi degli algoritmi di animazione.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Animazione•Animazione di che cosa?

•Animazione = Cambiamento di aspetto, forma e/o posizione (algoritmi gerarchici). Curve di animazione.

•Proprietà dei modelli per l’animazione (controlli o handle).

http://www.vetorzero.com/kaya/

Page 5: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

5

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Curve di animazione

Spline interpolante Spline approssimante

Local control on the curve

Global control on the curve

P(t)•

t

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Key-framing

P(X,Y,Z) P(X+Tx,Y,Z)

Interpolazione tra due chiavi.

Page 6: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

6

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Le chiavi (keys)Variabili disomogenee: posizione, orientamento, scala, ma anche colore, tessitura, illuminazione, videocamera…. (avars).

L’interpolazione tra 2 chiavi può essere lineare

o polinomiale (spline) Interpolazione lineare

Interpolazione polinomiale

• Key values.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Come si crea un’animazione

1) Creazione di un modello 3D (scena + personaggi).

2) Definizione di una camera virtuale (punto di vista). NB la camera può muoversi.

3) Definizione del movimento dei personaggi e/o della scena.

Campionamento del movimento mediante camera virtuale (sequenza di fotogrammi).

Page 7: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

7

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Il sistema visivo e l’animazione digitaleVisione umana: immagini continue nel tempo.Visione di film: sequenza di immagini (discreta nel tempo, fotogrammi).

Fusione temporale delle immagini nella corteccia visiva (1800).

Fram

e #

TimeFr

ame

#Time

Flickering -> Animazione (25Hz/30Hz)

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Motion blur

Il nostro sistema visivo vede immagini “mosse”: i recettori integrano nel tempo.

Le immagini di animazione sono nitide, in quanto create campionando il movimento in un istante di tempo infinitesimo.

Il sistema visivo fa fatica a fondere le immagini statiche di movimenti veloci in un movimento continuo (effetto di strobing);

si alterano le immagini di animazione, creandole “come se” fossero create da un sistema di ripresa con tempo di cattura finito.

Page 8: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

8

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Gli albori dell’animazione

La musicista, Pierre Jaquet-Droz, (1753-1791)

Il giocatore di scacchi,Wolfgang von Kempelen, 1769

Gli automi moderni possono essere associati alle tecniche di stop-motion.Noi ci occuperemo di animazione creata mediante sequenze di immagini.

http://access.tucson.org/~michael/hm_intro.html

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

La nascita dell’animazione digitale

Zoetrope, 1820 circa

E. Muybridge, Humans figures in motion, 1901

+zoopraxinoscope

Page 9: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

9

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Origine dell’animazione digitale

Componente artistica.

Componente tecnologica.

Le animazioni vengono create da team misti con interazioni e scambi continui di informazione.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

La nascita dell’animazione “convenzionale” (2D)

Estensione del disegno, vignettisti:J. Stuart Blackton, animazione del fumo, 1900.W. McCay, Gertie the dinosaur, 1914.O.Messmer and P.Sullivan, Felix the cat, 1920.

Tecnologia e brevetti: John Bray (1915-1920):•Layers (translucent piece of papers).•Livelli di grigio.•Panning camera.

Walt Disney (1920-1930).•Storyboard. Personalità dei personaggi.•Sketch of motion•Audio! Fantasia (1940).

Page 10: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

10

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Macro-componenti di un’animazione digitale

•Soggetto / sceneggiatura. E’ il punto di partenza.•Personaggio. Personalità, fisionomia, gesti, colore, tessitura….

Struttura a layers

•Storyboard. Per ogni scena, un disegno rappresentativo.•Animazione. Linee di energia o stick diagram. Cel(lular) animation.

Copyright: Marini, Bertolo, Rizzi

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Chroma KeyTecnica multi-layer per unire spezzoni eterogenei.

L’attore viene ripreso su sfondo colorato uniforme (blue back)Il sistema di montaggio riconosce blue back e sostituisce trasparenza.

Page 11: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

11

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

L’animazione digitale (1970-1980)(verso il 3D)Periodo romantico

1970. Ivan Sutherland. “The ultimate display”. 1974. Fred Parke. Talking Faces. Modello di Parke. http://www-viz.tamu.edu/faculty/parke/fip.html.

1976. Norman Badler. Il primo avatar: Jack.http://www.cis.upenn.edu/~badler/vhlist.html.

1974. Hunger. Prima animazione che utilizza animazione digitale. Vincitore di un Academy Award.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

L’animazione digitale (1980-1990)L’intervento dell’industria.

Hardware. Silicon Graphics. Potenza grafica a costo medio. Z-buffer, anti-aliasing, visualizzazione rasterizzata. Grafica 3D in hardware.

Software. Alias, Wavefront e Softimage. SW integrati di modellazione, animazione e rendering.

Motion capture.

Applicazioni: militari (flight simulator) e cinematografiche.

Page 12: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

12

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Peter Gabriel’s video

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

L’animazione digitale (oggi)La diffusione del PC con schede grafiche e potenza di calcolo adeguate.

Possibilità di innovazione tecnologica capillare (piccole e grandi universita’). L’innovazione viene ancora per il 90% dall’Accademia, eventualmente in collaborazione con l’industria.

Realizzazione di prodotti a basso costo per multi-media: internet, televisione, pubblicità, video-giochi; non solo: scienza (fisica e chimica), medicina (pianificazione interventi), robotica (simulazione di robot complessi), storia, archeologia….

Interesse da parte dell’industria cinematografica pesante. Pixar e Lucas film (ora Dreamworks).

Page 13: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

13

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Animazione di personaggi

Cartoni animati. Scopo è solamente intrattenere. Toy Story (1995); Ants (1998); A Bug’s Life (1998); Toy Story2 (1999).

Cartoni animati con pretesa di realismo. Terminator 2 (1991); JurassicPark (1993); Re Leone (1994); Jiumanji (1995); Il ritorno di Batman (1995); Mars Attacks (1997); Ants (1998); Jar-Jar in Guerre Stellari, Io episodio (1999).

Personaggi umani. Tony de Peltrie (1985); Titanic (1998); Geri’sGame (1999) …..

E’ ancora un problema arrivare

ad un realismo sufficientemente

elevato (espressività).

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Programma•Introduzione & breve storia dell’animazione•La rappresentazione del corpo umano per l’animazione: proprieta’delle catene cinematiche articolate.•Definizione del movimento mediante differenti sistemi di coordinate.Cinematica diretta ed inversa. •Proprieta’ spazio-temporali del movimento umano. Coordinazione.Generazione del movimento digitale: interpolazione mediante key-framing. •Motion capture. •Animazione facciale. •Morphing lineare e non-lineare.

Page 14: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

14

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Sintesi del Movimento Umano

Approccio multi-layer:

•Scheletro.

•(Layer intermedi, derma, muscoli).

•Layer superficiale.

•Aspetto superficiale: pelle e vestiti.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

The human skeleton

Kinematics chain

Articulated structurehierarchical model

The motion of a parent node is applied also to all its child nodes.

Joints

Tree structure

Root

Links

End-effector

Page 15: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

15

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Rappresentazioni degli scheletri

Joints

Stick diagram

Root

Links

End-effector

Marini, Bertolo e Rizzi

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

The geometrical engine of skeleton animation (single segment)

•Rotazione(t)•Traslazione(t)

•(Scala(t))

Trasformazione istante per istante tra due spazi 3D:

P = [XP, YP, ZP] => P = [XP, YP, ZP, 1]Notazione omogenea:

Page 16: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

16

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Traslazione

Tutti i punti si spostano dello stesso vettore spostamento, T[Tx, Ty, Tz, 0].

1000T100T010T001

z

y

x

1ZYX

P

P

P

+++

1TZTYTX

zP

yP

xP

=Traslazione dell’origine dei sistemi di riferimento o del

baricentro.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Scala

Shrinkage, cambiamento di scala, S[Sx, Sy, Sz , 1].

10000S0000S0000S

z

y

x

1ZYX

P

P

P

1ZSYSXS

Pz

Py

Px

In questo esempio:Sx = Sz = 1 Sx = 0.5

Page 17: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

17

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Orientamento

Tre parametri: tre rotazioni.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Angoli di orientamentoModo generale: roll, pitch, e yaw.(ω, φ, k): rollio, beccheggio e deriva.

Sono 3 rotazioni sequenziali, non commutative.

Page 18: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

18

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Matrici di rotazione e angoli di orientamento

P’ =

y’

x

y

k = 30o

x’

•P

P = (x,y,0) = ( )0,1,2/32

−10002/32/102/12/3

01

2/32

Modo generale: roll, pitch, e yaw.(ω, φ, k): rollio, beccheggio e deriva. Rω =

ωω−ωω

cossin0sincos0

001

Rφ =

φφ−

φφ

cos0sin010

sin0cos

Rκ =

1000kcosksin0ksinkcos

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Dalle rotazioni alla matrice di rotazione

Come è legata R alle tre rotazioni indipendenti?

Si ricava eseguendo le rotazioni sequenziali. Ogni rotazione tiene fermo un asse e agisce sul piano perpendicolare.

Rotazioni “semplici” utilizzate dai programmi di animazione, gestione matriciale efficiente del calcolo.

−+−+−

−−

)cos()cos()()()cos()cos()()cos()()cos()()()cos()()()()()cos()cos()cos()()()()cos(

)()()cos()cos()cos(

ϕϕϕϕϕϕ

ϕϕ

wksinsinwkwsinksinwksinwsinwsinksinsinwsinkwksinwsinksinw

ksinksink

R =

Page 19: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

19

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Description of the linksA – Frontal planeB – Sagittal planeC – Horizontal plane

Definition of the interesting degrees of freedom.

Abduction/adductionFlexion/extensionAxial rotation (V)

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Verso una rappresentazione matriciale dell’orientamento

La direzione di r e r1 è data dai coseni direttori: [ cos(α), cos(β), cos(γ)]Coseni degli angoli rispetto agli assi orientati.

Nessuna delle rappresentazioni viste in precedenza si adatta ad una manipolazione matriciale.

P•

ABBA 22

cos(β) =

Page 20: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

20

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Dalle rotazioni alla matrice di rotazioneLa rotazione può essere rappresentata in forma matriciale {rij} come:

10000rrr0rrr0rrr

333231

232221

131211

1zyx

P

P

P

1ZYX

P

P

P

=

r11, r12, r13 danno la direzione dell’asse X rispetto agli assi x,y e z.XP = r11 xP + r12 yP + r13 zP.

X = [cos(Xx) cos(Xy) cos(Xz)]XP = PH = xPcos(Xx) + yPcos(Xy) + zPcos(Xz)

Relazioni di ortonormalità1r

3

1i

2i =∑

=0rr

3

1j

3

1iji =∑∑

= =

Det(R) = 1

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Le matrici affini

P’ = RP + T => P’ = AP

1000TrrrTrrrTrrr

z333231

y232221

x131211

1ZYX

P

P

P

1'Z'Y'X

P

P

P

=X’P=r11XP+ r12YP + r13ZP +Tx

P = RTP’ – RTT=> P = A-1P’

++++++

1000TrTrTrrrrTrTrTrrrrTrTrTrrrr

z33y23x13332313

z32y22x12322212

z31y21x11312111

1ZYX

P

P

P

1'Z'Y'X

P

P

P

=

XP=r11X’P+ r21Y’P + r31Z’P – r11Tx – r21Ty – r31Tz

Page 21: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

21

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Key-framing e rotazioniLe rotazioni si ottengono interpolando orientamenti

diversi in istanti di tempo diversi.

ω = 10; φ= 30, k = -10 gradi.

Non si possono interpolare gli elementi della matrice di rotazione.

8529.01504.05.00855.09849.01504.05151.00855.08529.0

M1 =

ω = 10; φ= 50, k = -10 gradi.

M2 =

633.01116.0766.004.09929.01116.0

7731.004.0633.0

−−

7429.0131.0633.00628.09889.0131.06441.00628.07429.0

M = Det(M) <1

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Key-framing e rotazioni (II)Le rotazioni si ottengono interpolando orientamenti diversi

in istanti di tempo diversi.

ω = 10; φ= 30, k = -10 gradi.

Si potrebbero interpolare gli angoli.ω = 10; φ= 50, k = -10 gradi.ω = 10; φ= 40, k = -10 gradi.

Discontinuità nel codominio.

Rotazione. Movimento tale per cui esiste una retta i cui punti hanno

spostamento nullo. Detta retta si chiama asse di rotazione.

ω = 10; φ= 10, k = -10 gradi. ω = 10; φ= 350, k = -10 gradi.ω = 10; φ= 180!, k = -10 gradi.

Page 22: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

22

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

I quaternioni

Asse di rotazione v(vx, vy, vz).Angolo di rotazione s.

s v(vx,vy,vz).

q = [cos(s/2), sin(s/2)vx, sin(s/2)vy, sin(s/2)vz]

Breve matematica (i quaternioni costituiscono un corpo)Somma: q1 + q2 = [s1+s2, v1 + v2]Prodotto: q1 · q2 = [(s1·s2 – v1 x v2), (s1·v2+ s2·v1 + v1 Λ v2 )]Inversa: q-1 = (1/||q||)2 · [s, -v] Coniugato: qc = [s, -v] si ottiene la rotazione in direzione opposta.Norma: || q || = 1 se v è versore dell’asse.

Il prodotto non è commutativo: q1 · q2 ≠ q2 · q1.Il prodotto è associativo: (q1 · q2) · q3 = q1 · (q2 · q3).

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Applicazione dei quaternioniRotazione di un punto P(X, Y, Z). P viene rappresentato come quaternione Pq[0, X, Y, Z]

Pq’(0, X’, Y’, Z’) = q1 Pq q1c

La matrice di rotazione si può ottenere da q[s,l,m,n] come:

+−−+−−−+−+

+−−−+

2222

2222

2222

nmls)slmn(2)sm(ln2)slmn(2nmls)snlm(2)sm(ln2)snlm(2nmls

R=

Rotazioni successive, per la proprietà associativa, possono essere associate come:

Pq’(0, X’, Y’, Z’) = (q2q1) Pq (q1 q2 )c

Page 23: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

23

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Key-framing con i quaternioniKey-framing: dati q1 e q2 una qualsiasi rotazione intermedia, q, si può ottenere interpolando i quaternioni. Come?

Proiezione sulla circonferenza unitaria: q’= q1 + q2 => q = q’ / || q ||

In generale, sia u un parametro, u = [0 1], che trasforma con continuità da q1 a q2, risulta: (ricordare che: cos(θ) = q1 x q2 ).

q = [(sin(1-u)θ]/(sinθ)q1 + [(sin(uθ)]/(sinθ)q2

Progetto I. Quaternioni, matrici di rotazione, angoli rispetto agli assi.

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Riassunto•Il movimento di un segmento scheletrico (corpo rigido) si può esprimere mediante: rotazione, traslazione e scala.

•Queste si possono inserire in un’unica matrice, matrice affine.

•Il movimento inverso si ottiene opportunamente modificando la matrice affine.

•La rotazione può essere implementata in vario modo, il modo più efficiente è mediante i quaternioni.

•Il movimento viene poi ottenuto interpolando i parametri che definiscono la posizione e orientamento del segmento (key framing).

Page 24: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

24

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Rappresentazione dello scheletro nello spazio

Root. Trasforamzione completa: Posizione, Rotazione, Scala.

Joints

Tree structure

Root

Links

x

y

z

Troot

End-effector

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Degrees of freedom di

uno scheletro

Page 25: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

25

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Posizione dei segmenti (esempio)

1000TrrrTrrrTrrr

z333231

y232221

x131211

1ZYX

P

P

P

1'Z'Y'X

P

P

P

=

P’ = A P

end effector

link0

+

link1

+

O

root

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Posizione dei segmenti (I)

Pe =[0 0 0 1]

X

Y

Z

end effector

link1

link0

+

+

root

O

link1

O

link0

+

+

x r

y rzr

Trasformiamo Pe fino ad esprimerlo nel sistema di

riferimento assoluto XYZ.

Page 26: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

26

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Posizione dei segmenti (II)

PeP1_L1 = AP1_L1 Pe = [l1, 0 , 0, 1]

AP1_L1 =

100001000000l001 1

Pe =[0 0 0 1]

link1

O

link0

+

+

x ey e

ze

P1

X

Y

Z

l1end effector

link1

link0

+

+

root

O

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Posizione dei segmenti (III)

AP1_L0 =

αα−αα

1000010000cossin00sincos

link1

O

link0

+

+

x ey e

ze

P1

Pe =[0 0 0 1]

X

Y

Z

end effector

link1

link0

+

+

root

x0

y0

α−

α

10sinl

cosl

1

1

PeP1_L0 = AP1_L0 Pe

P1_L1 =

P1 = [l1, 0 , 0, 1]

Page 27: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

27

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Posizione dei segmenti (IV)

AP0_L0 =

100001000010l001 0

Pe =[0 0 0 1]

X

Y

Z

end effector

link1

link0

+

+

root

O

α−+α

10sinl

lcosl

1

01

PeP0_L0 = AP0_L0 Pe

P1_L0 =

α−α

10sinl

cosl

1

1

PeP1_L0 =

link1

O

link0

+

+

x ey e

ze

P1

α

x0

y0

x0y0P0

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Posizione dei segmenti (V)

PeP0_ABS = AP0_ABS Pe

P1_L0 =

AP0_ABS =

−−−−−

1000010000)90cos()90sin(00)90sin()90cos(

link1

O

link0

+

+

x ey e

ze

P1

Pe = [0 0 0 1]

X

Y

Z

end effector

link1

link0

+

+

root

x0

y0

+αα

10

lcoslsinl

01

1

x0y0

P0

α−

10sinl

lcosl

1

01

PeP1_L0 =

Page 28: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

28

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Posizione dei segmenti (VI)

PeABS_ABS = AABS_ABS Pe

P0_ABS =

AABS_ABS =

10000100T010T001

y

x

link1

O

link0

+

+

x ey e

ze

P1

Pe =[0 0 0 1]

X

Y

Z

end effector

link1

link0

+

+

root

x0

y0

++α

10

TylcoslTsinl

01

x1

x0y0P0

PeP1_ABS =

+αα

10

lcoslsinl

01

1

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Nuovo sistema di riferimento assolutoPe

ABS_N = AABS_N PeABS_ABS =

PeABS_ABS =

++α

10

TylcoslTsinl

01

x1

AABS_N =

link1

O

link0

+

+

x ey e

ze

P1end effector

link1

link0

+

+

root

O

Z = Z’

Pe =[0 0 0 1]

X’

Y’

α

x0

y0

x0y0P0

X

Y

ββ−ββ

1000010000cossin00sincos

β++α+β+α−

β++α+β+α

10

cos)Tylcosl(sin)Tsinl(sin)Tylcosl(cos)Tsinl(

01x1

01x1

Page 29: N. Alberto Borghese Laboratory of Human Motion …homes.di.unimi.it/~borghese/Teaching/DigitalAnimation/...1 Laboratory of Motion Analysis & Virtual Reality, MAVR borghese/ Animazione

29

Laboratory of Motion Analysis & Virtual Reality, MAVR http://homes.dsi.unimi.it/~borghese/

Riassunto• Il movimento dell’end effector viene espresso in funzione della geometria (lunghezze dei segmenti) e dei parametri liberi (rotazione dei vari segmenti e posizione della radice).

• Le rotazioni vengono definite in un sistema di riferimento locale.

• Per ottenere la trasformazione delle coordinate dell’end-effector da sistema locale a sistema globale occorre….

fattorizzare le matrici di trasformazione.

PeABS_ABS =(AABS_ABS AP0_ABS AP0_L0 AP1_L0 AP1_L1 )Pe

Pe = [0 0 0 1]