timeout needs to be a rospy.Duration