|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged data_tamer_tools at Robotics Stack Exchange
|
data_tamer_tools package from data_tamer_tools repodata_tamer_tools |
ROS Distro
|
Package Summary
| Version | 0.3.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://gitlab.com/jlack/data_tamer_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-06 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jordan Lack
Authors
Data Tamer Tools
Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.
Overview
This package provides five main tools:
- Foxglove Relay: Real-time visualization of DataTamer data through Foxglove Studio
- MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback
- MCAP Converter: Convert DataTamer-encoded MCAP files to Protobuf-encoded MCAP files for Foxglove compatibility
-
Rosout Logger: Record ROS log messages (
/rosout) to MCAP files with Foxglove Log schema - Log Rotation Coordinator: Synchronize log directory rotation across multiple MCAP loggers
Tools
1. Foxglove Relay (foxglove_relay)
A ROS2 component that bridges DataTamer data to Foxglove Studio for real-time visualization.
Features:
- Automatically discovers DataTamer topics (
/data_tamer/schema,/data_tamer/schemas,/data_tamer/snapshot) - Automatically discovers
sensor_msgs/msg/NavSatFixtopics and relays each source as its ownfoxglove.LocationFixchannel (Map track) - Automatically discovers
geographic_msgs/msg/GeoPathtopics and relays each source asfoxglove.GeoJSON(Map overlay) - Optional MCAP recording of selected Foxglove schemas (
foxglove.LocationFix+foxglove.GeoJSON) for offline playback in Foxglove - Supports both JSON and Protocol Buffers encoding for Foxglove visualization
- Converts DataTamer schemas to JSON Schema or Protocol Buffers descriptor format
- Creates Foxglove WebSocket server for real-time data streaming
- Supports soft eviction of idle channels (closes channels but keeps schemas)
- Configurable eviction policies and discovery intervals
- Optional ROS log relaying to Foxglove
Prerequisites:
- Your DataTamer channels must use
DataTamer::ROS2PublisherSinkto publish data to ROS2 topics - The relay automatically discovers and subscribes to the standard DataTamer ROS2 topics
Usage:
# Launch as ROS2 component
ros2 run data_tamer_tools foxglove_relay
# Or with custom parameters
ros2 run data_tamer_tools foxglove_relay --ros-args \
-p host:=127.0.0.1 \
-p port:=8765 \
-p use_protobuf:=true \
-p eviction_ttl_sec:=900 \
-p eviction_period_sec:=30 \
-p discovery_sec:=5 \
-p enable_rosout:=true
Parameters:
WebSocket Server Configuration:
-
host(string, default: “127.0.0.1”): WebSocket server host address -
port(int, default: 8765): WebSocket server port number
Data Encoding:
-
use_protobuf(bool, default: true): Use Protocol Buffers encoding instead of JSON-
true: Data is serialized using Protocol Buffers for better performance and smaller payloads -
false: Data is serialized as JSON strings for human readability
-
Channel Management:
-
eviction_ttl_sec(int, default: 900): Time-to-live for idle channels in seconds- Channels that haven’t received data for this duration will be soft-evicted (closed but schema kept)
-
eviction_period_sec(int, default: 30): Interval in seconds for checking stale channels- How often the relay checks for channels that should be evicted
-
discovery_sec(int, default: 5): Interval in seconds for topic discovery- How often the relay scans for new DataTamer topics to subscribe to
-
navsat_ttl_sec(int, default: 30): Time-to-live for NavSatFix sources; stale sources are pruned from the relay’s discovered LocationFix tracks -
geopath_ttl_sec(int, default: 0): Time-to-live for GeoPath sources (0 disables pruning) -
navsat_qos(string, default: “sensor”): QoS profile for NavSatFix subscriptions. Acceptssensor(orsensor_data),system_default(ordefault),best_effort, orreliable. -
location_fix_prefix(string, default: “/locations”): Prefix for relayed per-sourcefoxglove.LocationFixtopics -
geojson_prefix(string, default: “/geojson”): Prefix for relayed per-sourcefoxglove.GeoJSONtopics
Map Topic Mapping:
- A discovered
sensor_msgs/msg/NavSatFixtopic like/gps/fixis relayed as a per-sourcefoxglove.LocationFixtopic at/locations/gps/fix(prefix is configurable vialocation_fix_prefix) - A discovered
geographic_msgs/msg/GeoPathtopic like/planner/pathis relayed asfoxglove.GeoJSONat/geojson/planner/path(prefix is configurable viageojson_prefix) - Each GeoPath is rendered as GeoJSON (FeatureCollection) containing a LineString for the path and Point features for start/goal; colors are deterministic per topic
Relay MCAP Recording (Foxglove schemas only):
-
enable_mcap(bool, default: false): Recordfoxglove.LocationFix+foxglove.GeoJSONto an MCAP file -
logdir(string, default: “.”): Directory for the initial relay MCAP file -
mcap_filename(string, default: “foxglove_relay.mcap”): Relay MCAP filename -
mcap_append_timestamp(bool, default: true): Prefix timestamp likeYYYY-MM-DD_HH-MM-SS_to the relay MCAP filename -
mcap_profile(string, default: “protobuf”): MCAP profile string passed to the Foxglove SDK writer -
mcap_truncate(bool, default: false): If true, overwrite an existing relay MCAP file on name collision -
mcap_use_chunks(bool, default: true): Enable chunking (batch writes) in the relay MCAP output -
mcap_chunk_size(int, default: 0): Chunk size in bytes (0 = SDK default) -
mcap_compression(string, default: “zstd”): Compression type:none,zstd, orlz4 -
rotate_dir_topic(string, default: “”): Rotation topic override (empty = auto-discoverdata_tamer_tools/msg/LogDirby type)
ROS Log Integration:
-
enable_rosout(bool, default: true): Enable relaying of ROS logs to Foxglove-
true: ROS logs from/rosouttopic are relayed to Foxglove Log channel -
false: Disable ROS log relaying
-
-
rosout_topic(string, default: “/rosout”): ROS topic name for log messages
Foxglove Studio Connection (Live):
- Open Foxglove Studio
File truncated at 100 lines see the full file