Welcome to the third webinar in the "Taming the Dragon" series about Zenoh and its use for robotics, autonomous vehicle and Internet-scale HPC communities.
In this webinar, Julien Enoch, our Senior Solutions Architect here at ZettaScale Technology, talks about how Zenoh can be used to swarm and teleoperate ROS and ROS2-based robots and give them access to the ease-of-use, efficiency, performance and connectivity of the Zenoh platform.
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
Scaling API-first – The story of a global engineering organization
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
1. Taming the Dragon — Ep. 3
ROS 2 Robot-to-Anything with Zenoh
Julien Enoch
Senior Solutions Architect
julien.enoch@zettascale.tech
2. Six Episodes
Nov 22nd — Zenoh Genesis (Recording )
Nov 29th — Zenoh: Getting Started (Recording )
Dec 6th — ROS 2 Robot-to-Anything with Zenoh
Dec 13th — Zenoh on Microcontrollers and Low Power Networks
Dec 20th — Integrating DataBases and Messaging Protocols with Zenoh
Jan 6th — 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. Router
Router
Any topology
Peer-to-peer
Clique and mesh topologies
Brokered Routed
Router
Router
Router
Client
Client
Routed
Routers forward data to and
from peers and clients
Brokered
Clients communicate
through a router or a peer
Mesh
Peer
Peer
Peer
Peer
Peer
Router
Client Client Client Client
Router
Router
Client
Clique
Peer
Peer
Peer
Peer
6. ROS 2 is based on DDS
Picture:
S. Macenski, T. Foote, B. Gerkey, C. Lalancette, W. Woodall,
“Robot Operating System 2: Design, architecture, and uses in the wild,”
Science Robotics vol. 7, May 2022.
https://arxiv.org/pdf/2211.07752.pdf
ROS 2 node interfaces: topic, services and action
•DDS is pub/sub on topics
•ROS 2 mapping:
ROS 2 DDS topics
Topic: /abc rt/abc
Service: /svc
rq/svcRequest
rr/svcReply
Action: /act
rq/act/_action/send_goalRequest
rr/act/_action/send_goalReply
rq/act/_action/cancel_goalRequest
rr/act/_action/cancel_goalReply
rq/act/_action/get_resultRequest
rr/act/_action/get_resultReply
rt/act/_action/feedback
rt/act/_action/status
7. DDS: perfect for wired LAN, but...
Designed to work on a wired-
network with low message loss
Does not work o
ff
the shelf over
the Internet
Hard to scale on at Internet Scale
without breaking its semantics
Steep Learning Curve
Push Mode Only
DDS Global Data Space
...
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Reader
Data
Writer
TopicA
QoS
TopicB
QoS
TopicC
QoS
TopicD
QoS
10. Zenoh vs DDS
Discovery
Open Robotics performed a
comparative evaluation of
Zenoh and DDS (full report)
The results showed how
much more e
ffi
cient zenoh
discovery is compared to
DDS
1
8
www.openrobotics.org
www.openrobotics.org
Some interesting results
Discovery traffic versus application traffic
Some interesting results
Multicast traffic versus unicast and TCP traffic
(Multicast is a great way to bring down a poorly-configured network)
13. Plugin or standalone ?
Plugin:
•Dynamic library (in Rust)
•Loaded by a Zenoh router (at startup or at runtime)
•Shares the Zenoh Runtime with the router
=> direct method calls to the router
Zenoh
Router
REST
Plugin
DDS
Plugin
Standalone:
•Same plugin but statically linked !
•Just a main() starting a Zenoh Runtime
and 1 or more plugins
•Can be a Zenoh peer or a Zenoh client
zenoh-bridge-dds
REST
Plugin
DDS
Plugin
21. 2 modes on discovery of DDS Readers/Writers
•Pros:
•Minimal discovery tra
ffi
c
•Cons:
•No remote topic list,
no global Nodes graph
•Services work only if server
started at
fi
rst
Forward discovery:
•Forwards discovery info to the remote
bridge
•The remote bridge creates proxy (identical)
DDS Entities
Mirror (default):
•Creates local routes only, with
mirror (matching) DDS Entities
•Pros:
•Topic list and Nodes graph work
everywhere
•Cons:
•More discovery tra
ffi
c between the
bridges (still less than DDS)
25. Adding a real robot with camera
HTTP
Zenoh
TCP
zenoh-bridge-dds
http://demo.zenoh.io
demo.zenoh.io
Zenoh
Router
REST
Plugin
simu/rt/cmd_vel
zenoh-bridge-dds
zcapture
bot1/rt/cmd_vel
bot1/cams/0
Web
Server
Plugin