the gilbert-johnson-keerthi (gjk) algorithm christer ericson sony computer entertainment america...
TRANSCRIPT
![Page 1: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/1.jpg)
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
![Page 2: The Gilbert-Johnson-Keerthi (GJK) Algorithm Christer Ericson Sony Computer Entertainment America christer_ericson@playstation.sony.com](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081414/5514840a550346b0158b598d/html5/thumbnails/36.jpg)
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