Collision prediction for polyhedra under piecewise screw motions
1 / 29

collision - PowerPoint PPT Presentation

  • Updated On :

Collision prediction for polyhedra under piecewise screw motions Byung-Moon Kim and Jarek Rossignac GVU Center and College of Computing Georgia Tech, Atlanta, USA The problem Compute the time and place of collision between moving bodies MOTIVATION

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'collision' - jana

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Collision prediction for polyhedra under piecewise screw motions l.jpg

Collision prediction for polyhedra under piecewise screw motions

Byung-Moon Kim and Jarek Rossignac

GVU Center and College of Computing

Georgia Tech, Atlanta, USA

The problem l.jpg
The problem motions

Compute the time and place of collision between moving bodies


  • Increase speed & accuracy of 3D animation and simulation


  • Limited to polyhedral (triangulated) shapes

  • Limited to rigid body motions (no deformation)

    • (see [Von Herzen & Zatz’ 90] for collision of deforming shapes)

Prior art examples of pioneering work l.jpg
Prior art: Examples of pioneering work motions

  • S. Udupa, Collision detection and avoidance in computer controlled manipulators. Proc. 5th Int. Conf. Artif. lntel.,1977.

  • J. W. Boyse. Interference detection among solids and surfaces. Communications of ACM, 22(1):3–9, January 1979.

  • N. Ahuja, R. T. Chien, R. Yen, and N. Bridwell. Interference detection and collision avoidance among three dimensional objects. Conference on AI, Stanford University, August 1980.

  • D.P. Dobkin, D.G. Kirkpatrick, Fast detection of polyhedral intersection, Theoret. Comput. Sci. 27, 1983.

  • J. U. Korein. A Geometric Investigation of Reach. The MIT Press, 1984.

  • S. A. Cameron and R. K. Culley. Determining the minimum translational distance between two convex polyhedra. In Proceedings of IEEE International Conference on Robotics and Automation, April 1986.

  • J. F. Canny. Collision detection for moving polyhedra. IEEE Transactions on Pattern Analysis and Machine Intelligence, 8(2), March 1986.

  • P. Jimenez, F. Thomas, and C. Torras. 3D collision detection: a survey. Computers and Graphics, 25(2), 2001.

Detecting interferences at each frame l.jpg
Detecting motions interferences at each frame

Most approaches simulate the motions of all the objects and after each time step, check if any pair of objects interfere

  • O(n2) static interference detections between pairs of objects

    • Each checks whether an edge of one stabs the face of another

  • Quick rejections of distant pairs of objects

    • Use bounds (boxes, spheres) around each object [Rimon&Boyd’97]

    • Use velocity and distance [Culley&Kempf’86]

    • Track minimum distances over time [Lin&Canny’91]

  • Quick rejection of disjoint portions of the objects

    • Decompose shapes into convex parts [Bajaj&Dey’92]

    • Use hierarchy of bounds around object or its surface [Hubbard’96]

    • Partitionspace [Bandi&Thalmann’95][Gottschalk&Lin&Manocha’96]

    • Track mobile data [Basch&Guibas&Hershberger’97]

Detection versus prediction l.jpg

t motions1



Detection versus Prediction

  • Detection: Simulate motion step-by-step and test for static interference between parts at each key-frame

    • Stop when interference is detected

    • Search for correct collision time

      • Binary split of last time-step

    • Expensive (O(n2) per time step)

    • Can easily miss collisions

  • Prediction: Compute time when the objects will first collide

    • Test all pairs of surface elements that could collide

      • Vertex-triangle, triangle-vertex, edge-edge

    • Report the first collision to occur

    • Fast

    • Exact (can’t miss)

Reducing the problem to a single motion l.jpg
Reducing the problem to a single motion motions

  • Assume solid A (bus) moves by a(t)

  • Assume solid B (taxi) moves by b(t)

  • a(t) and b(t) are parameterized rigid body transformations

    • Can be represented by 4x4 matrix or pose (origin + orthonormal basis)

  • Express everything in the moving CS of A (the bus)

    • See the accident from the perspective of a passenger of the bus

    • A (the bus) is now static

    • The pose of B (the taxi) is defined by M(t)=b(t)*a–1(t)

  • Two body collision problem may be reduced to the detection of the collision of a single moving body with a static obstacle

Predicting polyhedral collisions l.jpg

From Boyse’79 motions

Predicting polyhedral collisions

  • Assume solids A and B are initially disjoint

  • Assume A is static and B moves by rigid-body motion M(t)

  • First collision occurs at time t

  • The boundary of A and of [email protected](t) intersect

  • The intersection must contain either:

    • a vertex of A in a face of [email protected](t) or

    • a vertex of [email protected](t) in a face of A or

    • the intersection of an edge of A in an edge of [email protected](t)

Complexity of collision prediction l.jpg
Complexity of collision prediction motions

  • Vertex/face collision

    • V(t)[email protected](t) is a parametric curve.

    • Find its intersection with plane PV(t)•N=0: solve for t

    • Complexity of finding the roots ti depends on nature of M(t)

    • Then check which V(ti) lie inside the face

  • Face/vertex collision

    • Swap the role of A and B

  • Edge/edge collision

    • When does edge ([email protected](t),[email protected](t)) collide with edge (c,d)?

    • They are coplanar when cd•(([email protected](t))([email protected](t)))=0

    • Solve for roots ti (more complex than vertex/face)

    • Then check that ([email protected](ti),[email protected](ti)) intersects with (c,d)

  • Complexity of root finding depends on nature of M

    • Translation [Boyse’79, Cameron’85]

    • Rotation (both objects around same axis) [Schomer&Thiel’95]

    • Linear translation+variable speed rotation

      • [Canny’86, Jimanez&Torras’85, Schomer & Thiel95]

Special case of pure translation l.jpg
Special case of pure translation motions

  • Assume A moves with constant velocity v and B is fixed

  • Collision may occur between

    • A vertex p of A and a triangle T of B

      • Intersect Ray(p,v) with T

    • A triangle T of A with a vertex p of B

      • Intersect Ray(p,-v) with T

    • An edge (a,b) of A with an edge (c,d) of B

      • Check when the volume of tetrahedron (a+tv,b+tv,c,d) becomes zero

        • solve (cd(ca+tv))(cb+tv)=0 for t

        • (cd(ca+tv))cb + (cd(ca+tv))tv)=0

        • (cdca+t(cdv))cb + (cdca+t(cdv))tv)=0

        • (cdca)cb +t(cdv)cb + (cdca)tv +t2(cdv)v = 0

        • (cdca)cb +t(cdv)cb + (cdca)tv = 0, because (cdv)v = 0

        • t = (cacd)cb / ((cdv)cb - (cdv)ca)

        • t = (cacd)cb / (abcd)v

      • Make sure that, at that time, the two edges intersect

        • Not just the lines






Use approximating piecewise screw motions l.jpg

Q motions




Use approximating piecewise screw-motions

  • Screw motions are great!

    • Uniquely defined by start pose S and end pose E

    • Independent of coordinate system

    • Subsumes pure rotations and translations

    • Minimizes rotation angle & translation distance

    • Natural motions for many application

  • Simple to apply for any value of t in [0,1]

    • Rotation by angle tb around axis Axis(Q,K)

    • Translation by distance td along Axis(Q,K)

    • Each point moves along a helix

  • Simple to compute from poses S and E

    • Axis: point Q and direction K

    • Angle b

    • Distance d

Screw Motion

Screw history l.jpg
Screw history motions

(Ceccarelli [2000] Detailed study of screw motion history)

  • Archimede (287–212 BC) designed helicoidal screw for water pumps

  • Leonardo da Vinci (1452–1519) description of helicoidal motion

  • Dal Monte (1545–1607) and Galileo (1564–1642) mechanical studies on helicoidal geometry

  • Giulio Mozzi (1763) screw axis as the “spontaneous axis of rotation”

  • L.B. Francoeur (1807) theorem of helicoidal motion

  • Gaetano Giorgini (1830) analytical demonstration of the existence of the “axis of motion” (locus of minimum displacement points)

  • Ball (1900) “Theory of screws”

  • Rodrigues (1940) helicoidal motion as general motion

  • ….

  • Zefrant and Kumar (CAD 1998) Interpolating motions

Computing the screw parameters l.jpg

P’ motions

















Computing the screw parameters

From initial and final poses M(0) and M(1)


K:=K / ||K||;

b := 2 sin–1(||U’–U|| / (2 ||KU||) );


Q:=(O+O’)/2 + (KOO’) / (2tan(b/2));

To apply screw motion:

Translate by –Q;

Rotate K to Z;

Rotate around Z by tb;

Translate by (0,0,td);

Rotate Z to K;

Translate by Q;

Split tweak subdivision l.jpg
Split&Tweak Subdivision motions

  • Split: Insert a new vertex in the middle of each edge

  • Cubic B-spline tweak: Tuck old vertices in

  • 4-point tweak: Bulge new vertices out

  • Jarek tweak: Do half of each

Screwbender with alex powell l.jpg
ScrewBender (with Alex Powell) motions

  • Polyscrew motion: interpolates consecutive poses by screws

  • Subdivide using Split&Tweak on screws

Volume swept during screw motion l.jpg
Volume swept during screw motion motions

Computing and visualizing pose-interpolating 3D motions

Jarek R. Rossignac and Jay J. Kim (Hanyang University, Seoul, Korea), CAD, 33(4)279:291, April 2001.

SweepTrimmer: Boundaries of regions swept by sculptured solids during a pose-interpolating screw motion

Jarek R. Rossignac and Jay J. Kim

Space warp based on a screw motion l.jpg

E motionsL









Space warp based on a screw motion

“Twister: A space-warp operator for the two-handed editing of 3D shapes”, Llamas, Kim, Gargus, Rossignac, and Shaw. Proc. ACM SIGGRAPH,July 2003.

Decay function

Bender video l.jpg
Bender Video motions

Proposed approach l.jpg
Proposed approach motions

  • For each pair of objects A and B do

    • Approximate relative motion by a piecewise screw motion

      • Insert intermediate poses as needed adaptively

    • For each screw motion segment do

      • Use quick rejection test to quickly identify collision-free situations

      • If collision may not be discarded, then do

        • For each vertex of A and each triangle of B do

          • If collision cannot be discarded using bounds

          • Then find time of first collision (if one occurs)

        • For each vertex of B and each triangle of A do

          • If collision cannot be discarded using bounds

          • Then find time of first collision (if one occurs)

        • For each edge of B and each edge of A do

          • If collision cannot be discarded using bounds

          • Then find time of first collision (if one occurs)

        • Stop if collision was found and report time of first collision

Vertex face helix plane intersection l.jpg
Vertex-face (helix-plane intersection) motions

  • Helix is V(t) = rcos(tb)i+rsin(tb)j+tdk in screw coordinates

    • where V(0) lies on the i axis and the k-axis is parallel to s

  • The screw intersects plane d+V(t)•n= 0 for values of t satisfying

    • d+(rcos(tb), rsin(tb),td)•n= 0

  • We compute all roots and check if they correspond to points in triangle

    • Reduces to finding roots of f(t)=A+Bt+Ccos(bt+c)

    • Separate roots using f’(t)=0, which requires solving B/bC=sin(bt+c)

    • We use Newton iterations

Edge edge intersection l.jpg
Edge-edge intersection motions

  • Requires roots of f(t)=A+(B+Ct)cos(bt+c)+(D+Et)sin(bt+c)

    • We use Newton iterations from carefully computed seeds

      • Angle or rotation < 180 degrees

  • Check which roots corresponds to true E/E intersections

Early rejections l.jpg
Early rejections motions

  • Decide early that some pairs of objects cannot intersect

  • Use simple bounds on objects and their swept regions

    • Balls, cylindrical annuli

  • Avoid most root-findings by rejecting pairs of elements

  • Use bounds on elements and their swept regions

    • Vertex (helix), edge (annulus)

Rejecting object pairs l.jpg


Rejecting object pairs

  • Build (minimum) bounding spheres around objects

  • Region swept by B lies in half of a cylindrical annulus



If B lies outside of this CSG solid: no collision

Rejecting helix triangle pairs l.jpg
Rejecting helix-triangle pairs motions

  • Triangle separated from helix by plane or cylinder

Too high along axis: above plane

Not in screw angle: outside wedge

Too far from axis: outside cylinder

Too close to axis: inside cylinder

Too low along axis: below plane

Rejecting edge edge pairs l.jpg
Rejecting edge/edge pairs motions

  • No collision if green edge lies outside of (wedge-portion of) the annulus containing region swept by red edge


Inside inner cylinder

Outside outer cylinder

Outside wedge


Early rejection tests 55 speed up l.jpg
Early rejection tests: 55% speed up motions

  • Test setup

    • A move along a fixed screw motion

    • B is randomly placed and oriented in a in a box

      • 50,000 different poses were tested

    • Actual collision happened in about 10% of cases

    • 50% cases rejected using bounding spheres around objects

  • 50% of V/T cases and 66% of E/E cases rejected early

    • A and B have about 160 triangles vertices

    • 26,540 triangle/vertex and 58,266 edge/edge pairs

    • Takes average of 4x10–7 sec per V/T or E/E rejection test

    • Exact collision computation takes about 10–5 sec

Actual collisions only

50% cases are rejected by cylinder/sphere test

Conclusions l.jpg
Conclusions motions

  • Perform exact prediction, rather than interference detection

  • Approximate relative motion by screws (better than other types of simple motions)

  • Uses simple geometric rejection tests to identify cases where objects do not collide, they reduce overall cost by half

  • Uses simple geometric rejection test to discard more than half of the V/T and E/E collision candidates

  • Uses Newton to solve for exact collision time when needed: 10–5 sec per V/T, T/V, or E/E collision

  • Could be combined with hierarchical culling and other speed-ups

Slide28 l.jpg

Thank you motions


Tring l.jpg

Tring motions