Planning a Collision-free path without strange Robot movements

asked 2021-08-26 02:22:53 -0500

squidrocket gravatar image


I am currently working on my master thesis, part of this work is a ROS project. I feel like the Planners in MoveIt are not working properly or are not suitable for my problem. I am working with a KUKA iiwa 14 (7 DOF), a real bar counter + tap, RViz for visualization and ROS Kinetic (Source) on Ubuntu 16.04.

The robot's task is to place a full beer glass from under the tap onto the counter. The beer must be placed on a coaster, but this can be placed anywhere on the counter. The position of the coaster is detected by a camera. The beer must not be spilled (obviously :D). The robot must therefore plan a collision-free path around the tap and over the bar, whereby the orientation of the gripper should not change.

Currently I am using RRTConnect as a Planner and Trac_ik as an IK Solver. But I have already tried RRT* und PRM* with the different OMPL Optimization Objectives.

Sometimes there are collisions with the objects inserted in the workspace. It does not matter whether it is the glass inserted during runtime or the counter that was defined in the URDF. I have already tried padding the robot, but this did not work. At the moment I have added a scale factor to the URDF collision tags of the robot, the collision geometry is now about 25% thicker.

My last attempt was to replace OMPL with STOMP. But STOMP as a planner did not look at the collision objects anymore in this case. Furthermore, the path planning was aborted very often, even for the simplest movements. If STOMP was pipelined behind OMPL, STOMP discarded OMPL's already planned path and passes through the collision objects in this case as well.

At present, the robot travels the most absurd paths, mostly changing the orientation of the gripper. The robot often turns backwards, reorients all axes, and then travels in a large arc to the counter.

Do you have experience with MoveIt planners, and could you help me with my problem? Maybe you know which is the best planner for me or which parameters could help me.

I have already used the Compute_Cartesian_Path_Plugin to plan a linear path, but the planning often failed. Is there another solution for linear trajectories?

Thanks in advance!


edit retag flag offensive close merge delete


This is not an answer, but I noticed this:

ROS Kinetic (Source) on Ubuntu 16.04.

my initial reaction would be to ask you: why are you using an EOL version of ROS on a nearly EOL version of Ubuntu? Additionally, if you've installed MoveIt using apt, you're using an EOL version of MoveIt.

For your own sanity, I would suggest you try and upgrade to something like at least Ubuntu 18.04 or even 20.04 and use MoveIt built from source from its master branch. So many things have changed since Kinetic (both in ROS and MoveIt) that you're missing out on many fixes and improvements.

I could imagine the MoveIt maintainers will not be able to help you unless you upgrade to a recent version of MoveIt.

gvdhoorn gravatar image gvdhoorn  ( 2021-08-26 02:30:56 -0500 )edit

Thank you for your comment, unfortunately my project is part of a bigger project with other collaborators. Therefore a change of the versions is not possible. The other projects would otherwise also have to make the version change.

squidrocket gravatar image squidrocket  ( 2021-08-30 01:39:46 -0500 )edit

The change to 18.04 is very painless, consider arguing for it. I don't see why building from source would not work in Kinetic, but I know that STOMP planned around obstacles when I tried it in Melodic. Are you building MoveIt from source or are you installing the binaries using apt? It is not clear from your post.

fvd gravatar image fvd  ( 2021-08-30 02:56:49 -0500 )edit

I don't see why building from source would not work in Kinetic

IIRC, master does not build any more on Kinetic/Xenial. Not without additional work anyway.

@squidrocket: have you considered using Docker containers?

gvdhoorn gravatar image gvdhoorn  ( 2021-08-30 03:23:09 -0500 )edit