Learning Zenoh: A New Communication Layer for ROS 2

Hi everyone,

Recently, I’ve been learning more about Zenoh and its role in the ROS 2 ecosystem. Since most ROS 2 applications rely on DDS for communication, I was curious about how Zenoh approaches the same problem and where it can provide advantages.

From what I’ve learned so far, Zenoh offers a lightweight communication layer that aims to reduce latency, minimize bandwidth usage, and simplify communication across distributed systems. These characteristics make it particularly interesting for robots running on resource-constrained hardware such as the Raspberry Pi or for systems that need to communicate across different networks.

I’m currently developing a mobile robot called Pavlov Mini Wheel, based on ROS 2 Humble, and I’m planning to experiment with Zenoh for communication between the onboard Raspberry Pi and an external laptop running perception and navigation workloads. It seem like an interesting opportunity to compare its behavior with the default DDS-based setup.

This post is the first step in my exploraiton of Zenoh. Over the next few weeks, I plan to document:

  • Installing Zenoh with ROS 2 Humble
  • Integrating Zenoh into a existing ROS 2 project
  • Comparing DDS and Zenoh in practical robotics scenarios
  • Sharing performance observation from a real robot

If you’ve already used Zenoh in your projects, I’d be happy to hear about your experences, recommendations, or challenges you’ve encountered.

My article on the relevant topic:
Medium: https://medium.com/@bengokaysaglam/beyond-dds-introducing-zenoh-for-modern-ros-2-systems-1cacbfcc21f3

Looking forward to learning from the community!

2 Likes

Hi @bengokaysaglam,

Sounds great! Any additional feedback, walkthroughs, documentation, and benchmarks are always welcome.

You might find this workshop material helpful for your experiments:

Feel free to reach out if you have any question on Zenoh or rmw_zenoh!

2 Likes

Thank you very much! I’ll examine it.