Skip to content

Latest commit

 

History

History
151 lines (104 loc) · 6.53 KB

README.md

File metadata and controls

151 lines (104 loc) · 6.53 KB

Accelerate your robotics development


Foxglove Studio



Download   •   Docs   •   Blog   •   Slack   •   Twitter   •   Contact Us

Foxglove is an integrated visualization and diagnosis tool for robotics.

Foxglove Studio screenshot


To learn more, visit the following resources:

About  •  Documentation  •  Release notes  •  Blog

You can join us on the following platforms to ask questions, share feedback, and stay up to date on what our team is working on:

GitHub Discussions  •  Slack  •  Newsletter  •  Twitter  •  LinkedIn


Installation

Foxglove Studio is available online at studio.foxglove.dev, or desktop releases can be downloaded from foxglove.dev/download.

Open Source

Foxglove Studio follows an open core licensing model. Most functionality is available in this repository, and can be reproduced or modified per the terms of the Mozilla Public License v2.0.

The official binary distributions available at studio.foxglove.dev or foxglove.dev/download incorporate some closed-source functionality, such as integration with Foxglove Data Platform, multiple layouts, private extensions, and more. For more information on free and paid features, see our Pricing.

Self-hosting

Foxglove Studio can be self-hosted using our docker image. Please note that this build does not contain any closed source functionality.

Building the container

Please after cloning the repo you need to download some stuff from git lfs with:

git lfs pull

After that just build the container with:

docker build -t local-foxglove .

Running the container

docker run --rm -p "8080:8080" local-foxglove

Foxglove Studio will be accessible in your browser at localhost:8080.

Developing with the container

The build process takes some minutes, so it is not practical to rebuild the container every time you make a change. You can use the following command to mount the local source code into the container and run the development server. But first, you need to modify the Dockerfile to comment the release part. For that, comment ALL lines from line 7 to the end of the Dockerfile. Then rebuild. After that, you can run the following command:

docker run --rm -it -p "8080:8080" --volume "${PWD}":"/src" --entrypoint bash local-foxglove

It should open a bash terminal inside the container. Then you can run the following commands to start the development server:

yarn install
yarn run web:serve

It will server the web app and recompile interactively when you make changes. You can access the web app at localhost:8080.

Overriding the default layout

Bind-mount a layout JSON file at /foxglove/default-layout.json to set the default layout used when loading Studio from the Docker image.

docker run --rm -p "8080:8080" -v /path/to/custom_layout.json:/foxglove/default-layout.json ghcr.io/foxglove/studio:latest

Contributing

Foxglove Studio is written in TypeScript – contributions are welcome!

Note: All contributors must agree to our Contributor License Agreement. See CONTRIBUTING.md for more details.

Credits

Foxglove Studio originally began as a fork of Webviz, an open source project developed by Cruise. Most of the Webviz code has been rewritten, but some files still carry a Cruise license header where appropriate.

Using with Rosboard

We developed a new player compatible with also our own fork of rosboard. To use it, you need to follow the instructions below:

  1. Use this Foxglove Fork: You will need to use the KiwiCampus fork for this project or a derived version.

  2. Use our Rosboard Fork: You will need to use the KiwiCampus fork for Rosboard on the robot you want to connect to.

  3. Connecting to Rosboard: Similar to other available protocols (such as Rosbridge and Foxglove websocket), you can connect to Rosboard by following these steps:

    • Open the application.
    • Navigate to File -> Open connection....
    • Select Rosboard from the list of available protocols.
    • Paste your websocket URL running Rosboard. Remeber it takes the form ws://<ip>:<port>/rosboard/v1.
    • Click Open.
  • Note: Ensure that your Rosboard instance is running and accessible via the websocket URL you intend to use.