Foxglove Studio vs. RViz

How Foxglove Studio compares to the original ROS visualization tool

Esther Weon 5 min read
Published

When roboticists see Foxglove Studio, they may be reminded of another popular data visualization tool: RViz. Many of our users used RViz to debug their data before switching to Foxglove Studio, and many newcomers to Foxglove are unclear about these tools' unique strengths and weaknesses.

So let’s get into it – why should you use Foxglove Studio, when you may already know how to visualize your robotics data with RViz?

Similarities

Let's start with what these tools have in common – namely, their goal to make robotics data debugging intuitive and accessible.

Open source

Both RViz and Foxglove Studio are open source tools that are available to the public at no cost. To use RViz, you must have ROS set up on your computer before installing. To use Foxglove Studio, you can navigate to studio.foxglove.dev in a browser, or download the desktop app for Windows, Linux, or macOS.

As for ongoing development, RViz is an actively maintained project, with frequent contributions from maintainers and open source users alike. Foxglove Studio is also a community project – we collaborate closely with everyone from professional robotics engineers and hobbyists in the open source community to our colleagues at Open Robotics. We discuss our development plans across GitHub, Slack, and Twitter, and post community announcements to our blog and newsletter.

3D scene visualization

Iterating on a robot is difficult without understanding what it is currently seeing and thinking in 3D space. While debugging "two-dimensional data" may be easy enough with plots and logs, debugging 3D data purely by a stream of numeric outputs is nearly impossible. Instead of visualizing data like position coordinates and orientation in your mind’s eye, tools like RViz and Foxglove Studio provide rich visualization environments to help you see the world in 3D like your robot does.

Foxglove Studio's 3D panel

Both RViz and Foxglove Studio can display sensor data (camera images, laser scans, point clouds), state information (tracked objects, planned trajectories, system health), and visualization markers to delineate information of interest (labels, bounding boxes, 3D models). Combined in one rich 3D scene, they paint a picture of what a robot perceives in its environment, how it predicts its environment to change, and how it plans to execute tasks within that environment. All this information allows roboticists to determine how effective their robots currently are, and how they can be improved.

Configurable

Both RViz and Foxglove Studio allow you to determine exactly how you want your visualizations to look. You can toggle the appearance of various markers, or adjust their various attributes like size, shape, and color.

Foxglove Studio's 3D panel settings Foxglove Studio's 3D panel provides visualization settings per displayed topic.

Both apps also support user-contributed extensions. In RViz, you write plugins in C++ and compile them before installing. In Foxglove Studio, you write custom panel extensions in HTML & JavaScript to install in your local instance of Foxglove Studio. For both apps, this extensibility empowers robotics companies to meet their unique requirements with custom-built tools that share a common base platform.

Differences

While their goals and development philosophies may be similar, Foxglove Studio and RViz are built to solve different problems.

Scope of visualization

Out of the box, RViz was primarily designed to help you see your robot’s environment via camera images and 3D markers. The ROS ecosystem offers other visualization tools like rqt_multiplot, rqt_runtime_monitor, and rqt_graph to solve other problems like logging outputs or plotting data in charts, but RViz focuses on the 3D view.

RViz with image and 3D view RViz displays your robot's camera images and an annotated 3D scene.

Foxglove Studio, on the other hand, offers many different visualization tools, or panels, that you can arrange into a layout of your choice. These panels are conveniently integrated into one environment, so you only have to download one app, instead of searching for, installing, and learning how to use multiple tools.

In fact, Studio has two panels – the Image and 3D panel – that essentially encompass the scope of what RViz helps users visualize. The Image panel, as its name suggests, displays images recorded by your robot’s camera sensors, while the 3D panel displays all available sensor data and visualization markers in the context of an interactive 3D scene. Though the 3D panel still has some work to do to support all of RViz's display types – for example, it does not currently display interactive markers – all currently supported markers are listed in the docs.

Foxglove Studio with Image, 3D, and other panels Foxglove Studio also displays images and 3D scenes, alongside many other visualizations not included in RViz.

Foxglove Studio does the legwork for you, collecting all the tools you need to debug your robotics data into one integrated workflow. Many of these tools have ROS equivalents – Studio’s Plot panel, for example, mirrors some of the functionality in ROS’s rqt_plot. As an added bonus, Studio can preserve the layout of your panels, allowing you to switch between pre-designed workspaces with the click of a button, instead of manually rearranging different tools on your desktop every time you need them.

File playback

RViz does not have the built-in ability to play back .bag files. To view your ROS data in RViz, you will need to use a separate CLI tool likerosbag (ROS 1) or ros2 bag (ROS 2) to play back the desired file.

Foxglove Studio, on the other hand, makes it exceptionally easy to load .bag files for playback. You can specify the file to load (ROS 1 or 2, local or remote) from the app’s Data sources tab, or simply drag and drop a local .bag file into the app to start playing. Studio also offers interactive playback controls to adjust playback time, view the current timestamp in different formats, and scrub back and forth in time.

Cross-platform

As a part of the ROS ecosystem, RViz requires ROS to be installed and set up properly. If your machine doesn’t fall into the category of the few Tier 1 platforms supported by ROS (Ubuntu and Windows 10), you will have to run your ROS environment inside a virtual machine, making it that much more difficult to connect to your robots and data.

Installing native ROS tools often requires hours of head-scratching and fine-tuning a very specific environment to get things working. Foxglove Studio minimizes the friction of adopting a new tool by being accessible in two simple ways – as a stand-alone web app and desktop app, without a slew of other dependencies. To quickly view your robot's data without downloading a desktop app, simply navigate to studio.foxglove.dev in a browser; to use the desktop app, download the appropriate installer for macOS, Windows, or Linux. It's important to note that some features – like native ROS connections and custom panel extensions – are only available on desktop. No matter your setup, you can get started with Studio in minutes, if not seconds.

Collaboration

RViz is great for visualizing your robotics data as a solo roboticist, but it doesn’t offer many built-in features to facilitate sharing your work with a larger team. Apart from publishing plugins that other RViz users can download, you don’t have many options for sharing your RViz debugging setup with others.

Foxglove Studio offers custom extensions, which are somewhat analogous to RViz’s plugins – these are also available in an extension marketplace where users can browse what custom visualizations they may need. It’s easy to write visualizations or display data however you like.

But Studio takes it a step further with two team-specific features. Team layouts allow you to create, edit, and share your layouts with the rest of your robotics organization. Foxglove Data Platform allows any member of your team can upload, access, and explore team data in one central repository. Use Data Platform's convenient web interface to locate events of interest, then stream them directly into Studio for further analysis.

Foxglove Data Platform's Files page

Foxglove Data Platform provides one central data repository that allows you to upload, explore, and stream your robotics data.

Foxglove Data Platform currently supports ingesting ROS 1 and MCAP data, but we are just getting started – we’re excited to hear your thoughts on what you’d like to see in the future.

Stay in touch

Whether you work in agriculture, aerospace, or ocean exploration, we want Foxglove Studio to help your team unlock new workflows and iterate more quickly on exciting new technologies. While Studio doesn’t necessarily replace any single existing tool, we’d like to think that its integrated environment, cross-platform support, and rich collaboration features make it another powerful tool in your robotics development toolbelt.

We’re continuing to work with industry decision makers to shape the future of robotics development for everyone. and find other high-impact features to implement. Most immediately on the horizon, we want to expand our extensions API, support more data sources, and flesh out our Data Platform capabilities.

If you have any feedback you’d like to share, join our Slack community or find us on GitHub and Twitter. To get started, download the app and check out our docs to see how Studio can accelerate your team’s robotics development.


Read more:

Announcing the Foxglove WebSocket protocol
article
studio
Announcing the Foxglove WebSocket protocol

Load JSON, Protobuf, or other custom data into Foxglove Studio.

Jacob Bandes-Storch

Jacob Bandes-Storch

5 min read
Spotlight: Stefan Novak of a.i. solutions on Taking Foxglove Studio to Outer Space
article
ROS
studio
Spotlight: Stefan Novak of a.i. solutions on Taking Foxglove Studio to Outer Space

Writing custom panels in Foxglove Studio using the extensions API.

Esther Weon

Esther Weon

8 min read

Get blog posts sent directly to your inbox.

Ready to get started?Download today on Linux, Windows, or macOS.