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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

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-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
data_tamer_tools 0.7.0

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 and selected ROS message types through Foxglove Studio
  • MCAP Sink: Store DataTamer data in MCAP (MessagePack) format for efficient storage and playback, with rotation hooks for regular and lifecycle ROS nodes
  • 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)
  • Automatically discovers sensor_msgs/msg/LaserScan topics and relays each source as foxglove.LaserScan
  • Automatically discovers visualization_msgs/msg/MarkerArray topics and relays each source as foxglove.SceneUpdate
  • Automatically discovers tf2_msgs/msg/TFMessage topics and relays each source as foxglove.FrameTransform
  • Optional MCAP recording of selected Foxglove schemas (foxglove.LocationFix, foxglove.GeoJSON, foxglove.LaserScan, foxglove.SceneUpdate, foxglove.FrameTransform) 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:=0.0.0.0 \
  -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: “0.0.0.0”): 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)
  • laser_scan_ttl_sec (int, default: 0): Time-to-live for LaserScan sources (0 disables pruning)
  • scene_ttl_sec (int, default: 0): Time-to-live for MarkerArray / SceneUpdate sources (0 disables pruning)
  • tf_ttl_sec (int, default: 0): Time-to-live for TFMessage / FrameTransform 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
  • laser_scan_prefix (string, default: “/scan”): Prefix for relayed per-source foxglove.LaserScan topics
  • scene_prefix (string, default: “/scene”): Prefix for relayed per-source foxglove.SceneUpdate topics
  • transform_prefix (string, default: “/transforms”): Prefix for relayed per-source foxglove.FrameTransform topics

Supported Relay Types:

ROS topic type Foxglove schema Default prefix Typical panel
data_tamer_msgs/msg/Snapshot Raw channel (JSON Schema or Protobuf descriptors) original channel name Raw Messages / Plot
sensor_msgs/msg/NavSatFix foxglove.LocationFix /locations Map
geographic_msgs/msg/GeoPath foxglove.GeoJSON /geojson Map
sensor_msgs/msg/LaserScan foxglove.LaserScan /scan 3D
visualization_msgs/msg/MarkerArray foxglove.SceneUpdate /scene 3D
tf2_msgs/msg/TFMessage foxglove.FrameTransform /transforms 3D

MarkerArray Notes:

  • visualization_msgs/msg/Marker::ADD, DELETE, and DELETEALL are relayed
  • Supported marker geometries are ARROW, CUBE, SPHERE, CYLINDER, LINE_STRIP, LINE_LIST, and TEXT_VIEW_FACING

Topic Mapping:

File truncated at 100 lines see the full file