Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman...

28
Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jova n Popovic MIT Craig Gotsman Harvard University

description

Demo

Transcript of Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman...

Page 1: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Mesh-Based Inverse Kinematics

Robert W. Sumner Matthias Zwicker. Jovan PopovicMIT

Craig Gotsman Harvard University

Page 2: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.
Page 3: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Demo

Page 4: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Demo

Page 5: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

f1 f2 f3f4 f5

f6

f7 f8 f9

f10

w1

w2 w3 w4 w5

w6

w7 w8w9

w10

Compute Feature VectorsNonlinear Combination F= Σwifi

Page 6: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

What is this paper about?

• New framework – Feature Vectors– Traditional Point-based

• Nonlinear mesh interpolation– Linear is good?

• Efficient Optimization

Page 7: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

• Feature Vector = a group of deformation gradients.• What is deformation gradient

– affine mapping is– Φ(p) = T*p + d, T = rotation, scaling, skewing– dΦ(p) / dp = T is deformation gradient

• So given two triangles, how to find T?

Feature Vectors

┌││└

┐││┘

T┌││└

┐││┘

XYZ

┌││└

┐││┘

dX +

Page 8: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Reference Deformed

Page 9: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Feature Vectors

• Deformation gradient of affine mapping– Φ(p) = T*p+d, T = rotation, scaling, skewing

• Illustration in 2-D curveΦ 1 Φ 2 Φ 3

Φ 4Φ 5

Φ 6

F = [T1, T2, T3, T4, T5, T6 ]T

Page 10: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

In Mesh IK

T

d

T 1 T 2 T 3 T 4 T 5 T 6

•Interpolation among feature vectors•Yet

Page 11: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

In 3D

Output

?Targ

et

Output

OutputOutput?

Page 12: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

How it works?

• Actually solving for position directly– x = argminx || f(x) - F || – f(x) = deformation gradient using x

– x = argmin x ||G’x – (F + c)||

Output

Output

Page 13: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

f1

f2

x = argmin x ||G’x – [(f1*w1 + f2*w2) + c] ||

Page 14: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Outline

• New framework• Non-linear mesh interpolation

– How to interpolate linearly?– Polar decomposition– Exponential map

• Efficient Optimization

Page 15: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Linear Feature Space

• We can find the desired mesh with feature vector fw = M*w, M is [f1,f2, … fn]

• x*, w* = argmin || Gx – (Mw + c) ||• If set Mw = davg + Σwidi

– x*, w* = argmin || Gx – (Mw + c) || + k*||w||

= *[1/3 2/3]T

┌││││└

┐││││┘

Page 16: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

NonLinear versus Linear

Page 17: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Alternative: Nonlinear

• Polar decomposition– rotation & scaling differently

• Exponential map– different interpolation

• “Matrix animation and Polar Decomposition” - Shoemake & Duff• “Linear Combination of Transformation” - Marc Alexa

Page 18: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Polar Decomposition

R RS

┌││││││││└

┐││││││││┘

R1S1

R2S2

R3S3

. . .RnSn

┌││││││││└

┐││││││││┘

T1

T2

T3

. . .Tn

==

R must be orthogonal => SVD : UΣVT, QR : RL

Page 19: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Exponential Map

T = =>

Half T = =>

For T x M = Tb x Ta x M if a = b = 1/2

So ½ T x ½ T = T => ½ of T = T ½

AxB = BxA? (Commutative) For T ½ T ⊙ ½ ⊙ = exp( Log(A) + Log(B) )

T ½ T ⊙ ½ = exp( ½ Log(T) + ½ Log(T) ) = T

Page 20: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Examples

Page 21: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Nonlinear Feature Space• Polar decomposition Tj = Rj * Sj,

• Exponential map – Tj(w) = exp(Σwi*log(Rij)) * Σwi*Sij

• We can find the desired mesh with feature vector fw = M*w = [f1,f2, … fn] * [w1, w2, … wn]T

• Defined as fw = [T1(w1), T2(w2), … Tn(Wn)] = M(w)

= *[1/3 2/3]T

┌││││└

┐││││┘

Page 22: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Why use exponential map?

1. Easier to find derivatives, with respect to w

– Tj(w) = R(w) * S(w)– dwkTj(w) = dR(w) * S(w) + R(w) * dS(w)

2. Then why do we need derivatives?– x*, w* = argmin || Gx – [M(w)+c] ||– Gauss-Newton Algorithm– M(w +δ) = M(w) + dwM(w)* δ

Page 23: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Gauss-Newton Method

• For k-th iteration:• δk, xk+1 = argmin||Gx – dwM(wk)*δ–(M(wk)+c)||• wk+1 = wk + δk

• ATA * [x, δ]T = AT( M(wk) + c )

• A =

• Take about a minute or longer to solve

┌││└

┐││┘

G | - J1

G | - J2

G | - J3

Ji = dwM(w)

Page 24: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Outline

• New framework

• Non-linear mesh interpolation

• Efficient Optimization– Specialized Cholesky-Factorization

Page 25: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Optimized Solver

• General Cholesky or QR factorization might not suffice

• The structure of ATA in previous normal equation is well defined

┌│││└

┐│││┘

GTG - GTJ1

GTG - GTJ2

GTG - GTJ3

- J1TG - J2

TG - J3TG ΣJi

TJi

ATA =

┌││└

┐││┘

G | - J1

G | - J2

G | - J3

A =

ATA * [x, δ]T = AT( M(wk) + c )

Page 26: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Precomputation┌│││└

┐│││┘

GTG - GTJ1

GTG - GTJ2

GTG - GTJ3

- J1TG - J2

TG - J3TG ΣJi

TJi

ATA =

┌│││└

┐│││┘

R - R1

R - R2

R - R3

Rs

U =

Make U such that UTU = ATA

where RTR = GTG, this R can be pre-computed

┌││└

┐││┘

G | - J1

G | - J2

G | - J3

A =

ATA * [x, δ]T = AT( M(wk) + c )

Page 27: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Solving for

┌│││└

┐│││┘

RTR - RTR1

RTR - RTR2

RTR - RTR3

- R1TR - R2

TR - R3TR ΣRi

TRi + RsTRs

UTU =

┌│││└

┐│││┘

GTG - GTJ1

GTG - GTJ2

GTG - GTJ3

- J1TG - J2

TG - J3TG ΣJi

TJi

ATA = =

1. Solve Ri ,where RTRi = GTJi, 1<=i<=3

2. Solve Rs ,where RsTRs = Σ Ji

TJi - RiTRi

3. The bottleneck for MeshIK

Page 28: Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Numerical Result