SlideShare a Scribd company logo
Connecting to Robots
FIWARE Summit - Malaga - 15/Dec/2016
Jaime Martin Losa
eProsima CEO. I2ND Chapter – Advanced Middleware & Robotics
JaimeMartin@eProsima.com
Agenda
 FIWARE Advanced Middleware: When to use it
• Fast RTPS
• KIARA
 ROS2 (Robot Operating System)
 DDS/RTPS Quick Introduction
• The Standard
• Architecture
• Shapes Demo
 Fast RTPS Hello World Example
 Connecting to ROS2 from FIWARE
• Fast RTPS
• FIROS2
1
FIWARE Advanced Middleware:
When to use it?
2
FIWARE Advanced Middleware: When to use it
 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
3
FIWARE Advanced Middleware: When to use it
 eProsima Fast RTPS
• C++
• Full RTPS (Real Time Publish Subscribe) implementation
• RPC layer available through eProsima RPC over DDS
• Robotics Adoption (ROS2)
• Apache 2.0 License
 KIARA
• Java
• Complete RTPS implementation
□ No Support for large data (>64kb) yet
• RPC included
• LGPL License (Plans to migrate to Apache 2.0)
• Interoperable with Fast RTPS
4
ROS (Robot Operating System)
5
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
6
DDS/RTPS Quick Introduction
7
Introduction: Everything is distributed
 Enterprise Internet
 Internet of Things
 Cloud Computing
 Industry 4.0
 …
 Next-generation systems needs:
• Scalability
• Integration & Evolution
• Robustness & Availability
• Performance
• Security
8
Challenge
 Everything is connected, and we should enable communication
between the different nodes.
 And this means:
• Common protocols
• Common Data Types
• Known interfaces
• Different QoS over different datalinks and performance requirements.
• Different comunications patterns.
• Broad platform and programming language support.
• Good Data Models!
9
DDS/RTPS: 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
• …
15
DDS Architecture
16
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.
17
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.
18
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.
19
Why DDS? Fully configurable
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
Quality of Service: QoS
The DDS Model
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.
Topic: RadarTrack
Key: Flight ID
Instance
Flight ID=
MAD-BER57
Instance
Flight ID=
PAR-BER89
Instance
Flight ID=
PAR-BER89
Qos
Applied by
Instance.
Demo
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
Fast RTPS Hands On:
A Hello World
25
Hands-on Example (C++)
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
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]
• Look at the directory you should see:
– solution-x64Win64VS2015.sln
– And Several other files…
• Open the Solution:
• Compile from visual studio
fastrtpsgen HelloMsg.idl -example x64Win64VS2015
-replace -ppDisable
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…
Writting some data
• Modify HelloMsgPublisher.cxx:
/* 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)
// 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;
}
}
}
Connecting to ROS2 from FIWARE
32
FIROS2: ROS2 to Fast RTPS
33
FIROS2: ROS2 to Fast RTPS
34
FIROS2: Roadmap
 Bridge to Orion Context Broker
35
Want to know more?
• https://catalogue.fiware.org/enablers/fast-rtps
• https://catalogue.fiware.org/enablers/kiara-advanced-
middleware
• www.eProsima.com
• Youtube: https://www.youtube.com/user/eprosima
• Mail: JaimeMartin@eProsima.com
• Phone: +34 607913745
• Twitter: @jaimemartinlosa
• http://es.slideshare.net/JaimeMartin-eProsima
Thank you!
http://fiware.org
Follow @FIWARE on Twitter

More Related Content

PPTX
Fiware - communicating with ROS robots using Fast RTPS
PPTX
eProsima RPC over DDS - Connext Conf London October 2015
PPTX
Distributed Systems: How to connect your real-time applications
PPTX
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
PPTX
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
PPTX
FIWARE Robotics: ROS2 & micro-ROS
PPTX
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
PPTX
Fast RTPS Workshop at FIWARE Summit 2018
Fiware - communicating with ROS robots using Fast RTPS
eProsima RPC over DDS - Connext Conf London October 2015
Distributed Systems: How to connect your real-time applications
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
FIWARE Robotics: ROS2 & micro-ROS
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS Workshop at FIWARE Summit 2018

What's hot (20)

PPTX
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
PDF
micro-ROS - New client library and middleware features
PDF
micro-ROS: Developing ROS 2 professional applications based on MCUs
PDF
micro-ROS goes easy: Developing professional applications using Eclipse based...
PDF
Introducing Vortex Lite
PDF
Haystack Integration of NFC and DASH7
PDF
Fast DDS Features & Tools
PDF
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
PPTX
DOCX
Dpdk frame pipeline for ips ids suricata
PDF
Data Networking Concepts
PDF
Transition to ipv6 cgv6-edited
PDF
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
PPTX
Dpdk – IoT packet analyzer
PDF
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
PDF
SDN & NFV Introduction - Open Source Data Center Networking
PDF
LF_DPDK17_Power Aware Packet Processing
PDF
Rlite software-architecture (1)
PDF
Rina acc-icc16-stein
PPSX
FD.io Vector Packet Processing (VPP)
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
micro-ROS - New client library and middleware features
micro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS goes easy: Developing professional applications using Eclipse based...
Introducing Vortex Lite
Haystack Integration of NFC and DASH7
Fast DDS Features & Tools
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
Dpdk frame pipeline for ips ids suricata
Data Networking Concepts
Transition to ipv6 cgv6-edited
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
Dpdk – IoT packet analyzer
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
SDN & NFV Introduction - Open Source Data Center Networking
LF_DPDK17_Power Aware Packet Processing
Rlite software-architecture (1)
Rina acc-icc16-stein
FD.io Vector Packet Processing (VPP)
Ad

Viewers also liked (15)

PPTX
Loctite Instant-Adhesives
PPTX
Valiant - How I Did It
PPT
Eliava Group/GeoAIR for GALA
PDF
Stories yet to be told
PDF
LEADERSHIP
PDF
Galapresentationtranslocal
PDF
Ky yeu hoi nghi quoc gia ve tinh duc va suc khoe 2012
PPTX
Gala presentation 29.05.13
PPT
Gala art motile
PDF
TOP 10 TIPS FOR THRIVING IN A DOWN ECONOMY
PDF
Những câu chuyện chưa kể
PDF
Libro Codelpa
PPTX
Effective Service Delivery - Streamlining Your Workflows
PDF
COMMUNICATING VALUE
PDF
Start Up Quest: Importance of Management
Loctite Instant-Adhesives
Valiant - How I Did It
Eliava Group/GeoAIR for GALA
Stories yet to be told
LEADERSHIP
Galapresentationtranslocal
Ky yeu hoi nghi quoc gia ve tinh duc va suc khoe 2012
Gala presentation 29.05.13
Gala art motile
TOP 10 TIPS FOR THRIVING IN A DOWN ECONOMY
Những câu chuyện chưa kể
Libro Codelpa
Effective Service Delivery - Streamlining Your Workflows
COMMUNICATING VALUE
Start Up Quest: Importance of Management
Ad

Similar to Fiware: Connecting to robots (20)

PDF
Fast RTPS
PDF
Introduction to DDS: Context, Information Model, Security, and Applications.
PDF
Deep Dive into the OPC UA / DDS Gateway Specification
PPTX
Developing Mission-Critical Avionics and Defense Systems with Ada and DDS
PPTX
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
PDF
Communication Patterns Using Data-Centric Publish/Subscribe
PDF
Communication Patterns Using Data-Centric Publish/Subscribe
PPTX
Managing the Robotics Organization with Robotics – IoT
PPTX
Introduction to DDS
PDF
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
PDF
DDS in Action -- Part I
PPTX
Large-Scale System Integration with DDS for SCADA, C2, and Finance
PPT
RTI Data-Distribution Service (DDS) Master Class 2011
PDF
Industrial Internet of Things: Protocols an Standards
PPTX
Easing Integration of Large-Scale Real-Time Systems with DDS
PPTX
DDS Enabling Open Architecture
PPTX
Scaling DDS to Millions of Computers and Devices
PDF
RTI Connext 5.1.0
PDF
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)
PPT
DDS 2010 Interoperability Demo
Fast RTPS
Introduction to DDS: Context, Information Model, Security, and Applications.
Deep Dive into the OPC UA / DDS Gateway Specification
Developing Mission-Critical Avionics and Defense Systems with Ada and DDS
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
Managing the Robotics Organization with Robotics – IoT
Introduction to DDS
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
DDS in Action -- Part I
Large-Scale System Integration with DDS for SCADA, C2, and Finance
RTI Data-Distribution Service (DDS) Master Class 2011
Industrial Internet of Things: Protocols an Standards
Easing Integration of Large-Scale Real-Time Systems with DDS
DDS Enabling Open Architecture
Scaling DDS to Millions of Computers and Devices
RTI Connext 5.1.0
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 1)
DDS 2010 Interoperability Demo

Recently uploaded (20)

PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPT
Introduction Database Management System for Course Database
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
top salesforce developer skills in 2025.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
L1 - Introduction to python Backend.pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
medical staffing services at VALiNTRY
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Online Work Permit System for Fast Permit Processing
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Design an Analysis of Algorithms I-SECS-1021-03
How Creative Agencies Leverage Project Management Software.pdf
Introduction Database Management System for Course Database
CHAPTER 2 - PM Management and IT Context
top salesforce developer skills in 2025.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
ISO 45001 Occupational Health and Safety Management System
L1 - Introduction to python Backend.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
Odoo POS Development Services by CandidRoot Solutions
Operating system designcfffgfgggggggvggggggggg
Navsoft: AI-Powered Business Solutions & Custom Software Development
2025 Textile ERP Trends: SAP, Odoo & Oracle
Odoo Companies in India – Driving Business Transformation.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
medical staffing services at VALiNTRY

Fiware: Connecting to robots

  • 1. Connecting to Robots FIWARE Summit - Malaga - 15/Dec/2016 Jaime Martin Losa eProsima CEO. I2ND Chapter – Advanced Middleware & Robotics JaimeMartin@eProsima.com
  • 2. Agenda  FIWARE Advanced Middleware: When to use it • Fast RTPS • KIARA  ROS2 (Robot Operating System)  DDS/RTPS Quick Introduction • The Standard • Architecture • Shapes Demo  Fast RTPS Hello World Example  Connecting to ROS2 from FIWARE • Fast RTPS • FIROS2 1
  • 4. FIWARE Advanced Middleware: When to use it  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 3
  • 5. FIWARE Advanced Middleware: When to use it  eProsima Fast RTPS • C++ • Full RTPS (Real Time Publish Subscribe) implementation • RPC layer available through eProsima RPC over DDS • Robotics Adoption (ROS2) • Apache 2.0 License  KIARA • Java • Complete RTPS implementation □ No Support for large data (>64kb) yet • RPC included • LGPL License (Plans to migrate to Apache 2.0) • Interoperable with Fast RTPS 4
  • 7. 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 6
  • 9. Introduction: Everything is distributed  Enterprise Internet  Internet of Things  Cloud Computing  Industry 4.0  …  Next-generation systems needs: • Scalability • Integration & Evolution • Robustness & Availability • Performance • Security 8
  • 10. Challenge  Everything is connected, and we should enable communication between the different nodes.  And this means: • Common protocols • Common Data Types • Known interfaces • Different QoS over different datalinks and performance requirements. • Different comunications patterns. • Broad platform and programming language support. • Good Data Models! 9
  • 11. DDS/RTPS: 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 • … 15
  • 18. 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. 17
  • 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. 18
  • 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. 19
  • 21. Why DDS? Fully configurable 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
  • 22. DDS Infrastructure • Standard API for portability. • RTPS can be implemented over any transport • No central Broker/Service • Different Comm channel per topic
  • 23. Quality of Service: QoS The DDS Model Domain Participant Data Reader Node Subscriber Data Domain Subscriber Data Writer Data Writer Data Reader Data Reader Data Writer Publisher Topic Publisher Topic Topic
  • 24. 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. Topic: RadarTrack Key: Flight ID Instance Flight ID= MAD-BER57 Instance Flight ID= PAR-BER89 Instance Flight ID= PAR-BER89 Qos Applied by Instance.
  • 25. Demo 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
  • 26. Fast RTPS Hands On: A Hello World 25
  • 27. Hands-on Example (C++) 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
  • 28. Example #1 - Hello World We will use this data-type : const long MSG_LEN=256; struct HelloMsg { string<MSG_LEN> user; //@key string<MSG_LEN> msg; };
  • 29. Generate type support (for C++) [Windows] • Look at the directory you should see: – solution-x64Win64VS2015.sln – And Several other files… • Open the Solution: • Compile from visual studio fastrtpsgen HelloMsg.idl -example x64Win64VS2015 -replace -ppDisable
  • 30. 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: /* 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): "; }
  • 32. How to Get Data? (Listener-Based) // 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; } } }
  • 33. Connecting to ROS2 from FIWARE 32
  • 34. FIROS2: ROS2 to Fast RTPS 33
  • 35. FIROS2: ROS2 to Fast RTPS 34
  • 36. FIROS2: Roadmap  Bridge to Orion Context Broker 35
  • 37. Want to know more? • https://catalogue.fiware.org/enablers/fast-rtps • https://catalogue.fiware.org/enablers/kiara-advanced- middleware • www.eProsima.com • Youtube: https://www.youtube.com/user/eprosima • Mail: JaimeMartin@eProsima.com • Phone: +34 607913745 • Twitter: @jaimemartinlosa • http://es.slideshare.net/JaimeMartin-eProsima