def test_await_transform_full_immediately_available(self): # wait for a transform that is already available to test short-cut code buffer = Buffer() clock = rclpy.clock.Clock() rclpy_time = clock.now() transform = self.build_transform('foo', 'bar', rclpy_time) buffer.set_transform(transform, 'unittest') coro = buffer.lookup_transform_full_async('foo', rclpy_time, 'bar', rclpy_time, 'foo') with self.assertRaises(StopIteration) as cm: coro.send(None) self.assertEqual(transform, cm.exception.value) coro.close()
def test_await_transform_delayed(self): # wait for a transform that is not yet available buffer = Buffer() clock = rclpy.clock.Clock() rclpy_time = clock.now() transform = self.build_transform('foo', 'bar', rclpy_time) coro = buffer.lookup_transform_async('foo', 'bar', rclpy_time) coro.send(None) buffer.set_transform(transform, 'unittest') with self.assertRaises(StopIteration) as cm: coro.send(None) self.assertEqual(transform, cm.exception.value) coro.close()
def test_can_transform_valid_transform(self): buffer = Buffer() clock = rclpy.clock.Clock() rclpy_time = clock.now() transform = self.build_transform('foo', 'bar', rclpy_time) self.assertEqual(buffer.set_transform(transform, 'unittest'), None) self.assertEqual(buffer.can_transform('foo', 'bar', rclpy_time), True) output = buffer.lookup_transform('foo', 'bar', rclpy_time) self.assertEqual(transform.child_frame_id, output.child_frame_id) self.assertEqual(transform.transform.translation.x, output.transform.translation.x) self.assertEqual(transform.transform.translation.y, output.transform.translation.y) self.assertEqual(transform.transform.translation.z, output.transform.translation.z)
def test_buffer_non_default_cache(self): buffer = Buffer(cache_time=rclpy.duration.Duration(seconds=10.0)) clock = rclpy.clock.Clock() rclpy_time = clock.now() transform = self.build_transform('foo', 'bar', rclpy_time) self.assertEqual(buffer.set_transform(transform, 'unittest'), None) self.assertEqual(buffer.can_transform('foo', 'bar', rclpy_time), True) output = buffer.lookup_transform('foo', 'bar', rclpy_time) self.assertEqual(transform.child_frame_id, output.child_frame_id) self.assertEqual(transform.transform.translation.x, output.transform.translation.x) self.assertEqual(transform.transform.translation.y, output.transform.translation.y) self.assertEqual(transform.transform.translation.z, output.transform.translation.z)