def test_lookup_transform(self): buffer = tf_service.BufferClient(EXPECTED_SERVER_NAME) self.assertTrue(buffer.wait_for_server(rospy.Duration(0.1))) buffer.lookup_transform(EXPECTED_TARGET_FRAME, EXPECTED_SOURCE_FRAME, rospy.Time(0), rospy.Duration(0.1)) with self.assertRaises(tf2_ros.LookupException): buffer.lookup_transform("bla", "blub", rospy.Time(0), rospy.Duration(0.1))
def test_can_transform(self): buffer = tf_service.BufferClient(EXPECTED_SERVER_NAME) self.assertTrue(buffer.wait_for_server(rospy.Duration(0.1))) self.assertTrue( buffer.can_transform(EXPECTED_TARGET_FRAME, EXPECTED_SOURCE_FRAME, rospy.Time(0), rospy.Duration(0.1))) self.assertFalse( buffer.can_transform("bla", "blub", rospy.Time(0), rospy.Duration(0.1)))
def test_wait_for_server_succeeds(self): buffer = tf_service.BufferClient(EXPECTED_SERVER_NAME) self.assertTrue(buffer.wait_for_server(rospy.Duration(0.1))) self.assertTrue(buffer.client.is_connected())
def test_wait_for_server_fails(self): buffer = tf_service.BufferClient("/wrong_server_name") self.assertFalse(buffer.wait_for_server(rospy.Duration(0.1))) self.assertFalse(buffer.client.is_connected())
import sys import rospy import tf2_ros import tf_service if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--lookup_frequency", type=float, default=10) parser.add_argument("--use_old_version", action="store_true") args, _ = parser.parse_known_args(rospy.myargv(sys.argv)[1:]) rospy.init_node("client_test_py") if args.use_old_version: buffer = tf2_ros.BufferClient("/tf2_buffer_server") else: buffer = tf_service.BufferClient("/tf_service") buffer.wait_for_server() rate = rospy.Rate(args.lookup_frequency) while not rospy.is_shutdown(): try: buffer.lookup_transform("map", "odom", rospy.Time(0), rospy.Duration(1)) except tf2_ros.TransformException as e: rospy.logerr("%s: %s" % (str(type(e)), str(e))) break rate.sleep()