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

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

Package symbol

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

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

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

Package symbol

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
rolling

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

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

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

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

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

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

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

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

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange

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

data_tamer_tools package from data_tamer_tools repo

data_tamer_tools

ROS Distro
jazzy

Package Summary

Version 0.7.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://gitlab.com/jlack/data_tamer_tools.git
VCS Type git
VCS Version main
Last Updated 2026-04-18
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Set of tools for using Foxglove with data tamer

Maintainers

  • Jordan Lack

Authors

No additional authors.

Data Tamer Tools

Tools for working with DataTamer data in ROS2, providing Foxglove integration and MCAP data storage capabilities.

Overview

This package provides five main tools:

  • Foxglove Relay: Real-time visualization of DataTamer data 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

CHANGELOG
No CHANGELOG found.

Launch files

No launch files found

Messages

Services

Plugins

No plugins found.

Recent questions tagged data_tamer_tools at Robotics Stack Exchange