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

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

Embed Size (px)

DESCRIPTION

Demo

Citation preview

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