Skip to content

Commit b043548

Browse files
Finalized Zenoh container deployment section and validated multi-node instructions
1 parent 3fbe030 commit b043548

File tree

2 files changed

+27
-20
lines changed

2 files changed

+27
-20
lines changed

content/learning-paths/cross-platform/zenoh-multinode-ros2/2_zenoh-install.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Install and build Zenoh on Arm devices
2+
title: Get started with Zenoh on Raspberry Pi and Arm Linux
33

44
weight: 3
55

@@ -9,40 +9,40 @@ layout: learningpathall
99

1010
## Set up Zenoh on Arm devices
1111

12+
This section shows how to install and build the open-source Eclipse Zenoh protocol on Arm-based devices like Raspberry Pi.
1213

13-
The following instructions have been verified on both Raspberry Pi 4 and 5 devices, but you can implement them on any Arm Linux device. These steps show how to install Zenoh on Raspberry Pi and other Arm-based Linux platforms.
14+
The following instructions have been verified on Raspberry Pi 4 and 5, but you can use any Arm Linux device. These steps apply to Raspberry Pi and other Arm-based Linux platforms.
1415

1516
Before building Zenoh, make sure your system has the necessary development tools and runtime libraries.
1617

1718
### Install the Rust development environment
1819

19-
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.
20+
First, install the [Rust](https://www.rust-lang.org/) environment. The core of Zenoh is developed in Rust for performance and safety.
2021

2122
```bash
2223
sudo apt update
2324
sudo apt install -y curl gcc
2425
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
2526
```
2627

27-
Near the end of the installation you will see the success message:
28+
Near the end of the installation, you should see the message:
2829

2930
```output
3031
Rust is installed now. Great!
3132
```
32-
33-
Make sure to source the environment to add Rust to your shell environment:
33+
Source your shell environment to activate Rust:
3434

3535
```bash
3636
source "$HOME/.cargo/env"
3737
```
3838

39-
You can learn more using the [Rust install guide](/install-guides/rust/) for Arm Linux.
39+
For more information, see the [Rust Install Guide](/install-guides/rust/) for Arm Linux.
4040

4141
### Install ROS 2
4242

4343
[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.
4444

45-
If your use case involves ROS 2 integration, you should install ROS 2 before proceeding with Zenoh-related development. Follow the [ROS2 installation guide](/install-guides/ros2/) to install ROS 2 on your Arm platforms.
45+
If you plan to use Zenoh alongside ROS 2, for example, to bridge DDS-based nodes, you should install ROS 2 before proceeding. See the [ROS2 Installation Guide](/install-guides/ros2/) to install ROS 2 on your Arm platforms.
4646

4747
### Download and build the Zenoh source
4848

@@ -52,15 +52,13 @@ Clone the Zenoh repository:
5252
cd $HOME
5353
git clone https://github.com/eclipse-zenoh/zenoh.git
5454
```
55-
56-
After cloning, use cargo to build the source:
55+
Build the source using Cargo:
5756

5857
```bash
5958
cd zenoh
6059
cargo build --release --all-targets -j $(nproc)
6160
```
62-
63-
This process will take several minutes depending on your device. Once the installation is complete, you should see:
61+
This process will take several minutes depending on your device. When complete, you should see output like:
6462

6563
```output
6664
Updating crates.io index
@@ -103,13 +101,16 @@ This may become a hard error in the future; see <https://github.com/rust-lang/ca
103101
Finished `release` profile [optimized] target(s) in 6m 28s
104102
```
105103

106-
After the build process, the binary executables will be stored under the directory of `~/zenoh/target/release/examples/`.
104+
After the build process, the binary executables will be located at `~/zenoh/target/release/examples/`.
107105

108106
{{% notice Note %}}
109107
Installation time can vary depending on your device’s performance.
110108
{{% /notice %}}
111109

112-
If you get a build error:
110+
111+
## Troubleshooting build errors
112+
113+
If you get a build error like this:
113114
```output
114115
error[E0599]: no function or associated item named `start` found for struct `StoragesPlugin` in the current scope
115116
--> plugins/zenoh-plugin-storage-manager/tests/operations.rs:91:55
@@ -122,7 +123,7 @@ Edit the file `./plugins/zenoh-plugin-storage-manager/tests/operations.rs` and c
122123
use crate::path::to::Plugin;
123124
```
124125

125-
Run the build again:
126+
Then rebuild:
126127

127128
```bash
128129
cargo clean && cargo build

content/learning-paths/cross-platform/zenoh-multinode-ros2/3_zenoh-multinode.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Set up a multi-node environment
2+
title: Containerize and deploy Zenoh across multiple Raspberry Pi devices
33

44
weight: 4
55

@@ -15,7 +15,7 @@ If you’ve already installed Zenoh on an Arm Cortex-A or Neoverse platform as s
1515

1616
However, to streamline deployment across multiple devices and ensure repeatability, this section demonstrates how to package Zenoh into a Docker image for batch rollout and scalable testing.
1717

18-
This containerized approach not only simplifies deployment on Raspberry Pi, but also integrates seamlessly with Arm cloud platforms such as AWS Graviton Arm Cortex-A Linux or Arm Virtual Hardwareenabling a consistent cloud-to-edge development and validation workflow.
18+
This containerized approach not only simplifies deployment on Raspberry Pi, but also integrates seamlessly with Arm cloud platforms such as AWS Graviton Arm Cortex-A Linux or Arm Virtual Hardware, enabling a consistent cloud-to-edge development and validation workflow.
1919

2020
In this session, you’ll use Raspberry Pi boards to simulate a scalable distributed environment. The same workflow applies to any Arm Linux system, including cloud instances and virtual hardware.
2121

@@ -108,6 +108,9 @@ You can pull it directly using:
108108
```bash
109109
docker pull odinlmshen/zenoh-node
110110
```
111+
{{% notice Tip %}}
112+
Once built, you can reuse this Docker image across multiple Arm-based nodes, including Raspberry Pi, AWS Graviton, and Arm Virtual Hardware.
113+
{{% /notice %}}
111114

112115
### Transfer the Docker image to the other Raspberry Pi
113116

@@ -130,7 +133,10 @@ Option 2: Push the image to a container registry such as Docker Hub
130133

131134
You can also push the image to Docker Hub or GitHub Container Registry and pull it on the second device.
132135

133-
### Run the Docker Image
136+
137+
138+
139+
### Run the Docker image
134140

135141
Once the image is successfully loaded on the second device, you can run the container to start the Zenoh environment.
136142

@@ -144,8 +150,8 @@ The Zenoh example binaries are now available within this container, allowing you
144150

145151
You’re now ready to run and test Zenoh communication flows across distributed edge devices.
146152

147-
The following examples are written in Rust and precompiled in your container image. They're fully interoperable and can be used to demonstrate Zenoh's key capabilities across devices. The
148-
Rust binaries are already available under: `$ZENOH_LOC/target/release/examples/` directory.
153+
The following examples are written in Rust and precompiled in your container image. They're fully interoperable and can be used to demonstrate Zenoh's key capabilities across devices. The Rust binaries are available in the `$ZENOH_LOC/target/release/examples/` directory. If you haven't set `ZENOH_LOC`, they can be found under `~/zenoh/target/release/examples/`.
154+
149155

150156
The following sections illustrate the procedures to run the Zenoh examples so as to demonstrate the primary capabilities of Zenoh:
151157
- Basic pub/sub – for real-time message distribution

0 commit comments

Comments
 (0)