Repeatable, Reproducible, and now Accessible! ROS Development via Dev Containers

Hey folks, I’d like to share a short teaser video demonstrating what I have been working on recently.

I have been developing a template for open-source educational platforms to teach robotics to young and disadvantaged students. These students often have limited access to computing and hardware resources. The template provides them with free access to a professional-level robotics development experience remotely, either through a web browser or on personally owned low-spec mobile devices. The platform is web-based and leverages VS Code, Gzweb, and Foxglove, running in portable Dev Containers. These containers can be hosted remotely using cloud-based services like GitHub Codespaces or locally using institutionally managed devices through Docker and Linux containers.

The video above is a screen recording from an Android tablet connecting to a prebuilt Codespace on Nav2’s GitHub repository. It demonstrates launching the patrolling security demo in the remote Dev Container and installing/opening several self-hosted PWAs (Progressive Web Apps) to visualize and debug ROS code. In fact, you can see in the video that the Nav2 demo encounters a little trouble navigating through the narrow corridor in the simulation environment. With this setup, students can dive right into open-source projects, contributing small fixes for such examples, even if all they have is a school-issued Chromebook or a family-owned iPad.

You can follow the progress of this project through my dev blogging, which I have interwoven into my PR comments, tagged with the devcontainer label, with commit messages chronicling my experimentation:

Pull requests · ros-planning/navigation2 · GitHub

For example, here was my deep dive into the rabbit hole that is port forwarding with Codespaces:

The demo above is from a bleeding-edge PR, so it still requires some polish. But you can try it out here:

BTW, I plan on presenting this in a little more detail during the next Navigation Working Group meeting, as a mini workshop, and would be open to all. We’ll try to record this as well for folks who can’t make it.

Update: check this announcement for more info on the mini workshop and evential video recording:

Feel free to reach out if you find this interesting or if you would like to contribute!

Cheers,
Ruffin

32 Likes

For more documentation on how Dev Containers are being used in Nav2, check the docs I added here:

Dev Containers — Nav2 1.0.0 documentation

Documentation covering the above demo is is still a work in progress but hope to finish writing it soon:

5 Likes

Hey there, this looks interesting and I am very much willing to contribute to this .

1 Like

This is pretty cool!

1 Like

Hey @ruffsl,

Great project. Thank you for your effort.

I have created ROS containers to run on computers and interact with physical sensors/actuators for a similar purpose, i.e. teaching students how to work with ROS. I have released them as ROSbloX, https://rosblox.github.io/.

If you have any ideas how to collaborate, I’d be more than glad to do so.

2 Likes

Awesome! This will be great for onboarding my users with Macs.

1 Like

I just gave this a crack and was blown away by how it worked (and how smooth it was to get going)!
Props to yourself and the Nav2 team for putting in the time to set this up and the documentation on how to run it.

I’m looking forward to making my own video demonstrating this at some point…

2 Likes

Glad that Apple keynote sessions template help others to do marketing. :slight_smile:

Come to the next working group meeting on Thursday to learn more!

1 Like

I like how it demoed the ease-of-use/accessibility with Nav2! I’ve been tinkering with dev container + ROS(1) GitHub - mjyc/ros-sandbox: ROS Sandbox but haven’t thought about integrating it with upstream ROS projects. Great project :clap:

I may do! Working groups often aren’t at a great time for me in Australia but I just checked and this one is at 5am, which is only a little before my normal wakeup :slight_smile:

The project looks great and thank you for your effort, I am looking forward to contribute to this :smiley:

Update: check this announcement for more info on the mini workshop and evential video recording:

3 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.