MoveIt! compute_cartesian_path() does not compute correct joint trajectory
Hello, I am using ROS Hydro on Ubuntu 12.04. When calling MoveIt! Commander's (Python) move_group.compute_cartesian_path() method, the return value is always the current joint configuration. The code looks something like this.
eef_link = "gripper_palm_link"
waypoints = []
waypoints = group.get_random_pose(eef_link)
poses.append(copy.deepcopy(pose.pose))
waypoints = group.get_random_pose(eef_link)
poses.append(copy.deepcopy(pose.pose))
(plan, fraction) = group.compute_cartesian_path(waypoints, eef_step=0.01, jump_threshold=0.0, avoid_collisions=True)
My robot starts off in the home position which is essentially joint positions set to all zeros. After the call to compute_cartesian_path() the resultant joint trajectory look like this:
header:
seq: 20
stamp:
secs: 0
nsecs: 0
frame_id: base_link
joint_names: ['arm_joint_1', 'arm_joint_2', 'arm_joint_3', 'arm_joint_4', 'arm_joint_5']
points:
-
positions: [0.001216606411158061, 0.0001137616260065144, -0.0006536926007463251, 0.0025598054398985326, 0.0007543179427678126]
velocities: [0.0, 0.0, 0.0, 0.0, 0.0]
accelerations: [0.0, 0.0, 0.0, 0.0, 0.0]
effort: []
time_from_start:
secs: 2
nsecs: 0
The positions are essentially zero (i.e., the home position). I suspect that the call to group.get_random_pose(eef_link) is returning an invalid end effector position, but I don't know why it would do that. Any help would be appreciated.
My guess would be that you might have screwed up in the Setup-Assistant or your urdf? Did you check the limits in the urdf?
I am using the Kuka youbot URDF unmodified which I am assuming is correct. The setup assistant could be the problem or maybe that I am not setting the end effector link? One interesting data point is that if I call group.set_pose_target(pose) and then group.plan(), I get a valid trajectory from Moveit.