Ask Your Question

MoveIt End Effector positioning

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

Joska213 gravatar image


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;
  success = group.plan(my_plan);
  if (success) {

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

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;
edit flag offensive delete link more


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



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

Seen: 1,036 times

Last updated: Mar 08 '16