You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/cross-platform/zenoh-multinode-ros2/1_intro-zenoh.md
+19-31Lines changed: 19 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,55 +8,43 @@ layout: learningpathall
8
8
9
9
## The Need for Scalable Communication in Robotics and Edge Computing
10
10
11
-
Modern robotics and industrial IoT (IIoT) systems are evolving rapidly—from indoor collaborative arms on assembly lines to fleets of outdoor autonomous delivery robots.
11
+
Modern robotics and industrial IoT systems are evolving rapidly, from indoor collaborative arms on assembly lines to fleets of outdoor autonomous delivery robots.
12
12
These applications must operate in real-time, often across multiple compute nodes, over networks that may span factory LANs, 5G cellular links, or even cloud data centers.
13
13
14
14
Such systems require fast, reliable, and scalable data communication between nodes.
15
-
This includes not just broadcasting sensor updates or actuator commands (i.e., pub/sub), but also performing state queries, storing values for later use, and even distributed computation across nodes. A modern protocol must be:
15
+
This includes not just broadcasting sensor updates or actuator commands (pub/sub), but also performing state queries, storing values for later use, and even distributed computation across nodes.
16
+
17
+
A modern protocol must be:
16
18
* Low-latency: Immediate delivery of time-critical messages.
17
19
* High-throughput: Efficient data flow across many devices.
18
20
* Decentralized: No reliance on central brokers or fixed infrastructure.
19
21
* Flexible: Able to run on lightweight edge devices, across WANs, or inside cloud-native environments.
20
22
21
-
Traditional communication stacks such as DDS ([Data Distribution Service](https://en.wikipedia.org/wiki/Data_Distribution_Service)) serve as the backbone for middleware like ROS 2. However, DDS struggles in multi-network or wireless environments where multicast is unavailable, or NAT traversal is needed.
23
+
Traditional communication stacks such as Data Distribution Service (DDS) serve as the backbone for middleware like ROS 2. However, DDS struggles in multi-network or wireless environments where multicast is unavailable, or NAT traversal is needed.
22
24
These constraints can severely impact deployment and performance at the edge.
23
25
24
26
25
-
## Zenoh: An Open-Source Pub/Sub Protocol for the Industrial Edge
27
+
## Zenoh: an open-source pub/sub protocol for the Industrial Edge
26
28
27
-
[Eclipse Zenoh](https://zenoh.io/) is a modern, [open-source](https://github.com/eclipse-zenoh/zenoh) data-centric communication protocol that goes beyond traditional pub/sub. Designed specifically for edge computing, IIoT, robotics, and autonomous systems, Zenoh unifies:
29
+
[Eclipse Zenoh](https://zenoh.io/) is a modern, open-source, data-centric communication protocol that goes beyond traditional pub/sub. Designed specifically for edge computing, industrial IoT, robotics, and autonomous systems, Zenoh unifies:
28
30
29
-
* Data in motion through a powerful and efficient pub/sub model.
30
-
* Data at rest via geo-distributed storage plugins.
31
-
* Data in use with direct query support.
32
-
* On-demand computation via queryable nodes that can generate data dynamically.
31
+
- Data in motion through a powerful and efficient pub/sub model.
32
+
- Data at rest via geo-distributed storage plugins.
33
+
- Data in use with direct query support.
34
+
- On-demand computation via queryable nodes that can generate data dynamically.
33
35
34
36
Unlike most traditional stacks, Zenoh is fully decentralized and designed to operate across cloud-to-edge-to-thing topologies, making it ideal for industrial robotics, autonomous systems, and smart environments.
37
+
35
38
It supports heterogeneous platforms, is implemented in Rust for performance and safety, and also offers bindings for Python, enabling rapid prototyping.
36
39
37
40
Zenoh is particularly effective in wireless, 5G, or cross-network deployments where multicast and DDS fall short.
38
-
Its routing engine avoids excessive discovery traffic, conserves bandwidth, and supports seamless bridging between legacy ROS 2/DDS apps and modern, optimized Zenoh networks using zenoh-bridge-dds.
39
-
40
-
In this learning path, you’ll use Zenoh to build and validate a multi-node distributed communication system across multiple Arm-based platforms, gaining hands-on experience with data exchange and coordination between edge devices.
41
-
42
-
To make the upcoming demo more intuitive and easy to follow, we’ll demonstrate the setup using two physical Cortex-A Linux devices.
43
-
44
-
I’ll be using Raspberry Pi boards in this learning path, but you’re free to substitute them with any Cortex-A devices that support network connectivity with Linux-based OS installed, depending on your development setup.
45
-
46
-
In real-world ROS 2 deployment scenarios, developers typically conduct validation and performance testing across systems with more than two nodes.
47
-
To simulate such environments, using [Arm virtual hardware](https://www.arm.com/products/development-tools/simulation/virtual-hardware) is also a common and efficient approach.
48
-
49
-
This will help you quickly validate your architecture choices and communication patterns when designing distributed applications.
50
-
51
-
* Raspberry Pi,
52
-
* Linux-based Cortex-A, or
53
-
* Arm Virtual Hardware (AVH).
41
+
Its routing engine avoids excessive discovery traffic, conserves bandwidth, and supports seamless bridging between legacy ROS 2/DDS apps and modern, optimized Zenoh networks using Zenoh-Bridge-DDS, a bridge between DDS systems and Zenoh networks.
54
42
55
-
After this learning path, you will:
56
-
* Understand the core architecture and data flow principles behind Eclipse Zenoh, including its support for pub/sub, querying, and queryable edge functions.
57
-
* Build and run distributed Zenoh examples across multiple Arm-based nodes—using Raspberry Pi or AVH to simulate scalable deployment environments.
58
-
* Rebuild and extend the Zenoh queryable example to simulate edge-side logic.
43
+
In this Learning Path, you’ll use Zenoh to build and validate a multi-node distributed communication system across multiple Arm-based platforms, gaining hands-on experience with data exchange and coordination between edge devices.
59
44
60
-
By the end of this learning path, you’ll have deployed a fully functional, scalable, and latency-aware Zenoh system.
45
+
The examples use Raspberry Pi boards, but you’re free to substitute any Cortex-A or Neoverse devices that support network connectivity running Linux.
61
46
62
-
You can also check [here](https://zenoh.io/docs/getting-started/first-app) to find some simple examples.
47
+
Upon completion, you will be able to:
48
+
- Understand the core architecture and data flow principles behind Eclipse Zenoh, including its support for pub/sub, querying, and queryable edge functions.
49
+
- Build and run distributed Zenoh examples across multiple Arm-based nodes using Raspberry Pi or other Arm Linux devices.
50
+
- Rebuild and extend the Zenoh queryable example to simulate edge-side logic.
Copy file name to clipboardExpand all lines: content/learning-paths/cross-platform/zenoh-multinode-ros2/2_zenoh-install.md
+40-18Lines changed: 40 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,56 +8,59 @@ layout: learningpathall
8
8
9
9
## Setting Up Zenoh on Arm Devices
10
10
11
-
The following instructions are verified on both Raspberry Pi 4/5 and Arm Virtual Hardware, but you can implement them on any Cortex-A Linux device.
11
+
The following instructions have been verified on both Raspberry Pi 4 and 5 devices, but you can implement them on any Arm Linux device.
12
12
13
13
Before building Zenoh, make sure your system has the necessary development tools and runtime libraries.
14
14
15
-
### Install the Rust build environment
15
+
### Install the Rust development environment
16
16
17
-
First, we need to install the [Rust](https://www.rust-lang.org/) build environment, since the core of Zenoh is totally developed using Rust to keep it safe and efficient.
18
-
19
-
Follow this [installation guide](https://learn.arm.com/install-guides/rust/) to install Rust and Cargo on Arm Linux, a build system for Rust. Or, simply use the following commands.
17
+
First, install the [Rust](https://www.rust-lang.org/) environment, since the core of Zenoh is developed using Rust to keep it safe and efficient.
Follow the prompts to complete the installation. If successful, you’ll see:
25
+
Near the end of the installationyou will see the success message:
26
26
27
27
```output
28
28
Rust is installed now. Great!
29
29
```
30
30
31
-
For more details, refer to [Rust’s official install guide.](https://doc.rust-lang.org/cargo/getting-started/installation.html#install-rust-and-cargo)
31
+
Make sure to source the environment to add Rust to your shell environment:
32
32
33
-
### Install ROS 2
33
+
```bash
34
+
source"$HOME/.cargo/env"
35
+
```
34
36
35
-
[Robot Operating System](https://www.ros.org/)is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source.
37
+
You can learn more using the [Rust install guide](/install-guides/rust/) for Arm Linux.
36
38
37
-
Since ROS was started in 2007, a lot has changed in the robotics and ROS community. The goal of the [ROS 2](https://docs.ros.org/en/rolling/index.html) project is to adapt to these changes, leveraging what is great about ROS 1 and improving what isn’t.
39
+
### Install ROS 2
38
40
39
-
Here is the quick [installation guide](https://learn.arm.com/install-guides/ros2/) about how to install ROS 2 in Arm platform.
41
+
[Robot Operating System](https://www.ros.org/) is a set of software libraries and tools that help you build robot applications. ROS provides everything from drivers to state-of-the-art algorithms, as well as developer tools. It is completely open-source.
42
+
43
+
Follow the [ROS2 installation guide](/install-guides/ros2/) to install ROS 2 on your Arm platforms.
Copy file name to clipboardExpand all lines: content/learning-paths/cross-platform/zenoh-multinode-ros2/3_zenoh-multinode.md
+17-28Lines changed: 17 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,28 +10,26 @@ layout: learningpathall
10
10
11
11
After building Zenoh and its core examples, your next step is to deploy them across multiple Arm-based devices.
12
12
13
-
In this session, you’ll use Raspberry Pi boards to simulate a scalable, distributed environment—but the same workflow applies to any Arm Linux system, including Arm cloud instances and Arm Virtual Hardware.
13
+
In this section, you’ll use Raspberry Pi boards to simulate a scalable, distributed environment, but the same workflow applies to any Arm Linux system, including Arm cloud instances.
14
14
15
-
You’ll learn how to use Docker to deploy the environment on physical devices, and how to duplicate virtual instances using snapshot cloning on Arm Virtual Hardware.
15
+
You’ll learn how to use Docker to deploy the environment on physical devices.
16
16
17
-
This setup lets you simulate `real-world`, `cross-node communication`, making it ideal for validating Zenoh's performance in robotics and industrial IoT use cases.
17
+
This setup lets you simulate real-world, cross-node communication, making it ideal for validating Zenoh's performance in robotics and industrial IoT use cases.
18
18
19
-
### Install Docker on Raspberry Pi
19
+
### Install Docker
20
20
21
-
To simplify this process and ensure consistency, you’ll use Docker to containerize your Zenoh and ROS 2 environment.
21
+
To simplify this process and ensure consistency, you can use Docker to containerize your Zenoh and ROS 2 environment.
22
22
This lets you quickly replicate the same runtime on any device without needing to rebuild from source.
23
23
24
24
This enables multi-node testing and real-world distributed communication scenarios.
25
25
26
-
First, install the docker environment on each of Raspberry Pi if you don't have that.
26
+
First, install Docker on each of Raspberry Pi.
27
27
28
28
```bash
29
-
curl -sSL https://get.docker.com |sh
30
-
sudo usermod -aG docker pi
29
+
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
30
+
sudo usermod -aG docker $USER; newgrp docker
31
31
```
32
32
33
-
Log out and back in, or run newgrp docker to activate Docker group permissions.
34
-
35
33
### Create a ROS 2 + DDS Docker Image
36
34
37
35
In a working directory, create a `Dockerfile` with the following content to create the ROS 2 / DDS docker image.
@@ -47,24 +45,22 @@ CMD bash
47
45
Under the directory where the above Dockerfile exists, run the following command to generate the docker image.
48
46
49
47
```bash
50
-
$ docker build -t zenoh-node .
48
+
docker build -t zenoh-node .
51
49
```
52
50
53
-
After this has been done, the created ROS 2 docker image can be seen by the following command.
51
+
After this has been done, the created ROS 2 Docker image can be seen by the following command.
54
52
55
53
```bash
56
-
$ docker images | grep zenoh-node
54
+
docker images | grep zenoh-node
57
55
```
58
56
59
57
```output
60
58
zenoh-node latest b7a9c27cf8a8 About a minute ago 962MB
61
59
```
62
60
63
-
### Transfer the Docker Image on Another RPi
64
-
65
-
You now need to transfer the Docker image to your second device. Choose one of the following methods:
61
+
### Transfer the Docker image to the other Raspberry Pi
66
62
67
-
You have two options:
63
+
There are two options to transfer the Docker image to your second device. Choose one of the following methods.
0 commit comments