Go to the documentation of this file.00001
00002
00003 import roslib; roslib.load_manifest('cob_lookat_action')
00004 import rospy
00005 import random
00006
00007
00008 import actionlib
00009
00010 import cob_lookat_action.msg
00011 from geometry_msgs.msg import PoseStamped
00012 from moveit_msgs.srv import *
00013 from moveit_msgs.msg import *
00014
00015 def cob_lookat_action_client():
00016
00017
00018 client = actionlib.SimpleActionClient('lookat_action', cob_lookat_action.msg.LookAtAction)
00019 print "Waiting for Server..."
00020 client.wait_for_server()
00021 print "...done!"
00022
00023 focus_pub = rospy.Publisher('/lookat_target', PoseStamped)
00024 rospy.sleep(1.0)
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 goal = cob_lookat_action.msg.LookAtGoal()
00051
00052 focus = PoseStamped()
00053 focus.header.stamp = rospy.Time.now()
00054 focus.header.frame_id = "base_link"
00055 focus.pose.position.x = random.uniform(-5.0, 5.0)
00056 focus.pose.position.y = random.uniform(-1.0, 1.0)
00057 focus.pose.position.z = random.uniform(0.0, 3.0)
00058 focus.pose.orientation.x = 0.0
00059 focus.pose.orientation.y = 0.0
00060 focus.pose.orientation.z = 0.0
00061 focus.pose.orientation.w = 1.0
00062 goal.target = focus
00063
00064
00065
00066 focus_pub.publish(goal.target)
00067 rospy.sleep(1.0)
00068
00069
00070
00071 client.send_goal(goal)
00072
00073
00074 client.wait_for_result()
00075
00076 result = client.get_result()
00077 print result
00078
00079 return result.success
00080
00081 if __name__ == '__main__':
00082 try:
00083
00084
00085 rospy.init_node('cob_lookat_action_client')
00086 result = cob_lookat_action_client()
00087 except rospy.ROSInterruptException:
00088 print "program interrupted before completion"