Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged toppra at Robotics Stack Exchange
Package Summary
| Version | 0.6.7 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/hungpham2511/toppra.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-19 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Hung Pham
- Sebastian Castro
Authors
- Hung Pham
- Joseph Mirabel
Description
This is a C++ implementation of the TOPP-RA algorithm.
Building
# clone
git clone -b develop https://github.com/hungpham2511/toppra
# build
mkdir -p cpp/build && cd cpp/build
cmake ..
make -j4
# run test
./tests/all_tests
Running test with pinocchio
pinocchio is used in toppra to calculate kinematical quantities such
as end-effector pose jacobians, required for task-space velocity
consraint.
Install pinocchio bindings (see below) and example from robotpkg,
then setup environment variables before building
# Building
export LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}
export CMAKE_PREFIX_PATH=/opt/openrobots
Add -DBUILD_WITH_PINOCCHIO=ON to the cmake command.
To run the tests
# Running
export ROS_PACKAGE_PATH=/opt/openrobots/share
export PYTHONPATH=/opt/openrobots/lib/python3.6/site-packages:$PYTHONPATH
# or any python version that you install
How to install optional dependencies:
- GLPK:
sudo apt install libglpk-dev - qpOASES:
sudo apt install robotpkg-qpoases(follow http://robotpkg.openrobots.org/debian.html for robotpkg) - pinocchio:
sudo apt install robotpkg-pinocchio(follow http://robotpkg.openrobots.org/debian.html for robotpkg)
Building Python bindings
We use pybind11 to provide the bindings. To build the bindings you
need to first install pybind11 version 2.5.0.
cd ~/ && git clone https://github.com/pybind/pybind11
cd pybind11 && git checkout v2.5.0
mkdir build && cd build && cmake -DPYBIND11_TEST=false .. && sudo make install
Build toppra with Python bindings and all optional dependencies:
cmake -DBUILD_WITH_PINOCCHIO=ON -DBUILD_WITH_qpOASES=ON -DBUILD_WITH_GLPK=ON -DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 ..
make
Running this step shall build the shared library libtoppra.so and create a CPython
module at toppra/cpp/ that linked to this shared library.
Issues during build
/usr/local/include/pybind11/detail/common.h:112:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
This is because during compilation, pybind11 can not find the Python header files.
Check that you have libpython-dev or libpython3-dev installed and whether the
correct Python executable is found during cmake step. You should see something similar to
below:
-- Found PythonInterp: /usr/bin/python3.7 (found suitable version "3.7.4", minimum required is "3.7")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so
-- Found /usr/include/python3.7m /usr/bin/python3.7
If this error persists, try give more hint to CMake FindPython
module by adding these flags to the cmake command:
-DPYTHON_BINDINGS=ON -DPYBIND11_PYTHON_VERSION=3.7 -DPython_EXECUTABLE=/usr/bin/python3.7
Building doxygen doc
Make sure that doxygen is installed and available. Running cmake
normally will create a rule for building doc with doxygen.
``` sh
Run cmake normally
File truncated at 100 lines see the full file
Changelog for package toppra
0.6.7 (2026-04-09)
- build(cpp): Modernize googletest CMake usage (#283)
- Contributors: Sebastian Castro
0.6.6 (2026-03-31)
- [cpp] Add missing cassert includes (#280)
- [cpp] Fix CMake syntax for Eigen3 version check (#279)
- [ros] Add python3-dev and eigen as a dependency in package.xml (#278)
- Contributors: Sebastian Castro
0.6.5 (2026-03-27)
- [python]: Go back to master branch of hungpham2511 qpOASES repo (#273)
- Prepare for ROS build farm (#277)
- Contributors: Sebastian Castro
0.6.4 (2026-01-26)
- chore: Bump version to 0.6.4 (#268)
- Fix Python and C++ CI, disable ECOS solver in tests (#270)
- build: Move Python library to its own subfolder to support building as ROS 2 package (#266)
- fix(test): Use ASSERT_NEAR for 0 comparison in test_parametrizer.cpp (#265)
- fix(cpp): incoherent bounds seidel lp 1d (#247)
- Contributors: Erik Holum, Joseph Mirabel, Maxim Skripnik, Sebastian Castro, Silvio Traversaro
0.6.3 (2025-03-16)
- Updated interface for numpy > 2.0 (#259)
- Contributors: Zachary Kingston
0.6.2 (2023-09-19)
- chore: Bump toppra version: '0.6.1' --> '0.6.2'
- feat: warn when solver fails (#241)
- Release version 0.6.2 (#242)
- Contributors: Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.6.1 (2023-04-21)
- chore: Bump toppra version: '0.6.0' --> '0.6.1' ( #233)
- fix: fix numerical issue in Seidel 1D solver.
- Contributors: Joseph Mirabel
0.6.0 (2023-03-08)
- chore: Bump toppra version: '0.5.2' --> '0.6.0'
- feat(cpp): Add initial gridpoints to proposeGridpoints (#227)
- feat(cpp,constraint): Make Interpolation the default method (#225)
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.2 (2022-11-19)
- Bump version: 0.5.1 → 0.5.2
- chore: make C++ always define all installed symbols. (#215)
- feat: Allow setting N=0 to select gridpoints automatically (#201)
- feat: Improve the cubic spline, hermite spline factory methods (#202)
- doc,build: Minor adjustments to docstring for a clearer explaination
- doc: Improve PiecewisePolyPath constructor docstring
- Contributors: Hung, Hung Pham (Phạm Tiến Hùng), Joseph Mirabel
0.5.1 (2022-07-15)
- Bump version: 0.5.0 → 0.5.1
- Contributors: Hung
0.5.0 (2022-07-14)
- Bump version: 0.4.2 → 0.5.0
- Make path times public. (#197)
- Fixed bug in ConstAccel parametrizer where evaluating valid times can sometimes result in an exception being thrown. (#193)
- Google Test: master -> main
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| ament_cmake_gtest |
System Dependencies
| Name |
|---|
| pybind11-dev |
| python3-dev |
| eigen |