article
visualization

Announcing the Foxglove Agent

Send data directly from your robots to Foxglove

article
visualization

When you're deep in robotics development, getting your data off the robot is always a chore. Your first solution usually involves a junk drawer full of flash storage, or SSH and SFTP over a local network. The next stage involves spinning up a team to build a bespoke pipeline. Flash drives and SFTP are manual and error-prone; custom pipelines are expensive and often clunky. None of it helps you investigate data or accelerate development.

The Foxglove Agent lets you see what data is available on each of your robots in real time, and allows you to import data directly to the cloud at the push of a button. It even handles syncing state between your robot and the cloud in the presence of unstable or intermittent network connections. Once your data is in the cloud, you can analyze it with Foxglove's state-of-the-art visualization tools, connect it to post-processing workflows, or tag interesting timestamps with events for later triage.

What is the Foxglove Agent?

The Foxglove Agent is a service that runs on your robot. It monitors a designated directory in your robot’s file system and securely notifies Foxglove as new data becomes available to fetch. As soon as new data is added to the directory, it becomes available for import in Foxglove. When a team member requests to import the file, your device will upload data to Foxglove in the background. This data becomes viewable and downloadable from anywhere in the world.

Getting started

To get started, install and configure the Foxglove Agent. You will need a VM or robot and a Foxglove account. The Foxglove Agent will work on any machine running a Debian-based Linux distribution and with a filesystem that supports inotify. It will also need to be able to make HTTPS calls to api.foxglove.dev, though a stable connection is not required.

The Foxglove Agent can be used with Team and Enterprise plans. You can also try it out with a free Team plan trial or request a demo.

Using the Foxglove Agent

To make data available for upload using the Foxglove Agent, simply move MCAP or ROS bag files into the directory specified in the environment file. The default location is /srv/foxglove/agent/storage.

If you are using ROS 1, you can record directly to the watched directory with rosbag record -o /srv/foxglove/agent/storage -a. The Agent will ignore recordings in progress. For ROS 2 and custom stacks, be sure to mv files after writing so the Agent is only notified of complete files.

Once data is in the watched directory, it will appear as “Not imported” on your Recordings page or under your device’s recordings:

Agent Import Available

To import the recording to the cloud, click “Import” or use the import API. The recording's status will change to “Pending” while being uploaded from your robot to the Foxglove cloud:

Agent Import Pending

Once it has finished importing, its status will change to “Complete”, and you can visualize the data or share it with teammates:

Agent Import Complete

What’s next?

This is only the beginning of the Foxglove Agent. In the coming months, we’re excited to continue extending what the Agent can do to make managing, interacting with, and accessing the data on your robots easier.

If you’re looking to offload your data to a local server on the edge and upload it to the cloud later, check out Foxglove Edge Sites. Much like the Foxglove Agent, Edge Sites help you manage your data in the field and upload it on demand. But while Agents run on your robots and upload directly to the cloud, Edge Sites are optimized to store and forward from compute stationed in the field.

If you’re new to Foxglove, read the docs on everything Foxglove has to offer from visualization to data management and tagging of data with events. Data can be hosted in the Foxglove cloud or on premises.

Read more

Start building with Foxglove.

Get started for free