Code to generate and manipulate dubins curves
This software finds the shortest paths between configurations for the Dubins’ car [Dubins57], the forward only car-like vehicle with a constrained turning radius. A good description of the equations and basic strategies for doing this are described in section 15.3.1 “Dubins Curves” of the book “Planning Algorithms” [LaValle06].
The approach used to find paths is based on the algebraic solutions published in [Shkel01]. However, rather than using angular symmetries to improve performance, the simpler approach to test all possible solutions is used here.
This code is primarily a Cython wrapper of https://github.com/AndrewWalker/Dubins-Curves
You can install the latest stable version from PyPI
$ pip install dubins
Or, you can install the latest development version from GitHub
$ pip install git+git://github.com/AndrewWalker/pydubins.git
Discrete Sampling of a Dubin’s path at finite step sizes
import dubins q0 = (x0, y0, theta0) q1 = (x1, y1, theta1) turning_radius = 1.0 step_size = 0.5 path = dubins.shortest_path(q0, q1, turning_radius) configurations, _ = path.sample_many(step_size)
This work was completed as part of [Walker11].
Royce Smart - who tested early versions of this code while completing his PhD thesis [Smart08].
Dubins, L. E. (July 1957). “On Curves of Minimal Length with a Constraint on Average Curvature, and with Prescribed Initial and Terminal Positions and Tangents”. American Journal of Mathematics 79 (3): 497–516
LaValle, S. M. (2006). “Planning Algorithms”. Cambridge University Press
Shkel, A. M. and Lumelsky, V. (2001). “Classification of the Dubins set”. Robotics and Autonomous Systems 34 (2001) 179–202
Walker, A. (2011). “Hard Real-Time Motion Planning for Autonomous Vehicles”, PhD thesis, Swinburne University.
Royce, S. (2008). “Evolutionary Control of Autonomous Underwater Vehicles”. PhD thesis, RMIT
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.