# 1D motion profile generation?

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 close merge delete

( 2015-07-31 12:08:14 -0600 )edit

Trying out https://robotics.stackexchange.com/qu... to see if there is an answer there.

( 2017-10-07 12:32:25 -0600 )edit

Results from robotics stackexchange gatekeepers:

This post is hidden. It was automatically deleted 3 years ago by Community


Definitely the wrong venue, robotics and software aren't to be mixed there:

questions asking for code are off-topic


Also a refutation of the whole concept of open source software, and indirectly ROS itself (not surprising given above I suppose):

it's quicker to learn the math and code from scratch 100 lines of code than to dig through a bunch of libraries looking at implementations


And stack exchanges:

the problem appears to be 'Can you guys Google this for me, because I didn't find anything'

( 2020-11-21 11:48:23 -0600 )edit

Sort by ยป oldest newest most voted

This is the closest I've found so far, but it relies on Matlab/Simulink exports to run: https://github.com/AIS-Bonn/opt_control

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.

more

1

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.

( 2019-09-07 09:11:20 -0600 )edit