38 import geometry_msgs.msg
41 if __name__ ==
'__main__':
42 rospy.init_node(
'turtle_tf2_listener_wait')
47 rospy.wait_for_service(
'spawn')
48 spawner = rospy.ServiceProxy(
'spawn', turtlesim.srv.Spawn)
51 turtle_vel = rospy.Publisher(
'turtle2/cmd_vel', geometry_msgs.msg.Twist, queue_size=1)
53 rate = rospy.Rate(10.0)
54 while not rospy.is_shutdown():
56 trans = tfBuffer.lookup_transform(
'turtle2',
'turtle1', rospy.Time.now(), rospy.Duration(1.0))
57 except tf2_ros.Exception:
60 angular = 4 * math.atan2(trans.transform.translation.y, trans.transform.translation.x)
61 linear = 0.5 * math.sqrt(trans.transform.translation.x ** 2 + trans.transform.translation.y ** 2)
62 msg = geometry_msgs.msg.Twist()
64 msg.angular.z = angular
65 turtle_vel.publish(msg)