Welcome to the fourth webinar in the series of Cyclone DDS Unleashed.
In this session, our Senior Software Engineers Philip Oetinger and Troy Harrison use their expertise to discuss why people from the ROS community chose Cyclone DDS as their preferred middleware.
If you have any questions and you want to reach out, you can send us an email at contact@zettascale.tech or join our Discord channel: https://discord.gg/6GwdBxntxt
You can read more about Cyclone DDS on our website: https://www.zettascale.tech/product/cyclone
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
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
1. Dependable Communication in ROS 2
ROS & Cyclone DDS
Cyclone DDS Unleashed
Philip Oetinger Troy Karan Harrison
Senior Software Engineer
ZettaScale
Senior Software Engineer
ZettaScale
2. 2
Cyclone DDS Unleashed
7th of March — Cyclone DDS: The Origins
21st of March — Scalability in DDS and Dealing with Large Systems
4th of April — Reasons for Choosing Cyclone DDS Shared Memory
18th of April — ROS & Cyclone DDS: Dependable Communication in ROS 2
16th of May — When to Use the Commercial Offering for Cyclone DDS
3. [1] ros.org/blog/why-ros/#global-community
3
ROS in Context
What is ROS?
• A consolidated and
fl
exible platform that uni
fi
es the intricacies of robotics applications
• Accounts for: hardware and device drivers, simulation and digital twinning, kinematics
planning, sensor integration, etc...
• Millions of developers and users[1]
• Hard to overstate its impact in robotics and its trickle effect on everyday life
• Internal (sensors, controllers, actuators) and external communication (bot to bot, external
systems) is critical to the functioning of any robot. Without timely access to reliable
information how could anyone or anything function?
4. 4
Constraints for Networking in Robotics Applications
• Bandwidth
• Point clouds, image streams, real time telemetry (high frequency)
• Latency
• Actuators responding to sensors
• Reliability
• Loss of data could be loss of equipment or lives
• Security
• Prevent bad actors from accessing sensitive components
• Resource Footprint
• Robots may have limited hardware and have limited power cycles
• Feedback
• Noti
fi
cations
fi
red when deadlines are not hit
5. 5
DDS Backbone of Communication in ROS 2
[1] Robot Operating System 2: Design, Architecture, and Uses In The Wild
[2] Taming the Dragon — Ep.3: ROS 2 Robot-to-Anything with Zenoh
ROS 2 Client Library API Stack[1]
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
ROS 2 <-> DDS Topic Mapping[2]
7. 7
• Reliable communication in case of drop offs (sensor redundancy through
failover)
• Adding and removing nodes on the
fl
y
• Create ad-hoc network around oneself
• Data transmission: low latency, high throughput
• Lightweight: Energy ef
fi
ciency, CPU cycles, & RAM consumption
• Standards based: Ensure interoperability and prevent vender lock-in
The Benefits of DDS in ROS?
8. 8
What is DDS?
• Data-distribution service:
• Real-time publish subscribe protocol
• Discovery via the simple participant
discovery protocol and the simple entity
discovery protocol
• Topic oriented and distributed push-based data-
space
• Quality of Services for steering the non-
functional requirements of the system
9. 9
What is DDS?
ROS 2 node interfaces: topics, services, and actions[1]
[1]Robot Operating System 2: Design, Architecture, and Uses In The Wild
11. ROS and DDS: Making the Most Out of Your Software Framework
11
Under the Hood for Performance
12. • For the 2021 Indy Autonomous Challenge: three sister projects of the Eclipse
Foundation (Cyclone DDS, Zenoh, and iceoryx) featured across the designs of
the teams[1]
• A ROS 2 LiDAR device driver was modi
fi
ed to directly use the DDS API. This cut
latency by up to 90% compared with a driver that used ROS API but didn’t affect
full interoperability with ROS 2[2]
[1] Open Source Drives Indy Autonomous Challenge Racecars
[2] ROS and DDS: Making the Most Out of Your Software Framework
[3] New World Autonomous-Racing Speed Record Set at CES 2023 12
Under the Hood for Performance
• At CES 2023, PoliMOVE from Politecnico di Milano (Italy) and the University
of Alabama won the racing challenge set a new World record using Cyclone
DDS and ROS 2 hitting 180 mph (290 kph)[3]
13. ROS and DDS: Making the Most Out of Your Software Framework
13
Under the Hood for Performance
14. 14
Constraints of DDS
• Oriented around LAN and designed with wired networks in mind
• Push-based only
• Quadratic discovery problem inherent to the protocol
• Discovery traf
fi
c over WiFi
Cyclone DDS Unleashed: Scalability in DDS and Dealing with Large Systems
15. Taming the Dragon — Ep.3: ROS 2 Robot-to-
Anything with Zenoh 15
Zenoh + Cyclone + ROS 2 = ❤
Peer-to-peer
Clique and mesh topologies
Brokered
Clients communicate
through a router or a peer
Routed
Routers forward data to and
from peers and clients
21. 21
Central Nervous System
• Robots are like human bodies
• Bodies are a collection of sensors and actuators, controlled by (one or
many) processors
• Cyclone DDS and Zenoh work in tandem as the nervous system that
connects all the sensors, actuators, and processors
22. 22
Central Nervous System
• Data
fl
owing between sensors and actuators needs to be transported
quickly, reliably, and without compromising on developer ergonomics
• Sensors and actuators should only be concerned with their own sent
and received information
• Ensures that there isn’t a single point of failure
23. 23
Ethos: Open Source & Open Governance
• ROS is open, so are we!
• A rewarding constraint for the community and the end users of Cyclone DDS
• Fixing bugs and implementing features isn’t locked behind a free or paid
support system
• Forks can be freely used to modify the functionality, or extend its features,
keeping changes separate from the main repository
• Pull requests can submit bug
fi
xes, or feature additions, for use by the
entire community
24. [1] TSC-RMW-Reports 2021 (Humble): Switching to Cyclone DDS
[2] TSC-RMW-Reports 2021 (Humble): Evaluating DDS Vendors
24
Testimonies
“I like that [Cyclone DDS] is open-source (like ROS) and that the developers are accessible,
responsive, and very interested to learn about and accommodate your application. I also think the
integration of iceoryx will be game-changing for how we write ROS code.”[1]
“I have 100% con
fi
dence in Cyclone as a middleware. I have encountered a few instances of
customers complaining about inconsistent message delivery from their laptops. Every single time
this has been the case, those customers have been running [the default] instead of Cyclone, and it
is always
fi
xed immediately when changing to Cyclone.”[1]
“At this stage, [the open source DDS vendors] are similar enough from a technical and
performance standpoint that my evaluation has shifted more towards a qualitative evaluation of the
organizations/developers behind the implementation, particularly with respect to how eager and
responsive the developers are to accommodating the needs and requests of the community.”[2]
25. 25
What does the future hold?
• 2022 ROSCON was very positive
• Many users still switch off of default to Eclipse Cyclone DDS
• Dynamic Types API is actively being developed
• https://github.com/eclipse-cyclonedds/cyclonedds/pull/1578 [merged]
• https://github.com/ros2/rmw_cyclonedds/pull/445 [open]
• Static Discovery is beginning its conception phase, de
fi
ne your systems to reduce (or remove) the
discovery overhead
• Pluggable Memory Allocator, improved performance and guarantee upper bound on resource limits
• Durability Service allowing for transient data to be persistent is actively being developed
• Packages available in Ubuntu, Conan (and coming to nixpkgs imminently)
26. 26
What does the future hold?
• The next release of Zenoh:
• ROS 1 Bridge: Allowing the hook-up of systems running on ROS 1 via Zenoh
• ROS 2 Optimizations that map actions and services to Zenoh Queryables
• Commercial offering stemming from the partnership between ZettaScale and
TTTech Auto for real-time mission critical systems
27. 27
How to switch to Cyclone DDS
• Of
fi
cial docs:
• docs.ros.org/en/humble/Installation/DDS-Implementations/Working-with-Eclipse-
CycloneDDS.html
• Community Member: ROS2 - Switch Between Different DDS Implementations (Fast DDS,
Cyclone DDS):
• youtube.com/watch?v=V3UPx_3VoyA&t=45s
Switching to the Cyclone DDS RMW Layer[1]
[1] GitHub Gist for Switching to the Cyclone DDS RMW Layer