Ask Your Question

moveit incomplete cartesian path execution

asked 2017-06-19 06:37:39 -0600

Felix_N gravatar image

Hi everyone,

Im currently programming a 6DOF robotic arm using moveit. I already managed to send goals via setPoseTarget(target_pose). However, I know want to use the cartesian path feature but I keep having trouble with it.

Here is the code which compiles just fine (i use a pointer to the move_group. This works in all other cases):

ros::AsyncSpinner spinner(1);

std::vector<geometry_msgs::Pose> waypoints;
geometry_msgs::Pose cart_start_pose = move_point->getCurrentPose().pose;

geometry_msgs::Pose cart_target_pose = cart_start_pose;

cart_target_pose.position.z -= 0.01;
waypoints.push_back(cart_target_pose);  // down

cart_target_pose.position.z -= 0.01;
waypoints.push_back(cart_target_pose);  // down again

moveit_msgs::RobotTrajectory trajectory;
const double jump_threshold = 0.0;
const double eef_step = 0.01;
double fraction = move_point->computeCartesianPath(waypoints, eef_step, jump_threshold, trajectory);
ROS_INFO_NAMED("tutorial", "Visualizing plan 4 (cartesian path) (%.2f%% acheived)", fraction * 100.0);


Using the "normal" goal planning the arm can easily move down about 10 cm so the goal is definitely valid.

The callback message i get is:

Computed Cartesian path with 2 points (followed 33.333333% of requested trajectory)

Setting only one goal besides the start position the percentage is 50%, setting 3 it is 25%. Obviously only the (already reached) start position is followed, which of course results in the robot not moving at all.

Any ideas how i get the model moving further than just the start position?

Thanks in advance,


edit retag flag offensive close merge delete


I'm stumbling on the exact same problem as well... Have you managed to solve it?

marcmitxy gravatar image marcmitxy  ( 2017-07-11 17:11:22 -0600 )edit

I also observed the same behavior. It seems to work a bit better if I use TracIK instead of KDL but I hard get close to 100% reproducibly. Also, the maximum planning time is never reached, it seems to give up much earlier.

daniel_maier gravatar image daniel_maier  ( 2018-04-12 04:11:53 -0600 )edit

Planning time limits are for planners. computeCartesianPath(..) is not a planner and does not take those limits into account.

gvdhoorn gravatar image gvdhoorn  ( 2018-04-12 04:14:41 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-07-11 21:59:20 -0600

According to the description here several tool poses get generated based on the eef step parameter. I could be that some of those poses aren't reachable (no ik solution).

edit flag offensive delete link more


IK failing for certain poses is definitely a problem with computeCartesianPath(..). There are only two ways it can fail: IK or because of the jump_threshold. In the code above that is disabled, so I would guess it's the IK here.

gvdhoorn gravatar image gvdhoorn  ( 2017-07-12 05:04:31 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2017-06-19 06:37:39 -0600

Seen: 1,078 times

Last updated: Jul 11 '17