personalrobotics / prpy

Python utilities used by the Personal Robotics Laboratory.
BSD 3-Clause "New" or "Revised" License
62 stars 19 forks source link

Time-optimal trajectory timing #28

Open siddhss5 opened 9 years ago

siddhss5 commented 9 years ago

We do not have a single algorithm that times a path while satisfying velocity and acceleration limits. LinearTrajectoryRetimer claims to do it, but literally moves at constant speed along each segment, producing infinite acceleration at each waypoint. ParabolicTrajectoryRetimer does it, but stops at every waypoint, and is useless. ParabolicSmoother modifies the path, and is also often flaky. It would be great if someone [@mkoval] could hook up Tobias Kunz's code for time-optimal retiming as an OpenRAVE retimer: https://github.com/tobiaskunz/trajectories It's based on this paper: http://www.roboticsproceedings.org/rss08/p27.html We really need this!

mkoval commented 9 years ago

@cdellin has a clean implementation of MacTrajectory working in a standalone library. I believe he's nearly done writing the necessary glue code to call the library from OpenRAVE as a smoother. I'd rather wait for this to be done.

It will be challenging to use Tobias Kunz's code in OpenRAVE because it uses circular blends. The built-in trajectory representation (GenericTrajectory) only supports splines, so we will need to write another custom trajectory plugin.