[[https://foxglove.dev/|Foxglove]] is an '''observability 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. Foxglove is both '''fully integrated and flexible''' – it combines a host of common native ROS tools (and others) as modular [[https://docs.foxglove.dev/docs/visualization/panels/introduction|panels]] in one easy-to-use desktop or web app, but allows users to determine what tools they want to leverage. Foxglove is available for [[https://foxglove.dev/download|download]] as a desktop app on Linux, Windows, and macOS. . {{attachment:screenshot.webp|Foxglove Screenshot|width=620}} * Maintainer status: maintained * Maintainer: [[https://foxglove.dev|Foxglove]] * Issue tracker: https://github.com/orgs/foxglove/discussions * Documentation: https://docs.foxglove.dev/ = Features = Foxglove 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 Foxglove works '''cross-platform''' on Linux, Windows, and macOS. Even if your ROS stack is running on a different operating system, Foxglove can communicate with your robot without a hitch. '''Arrange and configure any of the available data visualization tools, called [[https://foxglove.dev/docs/app-concepts/panels|panels]], into customizable [[https://foxglove.dev/docs/app-concepts/layouts|layouts]]''' that you can then share with your teammates. While Foxglove 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, Foxglove provides an '''[[https://docs.foxglove.dev/docs/visualization/extensions/introduction|extension API]] for building & installing your own panels'''. These custom extensions can then be loaded and executed in the Foxglove app. Foxglove also provides [[https://docs.foxglove.dev/docs/visualization/panels/user-scripts/|User Scripts]], a code editor sandbox that allows you to publish pseudo-ROS topics internally to Foxglove. 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 Foxglove to gain insight into your robotics data. = Open Source Software = Open source software has played a huge role in helping us develop Foxglove, and we're committed to contributing 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 Foxglove, they can be included in any TypeScript or JavaScript project. For ROS: * [[https://github.com/foxglove/ros1|@foxglove/ros1]] - TypeScript implementation of ROS 1 protocol with a pluggable transport layer * [[https://github.com/foxglove/rosbag|@foxglove/rosbag]] - ROS 1 bag reader and writer abstract implementation * [[https://github.com/foxglove/rosbag2|@foxglove/rosbag2]] - ROS 2 bag reader and writer abstract implementation * [[https://github.com/foxglove/rosbag2-node|@foxglove/rosbag2-node]] - ROS 2 bag reader and writer for Node.js * [[https://github.com/foxglove/rosbag2-web|@foxglove/rosbag2-web]] - ROS 2 bag reader and writer for the browser * [[https://github.com/foxglove/rosmsg|@foxglove/rosmsg]] - ROS 1 and 2 message definition parser * [[https://github.com/foxglove/rosmsg-msgs-common|@foxglove/rosmsg-msgs-common]] - Common ROS message definitions using @foxglove/rosmsg * [[https://github.com/foxglove/rosmsg-msgs-foxglove|@foxglove/rosmsg-msgs-foxglove]] - Foxglove ROS message definitions using @foxglove/rosmsg * [[https://github.com/foxglove/rosmsg-serialization|@foxglove/rosmsg-serialization]] - ROS 1 message serialization for reading and writing bags and network messages * [[https://github.com/foxglove/rosmsg2-serialization|@foxglove/rosmsg2-serialization]] - ROS 2 message serialization for reading and writing bags and network messages * [[https://github.com/foxglove/rostime|@foxglove/rostime]] - Primitives and helper methods for ROS Time and Duration = Resources = To learn more, review the following resources: * [[https://foxglove.dev/about|About]] * [[https://foxglove.dev/docs|Documentation]] * [[https://docs.foxglove.dev/changelog|Release notes]] * [[https://foxglove.dev/blog|Blog]] 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: * [[https://github.com/orgs/foxglove/discussions|GitHub Discussions]] * [[https://foxglove.dev/chat|Discord]] * [[https://www.getrevue.co/profile/foxglove|Newsletter]] * [[https://twitter.com/foxglove|Twitter]] * [[https://www.linkedin.com/company/foxglovedev|LinkedIn]] '''NOTE''': Foxglove began as a fork of [[https://wiki.ros.org/Webviz|Webviz]], an open source project developed by [[https://getcruise.com|Cruise]].