31 from moveit_msgs.srv
import GetPositionIK, GetPositionIKResponse
43 params = rospy.get_param(
'ik_proxy')
46 tool_interface = {
'':
None}
50 group_name = x[
'group_name']
51 robot_name = x[
'robot_name']
52 tool_name = x[
'tool_name']
54 if not robot_name
in robot_interface:
60 joint_names[robot_name] = rospy.get_param(ns +
'controller_joint_names')
62 if not tool_name
in tool_interface:
66 'robot': robot_interface[robot_name],
67 'tool': tool_interface[tool_name],
68 'joint': joint_names[robot_name] }
71 print "-----------request!" 72 pos = req.ik_request.pose_stamped.pose.position
73 ori = req.ik_request.pose_stamped.pose.orientation
74 group_name = req.ik_request.group_name
76 tool = self.
_config[group_name][
'tool']
78 res = GetPositionIKResponse()
82 rb = self.
_config[group_name][
'robot']
84 print(
'tool_offset: {}'.format(tool.get_offset()))
85 offset = tool.get_offset()
94 joint = rb.get_position_ik([pos.x, pos.y, pos.z], [ori.x, ori.y, ori.z, ori.w])
95 res.solution.joint_state.header = req.ik_request.pose_stamped.header
98 print req.ik_request.pose_stamped.pose
105 res.solution.joint_state.name = self.
_config[group_name][
'joint']
107 res.solution.joint_state.position = joint
108 res.error_code.val = res.error_code.SUCCESS
110 print '>--------------res' 112 print '<--------------res' 113 print res.solution.joint_state.position
116 res.error_code.val = res.error_code.NO_IK_SOLUTION
121 rospy.init_node(
'ik_proxy')
124 print "Ready to solve ik." 127 if __name__ ==
"__main__":
def handle_solve_ik(self, req)