Hi folks, Adrian from Foxglove here.
We just came across this post and video (thanks for recording the first meeting!). This is a great initiative and we would love to be part of it!
A little bit of history of Foxglove and responding to questions that came up during the meeting:
Foxglove Studio began as a fork of Webviz. Most of our team came from Cruise, and our mission at Foxglove is to advance the state of robotics tooling based on what worked well at Cruise and other companies. At Cruise, we invested in web-based tooling early on (starting back around 2016). Webviz came out of that work, and it is an excellent tool, however webviz is built specifically for Cruise’s needs and much of the webviz code is still closed source, making it hard for the community to contribute.
Our goal with Foxglove Studio is to build a true community project, and focus on features that help all robotics developers (not just autonomous vehicles). We have diverged a lot from webviz over the past several months, and will continue to do so. For example, we converted from Flow to TypeScript, added many new panels (Map panel, URDF Viewer, Topic Graph panel, ROS Parameters panel, etc), fixed many bugs & performance improvements, added support for multiple layouts, added support for many new messages (e.g. velodyne_msgs/VelodyneScan
, nav_msgs/Path
, sensor_msgs/NavSatFix
), added native ROS 1 connections, and we’re currently working on ROS 2 support (see our release notes for a full list of changes).
Most importantly, we believe in extensibility, and recently launched our extension API, making it easy for anyone to create and publish new panels for Foxglove Studio without needing to fork the codebase.
Foxglove Studio is designed for both live ROS connections and bag playback. For live connections we support both rosbridge and native (TCP). For example, you can display our equivalent of rqt_graph (the Topic Graph panel) while connected to a live ROS robot (ROS 1 for now, ROS 2 support is work in progress).
On a technical note, Foxglove is deployed as an Electron application. Electron is nice because we get to use the web stack, but can control the browser version, and still have access to native APIs (such as TCP connections, and better file system access). However, we do also support a browser build (Chrome only for now due to some features we rely on).
Foxglove Studio is open source and we welcome contributions. We would also love to collaborate on shared ROS web libraries (we found several overlapping libraries in some cases so it would be nice to combine efforts). We have created a few libraries of our own too (some are published on NPM already, others will be soon). All are written in TypeScript:
Let me know how we can help! We will join the next working group meeting on 7/1 and happy to give a demo if anyone is interested.