Support Dev Container and Codespace for ROS1 Gazebo Tutorial #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Public-Facing Changes
"None"
Description
This PR adds a devcontainer config to run ros1/gazebo on a local machine using vscode + docker (video demo) and on the cloud via codespace (video demo). The goal was to make trying out foxglove tutorials as easy as possible, so devcontainer + codespaces seemed like a handy combination[^1]. The main benefit is the low/no-install experience when following foxglove tutorials, even when a developer needs to use (soon-to-eol-reaching) ROS1 code. Please check out the video, it's a rough cut, but demonstrates what can be done with this PR. Curious to hear peoples thoughts!
Notes
tutorial
repo (see codesapces w/ monorepo and devcontainers w/ multifolder). It looked like it's difficult to define one devcontainer config that works for both and this issue is being discussed actively, so I decided to take a simple approach (of having duplicates) until the community figures out a direction.export DOCKER_DEFAULT_PLATFORM=linux/amd64
to build intel container images and (2) turn on "Use Rosetta for x86/amd64 emulation on Apple Silicon" option in Docker Desktop's "Features in development" setting to run gazebo--without it, it complains about the incompatible kernel, etc..Quick self-intro & background & acknowledgement
Hello, a foxglove fan here. I've been exploring ways to improve DX of ROS(1) developers[^2]--esp., those who does not own ubuntu machines using devcontainer--and recently saw this related work from Ruffin White. I thought the same idea could be applied to improve the experience of following foxglove tutorials, so here I'm. Many thank yous to Ruffin White who figured out how to make self-hosted foxglove studio on codespace work.
[^1] To learn more about using Devcontainer & Codespace with ROS, see https://navigation.ros.org/development_guides/devcontainer_docs/index.html
[^2] E.g., https://github.com/mjyc/ros-sandbox