Skip to content

ZettaScaleLabs/roscon2025_workshop

Repository files navigation

🐲 Zenoh ROSCon(s) 2025 Workshop 🇬🇧 🏴󠁧󠁢󠁳󠁣󠁴󠁿 🇸🇬 🇫🇷 🇩🇪

Your first steps with Zenoh as an RMW in ROS 2

License EPL License EPL

Built by the Zenoh team at ZettaScale with ❤️

About

Welcome! This repository is part of the ROS 2 Networking Redefined: Deep Dive into RMW Zenoh workshops, scheduled to take place at several ROSCons in 2025:

It contains all the resources you’ll need to get started with rmw_zenoh, the Zenoh middleware for ROS 2.

In this hands-on workshop, you’ll explore how to leverage Zenoh as a ROS 2 middleware (RMW) layer. Whether you're new to Zenoh or looking to deepen your understanding of it, this workshop is designed to give you practical insights through simple demonstrations.

What's Included:

  • Some introduction slides showing an overview of both Zenoh and rmw_zenoh.
  • Dockerized environment: Pre-configured for easy setup and reproducibility.
  • Simple ROS 2 applications: Designed to showcase the use of rmw_zenoh.
  • Scripts and utilities: Simplifying container management, environment setup and configuration files.

Get ready to dive into the exciting world of ROS 2 networking with Zenoh!

Hardware requirements

A laptop on Linux, MacOS or Windows with:

  • 8 cores minimum
  • 16 GB RAM minimum
  • 30 GB disk free minimum
  • Docker installed and configured with allocated resources: 8 CPU and 16 GB memory limit

Warning

We strongly recommend pulling this Docker image before your arrival at ROSCon:

docker pull zettascaletech/roscon2025_workshop

It is available for both amd64 and arm64 architectures.

Setup

Pull this repository and change to its directory:

git clone https://github.com/ZettaScaleLabs/roscon2025_workshop.git
cd roscon2025_workshop

This workshop relies on 2 containers with ROS 2 Jazzy and RMW Zenoh installed:

  • robot: to simulate a robot
  • control: a host to control the robot

Run those containers with Docker compose as such:

docker compose up -d

Then you can open 2 VNC connections to each container in a Web browser:

If the sessions are locked, the password is ubuntu.

Initial setup with 2 browsers

The 2 containers are based on the same image and are already configured with ROS 2 environment and RMW_IMPLEMENTATION=rmw_zenoh_cpp.
A justfile in home directory defines some commands shorcuts that can be called with just <command_name>.
Each container has a ~/container_data volume bound to your host's container_volumes/robot_container and container_volumes/control_container respectively.

Exercises


Acknowledgements

The Dockerfile is based on Tiryoh/docker-ros2-desktop-vnc, licensed under the Apache License 2.0.

The simulation of the ROX robot is courtesy of Neobotix and comes from neobotix/rox.

About

Zenoh ROSCon 2025 Workshop

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •