Ask Your Question
0

MoveIt End Effector positioning

asked 2016-03-04 02:36:27 -0500

Joska213 gravatar image

Hi!

My question is that how can I move the end-effector forward. (Say, go forward by 0.05 m on Y-axis)?

My current status is the following:

I made my robot to move to a given position using rviz, so the robot position is not in the "center". After this I want to make the end effector to move by 0.05 m forward on Y-axis (as if i would like to push a button with my finger:) )

  geometry_msgs::Pose target_pose1 = group.getCurrentPose().pose;
  target_pose1.position.y -= 0.05;
  group.setPoseTarget(target_pose1);
  success = group.plan(my_plan);
  if (success) {
     group.execute(my_plan);
  }

But this does not work, because target_pose1.position.y -= 0.05; refers to the world coordinates not to the end-effector coordinates.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2016-03-08 04:40:55 -0500

Joska213 gravatar image

Solution was:

const Eigen::Affine3d &end_effector_state = kinematic_state->getGlobalLinkTransform("eef_link");
geometry_msgs::Pose pose;
tf::poseEigenToMsg(end_effector_state, pose);
pose.position.y -= 0.05;
group.setPoseTarget(pose);
edit flag offensive delete link more

Comments

What happen if you take a empty geometry_msgs::PoseStamped, use identity quaternion as orientation. Then add your translation, frame_id should be your end effector. It looks cleaner to me.

Arowana gravatar image Arowana  ( 2016-03-08 20:02:37 -0500 )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

3 followers

Stats

Asked: 2016-03-04 02:36:27 -0500

Seen: 1,036 times

Last updated: Mar 08 '16