nonconvex rigid bodies with stacking eran guendelman robert bridson ron fedkiw stanford university

39

Post on 19-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 2: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Nonconvex Rigid Bodies Nonconvex Rigid Bodies with Stackingwith Stacking

Nonconvex Rigid Bodies Nonconvex Rigid Bodies with Stackingwith Stacking

Eran GuendelmanEran Guendelman

Robert BridsonRobert Bridson

Ron FedkiwRon Fedkiw

Stanford UniversityStanford University

Page 3: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Paper OverviewPaper OverviewPaper OverviewPaper Overview

Goal:Goal:

• Plausible simulation of a Plausible simulation of a large numberlarge number of of nonconvex rigid bodies.nonconvex rigid bodies.

• Handle collision, contact, friction, stacking.Handle collision, contact, friction, stacking.

Goal:Goal:

• Plausible simulation of a Plausible simulation of a large numberlarge number of of nonconvex rigid bodies.nonconvex rigid bodies.

• Handle collision, contact, friction, stacking.Handle collision, contact, friction, stacking.

Page 4: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Main ContributionsMain ContributionsMain ContributionsMain Contributions• A new time stepping scheme.A new time stepping scheme.

• A “shock propagation” technique for stacks.A “shock propagation” technique for stacks.

• A new time stepping scheme.A new time stepping scheme.

• A “shock propagation” technique for stacks.A “shock propagation” technique for stacks.

Page 5: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Geometric RepresentationGeometric RepresentationGeometric RepresentationGeometric Representation

• A dual representation.A dual representation.

• ExplicitExplicit: Triangulated surface.: Triangulated surface.

– Supplies point samples on surface.Supplies point samples on surface.

• ImplicitImplicit: Signed distance function : Signed distance function ΦΦ..

– ΦΦ distance to surface, distance to surface, ΦΦ < 0< 0 inside, inside, ΦΦ > 0> 0 outside. outside.

– Stored on a uniform or octree grid.Stored on a uniform or octree grid.

– Constant time inside/outside test.Constant time inside/outside test.

– Normal = Normal = ΦΦ (defined throughout space). (defined throughout space).

Page 6: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Time Stepping: Time Stepping: Traditional ApproachTraditional ApproachTime Stepping: Time Stepping: Traditional ApproachTraditional Approach• Traditional time stepping simulation loop:Traditional time stepping simulation loop:

– Update position and velocity.Update position and velocity.

– Process collision.Process collision.

– Process contact.Process contact.

Page 7: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Problem With Problem With Traditional ApproachTraditional ApproachProblem With Problem With Traditional ApproachTraditional Approach

• Problem: Problem: e.g. e.g. Block sliding down inclined plane.Block sliding down inclined plane.

– Initially sliding down.Initially sliding down.

– Update position and velocity Update position and velocity interpenetrating plane. interpenetrating plane.

– Process collision Process collision velocity reflected. velocity reflected.

– No contact to process.No contact to process.

– Next iteration Next iteration object bounces. object bounces.

Page 8: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Fixing ProblemFixing ProblemFixing ProblemFixing Problem

• Velocity threshold. Velocity threshold.

– e.g.e.g. [Mirtich & Canny ’95 – 2 papers] [Mirtich & Canny ’95 – 2 papers]

– Process as contact if speed below threshold.Process as contact if speed below threshold.

• Our approach doesn’t require such threshold.Our approach doesn’t require such threshold.

Page 9: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Time Stepping:Time Stepping:Our ApproachOur ApproachTime Stepping:Time Stepping:Our ApproachOur Approach

• A new ordering of the simulation loop:A new ordering of the simulation loop:

– Process collision.Process collision.

– Update velocity.Update velocity.

– Process contact.Process contact.

– Update position.Update position.

• Some justification:Some justification:

– Velocity update integrates forces and contact Velocity update integrates forces and contact processing resolves forces.processing resolves forces.

Recall traditional approach:

•Update pos & vel.

•Process collision.

•Process contact.

Page 10: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Inclined Plane Inclined Plane RevisitedRevisitedInclined Plane Inclined Plane RevisitedRevisited

• Using our approach.Using our approach.

– No collision to process.No collision to process.

– Update velocity Update velocity block gains downward velocity. block gains downward velocity.

– Process contact Process contact stops normal motion. stops normal motion.

– Update position Update position slides down with no bounce. slides down with no bounce.

Page 11: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

TIME STEPPING COMPARISON

Page 12: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Time Stepping Time Stepping ComparisonComparisonTime Stepping Time Stepping ComparisonComparison

• Errors accentuated: Errors accentuated:

– Perfectly elastic collisions (Perfectly elastic collisions (εε=1).=1).

– We don’t rewind to collision time.We don’t rewind to collision time.

– Impulses applied sequentially at point samples.Impulses applied sequentially at point samples.

Page 13: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

AccuracyAccuracyAccuracyAccuracy

Decelerating down inclined planeDecelerating down inclined plane

Page 14: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

AccuracyAccuracyAccuracyAccuracy

Accelerating down inclined planeAccelerating down inclined plane

Page 15: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Simulation StepSimulation StepSimulation StepSimulation Step

• Choose sufficiently small time step Choose sufficiently small time step ∆t∆t..• Advance bodies using time stepping scheme.Advance bodies using time stepping scheme.

– Use forward Euler for position and velocity update.Use forward Euler for position and velocity update.

• Doesn’t guarantee non-interpenetration, but Doesn’t guarantee non-interpenetration, but achieves good results.achieves good results.– Experimented with “pushing out” to reduce Experimented with “pushing out” to reduce

penetration as in [Baraff ‘95].penetration as in [Baraff ‘95].

Page 16: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Interference DetectionInterference DetectionInterference DetectionInterference Detection

• We don’t rewind to collision time.We don’t rewind to collision time.

• Find all penetrating vertices.Find all penetrating vertices.

– Use implicit surface inside/outside test. Use implicit surface inside/outside test.

• Optionally compute edge-face intersections.Optionally compute edge-face intersections.

• Accelerations:Accelerations:

– Uniform spatial partition.Uniform spatial partition.

– Bounding boxes.Bounding boxes.

Page 17: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

ImpulseImpulseImpulseImpulse

• Impulses are used for collision and contact.Impulses are used for collision and contact.

• Collision parameters: Collision parameters: εε and and μμ..

• Collision normal = Collision normal = ΦΦ..

• Use Use Coulomb frictionCoulomb friction model: model:

– Compute impulse to stop tangential motion.Compute impulse to stop tangential motion.

– If outside friction cone, find kinetic friction impulse.If outside friction cone, find kinetic friction impulse.

– Similar to [Hahn ‘88; Moore & Wilhelms ‘88].Similar to [Hahn ‘88; Moore & Wilhelms ‘88].

• Rolling and spinning friction.Rolling and spinning friction.

Page 18: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Collision ProcessingCollision ProcessingCollision ProcessingCollision Processing

• Detect and resolve collisions during time Detect and resolve collisions during time step.step.

• One approach: Process in chronological order.One approach: Process in chronological order.

– Computationally expensive for scenes with frequent Computationally expensive for scenes with frequent collisions.collisions.

• Approach we use: Process all at end of step. Approach we use: Process all at end of step.

– Gives plausible results.Gives plausible results.

– Don’t need to rewind to exact time of collision.Don’t need to rewind to exact time of collision.

Page 19: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Collision Processing: Collision Processing: Algorithm OverviewAlgorithm OverviewCollision Processing: Collision Processing: Algorithm OverviewAlgorithm Overview

• Compute candidate positions of bodies.Compute candidate positions of bodies.

• For each intersecting pair of bodies:For each intersecting pair of bodies:

– Determine interpenetrating points.Determine interpenetrating points.

– Sort points by penetration depth (deepest first). Sort points by penetration depth (deepest first).

– For each point in order:For each point in order:

• Apply frictional impulse (unless bodies receding).Apply frictional impulse (unless bodies receding).

Page 20: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Collision Processing:Collision Processing:Algorithm OverviewAlgorithm OverviewCollision Processing:Collision Processing:Algorithm OverviewAlgorithm Overview

• Repeat above a number of times.Repeat above a number of times.

– Resolving one collision might create new ones.Resolving one collision might create new ones.

• Applies series of impulses rather than Applies series of impulses rather than simultaneously resolving all collisions.simultaneously resolving all collisions.

Page 21: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 22: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 23: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 24: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Contact ProcessingContact ProcessingContact ProcessingContact Processing

• Determine contacts and prevent penetration.Determine contacts and prevent penetration.

• Approaches:Approaches:– Simultaneously solve for all contact forces. Simultaneously solve for all contact forces. e.g.e.g.[Baraff ‘94][Baraff ‘94]

– Penalty method (repulsion forces). Penalty method (repulsion forces). e.g.e.g.[Moore & Wilhelms ‘88][Moore & Wilhelms ‘88]

• Approach we use:Approach we use:– Approximate continuous contact by a series of Approximate continuous contact by a series of

inelastic impulses. inelastic impulses. e.g.e.g. [Mirtich & Canny ‘95] [Mirtich & Canny ‘95]

– Algorithm similar to collision processing (with Algorithm similar to collision processing (with εε=0), =0), but modified for improved accuracy.but modified for improved accuracy.

Page 25: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Improving AccuracyImproving AccuracyImproving AccuracyImproving Accuracy

• GraduallyGradually slow down bodies. slow down bodies.

– Transition impulses from Transition impulses from εε=-1 to =-1 to εε=0. =0.

– -1<-1<εε<0: Slows normal approach velocity.<0: Slows normal approach velocity.

– Use more (smaller) impulses for contact. Use more (smaller) impulses for contact.

• Compute impulses in old position.Compute impulses in old position.

– Still use candidate position to find contact points.Still use candidate position to find contact points.

OLD CANDIDATE

Page 26: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 27: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Contact Processing: Contact Processing: Problem With StacksProblem With StacksContact Processing: Contact Processing: Problem With StacksProblem With Stacks

• Problem with stacks: Need many iterations.Problem with stacks: Need many iterations.

Page 28: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Computing Stack Computing Stack OrderingOrderingComputing Stack Computing Stack OrderingOrdering

• Order bodies in stacks into increasing levels:Order bodies in stacks into increasing levels:

– Compute directed graph of “resting on” relation.Compute directed graph of “resting on” relation.

– Group together cycles (get a DAG).Group together cycles (get a DAG).

– Find levels consistent with DAG.Find levels consistent with DAG.

2 3

4

5

1

2

2

1

2

Page 29: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Shock PropagationShock PropagationShock PropagationShock Propagation

• Process contact bottom-up.Process contact bottom-up.

• After processing a level, set to infinite mass After processing a level, set to infinite mass (but not static).(but not static).

Page 30: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

SHOCK PROPAGATION ONLY

Page 31: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

Combining Contact Combining Contact and Shock Propagationand Shock PropagationCombining Contact Combining Contact and Shock Propagationand Shock Propagation

• Run a number of regular contact iterations.Run a number of regular contact iterations.

– Without setting levels to infinite mass.Without setting levels to infinite mass.

– Transmits weight through stack.Transmits weight through stack.

• Run a single iteration of shock propagation.Run a single iteration of shock propagation.

– Get good behavior without requiring many iterations.Get good behavior without requiring many iterations.

Page 32: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

CONTACT & SHOCK PROPAGATION

Page 33: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

SHOCK PROPAGATION ONLY

Page 34: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

CONTACT & SHOCK PROPAGATION

Page 35: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 36: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 37: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 38: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
Page 39: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

SummarySummarySummarySummary

• Dual representation of geometry.Dual representation of geometry.

• Impulse-based simulator.Impulse-based simulator.

• New time stepping approach eliminates need New time stepping approach eliminates need for a velocity threshold.for a velocity threshold.

• Shock propagation shocks the stack into a Shock propagation shocks the stack into a reasonable configuration without requiring reasonable configuration without requiring many contact iterations.many contact iterations.