Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

FIWARE Summit Genoa Presentation about Fast-RTPS

  • Be the first to comment

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

  1. 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. 2. Agenda  Fast RTPS • Motivation • Introduction □ DDS □ Architecture □ Shapes Demo • Hello World Example  FIROS2: Quick update (if there is time) 1
  3. 3. Fast RTPS Powering ROS2 & FIWARE
  4. 4. We are hiring! Jobs@eprosima.com 3
  5. 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. 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. 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. 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. 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. 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. 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. 12. DDS: Standards-based Integration Infrastructure for Critical Applications 11 Streaming Data Sensors Events Real-Time Applications Enterprise Applications Actuators
  13. 13. Family of Specifications 12
  14. 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. 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. 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. 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. 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
  19. 19. DDS Architecture
  20. 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. 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. 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. 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. 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. 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. 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. 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. 28. Questions? Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.co m +34 607 91 37 45 www.eProsima.com
  29. 29. Fast RTPS Hands On: A Hello World
  30. 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. 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. 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. 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. 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. 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. 36. Questions? Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.co m +34 607 91 37 45 www.eProsima.com
  37. 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

    Be the first to comment

    Login to see the comments

  • dkalog

    Apr. 20, 2021

FIWARE Summit Genoa Presentation about Fast-RTPS

Views

Total views

827

On Slideshare

0

From embeds

0

Number of embeds

13

Actions

Downloads

26

Shares

0

Comments

0

Likes

1

×