Presentation is loading. Please wait.

Presentation is loading. Please wait.

GJK Supplement Reference: SIGGRAPH2004 Course Note Original Reference: A Fast Procedure for Computing the Distance between Objects in Three-Dimensional.

Similar presentations


Presentation on theme: "GJK Supplement Reference: SIGGRAPH2004 Course Note Original Reference: A Fast Procedure for Computing the Distance between Objects in Three-Dimensional."— Presentation transcript:

1 GJK Supplement Reference: SIGGRAPH2004 Course Note Original Reference: A Fast Procedure for Computing the Distance between Objects in Three-Dimensional Space, by E. G. Gilbert, D. W. Johnson, and S. S. Keerthi, In IEEE Transaction of Robotics and Automation, Vol. RA-4:193--203, 1988.

2 Fall 20052 Introduction Find Euclidean distance (and closest points) between the convex hulls of two point sets If disjoint, also find the separation axis If collision, can be enhanced to find penetration depth

3 Fall 20053 Introduction (cont) Simplex-based descent algorithm d-simplex: the convex hull of d+1 independent points in d-dimensional space

4 Fall 20054 Demonstration Proximity Query (minimum distance) Penetration Depth

5 Fall 20055 Properties Distance distance(A,B) = min a  A,b  B || a – b || 2 distance(A,B) = min c  A ⊖ B || c || 2 if A and B disjoint, c is a point on boundary of Minkowski difference Penetration Depth pd(A,B) = min{ || t || 2 | A  Translated(B,t) =  } pd(A,B) = min t  A ⊖ B || t || 2 if A and B intersect, t is a point on boundary of Minkowski difference

6 Fall 20056 Support Mapping

7 Fall 20057 Simplified Version (Simplified) p Find the distance between the CH and origin

8 Fall 20058 Example 1(4) Q = {A} A is the point of minimum norm in CH(Q) Q is irreducible Find B in direction of – A Add B to Q

9 Fall 20059 Example 2(4) Q = {A,B} C is the point of minimum norm Q is irreducible Find D in direction of – C Add D to Q D

10 Fall 200510 Example 3(4) Q = {A,B,D} E is the point of minimum norm Reduce Q to {B,D} Find F in direction of – E Add F to Q F

11 Fall 200511 Example 4(4) Q = {B,D,F} G is the point of minimum norm Reduce Q to {D,F} Cannot find lower support in direction of – G G is the closest point

12 Fall 200512 Example 1(3) Q={A} A has minimum norm Find B in direction of – A Add B to Q A B

13 Fall 200513 Example 2(3) Q={A,B} C has minimum norm Q is irreducilble Find D in direction of – C Add D to Q A B C D Q={A,B} C has minimum norm Q is irreducilble Find D in direction of – C Add D to Q

14 Fall 200514 Example 3(3) A B D Q={A,B,D} Pt of minimum norm is origin Polygon contains origin distance = 0

15 Fall 200515 Estimating Penetrating Depth (ref)ref Start with the triangle containing origin … Expanding polytope

16 Fall 200516 Example 1(3) A B D Start from ABD, the triangle containing origin Expanding, find E E

17 Fall 200517 Example 2(3) A B D E Find closest edge Expanding, find F F

18 Fall 200518 Example 3(3) A B D Find closest point Expanding, find no more. End. E F

19 Fall 200519 Time Complexity for Finding a Support Vertex

20 Fall 200520 Running Time of GJK Each iteration of the while loop requires O(n) time. O(n) iterations possible. The authors claimed between 3 to 6 iterations on average for any problem size, making this “ expected ” linear. Trivial O(n) algorithms exist if we are given the boundary representation of a convex object, but GJK will work on point sets - computes CH lazily.

21 Fall 200521 More on GJK Given A = CH(A ’ ) A ’ = { a 1, a 2,..., a n } and B = CH(B ’ ) B ’ = { b 1, b 2,..., b m } A ⊖ B = CH(P), P = {a – b | a  A ’, b  B ’ } Can compute points of P on demand: p -x = a -x - b x where a -x is the point of A ’ extremal in direction -x, and b x is the point of B ’ extremal in direction x. The loop body would take O(n + m) time, producing the “ expected ” linear performance overall.

22 Fall 200522 Distance Between A & B

23 Fall 200523 Sampling Minkowski Difference (8,5) = (4,4) – (-4,-1) Not explicitly compute the Minkowski difference. Only samples the point set using the support mapping

24 Fall 200524 Algorithm d(A,B)

25 Fall 200525 Example 1(4) (8,5) = (4,4) – (-4,-1) Sampling A ⊖ B

26 Fall 200526 Example 2(4) (2,1) = (1,2) – (-1,1)

27 Fall 200527 Example 3(4)

28 Fall 200528 Example 4(4) d = sqrt(1+2 2 ) Note: this also defines the separation axis

29 Fall 200529 GJK for Moving Objects time interval is short enough to assume constant velocity movement

30 Fall 200530 Swept Volume … as convex hull of start and end polygon?!

31 Fall 200531 Sampling Swept Volume

32 Fall 200532 Get Time of Collision via Bisection

33 Fall 200533 HW: Compute the Penetration Depth A B


Download ppt "GJK Supplement Reference: SIGGRAPH2004 Course Note Original Reference: A Fast Procedure for Computing the Distance between Objects in Three-Dimensional."

Similar presentations


Ads by Google