Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tik Animaatio ja mallintaminen

Samankaltaiset esitykset


Esitys aiheesta: "Tik Animaatio ja mallintaminen"— Esityksen transkriptio:

1 Tik-111.450 Animaatio ja mallintaminen
5.luento: rigid body dynamics, physically based models, constraints 26.2. ja Tassu Animaatio luento 5

2 Sisältö fysiikan kertausta: Newtonin lait, vapaakappalemalli, translaatioliike pyörimisliike: erottaminen translaatiosta, liikeyhtälöt vuorovaikutusvoimia: gravitaatio, (sähkö/magnetismi), jousto, viskositeetti, törmäykset, kitka numeerista integrointia: Euler, Simpson, ... vapaa liike avaruudessa, planeetat, raketti pyörimisliikkeen sivuvaikutukset: coriolis, prekessio kovien esineiden törmäykset, liikemäärän yhtälöt impulssin laskenta, esimerkkejä: biljardipallot, kuutiot jousiyhtälöt, joustava törmäys kitkavoimat holonomiset rajoitteet, kinemaattisten rakenteiden dynamiikka, rankaisuvoima käänteisdynamiikka, teleologinen mallintaminen esimerkkejä videolta... Harjoitustehtävä: biljardi, pöydälle putoava kuutio (tai palloja), tms. 26.2. ja Tassu Animaatio luento 5

3 Fysiikan kertausta (1) Peruskäsitteitä Newtonin lait
paikka x, nopeus v = dx/dt, kiihtyvyys a = dv/dt = d2x/dt2 voima F, Massa m, Newtonin lait (1) inertia (2) F = ma (3) vastavoima Analogisesti pyörimisliikkeelle asento f, kulmanopeus w = df/dt, kulmakiihtyvyys a = dw/dt = d2f/dt2 kätevää esittää asento ja sen derivaatat vektorina tai kvaterniona momentti T = Fh, hitausmomentti I (1) pyörimisnopeus ja -akseli säilyvät (2) T = Ia (3) vastamomentti Vapaakappalemalli translaatio ja rotaatio erotetaan toisistaan: summataan voimat massakeskipisteeseen (CM) ja momentit CM:n ympäri kytketyt objektit irrotetaan (vuorovaikutus voimaparina) kappaleen liikeyhtälöt lasketaan CM:lle 26.2. ja Tassu Animaatio luento 5

4 Yksinkertaisia tapauksia
vapaa liike avaruudessa, planeetat, raketti, heitetty esine… Kuva Alonso-Finn 26.2. ja Tassu Animaatio luento 5

5 Fysiikan kertausta (2) Liikemäärä p = mv [kg m/s]
törmäyksissä Sp säilyy Liike-energia E = 1/2 mv2 = pv = p2/2m [kg m2/s2] säilyy, jollei ulkoisia voimia voiman tekemä työ E = F∆x [F ≈ kg m/s2] Vuorovaikutusvoimia jousivoima F ≈ ∆x gravitaatio F ≈ m1m2/d2 magneettikenttä F ≈ qB  v kitka F ≈ Fn virtausvastus F ≈ vA Potentiaalienergia voimakentässä esim. gravitaatiolle E = mg∆x 26.2. ja Tassu Animaatio luento 5

6 26.2. ja Tassu Animaatio luento 5

7 26.2. ja Tassu Animaatio luento 5

8 26.2. ja Tassu Animaatio luento 5

9 26.2. ja Tassu Animaatio luento 5

10 Pistemassan liikeyhtälö
m d2x/dt2 + ß dx/dt + k x = ∑ Fext Käyttökelpoinen monessa yhteydessä! Esim. teleskooppijalka Ratkaisuna harmoninen liike x(t) = x0 e -ßt cos(t √ k/m 2π) m k ß x F 26.2. ja Tassu Animaatio luento 5

11 Fysiikan numeerinen laskenta
Perusyhtälöt integraaleja: a(t) =  F(t) / m ; v(t) =  a dt ; x(t) =  v dt Diskretoidaan differenssikaavoiksi: numeerista integrointia ! Eulerin menetelmä: v(t+∆t) = v(t) + ∆t a(t); x(t+∆t) = x(t) + ∆t v(t) Ongelmia virheet kumuloituvat nopeasti epästabiilisuus “Neptune effect” Askeleen ∆t pienentäminen pienentää virheitä lisää laskentatyötä 26.2. ja Tassu Animaatio luento 5

12 Muita integrointimenetelmiä
Puolisuunnikassääntö A = ∆x (f(x) + f(x+∆x)) / 2 Midpoint rule A = ∆x f(x+∆x/2) virheet kumuloituvat paljon hitaammin! kuten Euler, mutta lasketaan nopeus puolen askeleen vaihesiirrossa a(t) = F(t) / m ; v(t+∆t/2) = v(t-∆t/2) + ∆t a(t) ; x(t+∆t) = x(t) + ∆t v(t+∆t/2) Simpsonin kaava 2 polynomiapproksimaatio Runge-Kutta suositeltavin menetelmä A A 26.2. ja Tassu Animaatio luento 5

13 Pyörimisliike Kappaleen hitausmomentti z-akselin ympäri
Iz =   (x2 + y2) dV Hitausmomentin laskenta kaikkien suuntien suhteeen matriisimuodossa Iobj = Rotaatiolla akselit käännettävissä niin että matriisi diagonaalinen  saadaan kappaleen pääakselit Kunkin pääakselin ympäri pyöriminen helppoa, analogiset kaavat translaatioliikkeen kanssa Yleisessä tapauksessa hitausmomentti muuttuu pyörimisliikkeen mukana laskettava joka hetki uudelleen tapahtuu similariteettimuunnoksella I (t) = R(t) Iobj R-1(t) Similariteettimuunnos siirtää maailman sopivaan koordinaatistoon, jossa Iobj operoi, ja sitten takaisin Tuttua grafiikasta ? vrt. rotaatio/skaalaus kiintopisteen suhteen… 26.2. ja Tassu Animaatio luento 5

14 Hitausmomentin laskenta
Numeerinen integrointi Iz =   (x2 + y2) dV  Iz ≈ ∑i  (x2 + y2) Vi Yksinkertaisille muodoille tarkkoja kaavoja Monimutkainen muoto jaetaan osiin, joiden hitausmomentit summataan (etäisyyden neliöllä painotettuina) esim. kuutiot karusellissa Hankalammat muodot pilkotaan viipaleiksi tai vokseleiksi, jotka summataan äärellisinä tilavuuselementteinä toimii myös tiheydeltään vaihtelevalle materiaalille Analogisesti lasketaan muitakin tilavuusintegraaleja, esim. massakeskipiste CMx = 1/M  x dV , jossa M =   dV 26.2. ja Tassu Animaatio luento 5

15 26.2. ja Tassu Animaatio luento 5

16 Pyörimisen kokonaisyhtälöt
Kappaleen asema kullakin hetkellä voidaan ilmaista “tilavektorilla” S(t) = [ x(t), R(t), P(t), L(t) ]T missä x = paikka, R = asento (R matriisi, muut vektoreita) P = liikemäärä eli impulssi (linear momentum) L = impulssimomentti (angular momentum) Lasketaan apusuureet I(t) = R(t) Iobj RT(t) , (t) = I(t)-1 L(t), v(t) = P(t) / m Tilavektorin muutos ajassa on sitten dS/dt = [ v(t), (t)*R(t), F(t),  (t) ] missä F = ulkoiset voimat,  = ulkoiset momentit ja *R = [   R1,   R2 ,   R3 ], Ri = sarake i Näitä yhtälöitä integroidaan askelittain 26.2. ja Tassu Animaatio luento 5

17 Tilayhtälöt koottuna Laskentajärjestys:
Alustus: laske hitausmomentti Iobj ja lähtötila S(t0) Nykytilan analyysi: laske I(t), (t) ja v(t), sekä ulkoiset F(t) ja (t) Integroi differentiaali- yhtälöstä seuraava tila S(t+∆t) Tutki mahdolliset törmäykset; - jos on, niin päivitä momentteja P(t) ja L(t), ja laske samalla energiahäviö. Renderoi kuva Jatka iteraatiota kohdasta (2) 26.2. ja Tassu Animaatio luento 5

18 Vielä pyörähtelystä… Myös massa m(t) voi riippua ajasta, mikä vaikuttaa hitausmomenttiin Iobj(t) esim. avaruusraketti Vakiomassankin jakauma voi vaihdella esim. voltti/uimahyppy kierteellä, tai kiihdytyspiruetti luistimilla Video: “Atlanta in motion” Pyöriminen ulkoisten voimien vaikuttaessa Coriolis: esim. matalapainesykloni, hurrikaani prekessio: hyrrän akselin keinuminen 26.2. ja Tassu Animaatio luento 5

19 Esineiden törmäilyt Joustavien matriaalien kohtaaminen
muodonmuutos mallinnetaan jousena vaimennus otettava huomioon Kosketuksen kesto ja syvyys hetkittäin “collision detection” geometrista etäisyyslaskentaa Varoitus: “Neptune effect” liian jäykkä materiaali ratkaisu 1: adaptiivinen askelpituus integroinnissa ratkaisu 2: liikemäärän laskenta (ks. seuraavat sivut) Muodonmuutoksen visualisointi m k ß x F 26.2. ja Tassu Animaatio luento 5

20 Kovien esineiden törmäys
Törmäyshetkellä vaikuttaa hyvin nopeasti iso voima (impulssi) tavallinen voiman ja kiihtyvyyden laskenta ei toimi ! lasketaan liikemäärän muutosta ∆p =  F(t)dt Yleensä riittää analysoida kahta kappaletta yhdessä (todennäköisyys monen yhtäaikaiseen törmäykseen hyvin pieni) Liikemäärä ja energia säilyvät kimmoisessa törmäyksessä p = p1 + p = p1* + p2* ( * törmäyksen jälkeen ) ja 2*E = p1 · v1 + p2 · v2 = p1* · v1* + p2* · v2* Vastaavanlaiset yhtälöt pyörimisliikkeelle L = L1 + L = L1* + L2* ja 2*E = L1 1 + L2 2 = L1* 1* + L2* 2* 26.2. ja Tassu Animaatio luento 5

21 Impulssinvaihto Periaate laskennassa: erotellaan liikemäärä komponentteihin (a) yhteisen massakeskipisteen liike pCM = p1 + p2 Säilyy törmäyksessä (b) kummankin kappaleen liike CM:n suhteen p1’ = p1 - 1/2 pCM Summa p1’ + p2’ = 0 säilyy Saman kokoinen, vastakkaismerkkinen muutos molemmissa impulssi ∆p vaihtuu kappaleesta toiseen (p1’ + ∆p) + (p2’ - ∆p) = 0 26.2. ja Tassu Animaatio luento 5

22 Energian säilyminen Energiaa voi myös hävitä muodonmuutoksiin
kokonaisliikemäärä säilyy tässäkin tapauksessa Yleistetty Newtonin laki  = “coefficient of restitution” kimmoinen törmäys: energia säilyy  = 1 kimmoton törmäys: maksimaalinen energiahäviö  = 0 (esineet sulautuvat toisiinsa) W =  26.2. ja Tassu Animaatio luento 5

23 Esimerkki 1: pomppiva pallo
+ simulointi ja animaatio eri aika-askelin /*** ball falling sequence ***/ lastframe = -1; for(time=0;time<=SIMULTIME;time+=SIMULSTEP) { frame = time * FRAMERATE; if(frame > lastframe) makeframe(viewangle,eye,coi,ballname,ball,frame); lastframe = frame; } velocity[1] += SIMULSTEP * GRAVITY; ball [1] += SIMULSTEP * velocity[1]; if(ball[1] < BALLSIZE) /* bounce */ moveback = BALLSIZE - ball[1]; bouncetime = time - (moveback / velocity[1]); ball[1] += 2 * moveback; velocity[1] = -DAMPING * velocity[1]; impulse = velocity[1]; printsndkey(bouncetime,0, 0.0, impulse); if(fabs(velocity[1]) < -GRAVITY*SIMULSTEP) break; r + y + y < r törmäyshetken laskenta tarkasti impulssin heijastuminen liike ei enää laskettavissa 26.2. ja Tassu Animaatio luento 5

24 Esimerkki 2: biljardipallot
Tarkastellaan yhteisen massakeskipisteen suhteen Törmäysimpulssi ∆p aina pallon säteen suunnassa vastaavaa kuin törmäys kiinteään seinään jos ei kitkaa, ei pallon pyöriminen vaikuta epärealistista! Suorassa törmäyksessä pallot vaihtavat koko liikemääränsä keskenään p’1* = p’2 ja p’2* = p’1 Vinossa törmäyksessä ∆p ei ole samansuuntainen kuin pallojen liike liikemäärä “heijastuu” törmäyksen tangenttitasosta ∆p = 2 p  N p (1) (2) ∆p (3) 26.2. ja Tassu Animaatio luento 5

25 Esim. 3: partikkeli ja kappale
Partikkeli osuu liikkumattomaan esineeseen (2D-tarkastelu, törmäys pinnan normaalin suunnassa) Liikemäärän (p) ja impulssimomentin (L) yhteys: dp/dt = F , dL/dt = r  F = r  dp/dt  ∆L = r  ∆p Yhtälöt ennen/jälkeen törmäyksen p0 = p1 + p (p=mv) r  p0 = r  p1 + L (L = I) energiatasapaino: p02/m = p12/m + p22/M + L2/I Ratkaisu p2 = /m p0 1/m + 1/M + r2/I ja p1 = p0 - p2 , L = r  p2 r I M p0 (1) m p2 L (2) m p1 Laskuharjoitus: entä jos m jää kiinni kappaleeseen? 26.2. ja Tassu Animaatio luento 5

26 Monitahokkaiden törmäilyistä
Törmäyssuunta kohtisuorassa tasoa vastaan jos nurkittain, niin approksimoidaan Tormäyskohdan hakeminen on geometrista laskentaa: point-in-polyhedron edge-face intersection “back vector” tarkan kohdan selvittämiseksi 26.2. ja Tassu Animaatio luento 5

27 Kitka Fn Usein jätetään huomiotta animaatioissa, mutta välttämätön luonnolliselle toiminnalle esimerkki: dominopalikat pöydällä Kitkavoima vastustaa liikettä Ft ≤ F (F = ulkoinen voima) Ft ≤ mFn kerroin m ei ole vakio! tarttumakitka ja liukumiskitka yksinkertaistuksia käyrästä: Törmäyksissä tarkastellaan kontakti-impulssia kontakti liukuu, jos seuraava ehto pätee muussa tapauksessa kitka pitää esineet yhdessä Artikkeleita: D.Baraff, J.Hahn Ft F Force Velocity 26.2. ja Tassu Animaatio luento 5

28 Holonomiset rajoitteet
Törmäystarkasteluissa epäyhtälö: esineiden etäisyys d ≥ 0 Holonominen rajoite määrittelee yhtälön joka on pidettävä voimassa esim. liukuminen annettua rataa/pintaa pitkin: vuoristorata, hyppyrimäki, pyöriminen pöydällä, jne. Menetelmiä Rankaisuvoima kosketuskohdassa hetkittäin laskettava jousivoima kohtisuorassa pintaa vasten toimii vain, jos rajoite on joustava ja simulointiaskel pieni Variaatiolaskenta ilmaistaan rajoite potentiaalifunktiona, jonka energia minimoidaan liikkuminen rajoitetaan suuntiin jotka säilyttävät energiaminimin Kinemaattisten rakenteiden dynamiikka liitoskohdat kuvataan osien välisinä rajoitusyhtälöinä ratkaistaan yhtälöryhmä matriisina 26.2. ja Tassu Animaatio luento 5

29 Käänteisdynamiikka Teleologinen mallintaminen Space-time constraints
alkutila ja lopputulos määritelty, laskettava tarvittavat voimat mukavampaa ohjaajalle (vrt. käänteiskinematiikka) Space-time constraints Määritellään tavoitefunktio, esim. voiman käyttö koko liikkeessä R =  | F(t) |2 dt , joka pyritään minimoimaan Yleiselle liikeyhtälölle m d2x/dt2 + ß dx/dt + k x = F(t) annetaan reunaehtoina x(t) tiettyinä hetkinä (space-time constraint) Etsitään yhtälölle iteratiivisesti optimiratkaisua, joka minimoi R:n Artikkeli: Witkin & Kass Esim. “Luxo learns to jump” 26.2. ja Tassu Animaatio luento 5

30 Urheilusuorituksia Käänteisdynamiikan sovellus: fysikaalinen kävely, hyppiminen ja muut urheilusuoritukset Askelmerkit / suoritettava liike määritelty, lihakset servomekanismeja: F = - k(x - xr) - ß dx/dt , xr = lepopituus Ilmalennon aikana säädetään hitausmomenttia (raajat, vartalo) Tukipisteen paikka ja käytettävä voima ohjaavat hyppyjen lentoa voidaan ohjata nopeutta ja korkeutta Artikkelit: Hodgins, Raibert & Hodgins 26.2. ja Tassu Animaatio luento 5

31 Harjoitustehtävä Tehtävänä on jokin ei-triviaali fysikaalisesti mallinnettu simulaatio biljardipallot pöydälle putoava kuutio tai joukko palloja hyppykeppi, kenguru tms. kävelijän (ks. aiempi harjoitustyö) fysikaalinen toteutus pallon tai kelkan liuku hyppyrimäestä vapaasti leijuva avaruusalus, jota ohjataan rakettimoottoreilla (ei niitä tapauksia sellaisinaan, jotka on jo valmiiksi analysoitu luennoilla) Tehtävän ratkaisun vaikeustaso ja fysikaalinen yksityiskohtaisuus valittava harkinnan mukaan kitkan huomioiminen, kappaleiden symmetria, vapausasteiden määrä pyörimisliikkeessä, jne. Varoitus: yleispätevä simulaattori on väitöskirjan kokoinen työ! 26.2. ja Tassu Animaatio luento 5

32 Vielä muuta… Perusteellinen johdanto, kaavoja, koodia…
Witkin & Baraff: Siggraph’97 tutorial Kirja + video: Making Them Move (eds. Badler…) 1991 Artikkeleita Hahn: Realistic animation of rigid bodies, Siggraph’88 Baraff: useita artikkeleita, mm. Siggraph’89 Hodgins: Animating Human Athletics, Siggraph’95 Raibert +: Animation of dynamic legged locomotion, Siggraph’91 Jane Wilhelms: ??? Witkin & Kass: Spacetime Constraints, Siggraph’88 26.2. ja Tassu Animaatio luento 5

33 Videot State-of-the-art in Computer Graphics: New Dynamics
sisältää useita demoja (A.Barr, J.Hahn, J.Wilhelms, ym.) Making Them Move sisältää useita demoja (mm. Eurythmy, On the Run, …) M.Girard & S.Amkraut: Eurythmy, 1989 J.Hodkins: Atlanta in Motion, 1996 D.Baraff ??? HUOM. erinomainen lähde koko kurssia varten on Rick Parent’in kotisivulla 26.2. ja Tassu Animaatio luento 5


Lataa ppt "Tik Animaatio ja mallintaminen"

Samankaltaiset esitykset


Iklan oleh Google