Skip to content

ZettaScaleLabs/roscon2024_workshop

Repository files navigation

🐲🇩🇰 Zenoh ROSCon 2024 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 Demystifying ROS 2 Networking workshop, scheduled to take place on October 21st at ROSCon 2024. 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!

Setup

This workshop runs entirely within Docker containers, so you’ll need a host machine with Docker installed. Both amd64 and arm64 architectures are supported.

Docker image installation

The easiest way to get the image is by pulling it from Docker Hub:

docker pull zettascaletech/roscon2024_workshop

Alternatively, you can clone this repository and build the image yourself using the provided build_image.sh script. By default, the image will be named roscon2024_workshop, or you can specify a different name by setting the $IMAGE_NAME environment variable.

./docker/build_image.sh

The image includes ROS 2 Jazzy Jalisco (core) with pre-installed demo ROS 2 packages. It also has a workspace at /ros_ws where rmw_zenoh is already built and installed from source. Both the ROS 2 Jazzy environment and the workspace will be automatically set up when you start a bash session (see the /root/.bashrc file for details).

Using the Docker Container

The docker directory contains several scripts to help manage the container:

Exercises

Exercise 0 - Pull and build rmw_zenoh

This step is optional...

...since rmw_zenoh sources are already pulled from a recent version in /ros_ws/src/rmw_zenoh and build and installed.

However, you can refresh and re-build rmw_zenoh from sources running the following commands:

  1. cd /ros_ws/src/rmw_zenoh
  2. git pull
  3. cd /ros_ws
  4. colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release