Consider adding blending to Cartesian planning
Opened this issue · 4 comments
Instead of having to stop exactly at the intermediate points, there are common approaches to blending Cartesian paths.
This is one resource I like: https://www.diag.uniroma1.it/~deluca/rob1_en/14_TrajectoryPlanningCartesian.pdf
Whether just blending on position is enough, or we also need to find ways to do the same with rotation e.g., here remains TBD.
Hi @sea-bass,
I learned the math in slides 6-13 from the resource you have shared above.
I also understood the implementation of examples/cartesian_path.py
and src/pyroboplan/planning/cartesian_planner.py
.
I have a few questions before attempting to implement blending:
- When using trapezoidal scaling, how to evaluate
v1
andv2
which are constant speeds on the two linear paths to be concatenated? - Three approaches are mentioned for blending in the slides above: assign transition time, assign distance from via point, and impose acceleration. Can I use any one of these techniques for the implementation?
I think there should be a maximum velocity magnitude v
assigned throughout. So at the start of the trajectory, the robot accelerates from 0 to v, at the end it decelerates, and at intermediate waypoints you want v1 = v2 = v
, magnitude-wise, but their directions may be different.
As for how to parameterize, I think the best bet is to set a distance from the via point and then let the timing be dictated by max accelerations. This can be referred to as a "blending radius".
But before all this... @eholum you said you were potentially looking at this same task?
Not yet! I had started writing a Cartesian interpolator but I won't get back to it for at least 2 weeks. Happy to help review anything, though, @muhidabid.
I thought nobody was looking into this issue. If you have started working on it @eholum, please continue!
I was planning on working on it at a slow speed anyway since I have my university enrollment in a few days and I am preparing to travel.
I will look into other issues no problem