38 import geometry_msgs.msg
41 if __name__ ==
'__main__':
42 rospy.init_node(
'turtle_tf_listener_wait')
46 rospy.wait_for_service(
'spawn')
47 spawner = rospy.ServiceProxy(
'spawn', turtlesim.srv.Spawn)
50 turtle_vel = rospy.Publisher(
'turtle2/cmd_vel', geometry_msgs.msg.Twist, queue_size=1)
52 rate = rospy.Rate(10.0)
53 while not rospy.is_shutdown():
55 now = rospy.Time.now()
56 listener.waitForTransform(
"/turtle2",
"/carrot1", now, rospy.Duration(1.0))
57 (trans, rot) = listener.lookupTransform(
"/turtle2",
"/carrot1", now)
61 angular = 4 * math.atan2(trans[1], trans[0])
62 linear = 0.5 * math.sqrt(trans[0] ** 2 + trans[1] ** 2)
63 msg = geometry_msgs.msg.Twist()
65 msg.angular.z = angular
66 turtle_vel.publish(msg)