plan optimal/smooth paths to cartesian target pose

asked 2023-01-12 11:27:06 -0500

I'm trying to program a UR10e robot arm. I'm currently using ROS noetic on Ubuntu 20.04.5 and MoveIt 1.

The goal is to create some kind of program that takes as input a target pose in cartesian space and then automatically plans (and executes) a smooth, "nice looking" movement to that pose, avoiding collisions with obstacles and the robot itself.

This seems to me like a pretty common problem so my first question would be if there are any simple out-of-the-box solutions.

Here is how I tried to approach this: I used the PlanningSceneInterface to build the planning scene and added 3D meshes of obstacles. Then, I defined some target poses in cartesian space and used the OMPL to plan movements to those poses. But the resulting movements are quite "ugly", i.e. the robot does not follow a direct path to the target but performs a lot of unnecessary movements.

A "nicer" movement could be accomplished by minimizing the path length in joint space while planning. A planner that does just that is Descartes which I tried to use. But it takes a cartesian trajectory as input and my goal is to only provide a target pose.

How would I go about this? Is there maybe a way to get the planners from OMPL to minimize the path length in joint space while planning? Are there any other planners you know of that produce "smooth" movements? After all, the paths don't need to be strictly optimal, just significantly better than what I get now.

I would prefer to keep using ROS noetic and MoveIt as they are the systems I have in place already but I'm also open to approaches that are entirely different.

I'm a little bit lost right now, so any idea is welcome and appreciated.

edit retag flag offensive close merge delete