Robotics StackExchange | Archived questions

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?

Asked by lucasw on 2015-07-31 11:31:37 UTC

Comments

http://answers.ros.org/question/41616/how-do-i-move-with-linear-velocity-for-an-exact-distance/ asks for implementation details, though I would like existing software.

Asked by lucasw on 2015-07-31 12:08:14 UTC

Trying out https://robotics.stackexchange.com/questions/14392/software-to-generate-linear-motion-profile to see if there is an answer there.

Asked by lucasw on 2017-10-07 12:32:25 UTC

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'

Asked by lucasw on 2020-11-21 12:48:23 UTC

Answers

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.

Asked by lucasw on 2019-09-07 08:42:37 UTC

Comments

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.

Asked by gvdhoorn on 2019-09-07 09:11:20 UTC