geometric representations collision detection n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Geometric Representations & Collision Detection PowerPoint Presentation
Download Presentation
Geometric Representations & Collision Detection

Loading in 2 Seconds...

play fullscreen
1 / 47

Geometric Representations & Collision Detection - PowerPoint PPT Presentation


  • 92 Views
  • Uploaded on

Geometric Representations & Collision Detection. Kris Hauser I400/B659: Intelligent Robotics Spring 2014. 3D models in robotics. Design Simulation Robot collision detection (i.e. prediction) Proximity calculation Map building Object recognition Grasp planning Etc.

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

PowerPoint Slideshow about 'Geometric Representations & Collision Detection' - giulia


Download Now 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
geometric representations collision detection

Geometric Representations & Collision Detection

Kris Hauser

I400/B659: Intelligent Robotics

Spring 2014

3d models in robotics
3D models in robotics
  • Design
  • Simulation
  • Robot collision detection (i.e. prediction)
  • Proximity calculation
  • Map building
  • Object recognition
  • Grasp planning
  • Etc..
common representations
Common Representations
  • Primitives
  • Raw data
    • Point clouds
    • Depth image
    • Polygon soup
  • Surfaces
    • Polygon mesh
    • Parametric curves
    • Subdivision surfaces
    • Implicit surface
  • Volumes
    • Voxels
    • Distance transforms
    • Quad/octree
aspects to consider
Aspects to consider
  • How accurately does the geometry need to be represented?
  • What operations need to be performed on the geometry? (Recognition? Matching? Simulation? Collision detection? Visualization? Distance computation?) How quickly? How accurately?
  • Storage and transmission limitations?
  • How easily / reliably / accurately / quickly can the source data (e.g., raw sensor data, CAD models) be converted to the desired format?
visualization
Visualization
  • Primitives
  • Raw data
    • Point clouds
    • Depth image
    • Polygon soup
  • Surfaces
    • Polygon mesh
    • Parametric curves
    • Subdivision surfaces
    • Implicit surface
  • Volumes
    • Voxels
    • Distance transforms
    • Quad/octree

Easy to convert to polygons

Convert to polygons (somewhat expensive)

Use specialized rasterization techniques

easy conversions
Easy Conversions
  • From primitives/surfaces to:
    • Polygon soups : discretization
    • Point clouds: sampling
    • Depth images: rasterization
  • From volumes to surfaces:
    • Simple: output a box for each occupied cell (coarse)
    • Marching cubes: walk along the volume until a surface is hit, output a piece of the surface in the volume (accurate)
harder conversions
Harder Conversions
  • From point clouds / soups to surfaces / volumes: a challenge
    • Fill cells that contain points (coarse)
    • Implicit function fitting
    • Silhouette carving
    • Lots of other methods… no “perfect” way to deal with missing data
  • From surfaces to volumes :
    • Fill cells that contain surface (coarse)
    • Euclidean distance transform: wavefront propagation from surface cells (closed surfaces, accurate)
resolution issues
Resolution issues
  • Accuracy, space, & computation complexity determined by resolution h
    • Suppose object size W
    • Point clouds, polygon meshes: O((W/h)2)space
    • Voxels: O((W/h)3) space
  • Downsampling
  • Mesh simplification
geometric queries
Geometric queries
  • Collision detection:
    • When A and B are at hypothetical poses TA and TB, would they collide?
  • Distance calculation
      • When A and B are at hypothetical poses TAand TB, how far are they apart?
  • Time-of-first contact
    • When A and B move along paths TA(t) and TB(t), at what time do they first collide?
geometric primitives
Geometric primitives
  • Points, Rays, Lines, Segments, Triangles, Spheres, Ellipses, Boxes
  • Collision detection, distance detection fast operations (O(1))
  • Ex: segment – sphere collision detection / distance calculation

r

managing large scenes
Managing large scenes
  • O(n2) pairs of objects – how to check collisions?
collision detection methods
Collision Detection Methods
  • Many different methods
  • In particular:
    • Grid method: good for many simple moving objects of about the same size (e.g., many moving discs with similar radii)
    • Closest-feature tracking: good for moving polyhedral objects
    • Bounding Volume Hierarchy (BVH) method: good for few moving objects with complex and diverse geometry
grid method1

d

Grid Method

Running time is proportional tonumber of moving objects

Useful also to compute pairs of

objects within some distance (vision,sound, …)

slide15

Closest-Feature Tracking(M. Lin and J. Canny. A Fast Algorithm for Incremental Distance Calculation. Proc. IEEE Int. Conf. on Robotics and Automation, 1991)

The closest pair of features (vertex, edge, face) between two polyhedral objects are computed at the start configurations of the objects

During motion, at each small increment of the motion, they are updated

Efficiency derives from two observations:

The pair of closest features changes relatively infrequently

When it changes the new closest features will usually be on a boundary of the previous closest features

slide17

Application: Detecting Self-Collision in Humanoid Robots(J. Kuffner et al. Self-Collision and Prevention for Humanoid Robots. Proc. IEEE Int. Conf. on Robotics and Automation, 2002)

bounding volume hierarchy method
Bounding Volume Hierarchy Method

BVH with spheres:S. Quinlan. Efficient Distance Computation Between Non-Convex Objects. Proc. IEEE Int. Conf. on Robotics and Automation, 1994.

BVH with Oriented Bounding Boxes:S. Gottschalk, M. Lin, and D. Manocha. OBB-Tree: A Hierarchical Structure for Rapid Interference Detection. Proc. ACM SIGGRAPH '96, 1996.

Combination of BVH and feature-tracking:S.A. Ehmann and M.C. Lin. Accurate and Fast Proximity Queries Between Polyhedra Using Convex Surface Decomposition. Proc. 2001 Eurographics, Vol. 20, No. 3, pp. 500-510, 2001.

Adaptive bisection in dynamic collision checking:F. Schwarzer, M. Saha, J.C. Latombe. Adaptive Dynamic Collision Checking for Single and Multiple Articulated Robots in Complex Environments, manuscript, 2003.

bounding volume hierarchy method1
Bounding Volume Hierarchy Method
  • Enclose objects into bounding volumes (spheres or boxes)
  • Check the bounding volumes first
  • Decompose an object into two
bounding volume hierarchy method2
Bounding Volume Hierarchy Method
  • Enclose objects into bounding volumes (spheres or boxes)
  • Check the bounding volumes first
  • Decompose an object into two
  • Proceed hierarchically
bounding volume hierarchy method3
Bounding Volume Hierarchy Method
  • Enclose objects into bounding volumes (spheres or boxes)
  • Check the bounding volumes first
  • Decompose an object into two
  • Proceed hierarchically
bounding volume hierarchy method4
Bounding Volume Hierarchy Method
  • BVH is pre-computed for each object
collision detection

A

A

C

C

B

B

E

F

E

F

D

D

G

G

Collision Detection

Two objects described by their precomputed BVHs

collision detection2

A

C

B

E

F

D

G

BB

BC

CB

CC

Collision Detection

Search tree

AA

A

A

collision detection3

A

C

B

E

F

D

G

pruning

Collision Detection

Search tree

AA

BB

BC

CB

CC

collision detection4

A

C

B

E

F

D

G

FD

FE

GD

GE

If two leaves of the BVH’s overlap(here, G and D) check their content

for collision

Collision Detection

Search tree

AA

BB

BC

CB

CC

G

D

variant

A

C

B

AA

E

F

D

G

BB

BC

CB

CC

AA

BA

CA

Variant

Search tree

A

A

collision detection5
Collision Detection
  • Pruning discards subsets of the two objects that are separated by the BVs
  • Each path is followed until pruning or until two leaves overlap
  • When two leaves overlap, their contents are tested for overlap
search strategy and heuristics
If there is no collision, all paths must eventually be followed down to pruning or a leaf node

But if there is collision, it is desirable to detect it as quickly as possible

 Greedy best-first searchstrategy with f(N) = d/(rX+rY)[Expand the nodeXYwith largest relative overlap (most likely to contain a collision)]

rY

d

rX

Y

X

Search Strategy and Heuristics
recursive depth first collision detection algorithm
Test(A,B)

If A and B do not overlap, then return 1

If A and B are both leaves, then return 0 if their contents overlap and 1 otherwise

Switch A and B if A is a leaf, or if B is bigger and not a leaf

Set A1 and A2 to be A’s children

If Test(A1,B) = 1 then return Test(A2,B) else return 0

Recursive (Depth-First) Collision Detection Algorithm
performance
Performance
  • Several thousand collision checks per second for 2 three-dimensional objects each described by 500,000 triangles, on a 1-GHz PC
greedy distance computation
Greedy-Distance(A,B,M)

If min-dist(A,B) > M, then return M

If A and B are both leaves, then return distance between their contents

Switch A and B if A is a leaf, or if B is bigger and not a leaf

Set A1 and A2 to be A’s children

M  min(max-dist(A1,B), max-dist(A2,B), M)

d1Greedy-Distance(A1,B,M)

d2Greedy-Distance(A2,B,M)

Return Min(d1,d2)

Greedy Distance Computation

M (upper bound on distance) is initialized to infinity

approximate distance
Approx-Greedy-Distance(A,B,M,a)

If (1+a)min-dist(A,B) > M, then return M

If A and B are both leaves, then return distance between their contents

Switch A and B if A is a leaf, or if B is bigger and not a leaf

Set A1 and A2 to be A’s children

M  min(max-dist(A1,B), max-dist(A2,B), M)

d1Approx-Greedy-Distance(A1,B,M,a)

d2Approx-Greedy-Distance(A2,B,M,a)

Return Min(d1,d2)

Approximate Distance

M (upper bound on distance) is initialized to infinity

desirable properties of bvs and bvhs
Desirable Properties of BVs and BVHs

BVs:

  • Tightness
  • Efficient testing
  • Invariance

?

  • BVH:
  • Separation
  • Balanced tree
spheres
Spheres
  • Invariant
  • Efficient to test
  • But tight?
axis aligned bounding box aabb1
Axis-Aligned Bounding Box (AABB)
  • Not invariant
  • Efficient to test
  • Not tight
oriented bounding box obb1
Oriented Bounding Box (OBB)
  • Invariant
  • Less efficient to test
  • Tight
comparison of bvs
Comparison of BVs

No type of BV is optimal for all situations

desirable properties of bvs and bvhs1
Desirable Properties of BVs and BVHs

BVs:

  • Tightness
  • Efficient testing
  • Invariance
  • BVH:
  • Separation
  • Balanced tree

?

desirable properties of bvs and bvhs2
Desirable Properties of BVs and BVHs

BVs:

  • Tightness
  • Efficient testing
  • Invariance
  • BVH:
  • Separation
  • Balanced tree
construction of a bvh
Construction of a BVH
  • Top-down construction
  • At each step, create the two children of a BV
  • Example: For OBB, split longest side at midpoint
computation of an obb gottschalk lin and manocha 96
N points ai = (xi, yi,zi)T, i = 1,…, N

SVD of A = (a1a2 ... aN)

 A = UDVT where

D = diag(s1,s2,s3) such that s1  s2  s3  0

U is a 3x3 rotation matrix that defines the principal axes of variance of the ai’s OBB’s directions

The OBB is defined by max and min coordinates of the ai’s along these directions

Possible improvements: use vertices of convex hull of the ai’s or dense uniform sampling of convex hull

y

X

Y

x

Computation of an OBB[Gottschalk, Lin, and Manocha, 96]

rotation

described by

matrix U