Skip to content

Linjackffy/toppra

 
 

Repository files navigation

toppra: Time-Optimal Path Parameterization

CircleCI Coverage Status Documentation Status

Overview

toppra is a library for computing the time-optimal path parametrization for robots subject to kinematic and dynamic constraints. In general, given the inputs:

  1. a geometric path p(s), s in [0, s_end];
  2. a list of constraints on joint velocity, joint accelerations, tool Cartesian velocity, et cetera.

toppra returns the time-optimal path parameterization: s_dot (s), from which the fastest trajectory q(t) that satisfies the given constraints can be found.

Documentation and tutorials are available at (https://toppra.readthedocs.io/en/latest/index.html).

Installation (Python)

To install the latest development version, simply clone the repo and install with pip

git clone https://github.com/hungpham2511/toppra
cd toppra && pip install .

To install depencidencies for development, replace the second command with:

cd toppra && pip install -e .[dev]

C++ API

toppra is also implemented as a stand-alone C++ library with minimal dependency. See cpp/README.md for installation instruction and the test cases for example usage. Be warned that this implementation is relatively new and is not yet stable enough for production use.

Development roadmap

The following is a non-exhautive list of features that we are considering to include in the library.

  • Improve the trajectory / geometric path interface #81
  • Implement a C++ interface #43
  • Implement a C++ interface to popular motion planning libraries.
  • Improve the numerical stability of the solvers for degenerate cases.
  • Post-processing of output trajectories: #56, #80

Supports

Bug tracking

Please report any issues, questions or feature request via Github issues tracker.

Please provide more details on the errors/bugs that you encounter. The best way is to provide a Minimal Working Example that produces the reported bug and attach it with the issue report.

Contributions

Pull Requests are welcomed!

  • Go ahead and create a Pull Request and we will review your proposal!
  • For new features, or bug fixes, preferably the request should contain unit tests. Note that toppra uses pytest for all tests. Check out the test folder for more details.

Citing toppra

If you use this library for your research, we encourage you to

  1. reference the accompanying paper «A new approach to Time-Optimal Path Parameterization based on Reachability Analysis», IEEE Transactions on Robotics, vol. 34(3), pp. 645–659, 2018.
  2. put a star on this repository.

Packages

No packages published

Languages

  • Python 75.4%
  • C++ 20.7%
  • CMake 2.8%
  • Other 1.1%