# {py:mod}`ros_sugar.tf` ```{py:module} ros_sugar.tf ``` ```{autodoc2-docstring} ros_sugar.tf :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`TFListenerConfig ` - ```{autodoc2-docstring} ros_sugar.tf.TFListenerConfig :summary: ``` * - {py:obj}`TFListener ` - ```{autodoc2-docstring} ros_sugar.tf.TFListener :summary: ``` ```` ### API ````{py:class} TFListenerConfig :canonical: ros_sugar.tf.TFListenerConfig Bases: {py:obj}`ros_sugar.config.BaseAttrs` ```{autodoc2-docstring} ros_sugar.tf.TFListenerConfig ``` ```` `````{py:class} TFListener(tf_config: typing.Optional[ros_sugar.tf.TFListenerConfig] = None, node_name: str = '') :canonical: ros_sugar.tf.TFListener ```{autodoc2-docstring} ros_sugar.tf.TFListener ``` ````{py:property} translation :canonical: ros_sugar.tf.TFListener.translation :type: typing.Optional[numpy.ndarray] ```{autodoc2-docstring} ros_sugar.tf.TFListener.translation ``` ```` ````{py:property} rotation :canonical: ros_sugar.tf.TFListener.rotation :type: typing.Optional[numpy.ndarray] ```{autodoc2-docstring} ros_sugar.tf.TFListener.rotation ``` ```` ````{py:property} tf_buffer :canonical: ros_sugar.tf.TFListener.tf_buffer ```{autodoc2-docstring} ros_sugar.tf.TFListener.tf_buffer ``` ```` ````{py:method} set_listener(tf_listener: tf2_ros.transform_listener.TransformListener) :canonical: ros_sugar.tf.TFListener.set_listener ```{autodoc2-docstring} ros_sugar.tf.TFListener.set_listener ``` ```` ````{py:property} timer :canonical: ros_sugar.tf.TFListener.timer :type: typing.Optional[rclpy.timer.Timer] ```{autodoc2-docstring} ros_sugar.tf.TFListener.timer ``` ```` ````{py:method} timer_callback() :canonical: ros_sugar.tf.TFListener.timer_callback ```{autodoc2-docstring} ros_sugar.tf.TFListener.timer_callback ``` ```` ````{py:method} check_tf() -> bool :canonical: ros_sugar.tf.TFListener.check_tf ```{autodoc2-docstring} ros_sugar.tf.TFListener.check_tf ``` ```` `````