Your first steps with Zenoh as an RMW in ROS 2
Built by the Zenoh team at ZettaScale with â¤ď¸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:
rmw_zenoh
.Get ready to dive into the exciting world of ROS 2 networking with Zenoh!
This workshop runs entirely within Docker containers, so youâll need a host machine with Docker installed. Both amd64
and arm64
architectures are supported.
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).
The docker directory contains several scripts to help manage the container:
./docker/create_container.sh
to create a container named roscon2024_workshop
, or use the $CONTAINER_NAME
environment variable to specify a custom name. The container will use the host network (--net host
). Important directories in the container include:
/ros_ws
: The ROS workspace/ros_ws/src/rmw_zenoh
: The rmw_zenoh
source code (already built and installed in the workspace)/ros_ws/zenoh_confs
: A volume mapped to the zenoh_confs/
directory in this repository./docker/login_container.sh
to start a bash shell inside the container./docker/restart_container.sh
to restart the container./docker/stop_container.sh
to stop the container./docker/rm_container.sh
to delete the container./docker/rm_image.sh
to delete the Docker image