def move_ik(self, stamped_pose):
"""Take a PoseStamped and move the arm there.
"""
action_address = ('/' + self.robot_type + '_driver/pose_action/tool_pose')
self.client = actionlib.SimpleActionClient(
action_address,
kinova_msgs.msg.ArmPoseAction)
if not isinstance(stamped_pose, PoseStamped):
raise TypeError("No duck typing here? :(")
pose = stamped_pose.pose
position, orientation = pose.position, pose.orientation
# Send a cartesian goal to the action server. Adapted from kinova_demo
rospy.loginfo("Waiting for SimpleAction server")
self.client.wait_for_server()
goal = kinova_msgs.msg.ArmPoseGoal()
goal.pose.header = Header(frame_id=(self.robot_type + '_link_base'))
goal.pose.pose.position = position
goal.pose.pose.orientation = orientation
rospy.loginfo("Sending goal")
print goal
self.client.send_goal(goal)
# rospy.loginfo("Waiting for up to {} s for result".format(t))
if self.client.wait_for_result(rospy.Duration(100)):
rospy.loginfo("Action succeeded")
print self.client.get_result()
return self.client.get_result()
else:
self.client.cancel_all_goals()
rospy.loginfo(' the cartesian action timed-out')
return None
jaco.py 文件源码
python
阅读 26
收藏 0
点赞 0
评论 0
评论列表
文章目录