toppra Path-parameterization for robots

github release pypi circleci

toppra is a library for computing path parametrizations for geometric paths subject to certain forms of kinematic and dynamic constraints. Given

  1. a smooth 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 can produce the time-optimal path parameterization \(s_{dot} (s)\), from which the fastest trajectory q(t) that satisfies the given constraints can be found. The basic usage is very simple. Setting up a parametrization instance:

>>>   path = ta.SplineInterpolator(ss, way_pts)
>>>   pc_vel = constraint.JointVelocityConstraint(vlims)
>>>   pc_acc = constraint.JointAccelerationConstraint(alims)
>>>   instance = algo.TOPPRA([pc_vel, pc_acc], path)

Computing the time parameterization of a rest-to-rest motion is easy:

>>>   jnt_traj = instance.compute_trajectory(0, 0)

This is the output trajectory.


To make things even better, all of this is done in a few milliseconds! There are some additional features that you might find useful as well:

  1. Compute the time-optimal parametrization or a parametrization with specified duration.

  2. Able to handle multiple constraint types.

  3. Automatic grid-points selection.

  4. Python and C++ APIs.

Have a look at the below pages for more details on toppra usage.

Bug reports and supports

Please report any issues, questions via Github issues tracker.

Citing TOPP-RA!

If you find TOPP-RA useful and use it in 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!


(Feb, 2019) TOPP-RA was used to plan critically fast motions for robots doing bin picking with suction cup. Here critically fast motions are those that are fastest possible given the limited suction power and object weight. See the video below for more detail!

If you find this interesting, feel free to check out the paper: «Critically fast pick-and-place with suction cups». This paper has been presented at ICRA 2019.