toppra
toppra: time-optimal parametrization of trajectories for robots subject to constraints.
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 topprauv
uv add topprapoetry
poetry add toppraInstalling 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
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
gtsamGTSAM is a Python wrapper around a C++ library…
permissive · top 15,000 on PyPI
mplibMPlib provides motion planning algorithms for…
permissive · top 15,000 on PyPI
python-motion-planningImplements motion planning algorithms including…
copyleft · top 15,000 on PyPI
dex-retargetingTranslates human hand motion to robot hand…
permissive · top 15,000 on PyPI
pin-pinkPink solves differential inverse kinematics for…
permissive · top 15,000 on PyPI
evoevo evaluates and compares trajectory output…
copyleft · top 15,000 on PyPI
libpinocchiolibpinocchio provides efficient rigid body…
permissive · top 15,000 on PyPI
drakeDrake is a robotics toolbox for analyzing robot…
permissive · top 15,000 on PyPI
pinPython interface to a C++ rigid-body dynamics…
permissive · top 5,000 on PyPI
minkmink solves inverse kinematics problems for…
permissive · top 15,000 on PyPI