ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6....

21
LAAS-CNRS / Laboratoire d’Analyse et d’Architecture des Systèmes Laboratoire conventionné avec l’Université Fédérale de Toulouse Midi-Pyrénées ROS 2: Etat des lieux O. Stasse, Gepetto, LAAS-CNRS thanks to Deanna Hood, William Woodall - ROSCON 2016 29 Septembre 2017, Lille, 2RM, France

Transcript of ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6....

Page 1: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

LAAS-CNRS/ Laboratoire d’Analyse et d’Architecture des Systèmes

Laboratoire conventionnéavec l’Université Fédérale

de Toulouse Midi-Pyrénées

ROS 2:Etat des lieux

O. Stasse, Gepetto,LAAS-CNRS

thanks to Deanna Hood, William Woodall - ROSCON 2016

29 Septembre 2017, Lille, 2RM, France

Page 2: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Table of Contents

1 Introduction

2 Data Distribution Service (DDS)

3 ROS client libraries

4 State of ROS2

5 Example

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 2/20

ROS 2: Etat des lieux

Page 3: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS applications

■ Research applications

■ High volume sensors

■ Complex kinematics

■ Lots of computation power

■ Ideal network connectivity

Multi robot system ■Small processors ■

Battery power ■Unreliable network connectivity ■

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 3/20

ROS 2: Etat des lieux

Page 4: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Our software architecture

Robot

Dyn Feature

TaskSolver

WPG

DesiredFeature

Python

IOR

ROS: SoT Entity

: C++ server

: Process/Task

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 4/20

ROS 2: Etat des lieux

Page 5: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Goals of ROS 2

Supporting multi-robotsystems involving

unreliable networks

Remove the gap be-tween prototypingand final products

Support Multiple OS Bare metal mi-cro controller

Support for realtime control

Bare metal mi-cro controller

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 5/20

ROS 2: Etat des lieux

Page 6: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS equation

Plomberie Outils Capacités Ecosystème

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 6/20

ROS 2: Etat des lieux

Page 7: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS equation

Plomberie Outils Capacités Ecosystème

DDS

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 6/20

ROS 2: Etat des lieux

Page 8: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Main Features

• Multiple DDS support• Multiple Operating Systems support:

Linux, OS, Windows• Multiple programming languages• Co-existence with ROS-1 systems• Release Beta version every two months

WARNING !

Beta-releaseCode Unstable

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 7/20

ROS 2: Etat des lieux

Page 9: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Architectural overviewUser code

ROS client library API

ROS middleware API

DDS impl A or DDS impl B or ...

DDS Agnostic

ROS Agnostic

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 8/20

ROS 2: Etat des lieux

Page 10: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

DDS: Data Distribution Service

• OMG Standard• No master• First version 1.0 in December 2004 (freely available)

• Last version 1.4 in April 2015 (freely available)

• Focus on real-time data-flow applications

• Data-Centric Publish-Subscribe (DCPS) model

• 9 vendors (among which OCI and eProsima providing a freeimplementation)

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 9/20

ROS 2: Etat des lieux

Page 11: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

DDS has been used in

• battleships• large utility installations like dams• financial systems• space systems• flight systems• train switchboard systems

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 10/20

ROS 2: Etat des lieux

Page 12: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

DDS Features

• A Quality of Services definition of data transmissionthrough topics.

• The possibility to define objects such as DataWriter andDataReader is allowing a fine policy for publishing andsubscribing.

• Real-Time Publish Subscribe (RTPS)

• Several of the DDS vendors have special implementationsof DDS for embedded systems which boast specs related tolibrary size and memory footprint on the scale of tens orhundreds of kilobytes.

• No Remote Procedure Call services.

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 11/20

ROS 2: Etat des lieux

Page 13: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Architectural overviewUser code

ROS client library API

ROS middleware API

rmweProsimaFast RTPS

rmw RTIConnext

rmw ConnextDynamic

rmwPrismTechOpenSplice

eProsimaFast RTPS RTI Connext Connext Dy-

namicPrismTechOpenSplice

DDS Agnostic

ROS Agnostic

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 12/20

ROS 2: Etat des lieux

Page 14: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS client libraries: rclUser code

Threading model Intra-processcommunication

Names &namespaces Time

Parameters Console logging

rclcpp rclpy

ROS client li-brary API (rcl)

ROS middle-ware API (rmw)

DDS Vendor

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 13/20

ROS 2: Etat des lieux

Page 15: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS 2 Features

Discovery, transport andserialization over DDS Article

Support for multiple DDSimplementations, chosen atruntime

TutorialCurrently eProsima FastRTPS and RTI Connextare fully supported

Common core client librarythat is wrapped by language-specific libraries

Tutorial

Publish/subscribe over top-ics

Samplecode

Namespacing limitationfor Connext

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 14/20

ROS 2: Etat des lieux

Page 16: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS 2 Features

Clients and services Sample code Python support experi-mental

Set/retrieve parame-ters Sample code Parameters not yet avail-

able in rcl/Python

ROS 1 - ROS 2 com-munication bridge Tutorial

Only for topics and ser-vices, not yet available foractions

Quality of service set-tings for handling non-ideal networks

Demo

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 15/20

ROS 2: Etat des lieux

Page 17: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS 2 Features

Inter- and intra-process communicationusing the same API

Demo Currently only in C++

Composition ofnode componentsat compile-, link- ordlopen-time

Demo Currently only in C++

Support for nodes withmanaged lifecycles Demo Currently only in C++

DDS-Security support Demo

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 16/20

ROS 2: Etat des lieux

Page 18: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

ROS 2 Features

Command-line introspectiontools using an extensibleframework

Tutorial

Namespace support fornodes and topics Article

Demos of an all-ROS 2 mo-bile robot Demo

Preliminary support for real-time code

Demo, demo Linux only. Notavailable for FastRTPS.

Preliminary support for"bare-metal" microcon-trollers

wiki

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 17/20

ROS 2: Etat des lieux

Page 19: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Example of ROS 2 on ARM-M0Loïc Dauphin, Team Interface, INRIA

Core: ARM M0Microprocessor: ATSAMR21G18A

32Kb RAM256Kb Flash

OS: RIOT2 others networkprotocols:

NDN - MQTT

rcl implementation: C

[Dauphin,ACM, ICN, 2017]

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 18/20

ROS 2: Etat des lieux

Page 20: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Example on Turtlebot 2

■ Joystick teleop

■ Follower■ Cartographer

■ ACML Localization

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 19/20

ROS 2: Etat des lieux

Page 21: ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6. 27. · ROS 2 Features Discovery, transport and serialization over DDS Article Support

Conclusion - Take away messages

■ New middleware system: DDS

■ Multi platform

■ Better network QoS handling

■ New building system catkin → ament (cament)

■ New client library

■ Node composability

■ Potential higher programming complexity

LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 20/20

ROS 2: Etat des lieux