Top Banner
The The Gilbert-Johnson-Keerthi Gilbert-Johnson-Keerthi (GJK) (GJK) Algorithm Algorithm Christer Ericson Christer Ericson Sony Computer Entertainment America Sony Computer Entertainment America [email protected] [email protected]
36

The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America [email protected].

Mar 27, 2015

Download

Documents

Olivia Little
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

TheTheGilbert-Johnson-Keerthi (GJK)Gilbert-Johnson-Keerthi (GJK)

AlgorithmAlgorithm

TheTheGilbert-Johnson-Keerthi (GJK)Gilbert-Johnson-Keerthi (GJK)

AlgorithmAlgorithm

Christer EricsonChrister EricsonSony Computer Entertainment AmericaSony Computer Entertainment America

[email protected][email protected]

Christer EricsonChrister EricsonSony Computer Entertainment AmericaSony Computer Entertainment America

[email protected][email protected]

Page 2: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Talk outlineTalk outlineTalk outlineTalk outline

• What is the GJK algorithm• Terminology• “Simplified” version of the algorithm

– One object is a point at the origin– Example illustrating algorithm

• The distance subalgorithm• GJK for two objects

– One no longer necessarily a point at the origin

• GJK for moving objects

Page 3: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK solves proximity queriesGJK solves proximity queriesGJK solves proximity queriesGJK solves proximity queries

dAP

BP

• Given two convex polyhedra– Computes distance d

– Can also return closest pair of points PA, PB

Page 4: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK solves proximity queriesGJK solves proximity queriesGJK solves proximity queriesGJK solves proximity queries

dAP

BP

• Generalized for arbitrary convex objects– As long as they can be described in terms of

a support mapping function

Page 5: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Terminology 1(3)Terminology 1(3)Terminology 1(3)Terminology 1(3)

Supporting (or extreme) point

d

( )CP S d

P dfor direction

C

( )CS dreturned by support mapping function

( )CP S d

C

Page 6: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Terminology 2(3)Terminology 2(3)Terminology 2(3)Terminology 2(3)

0-simplex 1-simplex 2-simplex 3-simplex

simplex

Page 7: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Terminology 3(3)Terminology 3(3)Terminology 3(3)Terminology 3(3)

Point set C Convex hull, CH(C)

Page 8: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

The GJK algorithmThe GJK algorithmThe GJK algorithmThe GJK algorithm

1. Initialize the simplex set Q with up to d+1 points from C (in d dimensions)

2. Compute point P of minimum norm in CH(Q)3. If P is the origin, exit; return 04. Reduce Q to the smallest subset Q’ of Q, such

that P in CH(Q’)5. Let V=SC(–P) be a supporting point in direction

–P6. If V no more extreme in direction –P than P

itself, exit; return ||P||7. Add V to Q. Go to step 2

Page 9: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 1(10)GJK example 1(10)GJK example 1(10)GJK example 1(10)

C

INPUT: Convex polyhedron C given as the convex hull of a set of points

Page 10: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

1. Initialize the simplex set Q with up to d+1 points from C (in d dimensions)

GJK example 2(10)GJK example 2(10)GJK example 2(10)GJK example 2(10)

0Q

0 1 2, ,Q QQ Q

C

1Q

2Q

Page 11: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 3(10)GJK example 3(10)GJK example 3(10)GJK example 3(10)

0 1 2, ,Q Q Q Q

1Q

0Q

2Q

P

2. Compute point P of minimum norm in CH(Q)

Page 12: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 4(10)GJK example 4(10)GJK example 4(10)GJK example 4(10)

1 2,Q Q Q

1Q

0QP

3. If P is the origin, exit; return 0

4. Reduce Q to the smallest subset Q’ of Q, such that P in CH(Q’)

2Q

Page 13: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 5(10)GJK example 5(10)GJK example 5(10)GJK example 5(10)

1 2,Q Q Q

1Q

2Q

P

5. Let V=SC(–P) be a supporting point in direction –P

( )CV S P

Page 14: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 6(10)GJK example 6(10)GJK example 6(10)GJK example 6(10)

1Q

1 2, ,Q Q Q V

2QV

6. If V no more extreme in direction –P than P itself, exit; return ||P||

7. Add V to Q. Go to step 2

Page 15: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 7(10)GJK example 7(10)GJK example 7(10)GJK example 7(10)

1 2, ,Q Q Q V

1Q

2QV P

2. Compute point P of minimum norm in CH(Q)

Page 16: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 8(10)GJK example 8(10)GJK example 8(10)GJK example 8(10)

2,Q Q V

2QV P

3. If P is the origin, exit; return 0

4. Reduce Q to the smallest subset Q’ of Q, such that P in CH(Q’)

Page 17: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 9(10)GJK example 9(10)GJK example 9(10)GJK example 9(10)

2' ( )CS QV P

2,Q Q V

V P

5. Let V=SC(–P) be a supporting point in direction –P

Page 18: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK example 10(10)GJK example 10(10)GJK example 10(10)GJK example 10(10)

V P

DONE!DONE!

2,Q Q V

6. If V no more extreme in direction –P than P itself, exit; return ||P||

2Q

Page 19: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Distance subalgorithm 1(2)Distance subalgorithm 1(2)Distance subalgorithm 1(2)Distance subalgorithm 1(2)

• Approach #1: Solve algebraically– Used in original GJK paper– Johnson’s distance subalgorithm

• Searches all simplex subsets• Solves system of linear equations for each subset• Recursive formulation• From era when math operations were expensive• Robustness problems

– See e.g. Gino van den Bergen’s book

Page 20: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Distance subalgorithm 2(2)Distance subalgorithm 2(2)Distance subalgorithm 2(2)Distance subalgorithm 2(2)

• Approach #2: Solve geometrically– Mathematically equivalent

• But more intuitive• Therefore easier to make robust

– Use straightforward primitives:•ClosestPointOnEdgeToPoint()•ClosestPointOnTriangleToPoint()•ClosestPointOnTetrahedronToPoint()

– Second function outlined here• The approach generalizes

Page 21: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Closest point on triangleClosest point on triangleClosest point on triangleClosest point on triangle

B C

A

• ClosestPointOnTriangleToPoint()– Finds point on triangle closest to a given point

P

Q

Page 22: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Closest point on triangleClosest point on triangleClosest point on triangleClosest point on triangle

B C

A

F

AV

BV CV

ABEACE

BCE

• Separate cases based on which feature Voronoi region point lies in

Page 23: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Closest point on triangleClosest point on triangleClosest point on triangleClosest point on triangle

A

B C

0

0

AX AB

AX AC

XAV

Page 24: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Closest point on triangleClosest point on triangleClosest point on triangleClosest point on triangle

B C

( ) 0

0

0

BC BA BA BX

AX AB

BX BA

X A

ABE

Page 25: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK for two objectsGJK for two objectsGJK for two objectsGJK for two objects

• What about two polyhedra, A and B?

• Reduce problem into the one solved– No change to the algorithm!– Relies on the properties of the

Minkowski difference of A and B

• Not enough time to go into full detail– Just a brief description

Page 26: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Minkowski sum & differenceMinkowski sum & differenceMinkowski sum & differenceMinkowski sum & difference

: ,A B A B a b a b

BA A B

• Minkowski sum– The sweeping of one convex object with another

• Defined as:–

Page 27: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Minkowski sum & differenceMinkowski sum & differenceMinkowski sum & differenceMinkowski sum & difference

distance( , ) min : ,

min :

A B A B

A B

a b a b

c c

: ,

( )

A B A B

A B

a b a b

• Minkowski difference, defined as:–

• Can write distance between two objects as:–

• A and B intersecting iff A–B contains the origin!– Distance between A and B given by point of minimum

norm in A–B!

Page 28: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

The generalizationThe generalizationThe generalizationThe generalization

( ) ( ) ( ) ( )C A B A BS S S S d d d d

• A and B intersecting iff A–B contains the origin!– Distance between A and B given by point of minimum

norm in A–B!

• So use previous procedure on A–B!• Only change needed: computing• Support mapping separable, so can form it by

computing support mapping for A and B separately!–

( ) ( )C A BS S d d

Page 29: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Av

Bv

GJK for moving objectsGJK for moving objectsGJK for moving objectsGJK for moving objects

Page 30: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Av

Bv

B v A B v v v

Transform the problem…Transform the problem…Transform the problem…Transform the problem…

Page 31: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

v

……into moving vs stationaryinto moving vs stationary……into moving vs stationaryinto moving vs stationary

Page 32: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Alt #1: Point duplicationAlt #1: Point duplicationAlt #1: Point duplicationAlt #1: Point duplication

Let object A additionally include the points

iP

iP vv

iP v

…effectively forming the convex hull of the swept volume of A

Page 33: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Alt #2: Support mappingAlt #2: Support mappingAlt #2: Support mappingAlt #2: Support mapping

iP

Modify support mapping to consider only points

wheniP0 d v

d

v

Page 34: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

Alt #2: Support mappingAlt #2: Support mappingAlt #2: Support mappingAlt #2: Support mapping

iP v

…and to consider only points wheniP v 0 d v

d

v

Page 35: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

GJK for moving objectsGJK for moving objectsGJK for moving objectsGJK for moving objects

• Presented solution– Gives only Boolean interference detection result

• Interval halving over v gives time of collision– Using simplices from previous iteration to start next

iteration speeds up processing drastically

• Overall, always starting with the simplices from the previous iteration makes GJK…– Incremental– Very fast

Page 36: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com.

ReferencesReferencesReferencesReferences

• Ericson, Christer. Real-time collision detection. Morgan Kaufmann, 2005. http://www.realtimecollisiondetection.net/

• van den Bergen, Gino. Collision detection in interactive 3D environments. Morgan Kaufmann, 2003.

• Gilbert, Elmer. Daniel Johnson, S. Sathiya Keerthi. “A fast procedure for computing the distance between complex objects in three dimensional space.” IEEE Journal of Robotics and Automation, vol.4, no. 2, pp. 193-203, 1988.

• Gilbert, Elmer. Chek-Peng Foo. “Computing the Distance Between General Convex Objects in Three-Dimensional Space.” Proceedings IEEE International Conference on Robotics and Automation, pp. 53-61, 1990.

• Xavier Patrick. “Fast swept-volume distance for robust collision detection.” Proc of the 1997 IEEE International Conference on Robotics and Automation, April 1997, Albuquerque, New Mexico, USA.

• Ruspini, Diego. gilbert.c, a C version of the original Fortran implementation of the GJK algorithm. ftp://labrea.stanford.edu/cs/robotics/sean/distance/gilbert.c