Foxglove Documentation

website·Indexed 35 days ago

https://docs.foxglove.dev

Panel-based data visualization and debugging for robotics. Includes guides for using the Foxglove SDK with Python and C++, integrating hardware like Stereolabs ZED cameras and LeRobot, and working with MCAP files or ROS bags. Features documentation on FoxQL for data transformation, TypeScript-based user scripts, and advanced visualization tools like comparison mode and custom layouts.

Tokens
113.7K
Snippets
361
Records
969
Agent score
68%

What's inside Foxglove

  1. Overview of Foxglove Data Platform core concepts

    The Foxglove Data Platform is a centralized system for storing, organizing, and accessing robotics recordings. It uses the following core concepts to organize data:

    • Devices: Represent physical or simulated robots. Recordings are associated with devices, and devices support custom properties (e.g., firmware version, hardware revision) for filtering and searching.
    • Recordings: Data files captured by robots, indexed by device, time range, and topic. Supported formats include MCAP and ROS 1 bag files.
    • Sessions: Logical groupings of recordings from a single device (e.g., by drive or mission).
    • Events: Annotations of time ranges used to mark incidents or categorize segments for analysis. These can be created manually or via API using structured event types.
  2. Overview of Foxglove Primary Site deployment models

    Primary Sites store and manage robotics data in the cloud. Depending on the organization's needs for control over the Control Plane (auth, APIs, metadata) and Data Plane (storage, processing), three deployment models are available:

    • Foxglove Cloud: Fully managed by Foxglove. Best for teams wanting zero maintenance overhead.
    • Foxglove Cloud, bring your own storage: Foxglove manages processing (indexing, querying, streaming), but data resides in the customer's own cloud storage bucket. Best for enterprise teams requiring data residency without managing infrastructure.
    • On-premises: Customer runs the data plane in their own Kubernetes cluster. Best for organizations requiring full control over compute and storage infrastructure.

    Note: A 'Fully Offline' deployment is available only via a custom Enterprise agreement.

  3. Overview of Foxglove Remote Access

    Remote access allows organization members to visualize and teleoperate devices via the Foxglove platform. It uses a gateway running on the device that authenticates with a device token and connects to Foxglove. The system is built on WebRTC and features NAT traversal (via STUN/TURN), efficient fan-out using a Selective Forwarding Unit (SFU), low-latency delivery via lossy data channels, adaptive-bitrate video transcoding for images, and Draco compression for point clouds.
  4. Overview of Foxglove SDK

    The Foxglove SDK allows developers to stream robot data live to the Foxglove app for visualization or log data to MCAP files. It is available for C++, Python, and Rust under the MIT license.
  5. Overview of Foxglove AI Agents

    Foxglove Agents allow users to interact with robotics data using natural language. They can search recordings, triage and debug data, build layouts, and write user scripts. Agents are available through three primary interfaces:

    1. Agent Sidebar: Built-in to the web and desktop apps. Best for fast, grounded interactions while viewing data.
    2. MCP Server: A Model Context Protocol server in Foxglove Desktop that allows external AI agents to control Foxglove. Best for workflows integrated with other coding tools.
    3. Slack: Integration for asking quick questions or resolving issues within Slack threads.

    Foxglove does not use chat data to train AI models.

  6. Overview of Foxglove Cloud Bring Your Own Storage (BYOS)

    Bring your own storage (BYOS) allows you to keep recordings in your own cloud bucket while Foxglove manages the indexing, query, and streaming operations within the same region. This configuration separates data storage ownership from the operational processing handled by Foxglove.
  7. Implement topic aliases and data loaders

    Foxglove supports two other specialized extension types:

    • Topic Aliases: Allow aliasing topics in a data source to new names; panels can subscribe to either the alias or the original topic.
    • Data Loaders: Enable support for custom file formats via a WASM binary bundled with the extension that reads files and emits Foxglove messages.
  8. Understand and use Foxglove Edge Sites

    Edge Sites are on-site data storage centers located physically near robots. They mitigate risks of unpredictable network connectivity or low bandwidth by storing data on-premises before it is forwarded to a Primary Site in the cloud.

    Key characteristics:

    • Each Edge Site must belong to and send data to a Primary Site.
    • Multiple Edge Sites can be created and named via the Sites settings page.
    • Deployment and management require familiarity with Kubernetes and Helm.
  9. Understand the Odometry data schema

    Odometry provides an estimate of the position, orientation, and velocity for an object or reference frame within a 3D space. It is used to track the movement and pose of a robot or sensor over time.
  10. Use Foxglove messages for built-in visualizations

    To take full advantage of Foxglove's built-in visualizations, incoming messages should conform to specific Foxglove message structures. The SDK allows logging these messages without needing to manage the underlying serialization manually.