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

**URL:** <https://discourse.openrobotics.org/t/repeatable-reproducible-and-now-accessible-ros-development-via-dev-containers/31398>\
**Category:** ROS General\
**Tags:** docker, education, devcontainer\
**Created:** [May 15, 2023, 2:03pm UTC](https://discourse.openrobotics.org/t/repeatable-reproducible-and-now-accessible-ros-development-via-dev-containers/31398 "2023-05-15T14:03:09Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![ruffsl](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/ruffsl/32/83_2.png) [@ruffsl](https://discourse.openrobotics.org/u/ruffsl)\
**Post date:** [May 15, 2023, 2:03pm UTC](https://discourse.openrobotics.org/t/repeatable-reproducible-and-now-accessible-ros-development-via-dev-containers/31398/1 "2023-05-15T14:03:09Z")

</div>

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

[![](https://us1.discourse-cdn.com/flex022/uploads/ros/original/3X/1/8/1864682c7bda256beb246827750ff8fdb5824259.jpeg "Repeatable Reproducible and Accessible ROS Development via Dev Containers and PWAs") ](https://www.youtube.com/watch?v=aEowtvmoqUM)

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-navigation/navigation2 · GitHub](https://github.com/ros-planning/navigation2/pulls?q=is%3Apr+label%3Adevcontainer+is%3Aclosed)

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

[https://github.com/ros-planning/navigation2/pull/3551](https://github.com/ros-planning/navigation2/pull/3551)

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

[https://github.com/ros-planning/navigation2/pull/3576](https://github.com/ros-planning/navigation2/pull/3576)

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:

> **[Mini Workshop: Developing and Teaching ROS from a Web browser using Dev...](https://discourse.ros.org/t/mini-workshop-developing-and-teaching-ros-from-a-web-browser-using-dev-containers-and-pwas/31533)**
>
> Just a reminder that I’ll be giving a mini workshop during Thursday’s Navigation WG meeting, on this: http://discourse.ros.org/t/repeatable-reproducible-and-now-accessible-ros-development-via-dev-containers/31398 Update: You can join us...

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

Cheers,  
Ruffin

---

_[View the full topic](https://discourse.openrobotics.org/t/repeatable-reproducible-and-now-accessible-ros-development-via-dev-containers/31398)._
