No version for distro humble showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro lyrical showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

bitbots_tf_buffer package from bitbots_main repo

bitbots_blackboard bitbots_body_behavior bitbots_bringup bitbots_cargo bitbots_diagnostic bitbots_docs bitbots_education bitbots_extrinsic_calibration bitbots_ipm bitbots_parameter_blackboard bitbots_player_state bitbots_robot_description bitbots_teleop bitbots_tts bitbots_utils bitbots_whistle_detector system_monitor bitbots_animation_rqt bitbots_animation_server bitbots_emergency bitbots_hcm bitbots_head_mover bitbots_rl_motion bitbots_splines bitbots_msgs bitbots_global_planner bitbots_localization bitbots_localization_handler bitbots_odometry bitbots_path_planning piplus_animations piplus_description bitbots_mujoco_sim bitbots_team_communication bitbots_team_data_sim_rqt bitbots_vision bitbots_ball_filter bitbots_robot_filter audio_common audio_common_msgs biped_interfaces bitbots_tf_buffer domain_bridge dynamic_stack_decider dynamic_stack_decider_visualization game_controller_hsl game_controller_hsl_interfaces humanoid_base_footprint imu_complementary_filter rviz_imu_plugin ipm_image_node ipm_interfaces ipm_library ipm_service launch launch_pytest launch_testing launch_testing_ament_cmake launch_xml launch_yaml test_launch_testing livelybot_bringup livelybot_msg livelybot_oled livelybot_power livelybot_serial serial yesense_imu particle_filter ros2_numpy ros2_python_extension rot_conv soccer_field_map_generator soccer_geometry_msgs soccer_interfaces soccer_model_msgs soccer_vision_2d_msgs soccer_vision_3d_msgs soccer_vision_attribute_msgs soccer_ipm soccer_vision_3d_rviz_markers udp_bridge zed_msgs zed_components zed_ros2 zed_wrapper

ROS Distro
github

Package Summary

Version 1.0.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bit-bots/bitbots_main.git
VCS Type git
VCS Version main
Last Updated 2026-10-26
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A performant non blocking rclpy tf buffer utilizing rclcpp under the hood

Maintainers

  • Florian Vahl

Authors

No additional authors.

Bit-Bots TF Buffer

This is a nearly drop-in replacement for tf2_ros.Buffer in Python. It wraps a C++ node that holds the tf buffer and listener. The interface should be the same as the original tf2_ros.Buffer and tf2_ros.TransformListener, except for e.g. qos settings that are not supported for now.

Why?

Sadly rclpy is very slow. This is not only a Python problem, but also a problem of the underlying rclpy implementation.

TF2 is used in many nodes. The amount of callbacks that are triggered by TF2 can be very high, especially if there are multiple sources of TF data and you operate on a high frequency. A simple ROS 2 rclpy node can easily max out a CPU core just by processing TF data. This is especially unlucky, if TF is only used at a few places in the code for e.g. low frequency navigation or behavior operations.

This package aims to solve this problem by moving the TF buffer and listener to a C++ node that shares the process with the rclpy node. This way, the TF callbacks are processed in C++ and the Python node only needs to query the buffer for the latest transforms using a simple and performant pybind11 interface when needed.

While spinning up an additional Node is not ideal, the performance gain is significant and the overhead of the additional node is negligible compared to the performance gain.

In addition to that, this solution also reduces the amount of executor deadlock scenarios and enables the usage of an single threaded executor for the rclpy node instead of the multi-threaded executor in many cases resulting in further performance gains.

Usage

Replace from tf2_ros import Buffer, TransformListener with from bitbots_tf_buffer import Buffer, TransformListener.

Installation

First we need to clone the repository as well as one of its dependencies:

cd <replace_with_your_ws>/src
git clone git@github.com:bit-bots/bitbots_tf_buffer.git -b jazzy
git clone git@github.com:bit-bots/ros2_python_extension.git -b jazzy

Then run rosdep to install the dependencies (most likely you already have them installed):

rosdep update
rosdep install --from-paths . --ignore-src -r -y

Now we can build and use the package:

colcon build

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bitbots_tf_buffer at Robotics Stack Exchange