Hostname: page-component-74656f9884-j7cmm Total loading time: 0 Render date: 2026-11-10T03:30:31.503Z Has data issue: false hasContentIssue false

CWave: Theory and Practice of a Fast Single-source Any-angle Path Planning Algorithm

Published online by Cambridge University Press:  15 May 2019

Dmitry A. Sinyukov*
Affiliation:
Robotics Engineering Program, Worcester Polytechnic Institute, Worcester, MA 01609, USA
Taşkin Padir
Affiliation:
Electrical and Computer Engineering Department, Northeastern University, Boston, MA 02115, USA E-mail: t.padir@northeastern.edu
*
*Corresponding author. E-mail: dsinyukov@wpi.edu
Rights & Permissions [Opens in a new window]

Summary

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Path planning on a two-dimensional grid is a well-studied problem in robotics. It usually involves searching for a shortest path between two vertices on a grid given that some of the grid cells are impassable (occupied by obstacles). Single-source path planning finds shortest paths from a given source vertex to all other vertices of the grid. Singles-source path planning enhances robot autonomy by calculating multiple possible paths for various navigation scenarios when the destination state is unknown. A high-performance algorithm for single-source any-angle path planning on a grid called CWave is proposed here. Any-angle attribute implies that the algorithm calculates paths which can include line segments at any angle, as opposed to standard A* that runs on an 8-connected graph, which permits turns with 45° increments only. The key idea of CWave is to abandon the graph model and operate directly on the grid geometry using discrete geometric primitives (instead of individual vertices) to represent the wave front. In its most basic form (CWaveInt), CWave requires only integer arithmetics. CWaveInt, however, can accumulate the distance error at turning points. A modified version of CWave (CWaveFpuSrc) with minimal usage of floating-point calculations is also developed to eliminate any accumulative errors, which is proven mathematically and experimentally on several maps. The performance of the algorithm on most of the tested maps is demonstrated to be significantly faster than that of Theta*, Lazy Theta*, Field A*, ANYA, Block A*, and A* adapted for single-source planning (on maps with lower number of isolated obstacles, CWaveFpuSrc is 2−3 times faster than its fastest tested alternative Block A*). An N-threaded implementation (CWaveN) of CWave is presented and tested to demonstrate an improved performance (multithreaded implementation is 1.5−3 times faster than single-threaded CWave). The paper discusses foundations and experimental validation of CWave, and presents future work to address the limitations of the current implementations and obtain further performance enhancements.

Information

Type
Articles
Copyright
© Cambridge University Press 2019