Pre-built Open-RMF Docker images + a “draw your own site” tutorial (Lyrical)

Hi everyone :waving_hand:

In the time-honoured tradition of conference-driven development, we’re announcing this exactly two days before ROSCon Singapore. The dev was, of course, finished well in advance :face_with_tongue:

We’ve released pre-built Docker images for the Open-RMF stack, plus a step-by-step tutorial for authoring your own site in the RMF Site Editor and running it in simulation.

Repo: https://github.com/Nexsoss/Open-RMF

Why

Getting a first Open-RMF demo running usually means a long colcon build, a dashboard build and some dependency archaeology before you see a robot move. We wanted docker compose up and a dashboard in your browser, so you can spend that time on your actual site.

What’s in it

  • Layered images: a shared RMF base, a sim / fleet-adapter image (Gazebo + rmf_demos / rmf_simulation), the rmf-web API server, and a static build of the rmf-dashboard-framework demo dashboard.
  • rmw_zenoh throughout, with a zenoh-router service on the same zenoh revision as the RMF nodes.
  • Tested images on https://quay.io/nexsoss/open-rmf:<tag>, and nightlies on https://ghcr.io/nexsoss/open-rmf:nightly_<tag>.
  • One branch per ROS 2 distro, starting with lyrical.
  • Compose stays headless. Gazebo, RViz and the Site Editor run via distrobox, so there’s no X11 plumbing in compose files.
  • Worlds are generated from Site Editor .site.json files at image build time (not traffic-editor .building.yaml).

Quick start

git clone https://github.com/nexsoss/Open-RMF.git
cd Open-RMF
git checkout lyrical
docker compose up -d     # pulls pre-built images

Then open the dashboard at http://localhost:3000. The API is at http://localhost:8000 (docs at /docs). The default world is an example site with two tinyRobots.

Draw your own site

The tutorial walks through the whole loop:

  1. Take a floorplan PNG.
  2. Draw walls, lanes and waypoints in the RMF Site Editor.
  3. Add tinyRobots.
  4. Build an image from the site template and run it in sim.

The Site Editor (v0.0.3) can be installed from crates.io, or run with no Rust toolchain:

distrobox create --name rmf-site-editor --image quay.io/nexsoss/open-rmf:rmf-site-editor
distrobox enter rmf-site-editor -- /usr/local/bin/rmf_site_editor

Small things we patched along the way

  • A respawn workaround for the schedule visualizer segfaults (open-rmf/rmf#546, #637).
  • A few exporter fixes for headless world generation (see docker/patches/).

The goal being to push these patches upstream as PRs, if that’s valuable.

Why we’re doing this

At Nexsoss we build on Open-RMF for robots in commercial buildings, and we want the on-ramp to be easier for everyone. We’ll keep maintaining these images as Open-RMF and ROS 2 move forward.

Feedback, issues and PRs are very welcome.

If you’re at ROSCon Singapore, come say hi!

Cheers,
Akash, Nexsoss