ROS 2 tool for recording and playback of timestamped messages from robotic systems.
Rosbag2 is the native recording and playback tool for ROS 2 systems, serving as the successor to the original ROS rosbag. It enables efficient capture and replay of timestamped communication data between ROS nodes, which is essential for debugging, analysis, and simulation in robotics development. The tool is designed to handle real-time data flows in complex robotic systems with minimal overhead.
Robotics developers and engineers working with ROS 2 who need to record, replay, and analyze robot communication data for debugging, testing, or simulation. This includes teams developing autonomous systems, robotic arms, or any ROS 2-based application where message logging is critical.
Developers choose Rosbag2 for its efficiency in real-time recording, flexible plugin-based architecture supporting multiple storage backends like MCAP and SQLite3, and advanced features like snapshot mode, QoS overrides, and service-based remote control. Its integration as the standard tool within the ROS 2 CLI (ros2 bag) ensures seamless compatibility and ongoing support within the ROS ecosystem.
Rosbag2 is the native recording and playback tool for ROS 2 systems, serving as the successor to the original ROS rosbag. It enables efficient capture and replay of timestamped communication data between ROS nodes, which is essential for debugging, analysis, and simulation in robotics development.
Rosbag2 prioritizes efficiency and flexibility, aiming to handle real-time data flows in complex robotic systems while providing a modular, plugin-based architecture for storage and serialization formats.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Designed to handle complex robotic systems with minimal overhead, as stated in the README, ensuring reliable capture of timestamped messages even in high-throughput scenarios.
Supports rate adjustment, topic filtering, and service-based remote control, allowing precise replay for debugging and simulation, with options like burst mode and seek functionality.
Enables multiple storage backends (e.g., MCAP and SQLite3) and serialization formats via plugins, offering adaptability to different use cases and future extensions.
Includes snapshot mode for triggered event capture, compression (zstd) to reduce storage, and QoS overrides per topic via YAML, catering to specific robotic communication needs.
Integrated as 'ros2 bag' CLI commands and composable C++ nodes, supporting intra-process communication for higher performance in embedded or resource-constrained environments.
Tightly coupled with ROS 2, requiring a full ROS 2 installation and potentially facing breaking changes with ROS 2 updates, limiting use outside this ecosystem.
Currently only supports zstd for compression, as noted in the README, which may not suit all storage optimization needs compared to tools with broader format support.
In snapshot mode, double buffering can lead to memory usage up to twice the configured cache size, posing challenges for memory-constrained systems without careful tuning.
Involves complex configuration via YAML files for QoS overrides, storage plugins, and service controls, which can be daunting for developers new to ROS 2 or robotic data logging.