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

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

Repo symbol

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

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

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

Repo symbol

data_tamer_tools repository

data_tamer_tools

ROS Distro
rolling

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

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

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

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

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

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

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

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

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file

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

data_tamer_tools repository

data_tamer_tools

ROS Distro
jazzy

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 (-)

Packages

Name Version
data_tamer_tools 0.3.1

README

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/NavSatFix topics and relays each source as its own foxglove.LocationFix channel (Map track)
  • Automatically discovers geographic_msgs/msg/GeoPath topics and relays each source as foxglove.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::ROS2PublisherSink to 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. Accepts sensor (or sensor_data), system_default (or default), best_effort, or reliable.
  • location_fix_prefix (string, default: “/locations”): Prefix for relayed per-source foxglove.LocationFix topics
  • geojson_prefix (string, default: “/geojson”): Prefix for relayed per-source foxglove.GeoJSON topics

Map Topic Mapping:

  • A discovered sensor_msgs/msg/NavSatFix topic like /gps/fix is relayed as a per-source foxglove.LocationFix topic at /locations/gps/fix (prefix is configurable via location_fix_prefix)
  • A discovered geographic_msgs/msg/GeoPath topic like /planner/path is relayed as foxglove.GeoJSON at /geojson/planner/path (prefix is configurable via geojson_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): Record foxglove.LocationFix + foxglove.GeoJSON to 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 like YYYY-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, or lz4
  • rotate_dir_topic (string, default: “”): Rotation topic override (empty = auto-discover data_tamer_tools/msg/LogDir by type)

ROS Log Integration:

  • enable_rosout (bool, default: true): Enable relaying of ROS logs to Foxglove
    • true: ROS logs from /rosout topic 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):

  1. Open Foxglove Studio

File truncated at 100 lines see the full file