Description: |
CWave: High-performance single-source any-angle path planning on a grid. Path planning on a 2D-grid is a well-studied problem in robotics. It usually involves searching for a shortest path between two vertices on a grid. Single-source path planning is a modified problem which asks to find distances from a given point to all other points on the map. A high-performance algorithm for single-source any-angle path planning on a grid that we named CWave is proposed in this work. “Any-angle” attribute of a path planning algorithm implies that such algorithm can find paths which may include any angle segments, as opposed to standard A* on an 8-connected graph, the path can turn with 45°-increments only. The key idea of the presented algorithm is that it does not represent the grid as a graph and uses discrete geometric primitives to define the wave front. In its purest form, CWave requires for computation only integer arithmetics and multiplication by two, but can accumulate the distance error at turning points. A modified version of CWave with minimal usage of floating-point calculations is also developed. It allows to eliminate any accumulative errors which is proven mathematically and experimentally on several maps. The performance of the algorithm on three maps is demonstrated to be significantly faster than that of Theta*, Lazy Theta* and Field A* adapted for single-source planning. The limitations of the current implementations of the algorithm as well as potential improvements are discussed. |