+ All Categories
Home > Documents > Mesh-Based Inverse Kinematics - Computer...

Mesh-Based Inverse Kinematics - Computer...

Date post: 28-Jun-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
31
Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c CS468, Wed Nov 9 th 2005 SIGGRAPH 2005
Transcript
Page 1: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Mesh-Based Inverse Kinematics

R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

CS468, Wed Nov 9th 2005

SIGGRAPH 2005

Page 2: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

The problem

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic 1

Page 3: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

General approach

2

Learn from experience...

Page 4: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

3

As-rigid-as-possible shape interpolation [ACL00]

Page 5: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Outline

4Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

• Related work

• Overview of the method

• The method step by step

• Numerics

• Experiments

Page 6: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic 5

Related workSubdivision

[ZSS97, KCVS98, KBS00, GSS99]

Page 7: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic 6

Skeleton-based kinematics

Related work

[JT05, ASKTR05]

Page 8: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

7Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Relation to mesh editing

Inverse kinematics

coating transfer mesh transplanting

Page 9: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

8

Intrinsic mesh editing methodsRelated work

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Laplacian (or differential) coordinates [SLCARS04]

Page 10: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Overview of the method

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Let M0, · · · ,Mk be the input meshes (M0 is the reference mesh).

1. map each transformation T i (i ≥ 1) to a feature vector fi ∈ R9m,where m is the number of triangles of the base mesh

2. define the space Σ of admissible transformations as the span ofthe {fi}i≥1

3. given a set of specified vertex positions v1, · · · , vl, find a featurevector f close to Σ that maps each constrained vertex vj to a pointclose to its specified position vj

9

Page 11: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi

10Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

For the jth triangle of M0, let φj be the affine transformation that mapsthe triangle onto its image in Mi:

∀p ∈ R3, φj := Tj p + tj

linear (3x3 matrix)

translation vector

• only the gradient of φj is encoded: Dφj(p) = Tj

• to make Tj unique, a 4th vertex is added to the jth triangle, alongthe normal direction

v1

v2v3

v4

v1

v2

v3

v4

φj

from [SP04]

Page 12: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi

10Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

For the jth triangle of M0, let φj be the affine transformation that mapsthe triangle onto its image in Mi:

∀p ∈ R3, φj := Tj p + tj

linear (3x3 matrix)

translation vector

• only the gradient of φj is encoded: Dφj(p) = Tj

• to make Tj unique, a 4th vertex is added to the jth triangle, alongthe normal direction

Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1

tj = v4 − Tj v4

Page 13: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi

10Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

For the jth triangle of M0, let φj be the affine transformation that mapsthe triangle onto its image in Mi:

∀p ∈ R3, φj := Tj p + tj

linear (3x3 matrix)

translation vector

• only the gradient of φj is encoded: Dφj(p) = Tj

• to make Tj unique, a 4th vertex is added to the jth triangle, alongthe normal direction

Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1

tj = v4 − Tj v4

Page 14: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi

11

Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

linear in v1, v2, v3, v4

(3× 3)

Page 15: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi

11

Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

linear in v1, v2, v3, v4

(3× 3)

fij :=

TjxT

TjyT

TjzT

= Gj

v1x...

v4x

v1y...

v4y

v1z...

v4z

Tj :=

TjxTjy

Tjz

Gj :=

GjxGjy

Gjz

∈ R9

∈ R12

(9× 12)

Page 16: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi

11

Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

linear in v1, v2, v3, v4

(3× 3)

fij :=

TjxT

TjyT

TjzT

= Gj

v1x...

v4x

v1y...

v4y

v1z...

v4z

∈ R9

∈ R12

(9× 12)

fi :=

f i1...

f im

= G v

G :=

Gx

Gy

Gz

Page 17: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi

11

Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

linear in v1, v2, v3, v4

(3× 3)

fij :=

TjxT

TjyT

TjzT

= Gj

v1x...

v4x

v1y...

v4y

v1z...

v4z

∈ R9

∈ R12

(9× 12)

fi :=

f i1...

f im

= G v∈ R9m

(9m× 3(n + m))

∈ R3(n+m)

G :=

Gx

Gy

Gz

(3m× (n + m))

Page 18: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

12

f = G v∈ R9m

∈ R3(n+m)

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Inverse transformation

(9m× 3(n + m))

”v = G−1 f ”

Page 19: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

12

f = G v∈ R9m

∈ R3(n+m)

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Inverse transformation

(9m× 3(n + m))

”v = G−1 f ”

9m > 3(n + m) ⇒ G is not a square matrix

By fixing one vertex, one reduces the dim. to zero

To a feature vector f ∈ R9m corresponds ≤ 1tranformed mesh (up to translation)

Page 20: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Feature vectors

12

f = G v∈ R9m

∈ R3(n+m)

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Inverse transformation

(9m× 3(n + m))

”v = G−1 f ”

9m > 3(n + m) ⇒ G is not a square matrix

By fixing one vertex, one reduces the dim. to zero

least squares problem:

v∗ = arg minv‖G v− f‖ most ”plausible” positions

To a feature vector f ∈ R9m corresponds ≤ 1tranformed mesh (up to translation)

If too many constraints (or imprecisions), theset of solutions can be empty

Page 21: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Linear feature space

Σ := Span(f1, · · · , fk)

To every vector w of coordinates in the basis(f1, · · · , fk

)corresponds

a feature vector fw =∑

i wi fi ∈ R9m

Once one or more vertex positions are set, compute

v∗,w∗ = arg minv,w

∥∥∥G v− (f1, · · · , fk) w∥∥∥

13Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Page 22: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Linear feature space

Σ := Span(f1, · · · , fk)

To every vector w of coordinates in the basis(f1, · · · , fk

)corresponds

a feature vector fw =∑

i wi fi ∈ R9m

Once one or more vertex positions are set, compute

v∗,w∗ = arg minv,w

∥∥∥G v− (f1, · · · , fk) w∥∥∥

To penalize solutions that are far from the fi, take the mean f of the fi

as the origin: fw = f +∑k

i=1 wi fi

and compute:

v∗,w∗ = arg minv,w

∥∥∥G v− f− (f1, · · · , fk) w

∥∥∥+ α ‖w‖

13Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Page 23: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Linear feature space

14Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Page 24: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Linear feature space

14Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

f1

f2

f( 13 , 2

3 )

Page 25: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Nonlinear feature space

15Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

For each triangle j of M0, separate the rotational component from thescale and shear components of Tj by polar decomposition: Tj := Rj Sj

Interpolate the Sij linearly, but the T i

j by composition:

”T ij (w) :=

k∏i=1

Rij

wi ·k∑

i=1

wi Sij ” R2

θ = R2θ

Page 26: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Nonlinear feature space

15Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

For each triangle j of M0, separate the rotational component from thescale and shear components of Tj by polar decomposition: Tj := Rj Sj

Interpolate the Sij linearly, but the T i

j by composition:

”T ij (w) :=

k∏i=1

Rij

wi ·k∑

i=1

wi Sij ” R2

θ = R2θ

For non-integer wi, use the exponential map:

T ij (w) := exp

(k∑

i=1

wi log Rij

k∑i=1

wi Sij

Page 27: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Nonlinear feature space

15Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

For each triangle j of M0, separate the rotational component from thescale and shear components of Tj by polar decomposition: Tj := Rj Sj

Interpolate the Sij linearly, but the T i

j by composition:

”T ij (w) :=

k∏i=1

Rij

wi ·k∑

i=1

wi Sij ” R2

θ = R2θ

(∗)non-linear

To retrieve v∗,w∗, solve the following least squares problem:

v∗,w∗ = arg minv,w

‖G v− fw‖

For non-integer wi, use the exponential map:

T ij (w) := exp

(k∑

i=1

wi log Rij

k∑i=1

wi Sij

Page 28: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Nonlinear feature space

16Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

linearinterpolation

exponential map

scale/shear

rotational

Page 29: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Numerics

17Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

• To solve (∗), use Gauss-Newton algorithm

• To accelerate the resolution of the linear least squares problem, useCholesky decomposition

see details in the paper

reduces (∗) to solving a linear least squares problem at eachiteration of the algorithm (∼ 6 iterations in practice)

Page 30: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Experimental results

18Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

Pentium IV @ 3.4 GHz2GB RAM

Cholesky

one iteration

Page 31: Mesh-Based Inverse Kinematics - Computer Graphicsgraphics.stanford.edu/courses/cs468-05-fall/slides/steve_mesh_ik_fa… · i Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker,

Conclusion

19Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic

• MeshIK is an easy-to-use mesh manipulation tool, based on an in-tuitive interface

• the algorithm adapts to each model by learning from example meshes

• the method is effective in practice and provides interactive timings

• What about meshes of genus > 0?

• Try other feature spaces, to enhance the feature interpolation

• Try other numerical techniques, to enhance speed


Recommended