Title: Obstacle Count Independent RealTime Collision Avoidance
1Obstacle Count Independent Real-Time Collision
Avoidance
- Michael Greenspan and Nestor Burtnyk
- ENSC887 Presentation
- Wayne Chen
- Nov. 15, 2004
2Overview
- Motivation
- Previous Work
- The Algorithms
- Voxel Map Maintenance
- Spherical Model Generation
- Real-Time Collision Detection Algorithm
- Experimental Results
- Comparison to Other Algorithms
3Motivation
- to detect potential collisions and prevent
their occurrence by redirecting the motion of the
robot - Real-Time
- Obstacle Count Independent
- Relevant applications
- Direct teleoperation
- Sensor-based control
4Previous Work
- Model-Based vs. Sensor-Based
- Collision between geometric primitives
- Two convex polyhedra Lozano-Perez
- Two convex polytopes Gilbert
- Sphere vs. Polyhedra Dodds
- Dynamic spheres Tornero
- ? obstacle count dependent -gt too many
comparisons!
5Previous Work (continued)
- Hierarchical spherical representation Wavish
- ? efficient only when no collision
- Pre-calculated Look-Up Table
- Discrete C-Space Lozano-Perez
- ? exponential to number of dof
- Discrete R-Space (Voxel Map)
- Voxels vs. Voxels Duffy
- Spheres vs. Voxels (This paper!)
6Voxel Map Maintenance
- 3 workspace element types
- Static, movabily static, dynamic
- Contains distance to closest obstacle
- Voxel map operations
- Add obstacles explosion
- Remove obstacles explosionimplosion
- Same idea as Brush Fire
7Voxel Map Add Obstacle
6
8Voxel Map Remove Obstacle
2
6
9Voxel Map - Remarks
- Key any voxel remaining nearer to a prior
obstacle remains unchanged - Operates in local region of obstacle
- Voxel Influence Zone
- Voronoi regions
- k?O(n), k ? 1.
10Spherical Model Generation
- Model must satisfy
- Coverage
- Goodness of Fit
- Compactness
- of spheres ? performance
-
11Spherical Model Generation
- Sphere Generation
- Input polyhedra, overshoot, spacing
- Sphere Pruning
- Single Sphere Enclosure
- Multiple Sphere Enclosure
12Sphere Generation - Rules
- Voxel resolution spacing
- exterior, boundary, or interior.
- Voxels only exterior and boundary are set
values. - Sphere
- Only at boundary and interior
- One sphere centred at each voxel
13Sphere Generation
14Sphere Pruning
- Sphere is redundant if it does not add coverage.
- Single Sphere Enclosure
- Check distance b/w centres ? radius?
15Sphere Pruning
- Multiple Sphere Enclosure
- Most spheres pruned in this step
- How to check?
- Create candidate sphere set
- Create a temp voxel map running through all
spheres. - Increment voxel value for each sphere enclosure
- If value gt 2, can take out a sphere.
16Sphere Pruning
(a)
17Sphere Generation - Parameters
18Sphere Generation Puma 560
19Real-Time Collision Detection
- Off-line computation
- Manipulator spheres
- Obstacles numbers in voxel map
- On-line actual collision check
- collision if (sphere radius gt voxel value)
- Otherwise sphere radius ? voxel value distance
to closest obstacle
20Real-Time Collision Detection
21Real-Time Collision Detection
- For (all links)
- calculate link frame transform
- for (all spheres in link frame)
- transform sphere centre
- index voxel at sphere centre
- sphere clearance voxel value sphere radius
- if (sphere clearance gt 0)
- sphere is collision-free
- else
- sphere is in collision
- link is in collision
- manipulator is in collision
-
22Experimental Results
- Efficiency O(s)
- Obstacle Count Independent
- Example
- CPU Speed 2 MFLOP/sec (66MHz 486)
- Computation 50 FLOP/sphere
- Real-Time Constraint 50Hz Controller
23Experimental Results
- Collision avoidance
- 0th order stop
- 1st order stop colliding component
- 2nd order alter path
- Currently only 0th order achieved.
24Experimental Results
- First setup direct teleoperation
- Robot controlled with joystick
- Controller running 28 msec
- Total voxel map 2m (2cm resolution)
- Total of spheres 509
- Workspace 527 polygons
- Result (66MHz PC)
- Off-line computation 15 seconds
- On-line computation 10 msec
25Experimental Results
- Setup 2 path planning of manipulator
26Experimental Results
- Results
- Search space exponential to n (6)
- Algorithm helps reduce base of exponential
relationship - Path generated in 6 seconds (4 MFLOPS CPU)
27Comparison
- A Fast Procedure for Computing the Distance
between Complex Objects in Three-Dimensional
Space Gilbert, et al. - A Fast Algorithm for Incremental Distance
Calculation Lin and Canny - Obstacle Count Independent Real-Time Collision
Avoidance Greenspan and Burtnyk
28Comparison
- (Review) Gilberts Algorithm
29Comparison
- (Review) Gilberts Algorithm
- Reduce problem to finding distance b/w origin and
K1?K2. - Compute distance
30Comparison
- (Review) Lins Algorithm
- Preprocessing polytopes
31Comparison
- (Review) Lins Algorithm
- Find closest features (V,E,F) between polyhedras
(6 cases) - 3 applicability tests (mutual test)
- Point Vertex
- Point Edge
- Point Face
- Then find distance between these features
32Comparison
33Comparison Algorithm Nature
34Comparison Algorithm Nature
35Comparison Algorithm Nature
36Comparison Algorithm Nature
37Comparison Algorithm Nature
38Comparison Efficiency
39Comparison Run Time
Gilbert Algorithm (Harris 800) (CPU 0.23
MFLOP/sec)
Lin Algorithm (Sun4 SPARC) (CPU 1.4 MFLOP/sec)
Greenspan Algorithm (CPU1 1.7 MFLOP/sec) (CPU2
4 MFLOP/sec)
1. Direct Manipulation lt10msec 2. Planning 6
seconds
40Comparison Applications