Foxglove Studio is an open source visualization and debugging tool for robotics. It provides a rich suite of configurable tools to quickly and easily understand what your robot is doing in real-time – all in one seamless development environment.
Studio is both fully integrated and flexible – it combines a host of common native ROS tools (and others) as modular panels in one easy-to-use desktop app, but allows users to determine what tools they want to leverage.
Foxglove Studio is available for download as a desktop app on Linux, Windows, and macOS.
- Maintainer status: maintained
Maintainer: Foxglove <contact AT foxglove.dev>
License: MPL 2.0
Issue tracker: https://github.com/foxglove/studio/issues
Documentation: https://foxglove.dev/docs
Features
Studio can inspect your robotics data via a running ROS connection (i.e. a live robot, simulation, etc.) or from a recorded ROS .bag file.
Most ROS tools are only supported on Linux, but Studio works cross-platform on Linux, Windows, and macOS. Even if your ROS stack is running on a different operating system, Studio can communicate with your robot without a hitch.
Arrange and configure any of the available data visualization tools, called panels, into customizable layouts that you can then share with your teammates.
While Studio offers a suite of general-purpose tools for robotics data visualization & debugging, many users have domain-specific needs that our out-of-the-box offering does not address. To empower users to develop tools customized to their specific needs, Studio provides an extension API for building & installing your own panels. These custom extensions can then be loaded and executed in the Studio app.
Studio also provides a Node Playground, a code editor sandbox that allows you to publish pseudo-ROS topics internally to Studio. Manipulate, reduce, and filter existing ROS messages in a way that is useful for visualization in the rest of the app.
With our flexible panels and powerful extension API, there's no limit to how you can use Studio to gain insight into your robotics data.
Open Source Software
Open source software has played a huge role in helping us develop Foxglove Studio, and we're committed to contributing our own software back to the community.
We've published several npm packages to facilitate common development tasks – like serializing / deserializing data, parsing message definitions, and exposing helper methods for data manipulation. While these packages were originally developed for Studio, they can be included in any TypeScript or JavaScript project.
For ROS:
@foxglove/ros1 - TypeScript implementation of ROS 1 protocol with a pluggable transport layer
@foxglove/rosbag - ROS 1 bag reader and writer abstract implementation
@foxglove/rosbag2 - ROS 2 bag reader and writer abstract implementation
@foxglove/rosbag2-node - ROS 2 bag reader and writer for Node.js
@foxglove/rosbag2-web - ROS 2 bag reader and writer for the browser
@foxglove/rosmsg - ROS 1 and 2 message definition parser
@foxglove/rosmsg-msgs-common - Common ROS message definitions using @foxglove/rosmsg
@foxglove/rosmsg-msgs-foxglove - Foxglove ROS message definitions using @foxglove/rosmsg
@foxglove/rosmsg-serialization - ROS 1 message serialization for reading and writing bags and network messages
@foxglove/rosmsg2-serialization - ROS 2 message serialization for reading and writing bags and network messages
@foxglove/rostime - Primitives and helper methods for ROS Time and Duration
Check out the full list of packages in our docs.
Resources
To learn more, review the following resources:
You can also join us on the following platforms to ask questions, share feedback, and stay up-to-date on what our team is working on:
NOTE: Foxglove Studio began as a fork of Webviz, an open source project developed by Cruise.