Ask Your Question

1D motion profile generation?

asked 2015-07-31 11:31:37 -0500

lucasw gravatar image

updated 2015-07-31 11:42:00 -0500

Is there a ros package to generate position s-curves / trapezoidal velocity profiles for motion control? I'd like to be able to specify velocity and acceleration limits, then do a velocity or a position command and get a constant acceleration ramp up to constant target velocity, then ramp down at the end. (in other words, not a PID controller, though I may have one of my own running in a higher frequency inner loop to track the commanded velocity)

Maybe there is a lightweight non-ROS python package that can do it?

edit retag flag offensive close merge delete

Comments asks for implementation details, though I would like existing software.

lucasw gravatar imagelucasw ( 2015-07-31 12:08:14 -0500 )edit

Trying out to see if there is an answer there.

lucasw gravatar imagelucasw ( 2017-10-07 12:32:25 -0500 )edit

1 Answer

Sort by » oldest newest most voted

answered 2019-09-07 08:42:37 -0500

lucasw gravatar image

This is the closest I've found so far, but it relies on Matlab/Simulink exports to run:

opt_control generates time-optimal second- and third order trajectories from arbitrary start- to arbitrary target states. The trajectories respect per-axis constraints on minimum and maximum velocity, acceleration and jerk. Individual axes can be coupled by synchronizing the total time of each trajectory. Since the method is very fast (<<1ms per axis per trajectory), it can be used in closed loop even for fast systems. With the ability to predict the target state, trajectories end in an optimal interception point when the waypoint is non-stationary. The method has been successfully used as model predictive controller on different micro aerial vehicles, in different research projects and robotic competitions.

edit flag offensive delete link more



opt_control is interesting, but has some drawbacks (the matlab thing, which you already note, but there are also some assumptions about the use-case and the fact that it is mostly focused on usage with drones and similar kinematics).

Another interesting one is hungpham2511/toppra:

TOPP-RA is a library for computing the time-optimal path parametrization for robots subject to kinematic and dynamic constraints.

If you have no jerk-limitations then this library is actually pretty OK. There's even a ROS wrapper available here.

And it's all Python.

gvdhoorn gravatar imagegvdhoorn ( 2019-09-07 09:11:20 -0500 )edit

Your Answer


Add Answer

Question Tools



Asked: 2015-07-31 11:31:37 -0500

Seen: 1,682 times

Last updated: Sep 07