Welcome to the fourth webinar in the "Taming the Dragon" series about Zenoh and its use for robotics, autonomous vehicle and Internet-scale HPC communities.
In this webinar, Carlos Guimarães, our Senior Technologist here at ZettaScale Technology, talks about:
- Zenoh-Pico, the lightweight implementation of Zenoh for microcontrollers
- Differences in terms of functionalities from the main Zenoh implementation and how it can benefit your company
Zenoh is a Pub/Sub/Query protocol that unifies data in motion, data at rest and computations from embedded microcontrollers up to data centers.
You can read more about Zenoh and give it a try here: https://www.zettascale.tech/product/zenoh
Stay up to date with the latest news:
Twitter: https://twitter.com/zettascaletech
LinkedIn: https://www.linkedin.com/company/zettascaletech/
Website: https://www.zettascale.tech/
Newsletter: http://eepurl.com/igPw31
Vector Search -An Introduction in Oracle Database 23ai.pptx
"Taming the Dragon": Zenoh on Microcontrollers and Low Power Networks
1. Senior Technologist & Lead developer of Zenoh-Pico
carlos@zettascale.tech
Carlos Guimarães
Taming the Dragon - EP. 4
Zenoh on Microcontrollers and Low
Power Networks
2. Six Episodes
Nov 22nd — Zenoh Genesis (Recording )
Nov 29th — Zenoh: Getting Started (Recording )
Dec 6th — ROS 2 Robot-to-Anything with Zenoh (Recording )
Dec 13th — Zenoh on Microcontrollers and Low Power Networks
Dec 20th — Integrating DataBases and Messaging Protocols with Zenoh
Jan 10th — Data Flow Programming with Zenoh-Flow
All episodes run live on the given day at 10.00 CET and 18.00 CET to facilitate
participation from around the globe!
4. Uni
fi
es data in motion, data at rest and
computations from embedded microcontrollers
up to data centres
Provides a location-transparent API for high
performance pub/sub and distributed queries
across heterogeneous systems
Facilitates geo-distributed storage and integration
with third party technology in a plug-and-play
fashion
5. Runs everywhere
Over various network technologies: from
transport layer to data link
On embedded and constrained devices
Native libraries and API bindings for many
programming languages
Data Link
Network
Transport
Physical
…
6. Any topology
Peer-to-peer
Clique and mesh topologies
Routed
Routers forward data to and
from peers and clients
Brokered
Clients communicate through a
router or a peer
Router
Router
Brokered Routed
Router
Router
Router
Client
Client
Mesh
Peer
Peer
Peer
Peer
Peer
Router
Client Client Client Client
Router
Router
Client
Clique
Peer
Peer
Peer
Peer
7. COTS and embedded devices
Zenoh Router written in Rust
Native Rust libraries and
bindings to C and Python
Code and APIs
Rust
• Zenoh Router
• Plugins
• Native User API
library
Python
• User API binding
Binding based on
Rust library
C
• User API binding
based on Rust library
• Native User API
library with zenoh-pico
Coming soon…
API bindings:
• C++
• Java
• …
11. Time is not
guaranteed
Real-time clocks (RTC) are not
always there
Clock synchronisation might not
be possible
Broader time granularities
Year 2038 problem (signed 32-bit
integer representation)
12. Memory and
space
Lack of memory and space
Memory takes up a lot of silicon
area
Low power consumption
Tasks are very speci
fi
c and
limited
14. Networks are
low powered
Small MTU sizes & low data rates
Gateway or mesh oriented
Connectionless transmissions
Might not rely on IP-based
technologies
16. Zenoh a things-friendly protocol
* This is not an exhaustive feature list.
Challenges Zenoh Feature*
Scale of Systems Support for many RTOS and OS
Multitude of Platforms Support for many RTOS and OS
Energy E
ffi
ciency
Low wire overhead for data transmissions
Support connectionless protocols
Non-IP transports
Pub/sub with pull capabilities
Time is not Guaranteed Opt-in timestamping
Lack of Memory and Space
Brokered and P2P modes
Zenoh functionalities negotiation
Networks are also Low
Powered
Low overhead for data transmissions
Non-IP transports
Unicast and Multicast-based operation
A Continuous Balance Zenoh functionalities negotiation
18. Why Zenoh-Pico?
Embedded systems are key in many application domains, such as Robotics,
Automotive, Internet of Things, and Smart Cities
Run across constrained and low-power networks, such as LowPAN, LoRa,
Bluetooth, and Serial
Growing number of initiatives and adoption of Rust into embedded, but not yet
there
19.
20. Key highlights
Small footprint Zenoh implementation
optimised for embedded systems and
microcontrollers
Natively implemented in C
(~80% of embedded development)
Easily ported to many other platforms,
frameworks and communication stacks
MISRA-C compliant
Platforms
Frameworks
Communication
21. 21
Same User API
but tailored
Share the Zenoh-C User API
Tailored regarding:
- Zenoh related
con
fi
gurations
- task management
- KeyExpr to String format
23. Con
fi
gurations
Con
fi
gurations are handled in
a different way
Compile time con
fi
guration
- Enable / Disable features
Run time con
fi
gurations
- Same as Zenoh-C
Zenoh-Pico
Zenoh-C
24. Task
Management
Support for both multi-thread and
single-thread
Direct control over read and lease
tasks
Users spawn/destroy tasks threads
Users explicit trigger single
execution of read and lease tasks
Multi-Thread
Single-Thread
25. KeyExpr to
String format
Zenoh-Pico might not have
the full string representation of
KeyExpr in a given point in
time
Requires KeyExpr to be
resolved to get full string
representation
30. Zenoh and Zenoh-Pico are the same?
TL;DR: Yes!
Zenoh-Pico is an alternative implementation of the Zenoh
- API portability (minimal tweaks)
- Same wire protocol (aka interoperable with Zenoh)
- Same set of functionalities (but lightweight)
- C99 and MISRA-C compliant
32. Hands-on #1
Turtlebot3
Burger
ROS2 RC supported by Zenoh
and Zenoh-Pico
Zenoh-Pico running on:
Remote Controller (ESP-32)
Zenoh router at the Cloud
Zenoh-DDS-Bridge running on
Turtlebot3
ESP32
+
MPU6050
34. Zenoh-Pico or Micro-ROS2
Zenoh-Pico Micro-ROS2
Communication Model
Peer-to-Peer
Client-to-Broker
Client-to-Router
Client-to-Broker
Transports Any Limited to IP networks by DDS-XRCE
User APIs
Extremely simple User API
Avoids error prone behaviours
Complex User API
Likely to unintented error behaviours
Footprint
Lightweight
Con
fi
gurable
Heavyweight
ROS2 Interoperability Yes Yes
36. Hands-on #2
Exposing data from serial-only devices to the
IP world
Zenoh-Pico running on:
Sensor devices (STSTM32 + DHT22)
Local Zenoh router bridging Serial devices
Zenoh router at Edge attached to an
In
fl
Monitoring data via Grafana
Zenoh
Router
In
fl
uxDB
Storage
Zenoh
Router
Grafana
38. Summing up…
Lightweight implementation of
Zenoh for embedded systems,
microcontrollers, and
constrained networks
High throughput, low latency,
small footprint, and minimal
wire overhead
MISRA-C compliant
Platforms
Frameworks
Communication
39. Don’t forget to visit
Zenoh’s website…
https://zenoh.io/
… zenoh-pico
GitHub …
https://github.com/eclipse-zenoh/
zenoh-pico
… and to join Zenoh’s
Discord server!
https://discord.gg/
2GJ958VuHs