This software finds the shortest paths between configurations for the Dubin's car, the forward only car-like vehicle with a constrained turning radius.
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
Sampling of a Dubin's path at finite size sizes
import dubins
q0 = (x0, y0, theta0)
q1 = (x1, y1, theta1)
r = turning_radius
step_size = 0.5
qs, _ = dubins.sample_dubins_path(q0, q1, r, step_size)
A good description of the equations and basic strategies for doing this are described in the book Planning Algorithms, by Steven LaValle
The approach adopted here is based on the algebraic solutions to the equations published by Shkel and Lumelsky "Classification of the Dubins set", however, rather than using the symmetry approach described in that work, a less efficient generate and test approach is used.
Various revisions of this code have been used in:
@phdthesis{ Walker:2011,
title = "Hard Real-Time Motion Planning for Autonomous Vehicles",
author = "Andrew Walker",
school = "Swinburne University of Technology",
year = "2011"
}
and in
@phdthesis{ Smart:2008,
title = "Evolutionary Control of Autonomous Underwater Vehicles",
author = "Royce Smart",
school = "RMIT",
year = "2008"
}