Skip to content

Python wrapper of the C version of the Dubins-Curves library

License

Notifications You must be signed in to change notification settings

TTCColorado/pydubins

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dubins

Overview

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

Latest documentation Current build status license shield

Installing

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

Example

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)

Acknowledgements

This work was completed as part of [Walker11].

  • Francis Valentinis
  • Royce Smart - who tested early versions of this code while completing his PhD thesis [Smart08].

References

[Dubins57]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
[LaValle06]LaValle, S. M. (2006). "Planning Algorithms". Cambridge University Press
[Shkel01]Shkel, A. M. and Lumelsky, V. (2001). "Classification of the Dubins set". Robotics and Autonomous Systems 34 (2001) 179–202
[Walker11]Walker, A. (2011). "Hard Real-Time Motion Planning for Autonomous Vehicles", PhD thesis, Swinburne University.
[Smart08]Royce, S. (2008). "Evolutionary Control of Autonomous Underwater Vehicles". PhD thesis, RMIT

About

Python wrapper of the C version of the Dubins-Curves library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 58.0%
  • Cython 28.6%
  • Python 12.3%
  • Shell 1.1%