__init__.py
Go to the documentation of this file.
1 from __future__ import absolute_import, division, print_function
2 import rospy
3 from tf2_ros import Buffer, TransformListener, BufferClient
4 from threading import Lock
5 
6 __all__ = [
7  'clear',
8  'get_buffer'
9 ]
10 
11 _lock = Lock()
12 _buffer = None
13 _listener = None
14 
15 
16 def get_buffer():
17  global _buffer, _listener
18  with _lock:
19  if _buffer is None:
20  server = rospy.get_param('~tf_server', None)
21  if server:
22  check_frequency = rospy.get_param('~tf_check_frequency', None)
23  timeout_padding = rospy.get_param('~tf_timeout_padding', 2.0)
24  _buffer = BufferClient(server, check_frequency, rospy.Duration.from_sec(timeout_padding))
25  rospy.loginfo('Using tf buffer client (server %s, timeout padding %.3g s).',
26  server, timeout_padding)
27  else:
28  cache_time = rospy.get_param('~tf_cache_time', 10.0)
29  queue_size = rospy.get_param('~tf_queue_size', None)
30  buff_size = rospy.get_param('~tf_buff_size', 65536)
31  _buffer = Buffer(rospy.Duration(cache_time))
32  _listener = TransformListener(_buffer, queue_size, buff_size)
33  rospy.loginfo('Using local tf buffer (cache %.3g s, queue size %s, buffer size %s).',
34  cache_time, queue_size, buff_size)
35 
36  return _buffer
37 
38 
39 def clear(buffer=True, listener=True):
40  global _buffer, _listener
41  with _lock:
42  if listener and _listener is not None:
43  _listener.unregister()
44  _listener = None
45  rospy.loginfo('Listener unregistered and deleted.')
46  if buffer and _buffer is not None:
47  _buffer = None
48  rospy.loginfo('Buffer deleted.')
def clear(buffer=True, listener=True)
Definition: __init__.py:39
BufferPtr get_buffer(ros::NodeHandle &nh, ros::NodeHandle &pnh)
Definition: tf2_client.cpp:10


tf2_client
Author(s): Tomas Petricek
autogenerated on Sat May 27 2023 02:41:41