Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged bag_record_pid at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | BSD-3-Clause-Clear |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/castacks/airstack.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-11 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrew Jong
Authors
bag_record_pid
A flexible ROS2 node for recording bag files with runtime control, multi-section recording, and namespace support.
Overview
bag_record_pid provides an advanced interface for recording ROS2 topics to MCAP bag files. The node can be dynamically started and stopped via ROS topics, supports multiple concurrent recording sections with different configurations, and automatically handles namespaced topics.
Key Features
- Runtime Control: Start/stop recording via ROS topic messages
- Multi-Section Recording: Record different topic groups with independent configurations
- Namespace Support: Automatic prefixing of topics with node namespace
- Flexible Topic Selection: Include specific topics or exclude patterns from all topics
- MCAP Format: Records to MCAP format with configurable QoS and compression
- Status Publishing: Publishes recording status for monitoring
- Configurable Storage: Set bag size limits, cache sizes, and compression options
Installation
This package is part of the Airstack framework. Ensure you have ROS2 installed and your workspace is properly configured.
cd <workspace>/src
colcon build --packages-select bag_record_pid
source install/setup.bash
Usage
Basic Launch
Launch with default configuration:
ros2 launch bag_record_pid bag_record_pid.launch.py
With Custom Configuration
Specify custom config file and output directory:
ros2 launch bag_record_pid bag_record_pid.launch.py \
cfg_path:=/path/to/config.yaml \
output_dir:=/path/to/logging \
mcap_qos_dir:=/path/to/qos/configs
Namespaced Launch
Launch with a specific namespace (e.g., for multi-robot systems):
ros2 launch bag_record_pid bag_record_pid_namespaced.launch.py \
robot_prefix:=robot1 \
cfg_path:=/path/to/config.yaml \
output_dir:=/logging
Controlling Recording
The control topics are named after the node (<namespace>/<node_name>/...). The node’s default name is bag_record_node; in the AirStack stacks it is launched as bag_record under the robot namespace, so the topics are /{robot_name}/bag_record/....
Start recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: true}"
Stop recording:
ros2 topic pub --once /bag_record_node/set_recording_status std_msgs/msg/Bool "{data: false}"
Check recording status:
ros2 topic echo /bag_record_node/bag_recording_status
Configuration
Configuration File Structure
The configuration file (cfg.yaml) defines recording sections with their respective topics and settings:
```yaml sections: section_name: mcap_qos: mcap_qos.yaml # Optional: MCAP QoS profile filename args: - -b - 4000000000 # Bag size limit (~4GB) - –max-cache-size - 1073741824 # Cache size (1GB) topics: - /tf - /tf_static
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_copyright | |
| ament_flake8 | |
| ament_pep257 |
System Dependencies
| Name |
|---|
| python3-pytest |