@@ -243,9 +243,9 @@ bool MoveRelative::compute(const InterfaceState& state, planning_scene::Planning
243243 // compute absolute transform for link
244244 linear = frame_pose.linear () * linear;
245245 angular = frame_pose.linear () * angular;
246- target_eigen = link_pose ;
246+ target_eigen = ik_pose_world ;
247247 target_eigen.linear () =
248- target_eigen.linear () * Eigen::AngleAxisd (angular_norm, link_pose .linear ().transpose () * angular);
248+ target_eigen.linear () * Eigen::AngleAxisd (angular_norm, ik_pose_world .linear ().transpose () * angular);
249249 target_eigen.translation () += linear;
250250 goto COMPUTE;
251251 } catch (const boost::bad_any_cast&) { /* continue with Vector */
@@ -269,7 +269,7 @@ bool MoveRelative::compute(const InterfaceState& state, planning_scene::Planning
269269
270270 // compute absolute transform for link
271271 linear = frame_pose.linear () * linear;
272- target_eigen = link_pose ;
272+ target_eigen = ik_pose_world ;
273273 target_eigen.translation () += linear;
274274 } catch (const boost::bad_any_cast&) {
275275 solution.markAsFailure (std::string (" invalid direction type: " ) + direction.type ().name ());
@@ -278,7 +278,7 @@ bool MoveRelative::compute(const InterfaceState& state, planning_scene::Planning
278278
279279 COMPUTE:
280280 // transform target pose such that ik frame will reach there if link does
281- target_eigen = target_eigen * scene->getCurrentState ().getGlobalLinkTransform (link). inverse () * ik_pose_world ;
281+ target_eigen = target_eigen * ik_pose_world. inverse () * scene->getCurrentState ().getGlobalLinkTransform (link);
282282
283283 success = planner_->plan (state.scene (), *link, target_eigen, jmg, timeout, robot_trajectory, path_constraints);
284284
0 commit comments