1 / 33

Tik-111.450 Animaatio ja mallintaminen

Tik-111.450 Animaatio ja mallintaminen. 5.luento: rigid body dynamics, physically based models, constraints. Sisältö. fysiikan kertausta: Newtonin lait, vapaakappalemalli, translaatioliike pyörimisliike: erottaminen translaatiosta, liikeyhtälöt

micheal
Download Presentation

Tik-111.450 Animaatio ja mallintaminen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tik-111.450 Animaatio ja mallintaminen 5.luento: rigid body dynamics, physically based models, constraints Animaatio 2004 - 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. Animaatio 2004 - luento 5

  3. Fysiikan kertausta (1) • Peruskäsitteitä • 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 Animaatio 2004 - luento 5

  4. Yksinkertaisia tapauksia • vapaa liike avaruudessa, planeetat, raketti, heitetty esine… • Kuva Alonso-Finn Animaatio 2004 - 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 Animaatio 2004 - luento 5

  6. Animaatio 2004 - luento 5

  7. Animaatio 2004 - luento 5

  8. Animaatio 2004 - luento 5

  9. Animaatio 2004 - luento 5

  10. F x m ß k Pistemassan liikeyhtälö m d2x/dt2 + ß dx/dt + k x = ∑ Fext • Käyttökelpoinen monessa yhteydessä! • Esim. teleskooppijalka • Ratkaisuna harmoninen liike x(t) = x0e-ßt cos(t √ k/m 2π) Animaatio 2004 - 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ä Animaatio 2004 - 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 lasketaannopeus 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 Animaatio 2004 - 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) IobjR-1(t) Similariteettimuunnos siirtää maailman sopivaan koordinaatistoon, jossa Iobj operoi, ja sitten takaisin Tuttua grafiikasta ? vrt. rotaatio/skaalaus kiintopisteen suhteen… Animaatio 2004 - 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 Animaatio 2004 - luento 5

  15. Animaatio 2004 - 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)IobjRT(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 Animaatio 2004 - luento 5

  17. Tilayhtälöt koottuna Laskentajärjestys: • Alustus: laske hitausmomentti Iobjja 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) Animaatio 2004 - 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 Animaatio 2004 - luento 5

  19. F x m ß k 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: adaptiivinenaskelpituus integroinnissa • ratkaisu 2: liikemäärän laskenta(ks. seuraavat sivut) • Muodonmuutoksen visualisointi Animaatio 2004 - 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 + p2 = 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 + L2 = L1* + L2* ja 2*E = L1 1 + L2 2 = L1*1* + L2*2* Animaatio 2004 - 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 Animaatio 2004 - 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 =  Animaatio 2004 - 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 Animaatio 2004 - 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) Animaatio 2004 - 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 + p2 (p=mv) r  p0 = r  p1 + L (L = I) energiatasapaino: p02/m = p12/m + p22/M + L2/I • Ratkaisu p2 = . 1/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? Animaatio 2004 - luento 5

  26. Monitahokkaiden törmäilyistä • Törmäyssuunta kohtisuorassa tasoa vastaan • jos nurkittain, niin approksimoidaan • Tormäyskohdan hakeminen ongeometrista laskentaa: • point-in-polyhedron • edge-face intersection • “back vector” tarkan kohdanselvittämiseksi Animaatio 2004 - luento 5

  27. Force Velocity 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 F Ft Animaatio 2004 - 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 Animaatio 2004 - luento 5

  29. Käänteisdynamiikka • Teleologinen mallintaminen • 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” Animaatio 2004 - 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 Animaatio 2004 - 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ö! • http://www.tml.hut.fi/Opinnot/T-111.450/ Animaatio 2004 - luento 5

  32. Vielä muuta… • Perusteellinen johdanto, kaavoja, koodia… • Witkin & Baraff: Siggraph’97 tutorial • http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/baraff/www/sigcourse/ • Kirja + video: Making Them Move (eds. Badler…) 1991 • Artikkeleita • Hahn: Realistic animation of rigid bodies, Siggraph’88 • http://portal.acm.org/citation.cfm?id=378530&dl=ACM&coll=portal • Baraff: useita artikkeleita, mm. Siggraph’89 • http://www-2.cs.cmu.edu/~baraff/papers/index.html • Hodgins: Animating Human Athletics, Siggraph’95 • http://portal.acm.org/citation.cfm?id=218414&dl=ACM&coll=GUIDE • Raibert +: Animation of dynamic legged locomotion, Siggraph’91 • http://portal.acm.org/citation.cfm?id=122755&dl=ACM&coll=GUIDE • Jane Wilhelms: ??? • Witkin & Kass: Spacetime Constraints, Siggraph’88 • http://portal.acm.org/citation.cfm?id=378507&dl=ACM&coll=portal Animaatio 2004 - 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 onRick Parent’in kotisivulla • http://www.cis.ohio-state.edu/~parent/animation/index1.html Animaatio 2004 - luento 5

More Related