Sunteți pe pagina 1din 21

Dinamica directa si inversa a structurilor articulate

Mihai Francu

April 24, 2014

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica structurilor articulate

Structura articulata: colectie de corpuri rigide (oase) legate


prin articulatii (puncte de jonctiune)
Dinamica directa
Se cunosc fortele (si momentele) care actioneaza asupra
corpurilor si se calculeaza acceleratiile rezultante
Aplicatii in robotica, grafica si jocuri: ragdoll-uri (papusi
articulate), par, haine

Dinamica inversa
Se cunosc acceleratiile corpurilor de-a lungul intregii traiectorii
si se calculeaza fortele ce trebuie aplicate
Aplicatii in robotica (actuatori), biomecanica (forte musculare)
si grafica (simularea balansului si mersului uman)

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica directa

Sisteme de particule
Coordonate reduse
Mase si resorturi
Dinamica constransa

Corpuri rigide articulate


Metoda Featherstone (ABA)
Coordonate maximale

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Sisteme de particule

Sunt simple si pot fi folosite pentru personaje, par, haine [T.


Jakobsen, Advanced Character Physics]
Notatie: x - vectorul pozitie, x =

dx
dt ,

x=

d 2x
.
dt 2

Ecuatia de miscare (Newton): m


x = F - ecuatie diferentiala de
ordinul 2 ce poate fi transformata intr-un sistem de ordinul 1:
x = v,
v =

1
mF

(1)
= a(x, v),

(2)

ce poate fi scris si restrans y = f(y) cu solutia


y(t) = (x(t) v(t))T .

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Integrarea ecuatiilor de miscare

Conditii initiale: x0 , v0 .
Aproximam derivata cu o diferenta finita:
y(t+h)y(t)
= f(y(t))
h
Metoda Euler (explicita):
xk+1 = xk + hvk ,
vk+1 = vk +

h
m Fk .

(3)
(4)

Exista si alte metode mai precise (Midpoint, RK4), mai stabile


(Euler implicit) sau care conserva mai bine energia (Euler
simplectic, Verlet)

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Coordonate reduse

Gradele de libertate ale sistemului sunt cunoscute apriori:


unghiurile de rotatie (Euler) ale oaselor fata de articulatii. Folosim
aceste unghiuri ca coordonate generalizate i pentru a putea scrie
ecuatiile Euler-Lagrange:
L
d L
=
,

dt i
i

(5)

unde L = T V este diferenta dintre energia cinetica si cea


potentiala. Complexitate O(n4 ).

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Pendulul matematic

T = 12 ml 2 2 si V = mlg cos .
Ecuatie neliniara: = gl sin .
Se rezolva numeric.

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Pendulul deblu

(m1 + m2 )l1 1 + m2 l2 2 cos(1 2 )


+ m2 l2 22 sin(1 2 ) + g (m1 + m2 ) sin 1 = 0 (6)
m2 l2 2 + m2 l1 1 cos(1 2 )
m2 l1 12 sin(1 2 ) + m2 g sin 2 = 0 (7)
= (,
). Pot fi decuplate prin
Ecuatii cuplate: A
inversarea matricei A. O alta varianta sunt ecuatiile
Hamilton. Dupa aceea se rezolva numeric.

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Mase si resorturi

masa si resort agatat in origine (1D): m


x = kx (oscilatie)
amortizare (damping): m
x + d x + kx = 0
2 mase si 2 resorturi (pendul dublu elastic, 2D):
m1 x1 = k1 (l1 l10 ) + k2 (l2 l20 )

(8)

m2
x2 = k2 (l2 l20 )

(9)

se pot construi grafuri mai complexe (inclusiv cu bucle)


forma matriciala: M
u + Du + Ku = 0
integrare numerica - ecuatii rigide (stiff) pentru k mare
solutii: pasi mici, integrare implicita [D. Baraff, A. Witkin,
Large Steps in Cloth Simulation], resorturi neliniare
Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica cu constrangeri

Tija rigida (1D): m


x = astfel incat x = 0
Constrangeri bilaterale (functii): C(x) = 0
Forte interne: Fc = JT , unde J = C
= Jv = 0
Abordare la nivel de viteze: C
Se foloseste un integrator semi-implicit
Se obtine un sistem liniar A + b = 0 din care
se obtin multiplicatorii Lagrange si percutii

Stabilizare Baumgarte: C(x)


+ C(x) = 0
E. Catto, Iterative Dynamics
M. Mueller, Position Based Dynamics

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica corpului rigid liber

Reprezentare in sistem global (inertial): pozitie x si orientare


R (matrice de rotatie) sau Q (cuaternion)
= R
= 1 Q
Cinematica: x = v si R
sau Q
2

Moment cinetic liniar P = mv si unghiular L = I


I = RIlocal RT - tensor/matrice/momente de inertie
Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Ecuatiile de miscare

Dinamica: forte F = P si momente de forta = L


Ecuatiile Newton-Euler:
mv = F

(10)

I = I

(11)

Tutorial SIGGRAPH: [D.Barraf, Rigid Body Simulation I Unconstrained Rigid Body Dynamics]

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Articulatii
Tipuri de articulatii:
translatie: prismatice
rotatie: sferica, balama, con-axa

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Coordonate maximale
Pentru dinamica directa putem folosi constrangeri asa cum fac
multe simulatoare de corpuri rigide (Havok, PhysX, ODE, Bullet)

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica corpurilor rigide articulate

Ecuatiile de miscare in coordonate generalizate q (ex. unghiuri):


= H(q)
q + G(q, q)

(12)

Model = ansamblul format din corpuri si articulatii (mecanism)


Tipuri de dinamica:
= FD(model, q, q,
)
directa: q
q
)
inversa: = ID(model, q, q,

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Metoda Featherstone

dinamica directa pentru lanturi seriale de corpuri rigide, dar


poate fi extinsa si la arbori si chiar si la bucle
se foloseste de o notatie speciala numita algebra spatiala
Articulated Body Algorithm (ABA) - complexitate O(n) [R.
Featherstone, Rigid Body Dynamics Algorithms][B. Mirtich,
Impulse-based Dynamic Simulation of Rigid Body Systems]
a fost extinsa si pentru a trata contacte in contextul jocurilor
[V. Kokkevis, Practical Physics for Articulated Characters]
folosita si pentru simularea parului [S. Hadap, Oriented
Strands - dynamics of stiff multi-body system]

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

ABA

parcurgere baza-varf: calculeaza vitezele oaselor


initializeaza atributele oaselor: matrice de inertie, forta de
acceleratie zero, vectorul Coriolis
parcurgere varf-baza: calculeaza matricea de inertie si forta
a.z. articulate
parcurgere baza-varf: calculeaza acceleratiile in articulatii,
respectiv ale oaselor
Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica inversa - optimizarea traiectoriei

se dau decat pozitiile initiale si finale si o caracterizare a


miscarii (ex. brusca)
A. Witkin, M. Kaas, Spacetime Constraints, 1988
optimizare neliniara (SQP), diferentiere simbolica
probleme foarte mari pentru multe grade de libertate
foarte incet pentru personaje umanoide

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica inversa a corpurilor rigide articulate

Algoritmul Newton Euler Recursiv calculeaza fortele ce trebuie


aplicate asupra oaselor, respectiv asupra articulatiilor unui arbore
cinematic, pentru a genera un raspuns de acceleratii dat:
parcurgere radacina-frunze: calculeaza vitezele si acceleratiile
fiecarui os exprimate in coordonate locale
parcurgere frunze-radacine: calculeaza fortele si momentele
transmise intre oase inlocuind in ecuatiile Newton-Euler locale
calculeaza fortele in articulatii pe baza fortelor din oase
(momente de forta aplicate de actuatori - resorturi unghiulare)
K. Liu, S. Jain, A Quick Tutorial on Multibody Dynamics

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

Dinamica inversa - echilibru si mers

pendul inversat - problema de control


controleri PID, algoritmi genetici etc
punctul de moment zero
sinteza din capturi de miscare
Boston Dynamics: Big Dog si Little Dog
S.Coros, Real-Time Planning and Control
for Simulated Bipedal Locomotion
K. Liu, Towards a Generative Model of
Natural Motion
NaturalMotion Euphoria

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

The end

Multumesc!
Intrebari
mihai.francu@cs.pub.ro

Mihai Fr
ancu

Dinamica directa si inversa a structurilor articulate

S-ar putea să vă placă și