/pyReedsShepp

Implementation of Reeds-Shepp curve, with boost c++11 compile fix.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Reeds Shepp Path Library

Current build status

Overview
======

The library implements the analytic Reeds Shepp path between two SE2 configurations. Reeds Sheep path1 is defined as the shortest traveling path of the Reeds-Shepp Car, a car that can go both forward and backward with a constrained turning radius. Reeds-Sheep path can be viewed as a generalized version of Dubins path.

The primary C++ source code comes from Open Motion Planning Library (OMPL). And the API of Python version (primarily a Cython wrapper) is similar to the Dubins library from Andrew Walker.

More descriptions can be referred to the OMPL and section 15.3.2 of the book Planning Algorithms.

Installation

Install from source

$ sudo python setup.py install

Demo

$ python demos/demo.py

alternate text

API

  • path_length( q0, q1, turning_radius)
    • return total length of Reed Shepps curve from q0 to q1 with specified turning radius
  • path_sample( q0, q1, turning_radius, step_size)
    • return list of tuple (x,y,theta) uniformly sampled from corresponding Reed Shepps curve
  • path_type( q0, q1, turning_radius)
    • return the tuple of path segment type for the Reed Sheps curve from q0 to q1 with specified turning radius

TODO

  • PyPI install
  • cpp/python demo

References ======


  1. Reeds, J., & Shepp, L. (1990). Optimal paths for a car that goes both forwards and backwards. Pacific journal of mathematics, 145(2), 367-393.