SlideShare a Scribd company logo
1 of 36
Fast RTPS Workshop
FIWARE Summit
09/05/2018
Jaime Martin Losa
CEO eProsima
JaimeMartin@eProsima.co
m www.eProsima.com
Agenda
 Fast RTPS
• Motivation
• Introduction
□ DDS
□ Architecture
□ Shapes Demo
• Hello World Example
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
 Support for Static 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
Fast RTPS 1.6 (May 2018): New features
 Access Control
 History persistence in database (sqlite).
8
FIROS2 New Release
 Connect Context Broker with Fast RTPS/ROS2
 Already available in github:
• https://github.com/eProsima/FIROS2
9
DDS: Standards-based Integration Infrastructure for Critical
Applications
10
Streaming
Data
Sensors Events
Real-Time
Applications
Enterprise
Applications Actuators
Family of Specifications
11
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
12
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.
13
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
14
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
15
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
16
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.
18
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.
19
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.
20
Why DDS? Fully configurable
21
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
22
The DDS Model
23
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.
24
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
25
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++)
28
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
29
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]
30
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…
31
Writting some data
 Modify HelloMsgPublisher.cxx:
32
/* 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)
33
// 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

Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robotsJaime Martin Losa
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUseProsima
 
FIWARE Robotics
FIWARE RoboticsFIWARE Robotics
FIWARE RoboticseProsima
 
micro-ROS - New client library and middleware features
micro-ROS - New client library and middleware featuresmicro-ROS - New client library and middleware features
micro-ROS - New client library and middleware featureseProsima
 
eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015 eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015 Jaime Martin Losa
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & ToolseProsima
 
micro-ROS Galactic
micro-ROS Galacticmicro-ROS Galactic
micro-ROS GalacticeProsima
 
eProsima - Company brief
eProsima - Company briefeProsima - Company brief
eProsima - Company briefeProsima
 
Micro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSMicro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSeProsima
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014Jaime Martin Losa
 
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
 
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...eProsima
 
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
 
Integration Service: Integrating Communication Protocols
Integration Service: Integrating Communication ProtocolsIntegration Service: Integrating Communication Protocols
Integration Service: Integrating Communication ProtocolseProsima
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxM.Qasim Arham
 
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...IO Visor Project
 
TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 Benoit Hudzia
 
Dpdk frame pipeline for ips ids suricata
Dpdk frame pipeline for ips ids suricataDpdk frame pipeline for ips ids suricata
Dpdk frame pipeline for ips ids suricataVipin Varghese
 

What's hot (20)

Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
 
micro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUsmicro-ROS: bringing ROS 2 to MCUs
micro-ROS: bringing ROS 2 to MCUs
 
FIWARE Robotics
FIWARE RoboticsFIWARE Robotics
FIWARE Robotics
 
micro-ROS - New client library and middleware features
micro-ROS - New client library and middleware featuresmicro-ROS - New client library and middleware features
micro-ROS - New client library and middleware features
 
eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015 eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & Tools
 
micro-ROS Galactic
micro-ROS Galacticmicro-ROS Galactic
micro-ROS Galactic
 
eProsima - Company brief
eProsima - Company briefeProsima - Company brief
eProsima - Company brief
 
Micro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSMicro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROS
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
 
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
 
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
 
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
 
Integration Service: Integrating Communication Protocols
Integration Service: Integrating Communication ProtocolsIntegration Service: Integrating Communication Protocols
Integration Service: Integrating Communication Protocols
 
ROS vs ROS2
ROS vs ROS2ROS vs ROS2
ROS vs ROS2
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptx
 
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
 
TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016
 
RTI Connext 5.2.0
RTI Connext 5.2.0RTI Connext 5.2.0
RTI Connext 5.2.0
 
Dpdk frame pipeline for ips ids suricata
Dpdk frame pipeline for ips ids suricataDpdk frame pipeline for ips ids suricata
Dpdk frame pipeline for ips ids suricata
 

Similar to Fast RTPS Workshop at FIWARE Summit 2018

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
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime 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
 
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
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationGerardo Pardo-Castellote
 
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
 
Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDSkerush
 
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
 
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
 
Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...
Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...
Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...Positive Hack Days
 
Event Detection Pipelines with Apache Kafka
Event Detection Pipelines with Apache KafkaEvent Detection Pipelines with Apache Kafka
Event Detection Pipelines with Apache KafkaDataWorks Summit
 
Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...
Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...
Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...Dataconomy Media
 
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)
 
Devising a practical approach to the Internet of Things
Devising a practical approach to the Internet of ThingsDevising a practical approach to the Internet of Things
Devising a practical approach to the Internet of ThingsGordon Haff
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDSRick Warren
 
Protocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNProtocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNGerardo Pardo-Castellote
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationWebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationAmir Zmora
 
Managing Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned AircraftManaging Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned AircraftReal-Time Innovations (RTI)
 

Similar to Fast RTPS Workshop at FIWARE Summit 2018 (20)

Fast RTPS
Fast RTPSFast RTPS
Fast RTPS
 
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
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
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
 
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...
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway Specification
 
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)
 
DDS Enabling Open Architecture
DDS Enabling Open ArchitectureDDS Enabling Open Architecture
DDS Enabling Open Architecture
 
Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDS
 
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.
 
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
 
Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...
Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...
Обнаружение вредоносного кода в зашифрованном с помощью TLS трафике (без деши...
 
Event Detection Pipelines with Apache Kafka
Event Detection Pipelines with Apache KafkaEvent Detection Pipelines with Apache Kafka
Event Detection Pipelines with Apache Kafka
 
Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...
Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...
Calum McCrea, Software Engineer at Kx Systems, "Kx: How Wall Street Tech can ...
 
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
 
Devising a practical approach to the Internet of Things
Devising a practical approach to the Internet of ThingsDevising a practical approach to the Internet of Things
Devising a practical approach to the Internet of Things
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDS
 
Protocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNProtocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDN
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationWebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
 
Managing Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned AircraftManaging Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned Aircraft
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Fast RTPS Workshop at FIWARE Summit 2018

  • 1. Fast RTPS Workshop FIWARE Summit 09/05/2018 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 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  Support for Static 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. Fast RTPS 1.6 (May 2018): New features  Access Control  History persistence in database (sqlite). 8
  • 10. FIROS2 New Release  Connect Context Broker with Fast RTPS/ROS2  Already available in github: • https://github.com/eProsima/FIROS2 9
  • 11. DDS: Standards-based Integration Infrastructure for Critical Applications 10 Streaming Data Sensors Events Real-Time Applications Enterprise Applications Actuators
  • 13. 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 12
  • 14. 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. 13
  • 15. 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 14
  • 16. 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 15
  • 17. 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 16
  • 19. 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. 18
  • 20. 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. 19
  • 21. 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. 20
  • 22. Why DDS? Fully configurable 21 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
  • 23. DDS Infrastructure  Standard API for portability.  RTPS can be implemented over any transport  No central Broker/Service  Different Comm channel per topic 22
  • 24. The DDS Model 23 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
  • 25. 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. 24 Qos Applied by Instance. Topic: RadarTrack Key: Flight ID Instance Flight ID= MAD-BER57 Instance Flight ID= PAR-BER89 Instance Flight ID= PAR-BER89
  • 26. Demo 25 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
  • 27. Questions? Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.co m +34 607 91 37 45 www.eProsima.com
  • 28. Fast RTPS Hands On: A Hello World
  • 29. Hands-on Example (C++) 28 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
  • 30. Example #1 - Hello World 29 We will use this data-type : const long MSG_LEN=256; struct HelloMsg { string<MSG_LEN> user; //@key string<MSG_LEN> msg; };
  • 31. Generate type support (for C++) [Windows] 30 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
  • 32. 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… 31
  • 33. Writting some data  Modify HelloMsgPublisher.cxx: 32 /* 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): "; }
  • 34. How to Get Data? (Listener-Based) 33 // 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; } } }
  • 35. Questions? Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.co m +34 607 91 37 45 www.eProsima.com
  • 36. 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