skillfed

toppra

toppra: time-optimal parametrization of trajectories for robots subject to constraints.

toppra v0.6.9 94.5K downloads/30d#13,324 on PyPI917
Permissive license MIT Active released

What it is and what it does

toppra is a library for computing time-optimal path parameterization—the fastest way to traverse a geometric path while respecting robot kinematic and dynamic constraints. Given a path and a list of constraints (joint velocity, joint acceleration, Cartesian velocity, etc.), it returns a parameterization function that describes how fast the robot should move at each point along the path. This allows you to generate the quickest feasible trajectory that satisfies all physical and operational limits.

The library depends on scipy, numpy, and matplotlib for numerical computation and visualization. It is actively maintained and distributed as compiled wheels for Python 3.9–3.14 on Linux x86_64. However, the description notes that Python support will be dropped in favor of a C++ version with bindings, so new projects should evaluate whether the C++ alternative is appropriate.

Use it for:

  • Generate fastest robot arm trajectories that respect joint velocity and acceleration limits for pick-and-place tasks.
  • Optimize mobile robot paths subject to dynamic constraints like maximum speed and turning radius.
  • Compute time-optimal tool trajectories in Cartesian space while satisfying kinematic singularity avoidance.
  • Parameterize pre-planned geometric paths to meet real-time execution deadlines on production robots.
  • Research and validate trajectory optimization algorithms against benchmark constraint sets.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Computes time-optimal path parameterization for robots subject to kinematic and dynamic constraints, converting a geometric path into the fastest feasible trajectory.

Yes, if you need to compute time-optimal trajectories for robots with kinematic or dynamic constraints and are comfortable with Python. The library is actively maintained, has no known vulnerabilities, and offers a straightforward API. However, note the deprecation warning: the project is transitioning to a C++ version with bindings, so for new long-term projects, evaluate whether that alternative is ready for your use case.

Install

toppra on PyPI

pip

pip install toppra

uv

uv add toppra

poetry

poetry add toppra

Installing toppra

Before you install

Medium install friction due to compiled wheels for multiple Python versions (3.9–3.14). Active maintenance with a recent release 17 days ago. Note: the description warns that Python support will be dropped in favor of a C++ version with bindings.

License in practice

MIT license is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.

Quickstart

pip install toppra

import toppra
import numpy as np

# Define a geometric path and constraints, then compute time-optimal parameterization
# Example: path_s = toppra.compute_parameterization(path, constraints)

Requires scipy, numpy, and matplotlib as runtime dependencies; compiled wheels available for Linux x86_64 only (manylinux2014 and musllinux).

Verify before relying

  • Whether the C++ version with bindings is production-ready and recommended as a replacement for new projects.
  • Specific robot platforms or constraint types this version handles (joint velocity, Cartesian velocity, etc.).
  • Performance characteristics or scalability limits for complex paths or constraint sets.

Package facts

License MIT (permissive)
Python support not specified
Install friction medium — platform-specific wheel
Runtime dependencies 3 — scipy, numpy, matplotlib
Maintenance actively maintained — 17 days since the last release
Last repo commit
First released
Downloads 94,528/month — #13,324 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: toppra-0.6.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp310-cp310-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp311-cp311-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp312-cp312-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp313-cp313-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp314-cp314-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp314-cp314t-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp39-cp39-musllinux_1_2_x86_64.whl

Tags

robot trajectory optimizationtime-optimal path planningkinematic constraint solverrobot motion planningpath parameterizationdynamic constraint trajectoryrobot speed profile
roboticstrajectory-optimizationmotion-planning

More Scientific/Engineering packages

Further reading