Blend Radius with MoveIt/ROS/UR5e
Dear all,
i controll my Universal Robot UR5e with Ros and MoveIt. It works all fine. Now I want to add the functionality "movep" that the UR5e has in the UR-Script Language. This command is described here. The TCP of the robot should not go exactly on the target point, it should do a smooth transistion between the previous and following trajectory, like in the picture.
The Pilz Industrial Motion Planner provides such an implementation.
But now my question: Is it possible to realize it without the Pilz Planner? I could compute several points on the "rounded edge" with a specific sampling rate, but then the robot will stop for a while at each point. That is not a smooth transition. I am looking forward for your help. Thanks a lot!!
My Setup: Ubuntu 18.04 and Ros Melodic for UR5e (UR Driver)
What's the problem with the Pilz Planner?
There is no problem, but for our project we need to test more planner instead of only the Pilz Planner.
Switching between planning pipelines (e.g. OMPL and Pilz) is supported on the MoveIt master branch, so if you build from source, you use both right away.
Thanks a lot for your answers.
I know that i can use both right away. But i want explicitly compare both planners. So what i am looking for is a solution how i can do a blend radius "manually" with the ompl. Somehow it has to be possible to do a circular move with constant velocity, but i have no idea how.
Perhaps @fexner can comment on the driver-side of this, but I seem to recall blending is not supported right now.
personally I'd not find this a fair comparison: the Pilz planner essentially interpolates between a set of poses. It does not investigate alternatives, nor is it capable of optimising a plan. It's also not capable of avoiding obstacles. It linearly interpolates over a given trajectory, stopping if a collision is detected.
OMPL on the other hand is a full probabilistic motion planner with a planning scene, optimisation support, etc, etc.
What aspects would you want to compare these on?
I'm also wondering whether the concept of blending makes sense in the OMPL case: the output of those planners is essentially joint space paths, and the various optimisation and smoothing steps already lead to curved paths most of the time, with ...(more)
It depends on what you call "sharp, instantaneous direction changes", but the paths produced by MoveIt and the OMPL default settings aren't exactly very smooth (outside of the trivial solution). I think blending multiple OMPL trajectories may be useful, but blending inside one seems like an ill-posed problem.
There was a tiny discussion here about using blending outside of the Pilz planner, for the record.
In summary, there is no standard way to blend OMPL trajectories, but if I were to do it, I would use the existing plugin, take the start/end of each trajectory as a waypoint, relax the requirements on acceleration/velocity, and then retime the trajectory as a whole.
Thanks for all your extensive input. It really help me a lot.
I think the approach @fexner mentioned, sound very interesting for me. I will have a look into the testing repository and will then comment here again.