120 likes | 236 Views
Computation of Configuration-Space Obstacles Using the Fast Fourier Transform. by Lydia E. Kavraki p res. Rex Tien. Goal of the Study. To quickly calculate a configuration space bitmap from robot, obstacle information regardless of shape complexity
E N D
Computation of Configuration-Space Obstacles Using the Fast Fourier Transform by Lydia E. Kavraki pres. Rex Tien
Goal of the Study • To quickly calculate a configuration space bitmap from robot, obstacle information regardless of shape complexity • C-space bitmap: n-dim array, 1: collisions, 0: “free” space • Useful for dynamic obstacles when C-space must be recalculated often • Useful when robot or objects have complicated, non-convex shapes
Notation • W: Workspace, Rn • A: Robot, a rigid body in W • B: Obstacle, a rigid body in W • C: Configuration space of A • q: Current configuration of robot • A(q): subset of W occupied by A at configuration q • CB: Mapping of B into C
Existing Algorithms • Analytical Algorithms (results must be sent to a C-space constructor) • Generalized convex polygons: O(nA + nB) • Nonconvex polygons: O(nA2nB2log(nAnB)) • Locally nonconvex: O(nA2nB2log(nAnB)), not locally nonconvex: O((nAnB+ c)log(nAnB)) • Convex polyhedra: O(nA+nB+c) • Any polyhedra: O(nA3nB3log(nAnB)) • Bitmap Algorithms • Rectilinearly convex A and B: O(N) • Depend not on n of vertices but rather N size of bitmap
Creating C-space Bitmap (2D Case) • Split W into NxN cells • W(i,j) = 1 if there is an obstacle in celli,j • C-space is NxNxNbinary array described by (x,y,θ), points correspond to Wi,jand a different map for each θ • For each (x,y,θ), A(x,y,θ)= 1 where robot body is present
Creating C-space, cont. • C-space is free if: • With fixed θ, A is only translating • Subbing - a convolution: Minkowski Difference!
Why FFT? • It’s fast ( O(NlogN)) • Direct computation would take O(N4) • Discrete • Can be generalized to N dimensions • Hardware implementation • Popular algorithm
FFT vs. O(N4) • FFT is better in asymptotic performance • With small robot mesh, Direct is faster • bitwise operations instead of multiplication • 90s vs…
Future Considerations • Rotation not handled explicitly by method • Inaccuracy of discrete Fourier • Mesh has constant spacing • Why do we need dense mesh in empty space? • Number of maps grows very large as robot complexity increases