SlideShare a Scribd company logo
1 of 37
Fast RTPS: Programming with the Default
Middleware for Robotics Adopted in ROS2
FIWARE Summit
21/02/2019
Jaime Martin Losa
CEO eProsima
JaimeMartin@eProsima.co
m www.eProsima.com
Agenda
 Fast RTPS
• Motivation
• Introduction
□ DDS
□ Architecture
□ Shapes Demo
• Hello World Example
 FIROS2: Quick update (if there is time)
1
Fast RTPS
Powering ROS2 & FIWARE
We are hiring!
Jobs@eprosima.com
3
Fast RTPS - Motivation
 Real Time Requirements
• Latency measured in µSec
 High Throughput Requirements
• Take advantage of Pub/Sub Architecture
 Low bandwidth, intermittent and unreliable datalinks
• Radio networks
• Wifi
 Many to Many communications
 Decoupled architectures
 Different QoS over different datalinks and performance requirements.
 Efficient Data Models
4
Fast RTPS - Motivation
 C++
 Full RTPS (Real Time Publish Subscribe) implementation
 Security (Encryption and Authentication)
 RPC layer available through eProsima RPC over DDS
 Based on OMG standards, Interoperable.
 Comprehensive docs, videos, examples, etc.
 Multi-Platform: Windows, Linux, Android, Mac OS, iOS
• Many ports developed by the community
 Robotics Adoption (ROS2)
 Apache 2.0 License
5
Fast RTPS: Key Features
 RTPS focused:
• Access to the protocol internals
 Large Data Support:
• Fragmentation and Flow controllers.
 DDS Security:
• Authentication, Encryption, Access control
 Support for Static Discovery/Server based discovery
• Faster Discovery.
 XML QoS Profiles (Available for ROS2 also)
• See ROSCON 2017 Presentation
https://roscon.ros.org/2017/presentations/ROSCon%202017%20ROS2%20Fine
%20Tuning.pdf
• Fine tunning for extreme scenarios. 6
Fast RTPS: Key Features II
 Fully Open Source
• Apache 2.0
• Community of Contributors
• User ports for many platforms.
• No vendor lock-in
 Lightweight
 Commercial Support
• Fast Response
• User Driven Roadmap
 Aligned with OS Community:
• ROS2, Dronecode, FIWARE
 Standard
7
New Releases. What is new?
 Fast RTPS 1.8 (May 2019):
 Better Real-Time Support
• Static allocations
• Non-Blocking calls
 Better QoS support
• Lifespan
• Manual Liveliness
• Deadline
• Reliability: Disable positive ACKs
 Server Discovery
8
 Fast RTPS 1.7 (Dec 2018):
 TCP Transport: Fast RTPS on WAN/Internet
 Dynamic Types
 Updated to latest DDS Security Spec.
 Important Performance improvements (ROS related)
 Aligned with the upcoming ROS 2 Release (Crystal)
 Fast RTPS 1.6 (June 2018):
 Access Control
 History persistence in database (sqlite).
Why Fast-RTPS for ROS2?
 Fully Open-Source & Free:
• All features are Open Source
• Open Source Business model
• Contributors Community
 Roadmap Aligned with ROS2 Roadmap
 ROS2 TSC Members
• eProsima is a key contributor to ROS2
□ Fast RTPS: ROS2
□ Fast RTPS Security: Secure ROS2
□ XRCE-DDS: Micro-ROS
□ Integration Tools.
9
FIROS2 New Release
 Connect Context Broker with Fast RTPS/ROS2
 Already available in github:
• https://github.com/eProsima/FIROS2
 The future: ROS Integration Service
• Coming soon, stay tuned.
10
DDS: Standards-based Integration Infrastructure for Critical
Applications
11
Streaming
Data
Sensors Events
Real-Time
Applications
Enterprise
Applications Actuators
Family of Specifications
12
Broad Adoption
 Vendor independent
• API for portability
• Wire protocol for interoperability
 Multiple implementations
• 10 of API
• 8 support RTPS
 Heterogeneous
• C, C++, Java, .NET (C#, C++/CLI)
• Linux, Windows, VxWorks, other embedded & real•time
 Loosely coupled
13
DDS adopted by key programs in Europe
 European Air Traffic Control
• DDS proposed for interoperate
ATC centers
 Spanish Army
• DDS is mandated for C2
Interoperability (ethernet, radio &
satellite)
 UK Generic Vehicle
Architecture
• Mandates DDS for vehicle comm.
• Mandates DDS-RTPS for interop.
14
US-DoD mandates DDS for data-distribution
 DISR (formerly JTA)
• DoD Information Technology
Standards Registry
 US Navy Open Architecture
 Army, OSD
• UCS, Unmanned Vehicle Control
 SPAWAR NESI
• Net-centric Enterprise Solutions for
Interoperability
• Mandates DDS for Pub-Sub SOA
15
RTPS Adoption
 ROS (Robotic Operating System)
 FIWARE
• EU R&D Software Platform
 Many Drone Companies
• 3D Robotics
• Magma UAVs
• …
 Dronecode
• Main OSS platform for Drones
16
ROS2: Robotics de facto Standard
 The Robot Operating System (ROS) 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. ROS has become a de facto standard for Robotic applications.
 OSRF Sponsors: Bosh, DARPA, google, MathWorks, Nasa, Nissan, Qualcomm,
rethink robotics, ROS-Industrial Consortium, Sandia National Laboratories, SICK,
Willow Garage, Yujin Robot
17
DDS Architecture
DDS
 DDS (Data Distribution Service for Real-Time Systems) is a OMG
specification for a pub/sub data centric model (DCPS, Data Centric
Publish/Subscribe) for Real-Time data comms in distributed systems.
 DDS is a networking middleware that:
• Simplifies and Standardizes data flows in distributed real-time systems.
• Provides robust comms (no single point of failure) and efficient (minimum
latency)
• Provides all kind of QoS to shape the data flows and deliver predictable results.
19
DDS
 DDS uses the concept of Global Data Space. In this Space we define topics of
data, and the publishers publish samples of these topics. DDS distributes these
samples to all the subscribers of those topics. Any node can be a publisher or a
subscriber.
20
Why DDS? Decoupled model
 Space (location)
• Automatic Discovery ensures network topology independence
 Redundancy:
• It is possible to configure redundant publishers and subscribers, primary/secundary and
takeover schemas supported
 Time:
• The reception of data does not need to be synchronous with the writing. A subscriber
may, if so configured, receive data that was written even before the subscriber joined the
network.
 Platform:
• Applications do not have to worry about data representation, processor architecture,
Operating System, or even programming language on the other side
 Implementation:
• DDS Protocol is also an standard. Different implementations interoperate.
21
Why DDS? Fully configurable
22
QoS Policy
DURABILITY
HISTORY
READER DATA LIFECYCLE
WRITER DATA LIFECYCLE
LIFESPAN
ENTITY FACTORY
RESOURCE LIMITS
RELIABILITY
TIME BASED FILTER
DEADLINE
CONTENT FILTERS
Volatility
UserQoS
Delivery
PresentationRedundancy
Infrastructure
Transport
QoS Policy
USER DATA
TOPIC DATA
GROUP DATA
PARTITION
PRESENTATION
DESTINATION ORDER
OWNERSHIP
OWNERSHIP STRENGTH
LIVELINESS
LATENCY BUDGET
TRANSPORT PRIORITY
DDS Infrastructure
 Standard API for
portability.
 RTPS can be
implemented over any
transport
 No central
Broker/Service
 Different Comm
channel per topic
23
The DDS Model
24
Quality of Service: QoS
Domain Participant
Data
Reader
Node
Subscriber
Data Domain
Subscriber
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Writer
Publisher
Topic
Publisher
Topic Topic
Topics, Instances and Keys
 Topic: A set of similar objects, sharing a common Data Type
 Instance: A particular object of the set
 Key: Fields of the Data Type to identify an object.
25
Qos
Applied by
Instance.
Topic: RadarTrack
Key: Flight ID
Instance
Flight ID=
MAD-BER57
Instance
Flight ID=
PAR-BER89
Instance
Flight ID=
PAR-BER89
Demo
26
const long STR_LEN=24;
struct ShapeType {
string<MSG_LEN> color; //@key
long x;
long y;
long shapesize;
};
• 3 Topics:
• Square, Circle,
Triangle
• Color is the KEY
Questions?
Jaime Martin Losa
CTO eProsima
JaimeMartin@eProsima.co
m
+34 607 91 37 45
www.eProsima.com
Fast RTPS Hands On:
A Hello World
Hands-on Example (C++)
29
Type
Definition
MyType.idl
fastrtpsgen
MyType.h
MyTypePubSubTypes.c
MyTypePublisher.cxx
MyTypeSubscriber.cxx
MyType.sln
Publisher Subscriber.exe
Three minutes to a running app!!
1. Define your data
2. Create your project
3. Build
4. Run: publisher subscriber
compiler
Example #1 - Hello World
30
We will use this data-type :
const long MSG_LEN=256;
struct HelloMsg {
string<MSG_LEN> user; //@key
string<MSG_LEN> msg;
};
Generate type support (for C++) [Windows]
31
fastrtpsgen HelloMsg.idl -example x64Win64VS2015
-replace -ppDisable
 Look at the directory you should see:
– solution-x64Win64VS2015.sln
– And Several other files…
 Open the Solution:
 Compile from visual studio
Execute the program [Windows]
 C++:
• On one window run:
□ binx64Win64VS2015HelloMsgPublisherSubscriberd.exe publisher
• On another window run:
□ binx64Win64VS2015HelloMsgPublisherSubscriberd.exe subscriber
 You should see the subscribers getting an empty string…
32
Writting some data
 Modify HelloMsgPublisher.cxx:
33
/* Main loop */
do
{
if(ch == 'y')
{
st.msg() = std::string("Hello using cpp ") +
std::to_string(msgsent);
mp_publisher->write(&st); ++msgsent;
cout << "Sending sample, count=" << msgsent <<
",send another sample?(y-yes,n-stop): ";
}
How to Get Data? (Listener-Based)
34
// Listener code
void HelloMsgSubscriber::SubListener::onNewDataMessage(Subscriber* sub)
{
// Take data
HelloMsg st;
if(sub->takeNextData(&st, &m_info))
{
if(m_info.sampleKind == ALIVE)
{
// Print your structure data here.
++n_msg;
cout << "Sample received, count=" << n_msg << endl;
cout << " " << st.msg() << endl;
}
}
}
Questions?
Jaime Martin Losa
CTO eProsima
JaimeMartin@eProsima.co
m
+34 607 91 37 45
www.eProsima.com
Thank you!
http://fiware.org
Follow @FIWARE on Twitter
Jaime Martin Losa
CTO eProsima
JaimeMartin@eProsima.co
m
+34 607 91 37 45
www.eProsima.com

More Related Content

What's hot

RTI DDS Intro with DDS Secure
RTI DDS Intro with DDS SecureRTI DDS Intro with DDS Secure
RTI DDS Intro with DDS SecureJohn Breitenbach
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part IIAngelo Corsaro
 
The Art and Science of DDS Data Modelling
The Art and Science of DDS Data ModellingThe Art and Science of DDS Data Modelling
The Art and Science of DDS Data ModellingAngelo Corsaro
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part IAngelo Corsaro
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollerseProsima
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011Gerardo Pardo-Castellote
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardAngelo Corsaro
 
ROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River LabsROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River LabsAndrei Kholodnyi
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
Micro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSMicro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSeProsima
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaAngelo Corsaro
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA ExplainedAngelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and SimulinkApplying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and SimulinkGerardo Pardo-Castellote
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaAngelo Corsaro
 

What's hot (20)

RTI DDS Intro with DDS Secure
RTI DDS Intro with DDS SecureRTI DDS Intro with DDS Secure
RTI DDS Intro with DDS Secure
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
 
The Art and Science of DDS Data Modelling
The Art and Science of DDS Data ModellingThe Art and Science of DDS Data Modelling
The Art and Science of DDS Data Modelling
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollers
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
 
ROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River LabsROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River Labs
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
Micro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSMicro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROS
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA Explained
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and SimulinkApplying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
Applying MBSE to the Industrial IoT: Using SysML with Connext DDS and Simulink
 
DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
 
DDS Enabling Open Architecture
DDS Enabling Open ArchitectureDDS Enabling Open Architecture
DDS Enabling Open Architecture
 
DDS Best Practices
DDS Best PracticesDDS Best Practices
DDS Best Practices
 
DDS Security
DDS SecurityDDS Security
DDS Security
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 

Similar to Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2

FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE
 
Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018Jaime Martin Losa
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSJaime Martin Losa
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robotsJaime Martin Losa
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)FIWARE
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsJaime Martin Losa
 
DDS, the US Navy, and the Need for Distributed Software
DDS, the US Navy,  and the Need for Distributed SoftwareDDS, the US Navy,  and the Need for Distributed Software
DDS, the US Navy, and the Need for Distributed SoftwareGerardo Pardo-Castellote
 
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin MeetingeProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin MeetingJaime Martin Losa
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfZettaScaleTechnology
 
ROSCON Fr: is ROS 2 ready for production?
ROSCON Fr: is ROS 2 ready for production?ROSCON Fr: is ROS 2 ready for production?
ROSCON Fr: is ROS 2 ready for production?Thomas Moulard
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSRick Warren
 
2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers Forum2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers ForumShawn Wells
 
How to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control SystemsHow to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control SystemsReal-Time Innovations (RTI)
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...Istvan Rath
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Gerardo Pardo-Castellote
 
Sreda Software Solutions company information
Sreda Software Solutions company information Sreda Software Solutions company information
Sreda Software Solutions company information Yaroslav Domaratsky
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE
 
MUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration AnalystMUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration AnalystFajar Nugroho
 
MPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - SillMPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - SillAlan Sill
 

Similar to Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2 (20)

FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
 
Fast RTPS
Fast RTPSFast RTPS
Fast RTPS
 
Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
 
DDS, the US Navy, and the Need for Distributed Software
DDS, the US Navy,  and the Need for Distributed SoftwareDDS, the US Navy,  and the Need for Distributed Software
DDS, the US Navy, and the Need for Distributed Software
 
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin MeetingeProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
 
ROSCON Fr: is ROS 2 ready for production?
ROSCON Fr: is ROS 2 ready for production?ROSCON Fr: is ROS 2 ready for production?
ROSCON Fr: is ROS 2 ready for production?
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDS
 
2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers Forum2008-01-23 Red Hat Overview to CUNY Information Managers Forum
2008-01-23 Red Hat Overview to CUNY Information Managers Forum
 
How to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control SystemsHow to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control Systems
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.
 
Sreda Software Solutions company information
Sreda Software Solutions company information Sreda Software Solutions company information
Sreda Software Solutions company information
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
 
MUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration AnalystMUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration Analyst
 
MPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - SillMPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
 

Recently uploaded

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2

  • 1. Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2 FIWARE Summit 21/02/2019 Jaime Martin Losa CEO eProsima JaimeMartin@eProsima.co m www.eProsima.com
  • 2. Agenda  Fast RTPS • Motivation • Introduction □ DDS □ Architecture □ Shapes Demo • Hello World Example  FIROS2: Quick update (if there is time) 1
  • 5. Fast RTPS - Motivation  Real Time Requirements • Latency measured in µSec  High Throughput Requirements • Take advantage of Pub/Sub Architecture  Low bandwidth, intermittent and unreliable datalinks • Radio networks • Wifi  Many to Many communications  Decoupled architectures  Different QoS over different datalinks and performance requirements.  Efficient Data Models 4
  • 6. Fast RTPS - Motivation  C++  Full RTPS (Real Time Publish Subscribe) implementation  Security (Encryption and Authentication)  RPC layer available through eProsima RPC over DDS  Based on OMG standards, Interoperable.  Comprehensive docs, videos, examples, etc.  Multi-Platform: Windows, Linux, Android, Mac OS, iOS • Many ports developed by the community  Robotics Adoption (ROS2)  Apache 2.0 License 5
  • 7. Fast RTPS: Key Features  RTPS focused: • Access to the protocol internals  Large Data Support: • Fragmentation and Flow controllers.  DDS Security: • Authentication, Encryption, Access control  Support for Static Discovery/Server based discovery • Faster Discovery.  XML QoS Profiles (Available for ROS2 also) • See ROSCON 2017 Presentation https://roscon.ros.org/2017/presentations/ROSCon%202017%20ROS2%20Fine %20Tuning.pdf • Fine tunning for extreme scenarios. 6
  • 8. Fast RTPS: Key Features II  Fully Open Source • Apache 2.0 • Community of Contributors • User ports for many platforms. • No vendor lock-in  Lightweight  Commercial Support • Fast Response • User Driven Roadmap  Aligned with OS Community: • ROS2, Dronecode, FIWARE  Standard 7
  • 9. New Releases. What is new?  Fast RTPS 1.8 (May 2019):  Better Real-Time Support • Static allocations • Non-Blocking calls  Better QoS support • Lifespan • Manual Liveliness • Deadline • Reliability: Disable positive ACKs  Server Discovery 8  Fast RTPS 1.7 (Dec 2018):  TCP Transport: Fast RTPS on WAN/Internet  Dynamic Types  Updated to latest DDS Security Spec.  Important Performance improvements (ROS related)  Aligned with the upcoming ROS 2 Release (Crystal)  Fast RTPS 1.6 (June 2018):  Access Control  History persistence in database (sqlite).
  • 10. Why Fast-RTPS for ROS2?  Fully Open-Source & Free: • All features are Open Source • Open Source Business model • Contributors Community  Roadmap Aligned with ROS2 Roadmap  ROS2 TSC Members • eProsima is a key contributor to ROS2 □ Fast RTPS: ROS2 □ Fast RTPS Security: Secure ROS2 □ XRCE-DDS: Micro-ROS □ Integration Tools. 9
  • 11. FIROS2 New Release  Connect Context Broker with Fast RTPS/ROS2  Already available in github: • https://github.com/eProsima/FIROS2  The future: ROS Integration Service • Coming soon, stay tuned. 10
  • 12. DDS: Standards-based Integration Infrastructure for Critical Applications 11 Streaming Data Sensors Events Real-Time Applications Enterprise Applications Actuators
  • 14. Broad Adoption  Vendor independent • API for portability • Wire protocol for interoperability  Multiple implementations • 10 of API • 8 support RTPS  Heterogeneous • C, C++, Java, .NET (C#, C++/CLI) • Linux, Windows, VxWorks, other embedded & real•time  Loosely coupled 13
  • 15. DDS adopted by key programs in Europe  European Air Traffic Control • DDS proposed for interoperate ATC centers  Spanish Army • DDS is mandated for C2 Interoperability (ethernet, radio & satellite)  UK Generic Vehicle Architecture • Mandates DDS for vehicle comm. • Mandates DDS-RTPS for interop. 14
  • 16. US-DoD mandates DDS for data-distribution  DISR (formerly JTA) • DoD Information Technology Standards Registry  US Navy Open Architecture  Army, OSD • UCS, Unmanned Vehicle Control  SPAWAR NESI • Net-centric Enterprise Solutions for Interoperability • Mandates DDS for Pub-Sub SOA 15
  • 17. RTPS Adoption  ROS (Robotic Operating System)  FIWARE • EU R&D Software Platform  Many Drone Companies • 3D Robotics • Magma UAVs • …  Dronecode • Main OSS platform for Drones 16
  • 18. ROS2: Robotics de facto Standard  The Robot Operating System (ROS) 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. ROS has become a de facto standard for Robotic applications.  OSRF Sponsors: Bosh, DARPA, google, MathWorks, Nasa, Nissan, Qualcomm, rethink robotics, ROS-Industrial Consortium, Sandia National Laboratories, SICK, Willow Garage, Yujin Robot 17
  • 20. DDS  DDS (Data Distribution Service for Real-Time Systems) is a OMG specification for a pub/sub data centric model (DCPS, Data Centric Publish/Subscribe) for Real-Time data comms in distributed systems.  DDS is a networking middleware that: • Simplifies and Standardizes data flows in distributed real-time systems. • Provides robust comms (no single point of failure) and efficient (minimum latency) • Provides all kind of QoS to shape the data flows and deliver predictable results. 19
  • 21. DDS  DDS uses the concept of Global Data Space. In this Space we define topics of data, and the publishers publish samples of these topics. DDS distributes these samples to all the subscribers of those topics. Any node can be a publisher or a subscriber. 20
  • 22. Why DDS? Decoupled model  Space (location) • Automatic Discovery ensures network topology independence  Redundancy: • It is possible to configure redundant publishers and subscribers, primary/secundary and takeover schemas supported  Time: • The reception of data does not need to be synchronous with the writing. A subscriber may, if so configured, receive data that was written even before the subscriber joined the network.  Platform: • Applications do not have to worry about data representation, processor architecture, Operating System, or even programming language on the other side  Implementation: • DDS Protocol is also an standard. Different implementations interoperate. 21
  • 23. Why DDS? Fully configurable 22 QoS Policy DURABILITY HISTORY READER DATA LIFECYCLE WRITER DATA LIFECYCLE LIFESPAN ENTITY FACTORY RESOURCE LIMITS RELIABILITY TIME BASED FILTER DEADLINE CONTENT FILTERS Volatility UserQoS Delivery PresentationRedundancy Infrastructure Transport QoS Policy USER DATA TOPIC DATA GROUP DATA PARTITION PRESENTATION DESTINATION ORDER OWNERSHIP OWNERSHIP STRENGTH LIVELINESS LATENCY BUDGET TRANSPORT PRIORITY
  • 24. DDS Infrastructure  Standard API for portability.  RTPS can be implemented over any transport  No central Broker/Service  Different Comm channel per topic 23
  • 25. The DDS Model 24 Quality of Service: QoS Domain Participant Data Reader Node Subscriber Data Domain Subscriber Data Writer Data Writer Data Reader Data Reader Data Writer Publisher Topic Publisher Topic Topic
  • 26. Topics, Instances and Keys  Topic: A set of similar objects, sharing a common Data Type  Instance: A particular object of the set  Key: Fields of the Data Type to identify an object. 25 Qos Applied by Instance. Topic: RadarTrack Key: Flight ID Instance Flight ID= MAD-BER57 Instance Flight ID= PAR-BER89 Instance Flight ID= PAR-BER89
  • 27. Demo 26 const long STR_LEN=24; struct ShapeType { string<MSG_LEN> color; //@key long x; long y; long shapesize; }; • 3 Topics: • Square, Circle, Triangle • Color is the KEY
  • 28. Questions? Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.co m +34 607 91 37 45 www.eProsima.com
  • 29. Fast RTPS Hands On: A Hello World
  • 30. Hands-on Example (C++) 29 Type Definition MyType.idl fastrtpsgen MyType.h MyTypePubSubTypes.c MyTypePublisher.cxx MyTypeSubscriber.cxx MyType.sln Publisher Subscriber.exe Three minutes to a running app!! 1. Define your data 2. Create your project 3. Build 4. Run: publisher subscriber compiler
  • 31. Example #1 - Hello World 30 We will use this data-type : const long MSG_LEN=256; struct HelloMsg { string<MSG_LEN> user; //@key string<MSG_LEN> msg; };
  • 32. Generate type support (for C++) [Windows] 31 fastrtpsgen HelloMsg.idl -example x64Win64VS2015 -replace -ppDisable  Look at the directory you should see: – solution-x64Win64VS2015.sln – And Several other files…  Open the Solution:  Compile from visual studio
  • 33. Execute the program [Windows]  C++: • On one window run: □ binx64Win64VS2015HelloMsgPublisherSubscriberd.exe publisher • On another window run: □ binx64Win64VS2015HelloMsgPublisherSubscriberd.exe subscriber  You should see the subscribers getting an empty string… 32
  • 34. Writting some data  Modify HelloMsgPublisher.cxx: 33 /* Main loop */ do { if(ch == 'y') { st.msg() = std::string("Hello using cpp ") + std::to_string(msgsent); mp_publisher->write(&st); ++msgsent; cout << "Sending sample, count=" << msgsent << ",send another sample?(y-yes,n-stop): "; }
  • 35. How to Get Data? (Listener-Based) 34 // Listener code void HelloMsgSubscriber::SubListener::onNewDataMessage(Subscriber* sub) { // Take data HelloMsg st; if(sub->takeNextData(&st, &m_info)) { if(m_info.sampleKind == ALIVE) { // Print your structure data here. ++n_msg; cout << "Sample received, count=" << n_msg << endl; cout << " " << st.msg() << endl; } } }
  • 36. Questions? Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.co m +34 607 91 37 45 www.eProsima.com
  • 37. Thank you! http://fiware.org Follow @FIWARE on Twitter Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.co m +34 607 91 37 45 www.eProsima.com